/** @file PCH General policy Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PCH_GENERAL_CONFIG_H_ #define _PCH_GENERAL_CONFIG_H_ #define PCH_GENERAL_CONFIG_REVISION 3 #define PCH_GENERAL_PREMEM_CONFIG_REVISION 1 extern EFI_GUID gPchGeneralConfigGuid; extern EFI_GUID gPchGeneralPreMemConfigGuid; #pragma pack (push,1) enum PCH_RESERVED_PAGE_ROUTE { PchReservedPageToLpc, ///< Port 80h cycles are sent to LPC. PchReservedPageToPcie ///< Port 80h cycles are sent to PCIe. }; /** PCH postmem general config block. Revision 1: - Initial version. Revision 2: - Remove SubSystemVendorId and SubSystemId. Revision 3: - Add LegacyIoLowLatency support. **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header /** This member describes whether or not the Compatibility Revision ID (CRID) feature of PCH should be enabled. 0: Disable; 1: Enable **/ UINT32 Crid : 1; /** Set to enable low latency of legacy IO. Some systems require lower IO latency irrespective of power. This is a tradeoff between power and IO latency. @note: Once this is enabled, DmiAspm, Pcie DmiAspm in SystemAgent and ITSS Clock Gating are forced to disabled. 0: Disable, 1: Enable **/ UINT32 LegacyIoLowLatency : 1; UINT32 RsvdBits0 : 30; ///< Reserved bits } PCH_GENERAL_CONFIG; /** PCH premem general config block. Revision 1: - Initial version. **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header /** Control where the Port 80h cycles are sent, 0: LPC; 1: PCI. **/ UINT32 Port80Route : 1; UINT32 RsvdBits0 : 31; ///< Reserved bits } PCH_GENERAL_PREMEM_CONFIG; #pragma pack (pop) #endif // _PCH_GENERAL_CONFIG_H_