/** @file CIO2 policy Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _CIO2_CONFIG_H_ #define _CIO2_CONFIG_H_ #define CIO2_CONFIG_REVISION 1 extern EFI_GUID gCio2ConfigGuid; #pragma pack (push,1) /// /// The PCH_SKYCAM_CIO2_CONFIG block describes SkyCam CIO2 device. /// typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header /** NOTE: For SKL PCH, while CIO2 is enabled, RC will configure CIO2 controller as ACPI mode when PCH stepping < C0, and configure to PCI mode for C0 onwards. **/ UINT32 DeviceEnable : 2; ///< 0: Disabled, 1: Enabled UINT32 SkyCamPortATermOvrEnable : 1; ///< 0: Disable, 1: Enable - Termination override on port A UINT32 SkyCamPortBTermOvrEnable : 1; ///< 0: Disable, 1: Enable - Termination override on port B UINT32 SkyCamPortCTermOvrEnable : 1; ///< 0: Disable, 1: Enable - Termination override on port C UINT32 SkyCamPortDTermOvrEnable : 1; ///< 0: Disable, 1: Enable - Termination override on port D UINT32 RsvdBits : 26; // // CIO2 FLS registers configuration. // UINT32 PortATrimEnable : 1; ///< 0: Disable, 1: Enable - Port A Clk Trim UINT32 PortBTrimEnable : 1; ///< 0: Disable, 1: Enable - Port B Clk Trim UINT32 PortCTrimEnable : 1; ///< 0: Disable, 1: Enable - Port C Clk Trim UINT32 PortDTrimEnable : 1; ///< 0: Disable, 1: Enable - Port D Clk Trim UINT32 PortACtleEnable : 1; ///< 0: Disable, 1: Enable - Port A Ctle UINT32 PortBCtleEnable : 1; ///< 0: Disable, 1: Enable - Port B Ctle UINT32 PortCDCtleEnable : 1; ///< 0: Disable, 1: Enable - Port C/D Ctle UINT32 RsvdBits0 : 25; UINT32 PortACtleCapValue : 4; /// Port A Ctle Cap Value. Default is 0xE UINT32 PortBCtleCapValue : 4; /// Port B Ctle Cap Value. Default is 0xE UINT32 PortCDCtleCapValue : 4; /// Port C/D Ctle Cap Value. Default is 0xE UINT32 PortACtleResValue : 5; /// Port A Ctle Res Value. Default is 0xD UINT32 PortBCtleResValue : 5; /// Port B Ctle Res Value. Default is 0xD UINT32 PortCDCtleResValue : 5; /// Port C/D Ctle Res Value. Default is 0xD UINT32 RsvdBits1 : 5; UINT32 PortAClkTrimValue : 4; /// Port A Clk Trim Value. Default is 0xA UINT32 PortBClkTrimValue : 4; /// Port B Clk Trim Value. Default is 0xA UINT32 PortCClkTrimValue : 4; /// Port C Clk Trim Value. Default is 0x9 UINT32 PortDClkTrimValue : 4; /// Port D Clk Trim Value. Default is 0xA UINT32 PortADataTrimValue : 16; /// Port A Data Trim Value. Default is 0xBBBB UINT32 PortBDataTrimValue : 16; /// Port B Data Trim Value. Default is 0xBBBB UINT32 PortCDDataTrimValue : 16; /// Port C/D Data Trim Value. Default is 0xCCCC } PCH_CIO2_CONFIG; #pragma pack (pop) #endif // _CIO2_CONFIG_H_