/** @file
USB3 Mod PHY configuration policy
Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _USB3_HSIO_CONFIG_H_
#define _USB3_HSIO_CONFIG_H_
#include
#define USB3_HSIO_CONFIG_REVISION 2
extern EFI_GUID gUsb3HsioConfigGuid;
#pragma pack (push,1)
/**
This structure describes USB3 Port N configuration parameters
**/
typedef struct {
/**
USB 3.0 TX Output Downscale Amplitude Adjustment (orate01margin)
HSIO_TX_DWORD8[21:16]
Default = 00h
**/
UINT8 HsioTxDownscaleAmp;
/**
USB 3.0 TX Output -3.5dB De-Emphasis Adjustment Setting (ow2tapgen2deemph3p5)
HSIO_TX_DWORD5[21:16]
Default = 29h (approximately -3.5dB De-Emphasis)
**/
UINT8 HsioTxDeEmph;
/**
Signed Magnatude number added to the CTLE code.(ctle_adapt_offset_cfg_4_0)
HSIO_RX_DWORD25 [20:16]
Ex: -1 -- 1_0001. +1: 0_0001
Default = 0h
**/
UINT8 HsioCtrlAdaptOffsetCfg;
/**
LFPS filter select for n (filter_sel_n_2_0)
HSIO_RX_DWORD51 [29:27]
0h:1.6ns
1h:2.4ns
2h:3.2ns
3h:4.0ns
4h:4.8ns
5h:5.6ns
6h:6.4ns
Default = 0h
**/
UINT8 HsioFilterSelN;
/**
LFPS filter select for p (filter_sel_p_2_0)
HSIO_RX_DWORD51 [26:24]
0h:1.6ns
1h:2.4ns
2h:3.2ns
3h:4.0ns
4h:4.8ns
5h:5.6ns
6h:6.4ns
Default = 0h
**/
UINT8 HsioFilterSelP;
/**
Controls the input offset (olfpscfgpullupdwnres_sus_usb_2_0)
HSIO_RX_DWORD51 [2:0]
000 Prohibited
001 45K
010 Prohibited
011 31K
100 36K
101 36K
110 36K
111 36K
Default = 3h
**/
UINT8 HsioOlfpsCfgPullUpDwnRes;
UINT8 HsioTxDeEmphEnable; ///< Enable the write to USB 3.0 TX Output -3.5dB De-Emphasis Adjustment, 0: Disable; 1: Enable.
UINT8 HsioTxDownscaleAmpEnable; ///< Enable the write to USB 3.0 TX Output Downscale Amplitude Adjustment, 0: Disable; 1: Enable.
UINT8 HsioCtrlAdaptOffsetCfgEnable; ///< Enable the write to Signed Magnatude number added to the CTLE code, 0: Disable; 1: Enable.
UINT8 HsioFilterSelNEnable; ///< Enable the write to LFPS filter select for n, 0: Disable; 1: Enable.
UINT8 HsioFilterSelPEnable; ///< Enable the write to LFPS filter select for p, 0: Disable; 1: Enable.
UINT8 HsioOlfpsCfgPullUpDwnResEnable; ///< Enable the write to olfpscfgpullupdwnres, 0: Disable; 1: Enable.
/**
USB 3.0 TX Output - Unique Transition Bit Scale for rate 3 (rate3UniqTranScale)
HSIO_TX_DWORD9[6:0]
Default = 4Ch
**/
UINT8 HsioTxRate3UniqTran;
/**
USB 3.0 TX Output -Unique Transition Bit Scale for rate 2 (rate2UniqTranScale)
HSIO_TX_DWORD9[14:8]
Default = 4Ch
**/
UINT8 HsioTxRate2UniqTran;
/**
USB 3.0 TX Output - Unique Transition Bit Scale for rate 1 (rate1UniqTranScale)
HSIO_TX_DWORD9[22:16]
Default = 4Ch
**/
UINT8 HsioTxRate1UniqTran;
/**
USB 3.0 TX Output - Unique Transition Bit Scale for rate 0 (rate0UniqTranScale)
HSIO_TX_DWORD9[30:24]
Default = 4Ch
**/
UINT8 HsioTxRate0UniqTran;
UINT8 HsioTxRate3UniqTranEnable; ///< Enable the write to USB 3.0 TX Unique Transition Bit Mode for rate 3, 0: Disable; 1: Enable.
UINT8 HsioTxRate2UniqTranEnable; ///< Enable the write to USB 3.0 TX Unique Transition Bit Mode for rate 2, 0: Disable; 1: Enable.
UINT8 HsioTxRate1UniqTranEnable; ///< Enable the write to USB 3.0 TX Unique Transition Bit Mode for rate 1, 0: Disable; 1: Enable.
UINT8 HsioTxRate0UniqTranEnable; ///< Enable the write to USB 3.0 TX Unique Transition Bit Mode for rate 0, 0: Disable; 1: Enable.
} HSIO_PARAMETERS;
/**
Structure for holding USB3 tuning parameters
Revision 1:
- Initial version.
Revision 2:
- USB 3.0 TX Output Unique Transition Bit Scale policies added
**/
typedef struct {
CONFIG_BLOCK_HEADER Header; ///< Config Block Header
/**
These members describe whether the USB3 Port N of PCH is enabled by platform modules.
**/
HSIO_PARAMETERS Port[MAX_USB3_PORTS];
} USB3_HSIO_CONFIG;
#pragma pack (pop)
#endif // _USB3_HSIO_CONFIG_H_