/** @file CPU Security PreMemory Config Block. Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _CPU_SECURITY_PREMEM_CONFIG_H_ #define _CPU_SECURITY_PREMEM_CONFIG_H_ #define CPU_SECURITY_PREMEM_CONFIG_REVISION 1 extern EFI_GUID gCpuSecurityPreMemConfigGuid; #pragma pack (push,1) /** CPU Security PreMemory Configuration Structure. Revision 1: - Initial version. **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header UINT32 PrmrrSize; ///< PRMRR Size.Software Control: 0x0 32MB: 0x2000000, 64MB: 0x4000000, 128 MB: 0x8000000, 256 MB: 0x10000000, 512 MB: 0x20000000 UINT16 BiosSize; ///< Flash information for BIOS Guard: BIOS Size in KB. UINT8 Reserved[2]; ///< Reserved for future use /** Enable or Disable BIOS Guard; 0: Disable; 1: Enable. - This is an optional feature and can be opted out. - If this policy is set to Disabled, the policies in the BIOS_GUARD_CONFIG will be ignored. - If PeiBiosGuardLibNull is used, this policy will have no effect. **/ UINT32 BiosGuard : 1; UINT32 BiosGuardToolsInterface : 1; ///< BIOS Guard Tools Interface; 0: Disable, 1:Enable /** Enable or Disable Software Guard Extensions; 0: Disable; 1: Enable. - This is an optional feature and can be opted out. - If this policy is set to Disabled, the policies in the CPU_SGX_CONFIG will be ignored. - If BaseSoftwareGuardLibNull is used, this policy will have no effect. **/ UINT32 EnableSgx : 1; /** Enable or Disable Trusted Execution Technology; 0: Disable; 1: Enable. - This is an optional feature and can be opted out. - If this policy is set to Disabled, the policies in the CPU_TXT_PREMEM_CONFIG will be ignored. - If PeiTxtLibNull is used, this policy will have no effect. **/ UINT32 Txt : 1; UINT32 SkipStopPbet : 1; ///< (Test) Skip Stop PBET Timer; 0: Disable; 1: Enable. /// /// (Test) This policy indicates whether or not BIOS should allocate PRMRR memory for C6DRAM power gating feature. /// - 0: Don't allocate any PRMRR memory for C6DRAM power gating feature. /// - 1: Allocate PRMRR memory for C6DRAM power gating feature. /// UINT32 EnableC6Dram : 1; UINT32 ResetAux : 1; ///< (Test) Reset Auxiliary content, 0: Disabled, 1: Enabled UINT32 TxtAcheckRequest : 1; ///< (Test) AcheckRequest 0: Disabled, 1: Enabled. When Enabled, it will call Acheck regardless of crashcode value UINT32 RsvdBits : 24; ///< Reserved for future use } CPU_SECURITY_PREMEM_CONFIG; #pragma pack (pop) #endif // _CPU_SECURITY_CONFIG_H_