mirror of https://github.com/ipxe/ipxe.git
[efi] Update to current EDK2 headers
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/1386/head
parent
97079553b6
commit
8816ddcd96
|
@ -61,7 +61,7 @@ FILE_LICENCE ( BSD2_PATENT );
|
|||
/// up to the compiler to remove any code past that point.
|
||||
///
|
||||
#define UNREACHABLE() __builtin_unreachable ()
|
||||
#elif defined (__has_feature)
|
||||
#elif defined (__has_builtin) && defined (__has_feature)
|
||||
#if __has_builtin (__builtin_unreachable)
|
||||
///
|
||||
/// Signal compilers and analyzers that this call is not reachable. It is
|
||||
|
@ -1060,7 +1060,7 @@ typedef UINTN RETURN_STATUS;
|
|||
@retval FALSE The high bit of StatusCode is clear.
|
||||
|
||||
**/
|
||||
#define RETURN_ERROR(StatusCode) (((INTN)(RETURN_STATUS)(StatusCode)) < 0)
|
||||
#define RETURN_ERROR(StatusCode) (((RETURN_STATUS)(StatusCode)) >= MAX_BIT)
|
||||
|
||||
///
|
||||
/// The operation completed successfully.
|
||||
|
|
|
@ -1762,6 +1762,7 @@ typedef struct {
|
|||
#define EFI_ACPI_5_1_EINJ_EXECUTE_OPERATION 0x05
|
||||
#define EFI_ACPI_5_1_EINJ_CHECK_BUSY_STATUS 0x06
|
||||
#define EFI_ACPI_5_1_EINJ_GET_COMMAND_STATUS 0x07
|
||||
#define EFI_ACPI_5_1_EINJ_SET_ERROR_TYPE_WITH_ADDRESS 0x08
|
||||
#define EFI_ACPI_5_1_EINJ_TRIGGER_ERROR 0xFF
|
||||
|
||||
///
|
||||
|
|
|
@ -1949,6 +1949,7 @@ typedef struct {
|
|||
#define EFI_ACPI_6_0_EINJ_EXECUTE_OPERATION 0x05
|
||||
#define EFI_ACPI_6_0_EINJ_CHECK_BUSY_STATUS 0x06
|
||||
#define EFI_ACPI_6_0_EINJ_GET_COMMAND_STATUS 0x07
|
||||
#define EFI_ACPI_6_0_EINJ_SET_ERROR_TYPE_WITH_ADDRESS 0x08
|
||||
#define EFI_ACPI_6_0_EINJ_TRIGGER_ERROR 0xFF
|
||||
|
||||
///
|
||||
|
|
|
@ -746,8 +746,8 @@ typedef struct tdTPM_PERMANENT_FLAGS {
|
|||
BOOLEAN TPMpost;
|
||||
BOOLEAN TPMpostLock;
|
||||
BOOLEAN FIPS;
|
||||
BOOLEAN operator;
|
||||
BOOLEAN enableRevokeEK;
|
||||
BOOLEAN operator_;
|
||||
BOOLEAN enableRevokeEK;
|
||||
BOOLEAN nvLocked;
|
||||
BOOLEAN readSRKPub;
|
||||
BOOLEAN tpmEstablished;
|
||||
|
|
|
@ -205,15 +205,16 @@ typedef UINT16 TPM_ALG_ID;
|
|||
|
||||
// Table 8 - TPM_ECC_CURVE Constants
|
||||
typedef UINT16 TPM_ECC_CURVE;
|
||||
#define TPM_ECC_NONE (TPM_ECC_CURVE)(0x0000)
|
||||
#define TPM_ECC_NIST_P192 (TPM_ECC_CURVE)(0x0001)
|
||||
#define TPM_ECC_NIST_P224 (TPM_ECC_CURVE)(0x0002)
|
||||
#define TPM_ECC_NIST_P256 (TPM_ECC_CURVE)(0x0003)
|
||||
#define TPM_ECC_NIST_P384 (TPM_ECC_CURVE)(0x0004)
|
||||
#define TPM_ECC_NIST_P521 (TPM_ECC_CURVE)(0x0005)
|
||||
#define TPM_ECC_BN_P256 (TPM_ECC_CURVE)(0x0010)
|
||||
#define TPM_ECC_BN_P638 (TPM_ECC_CURVE)(0x0011)
|
||||
#define TPM_ECC_SM2_P256 (TPM_ECC_CURVE)(0x0020)
|
||||
#define TPM_ECC_NONE (TPM_ECC_CURVE)(0x0000)
|
||||
#define TPM_ECC_NIST_P192 (TPM_ECC_CURVE)(0x0001)
|
||||
#define TPM_ECC_NIST_P224 (TPM_ECC_CURVE)(0x0002)
|
||||
#define TPM_ECC_NIST_P256 (TPM_ECC_CURVE)(0x0003)
|
||||
#define TPM_ECC_NIST_P384 (TPM_ECC_CURVE)(0x0004)
|
||||
#define TPM_ECC_NIST_P521 (TPM_ECC_CURVE)(0x0005)
|
||||
#define TPM_ECC_BN_P256 (TPM_ECC_CURVE)(0x0010)
|
||||
#define TPM_ECC_BN_P638 (TPM_ECC_CURVE)(0x0011)
|
||||
#define TPM_ECC_SM2_P256 (TPM_ECC_CURVE)(0x0020)
|
||||
#define TPM_ECC_BP_P512_R1 (TPM_ECC_CURVE)(0x0032)
|
||||
|
||||
// Table 11 - TPM_CC Constants (Numeric Order)
|
||||
typedef UINT32 TPM_CC;
|
||||
|
@ -1249,7 +1250,7 @@ typedef union {
|
|||
TPMI_AES_KEY_BITS aes;
|
||||
TPMI_SM4_KEY_BITS SM4;
|
||||
TPM_KEY_BITS sym;
|
||||
TPMI_ALG_HASH xor;
|
||||
TPMI_ALG_HASH xor_;
|
||||
} TPMU_SYM_KEY_BITS;
|
||||
|
||||
// Table 123 - TPMU_SYM_MODE Union
|
||||
|
@ -1322,7 +1323,7 @@ typedef struct {
|
|||
// Table 136 - TPMU_SCHEME_KEYEDHASH Union
|
||||
typedef union {
|
||||
TPMS_SCHEME_HMAC hmac;
|
||||
TPMS_SCHEME_XOR xor;
|
||||
TPMS_SCHEME_XOR xor_;
|
||||
} TPMU_SCHEME_KEYEDHASH;
|
||||
|
||||
// Table 137 - TPMT_KEYEDHASH_SCHEME Structure
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/** @file
|
||||
TCG EFI Platform Definition in TCG_EFI_Platform_1_20_Final and
|
||||
TCG PC Client Platform Firmware Profile Specification, Revision 1.05
|
||||
TCG PC Client Platform Firmware Profile Specification, Revision 1.06
|
||||
|
||||
Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2024, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
@ -55,6 +55,18 @@ FILE_LICENCE ( BSD2_PATENT );
|
|||
#define EV_EFI_VARIABLE_AUTHORITY (EV_EFI_EVENT_BASE + 0xE0)
|
||||
#define EV_EFI_SPDM_FIRMWARE_BLOB (EV_EFI_EVENT_BASE + 0xE1)
|
||||
#define EV_EFI_SPDM_FIRMWARE_CONFIG (EV_EFI_EVENT_BASE + 0xE2)
|
||||
#define EV_EFI_SPDM_DEVICE_BLOB EV_EFI_SPDM_FIRMWARE_BLOB
|
||||
#define EV_EFI_SPDM_DEVICE_CONFIG EV_EFI_SPDM_FIRMWARE_CONFIG
|
||||
//
|
||||
// The SPDM policy database for SPDM verification.
|
||||
// It goes to PCR7
|
||||
//
|
||||
#define EV_EFI_SPDM_DEVICE_POLICY (EV_EFI_EVENT_BASE + 0xE3)
|
||||
//
|
||||
// The SPDM policy authority for SPDM verification for the signature
|
||||
// of GET_MEASUREMENT or CHALLENGE_AUTH. It goes to PCR7.
|
||||
//
|
||||
#define EV_EFI_SPDM_DEVICE_AUTHORITY (EV_EFI_EVENT_BASE + 0xE4)
|
||||
|
||||
#define EFI_CALLING_EFI_APPLICATION \
|
||||
"Calling EFI Application from Boot Option"
|
||||
|
@ -376,6 +388,7 @@ typedef struct {
|
|||
#define TCG_EfiSpecIDEventStruct_SPEC_VERSION_MINOR_TPM2 0
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2 0
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_105 105
|
||||
#define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_106 106
|
||||
|
||||
typedef struct {
|
||||
UINT8 signature[16];
|
||||
|
@ -440,6 +453,7 @@ typedef struct tdTCG_PCClientTaggedEvent {
|
|||
|
||||
#define TCG_Sp800_155_PlatformId_Event_SIGNATURE "SP800-155 Event"
|
||||
#define TCG_Sp800_155_PlatformId_Event2_SIGNATURE "SP800-155 Event2"
|
||||
#define TCG_Sp800_155_PlatformId_Event3_SIGNATURE "SP800-155 Event3"
|
||||
|
||||
typedef struct tdTCG_Sp800_155_PlatformId_Event2 {
|
||||
UINT8 Signature[16];
|
||||
|
@ -461,15 +475,58 @@ typedef struct tdTCG_Sp800_155_PlatformId_Event2 {
|
|||
// UINT8 PlatformModel[PlatformModelSize];
|
||||
// UINT8 PlatformVersionSize;
|
||||
// UINT8 PlatformVersion[PlatformVersionSize];
|
||||
// UINT8 PlatformModelSize;
|
||||
// UINT8 PlatformModel[PlatformModelSize];
|
||||
// UINT8 FirmwareManufacturerStrSize;
|
||||
// UINT8 FirmwareManufacturerStr[FirmwareManufacturerStrSize];
|
||||
// UINT32 FirmwareManufacturerId;
|
||||
// UINT8 FirmwareVersion;
|
||||
// UINT8 FirmwareVersion[FirmwareVersionSize]];
|
||||
// UINT8 FirmwareVersion[FirmwareVersionSize];
|
||||
} TCG_Sp800_155_PlatformId_Event2;
|
||||
|
||||
typedef struct tdTCG_Sp800_155_PlatformId_Event3 {
|
||||
UINT8 Signature[16];
|
||||
//
|
||||
// Where Vendor ID is an integer defined
|
||||
// at http://www.iana.org/assignments/enterprisenumbers
|
||||
//
|
||||
UINT32 VendorId;
|
||||
//
|
||||
// 16-byte identifier of a given platform's static configuration of code
|
||||
//
|
||||
EFI_GUID ReferenceManifestGuid;
|
||||
// UINT8 PlatformManufacturerStrSize;
|
||||
// UINT8 PlatformManufacturerStr[PlatformManufacturerStrSize];
|
||||
// UINT8 PlatformModelSize;
|
||||
// UINT8 PlatformModel[PlatformModelSize];
|
||||
// UINT8 PlatformVersionSize;
|
||||
// UINT8 PlatformVersion[PlatformVersionSize];
|
||||
// UINT8 FirmwareManufacturerStrSize;
|
||||
// UINT8 FirmwareManufacturerStr[FirmwareManufacturerStrSize];
|
||||
// UINT32 FirmwareManufacturerId;
|
||||
// UINT8 FirmwareVersion;
|
||||
// UINT8 FirmwareVersion[FirmwareVersionSize];
|
||||
//
|
||||
// Below structure is newly added in TCG_Sp800_155_PlatformId_Event3
|
||||
//
|
||||
// UINT32 RimLocatorType;
|
||||
// UINT32 RimLocatorLength;
|
||||
// UINT8 RimLocator[RimLocatorLength];
|
||||
// UINT32 PlatformCertLocatorType;
|
||||
// UINT32 PlatformCertLocatorLength;
|
||||
// UINT8 PlatformCertLocator[PlatformCertLocatorLength];
|
||||
} TCG_Sp800_155_PlatformId_Event3;
|
||||
|
||||
/**
|
||||
* TCG specifies a locator type with the following values
|
||||
* 0 - Raw data in the locator itself.
|
||||
* 1 - URI in rtf2396 format.
|
||||
* 2 - local device path in EFI_DEVICE_PATH_PROTOCOL format.
|
||||
* 3 - UEFI variable (16 byte EFI_GUID, then 00-terminated UCS2 string)
|
||||
**/
|
||||
#define TCG_LOCATOR_TYPE_RAW_DATA 0
|
||||
#define TCG_LOCATOR_TYPE_URI 1
|
||||
#define TCG_LOCATOR_TYPE_DEVICE_PATH 2
|
||||
#define TCG_LOCATOR_TYPE_UEFI_VARIABLE 3
|
||||
|
||||
#define TCG_EfiStartupLocalityEvent_SIGNATURE "StartupLocality"
|
||||
|
||||
//
|
||||
|
@ -494,4 +551,173 @@ typedef struct tdTCG_EfiStartupLocalityEvent {
|
|||
//
|
||||
#pragma pack ()
|
||||
|
||||
//
|
||||
// ======================================================================================================================
|
||||
// Event Type PCR Event Log Usage
|
||||
// ======================================================================================================================
|
||||
// EV_EFI_SPDM_DEVICE_BLOB 2 SPDM_MEASUREMENT_BLOCK (subtype) MEASUREMENT from device
|
||||
// EV_EFI_SPDM_DEVICE_CONFIG 3 SPDM_MEASUREMENT_BLOCK (subtype) MEASUREMENT from device
|
||||
// EV_EFI_SPDM_DEVICE_BLOB 2 SPDM_MEASUREMENT_SUMMARY_HASH.TCB (subtype) SUMMARY_HASH from device
|
||||
|
||||
// EV_EFI_SPDM_DEVICE_POLICY 7 UEFI_VARIABLE_DATA with EFI_SIGNATURE_LIST Provisioned device public cert.
|
||||
// EV_EFI_SPDM_DEVICE_AUTHORITY 7 UEFI_VARIABLE_DATA with EFI_SIGNATURE_DATA CHALLENGE_AUTH signature verification
|
||||
// ======================================================================================================================
|
||||
//
|
||||
|
||||
#define PCR_INDEX_FOR_SIGNATURE_DB 7
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION_1 1
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION_2 2
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_SIGNATURE_2 "SPDM Device Sec2"
|
||||
|
||||
typedef struct {
|
||||
UINT8 Signature[16];
|
||||
UINT16 Version;
|
||||
UINT8 AuthState;
|
||||
UINT8 Reserved;
|
||||
UINT32 Length; // Length in bytes for all following structures.
|
||||
UINT32 DeviceType;
|
||||
UINT32 SubHeaderType;
|
||||
UINT32 SubHeaderLength; // Length in bytes of the sub header followed by.
|
||||
UINT64 SubHeaderUID; // Universal identifier assigned by the event log creator. It can be used to bind two sub header structure together.
|
||||
// UINT64 DevicePathLength;
|
||||
// UINT8 DevicePath[DevicePathLength];
|
||||
} TCG_DEVICE_SECURITY_EVENT_DATA_HEADER2;
|
||||
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_SUCCESS 0
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_AUTH 1
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_BINDING 2
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_FAIL_NO_SIG 3
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_FAIL_INVALID 4
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_SPDM 0xFF
|
||||
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_SUB_HEADER_TYPE_SPDM_MEASUREMENT_BLOCK 0
|
||||
#define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_SUB_HEADER_TYPE_SPDM_CERT_CHAIN 1
|
||||
|
||||
typedef struct {
|
||||
UINT16 SpdmVersion;
|
||||
UINT8 SpdmMeasurementBlockCount;
|
||||
UINT8 Reserved;
|
||||
UINT32 SpdmMeasurementHashAlgo;
|
||||
// SPDM_MEASUREMENT_BLOCK SpdmMeasurementBlock;
|
||||
} TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_MEASUREMENT_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
UINT16 SpdmVersion;
|
||||
UINT8 SpdmSlotId;
|
||||
UINT8 Reserved;
|
||||
UINT32 SpdmHashAlgo;
|
||||
// SPDM_CERT_CHAIN SpdmCertChain;
|
||||
} TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_CERT_CHAIN;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Type;
|
||||
UINT32 Length;
|
||||
UINT8 Value[1];
|
||||
} TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_OEM_MEASUREMENT;
|
||||
|
||||
typedef union {
|
||||
TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_MEASUREMENT_BLOCK SpdmMeasurementBlock;
|
||||
TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_CERT_CHAIN SpdmCertChain;
|
||||
TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_OEM_MEASUREMENT OemMeasurement;
|
||||
} TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER;
|
||||
|
||||
typedef union {
|
||||
TCG_DEVICE_SECURITY_EVENT_DATA_PCI_CONTEXT Pci;
|
||||
TCG_DEVICE_SECURITY_EVENT_DATA_USB_CONTEXT Usb;
|
||||
} TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_CONTEXT;
|
||||
|
||||
typedef struct {
|
||||
TCG_DEVICE_SECURITY_EVENT_DATA_HEADER2 EventDataHeader;
|
||||
TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER EventDataSubHeader;
|
||||
TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_CONTEXT DeviceContext;
|
||||
} TCG_DEVICE_SECURITY_EVENT_DATA2;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
//
|
||||
// EventType:EV_NO_ACTION
|
||||
// ======================================================================================================================
|
||||
// NVIndex Name PCR/NvIndex Event Log Usage
|
||||
// ======================================================================================================================
|
||||
// NV_EXTEND_INDEX_FOR_INSTANCE 0x01C40200 NV_INDEX_INSTANCE_EVENT_LOG_STRUCT NV Extend Record for instance data (CertChain)
|
||||
// NV_EXTEND_INDEX_FOR_DYNAMIC 0x01C40201 NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT NV Extend Record for dynamic data (Nonce)
|
||||
|
||||
// EVENT_LOG_INTEGRITY_NV_INDEX_EXIT_PM_AUTH 0x01C40202 EVENT_LOG_INTEGRITY_NV_INDEX_STRUCT Event Log Integrity for ExitPmAuth
|
||||
// EVENT_LOG_INTEGRITY_NV_INDEX_READY_TO_BOOT 0x01C40203 EVENT_LOG_INTEGRITY_NV_INDEX_STRUCT Event Log Integrity for ReadyToBoot
|
||||
// ======================================================================================================================
|
||||
//
|
||||
|
||||
#define TCG_NV_EXTEND_INDEX_FOR_INSTANCE 0x01C40200
|
||||
#define TCG_NV_EXTEND_INDEX_FOR_DYNAMIC 0x01C40201
|
||||
#define TCG_EVENT_LOG_INTEGRITY_NV_INDEX_EXIT_PM_AUTH 0x01C40202
|
||||
#define TCG_EVENT_LOG_INTEGRITY_NV_INDEX_READY_TO_BOOT 0x01C40203
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
#define TCG_NV_EXTEND_INDEX_FOR_INSTANCE_SIGNATURE "NvIndexInstance"
|
||||
#define TCG_NV_INDEX_INSTANCE_EVENT_LOG_STRUCT_VERSION 1
|
||||
|
||||
typedef struct {
|
||||
UINT8 Signature[16];
|
||||
UINT16 Version;
|
||||
UINT8 Reserved[6];
|
||||
// TCG_DEVICE_SECURITY_EVENT_DATA2 Data;
|
||||
} TCG_NV_INDEX_INSTANCE_EVENT_LOG_STRUCT;
|
||||
|
||||
#define TCG_NV_EXTEND_INDEX_FOR_DYNAMIC_SIGNATURE "NvIndexDynamic "
|
||||
#define TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_VERSION 1
|
||||
|
||||
#define TCG_SPDM_CHALLENGE_DESCRIPTION "SPDM CHALLENGE"
|
||||
#define TCG_SPDM_CHALLENGE_AUTH_DESCRIPTION "SPDM CHALLENGE_AUTH"
|
||||
#define TCG_SPDM_GET_MEASUREMENTS_DESCRIPTION "SPDM GET_MEASUREMENTS"
|
||||
#define TCG_SPDM_MEASUREMENTS_DESCRIPTION "SPDM MEASUREMENTS"
|
||||
|
||||
typedef struct {
|
||||
UINT8 Signature[16];
|
||||
UINT16 Version;
|
||||
UINT8 Reserved[6];
|
||||
UINT64 Uid;
|
||||
// UINT16 DescriptionSize;
|
||||
// UINT8 Description[DescriptionSize];
|
||||
// UINT16 DataSize;
|
||||
// UINT8 Data[DataSize];
|
||||
} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT;
|
||||
|
||||
typedef struct {
|
||||
TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header;
|
||||
UINT16 DescriptionSize;
|
||||
UINT8 Description[sizeof (TCG_SPDM_CHALLENGE_DESCRIPTION)];
|
||||
UINT16 DataSize;
|
||||
UINT8 Data[32];
|
||||
} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_CHALLENGE;
|
||||
|
||||
typedef struct {
|
||||
TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header;
|
||||
UINT16 DescriptionSize;
|
||||
UINT8 Description[sizeof (TCG_SPDM_CHALLENGE_AUTH_DESCRIPTION)];
|
||||
UINT16 DataSize;
|
||||
UINT8 Data[32];
|
||||
} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_CHALLENGE_AUTH;
|
||||
|
||||
typedef struct {
|
||||
TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header;
|
||||
UINT16 DescriptionSize;
|
||||
UINT8 Description[sizeof (TCG_SPDM_GET_MEASUREMENTS_DESCRIPTION)];
|
||||
UINT16 DataSize;
|
||||
UINT8 Data[32];
|
||||
} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_GET_MEASUREMENTS;
|
||||
|
||||
typedef struct {
|
||||
TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header;
|
||||
UINT16 DescriptionSize;
|
||||
UINT8 Description[sizeof (TCG_SPDM_MEASUREMENTS_DESCRIPTION)];
|
||||
UINT16 DataSize;
|
||||
UINT8 Data[32];
|
||||
} TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_MEASUREMENTS;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
Support for USB 2.0 standard.
|
||||
|
||||
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2024, American Megatrends International LLC. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
@ -133,6 +135,21 @@ typedef struct {
|
|||
UINT8 MaxPower;
|
||||
} USB_CONFIG_DESCRIPTOR;
|
||||
|
||||
///
|
||||
/// Standard Interface Association Descriptor
|
||||
/// USB 3.0 spec, Section 9.6.4
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Length;
|
||||
UINT8 DescriptorType;
|
||||
UINT8 FirstInterface;
|
||||
UINT8 InterfaceCount;
|
||||
UINT8 FunctionClass;
|
||||
UINT8 FunctionSubclass;
|
||||
UINT8 FunctionProtocol;
|
||||
UINT8 FunctionDescriptionStringIndex;
|
||||
} USB_INTERFACE_ASSOCIATION_DESCRIPTOR;
|
||||
|
||||
///
|
||||
/// Standard Interface Descriptor
|
||||
/// USB 2.0 spec, Section 9.6.5
|
||||
|
@ -209,13 +226,16 @@ typedef enum {
|
|||
//
|
||||
// USB Descriptor types
|
||||
//
|
||||
USB_DESC_TYPE_DEVICE = 0x01,
|
||||
USB_DESC_TYPE_CONFIG = 0x02,
|
||||
USB_DESC_TYPE_STRING = 0x03,
|
||||
USB_DESC_TYPE_INTERFACE = 0x04,
|
||||
USB_DESC_TYPE_ENDPOINT = 0x05,
|
||||
USB_DESC_TYPE_HID = 0x21,
|
||||
USB_DESC_TYPE_REPORT = 0x22,
|
||||
USB_DESC_TYPE_DEVICE = 0x01,
|
||||
USB_DESC_TYPE_CONFIG = 0x02,
|
||||
USB_DESC_TYPE_STRING = 0x03,
|
||||
USB_DESC_TYPE_INTERFACE = 0x04,
|
||||
USB_DESC_TYPE_ENDPOINT = 0x05,
|
||||
USB_DESC_TYPE_INTERFACE_ASSOCIATION = 0x0b,
|
||||
USB_DESC_TYPE_HID = 0x21,
|
||||
USB_DESC_TYPE_REPORT = 0x22,
|
||||
USB_DESC_TYPE_CS_INTERFACE = 0x24,
|
||||
USB_DESC_TYPE_CS_ENDPOINT = 0x25,
|
||||
|
||||
//
|
||||
// Features to be cleared by CLEAR_FEATURE requests
|
||||
|
|
|
@ -7,6 +7,7 @@ Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
|||
Copyright (c) Microsoft Corporation.<BR>
|
||||
Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
|
||||
Portions Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>
|
||||
Copyright (c) 2023 - 2024, Arm Limited. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
|
@ -128,6 +129,92 @@ typedef struct {
|
|||
|
||||
#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
|
||||
|
||||
/**
|
||||
Reads the current value of CNTPCT_EL0 register.
|
||||
|
||||
Reads and returns the current value of CNTPCT_EL0.
|
||||
This function is only available on AARCH64.
|
||||
|
||||
@return The current value of CNTPCT_EL0
|
||||
**/
|
||||
UINT64
|
||||
EFIAPI
|
||||
ArmReadCntPctReg (
|
||||
VOID
|
||||
);
|
||||
|
||||
//
|
||||
// Bit shifts for the ID_AA64ISAR0_EL1 register.
|
||||
//
|
||||
#define ARM_ID_AA64ISAR0_EL1_AES_SHIFT (4U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA1_SHIFT (8U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA2_SHIFT (12U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_CRC32_SHIFT (16U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_ATOMIC_SHIFT (20U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_RDM_SHIFT (28U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA3_SHIFT (32U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SM3_SHIFT (36U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SM4_SHIFT (40U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_DP_SHIFT (44U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_FHM_SHIFT (48U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_TS_SHIFT (52U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_TLB_SHIFT (56U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_RNDR_SHIFT (60U)
|
||||
|
||||
//
|
||||
// Bit masks for the ID_AA64ISAR0_EL1 fields.
|
||||
//
|
||||
#define ARM_ID_AA64ISAR0_EL1_AES_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA1_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA2_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_CRC32_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_ATOMIC_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_RDM_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA3_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SM3_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SM4_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_DP_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_FHM_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_TS_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_TLB_MASK (0xFU)
|
||||
#define ARM_ID_AA64ISAR0_EL1_RNDR_MASK (0xFU)
|
||||
|
||||
//
|
||||
// Bit masks for the ID_AA64ISAR0_EL1 field values.
|
||||
//
|
||||
#define ARM_ID_AA64ISAR0_EL1_AES_FEAT_AES_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_AES_FEAT_PMULL_MASK (0x2U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA1_FEAT_SHA1_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA2_FEAT_SHA256_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA2_FEAT_SHA512_MASK (0x2U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_CRC32_HAVE_CRC32_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_ATOMIC_FEAT_LSE_MASK (0x2U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_RDM_FEAT_RDM_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SHA3_FEAT_SHA3_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SM3_FEAT_SM3_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_SM4_FEAT_SM4_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_DP_FEAT_DOTPROD_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_FHM_FEAT_FHM_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_TS_FEAT_FLAGM_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_TS_FEAT_FLAGM2_MASK (0x2U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_TLB_FEAT_TLBIOS_MASK (0x1U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_TLB_FEAT_TLBIRANGE_MASK (0x2U)
|
||||
#define ARM_ID_AA64ISAR0_EL1_RNDR_FEAT_RNG_MASK (0x1U)
|
||||
|
||||
/**
|
||||
Reads the current value of ID_AA64ISAR0_EL1 register.
|
||||
|
||||
Reads and returns the current value of ID_AA64ISAR0_EL1.
|
||||
This function is only available on AARCH64.
|
||||
|
||||
@return The current value of ID_AA64ISAR0_EL1
|
||||
**/
|
||||
UINT64
|
||||
EFIAPI
|
||||
ArmReadIdAA64Isar0Reg (
|
||||
VOID
|
||||
);
|
||||
|
||||
#endif // defined (MDE_CPU_AARCH64)
|
||||
|
||||
#if defined (MDE_CPU_RISCV64)
|
||||
|
@ -4902,6 +4989,23 @@ CalculateCrc32c (
|
|||
IN UINT32 InitialValue
|
||||
);
|
||||
|
||||
/**
|
||||
Calculates the CRC16-CCITT-FALSE checksum of the given buffer.
|
||||
|
||||
@param[in] Buffer Pointer to the buffer.
|
||||
@param[in] Length Length of the buffer, in bytes.
|
||||
@param[in] InitialValue Initial value of the CRC.
|
||||
|
||||
@return The CRC16-CCITT-FALSE checksum.
|
||||
**/
|
||||
UINT16
|
||||
EFIAPI
|
||||
CalculateCrc16CcittF (
|
||||
IN CONST VOID *Buffer,
|
||||
IN UINTN Length,
|
||||
IN UINT16 InitialValue
|
||||
);
|
||||
|
||||
//
|
||||
// Base Library CPU Functions
|
||||
//
|
||||
|
@ -5157,8 +5261,6 @@ SpeculationBarrier (
|
|||
VOID
|
||||
);
|
||||
|
||||
#if defined (MDE_CPU_X64) || defined (MDE_CPU_IA32)
|
||||
|
||||
/**
|
||||
The TDCALL instruction causes a VM exit to the Intel TDX module. It is
|
||||
used to call guest-side Intel TDX functions, either local or a TD exit
|
||||
|
@ -5221,8 +5323,6 @@ TdIsEnabled (
|
|||
VOID
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
#if defined (MDE_CPU_X64)
|
||||
//
|
||||
// The page size for the PVALIDATE instruction
|
||||
|
@ -7878,6 +7978,45 @@ AsmVmgExit (
|
|||
VOID
|
||||
);
|
||||
|
||||
///
|
||||
/// The structure used to supply and return data to and from the SVSM.
|
||||
///
|
||||
typedef struct {
|
||||
VOID *Caa;
|
||||
UINT64 RaxIn;
|
||||
UINT64 RcxIn;
|
||||
UINT64 RdxIn;
|
||||
UINT64 R8In;
|
||||
UINT64 R9In;
|
||||
UINT64 RaxOut;
|
||||
UINT64 RcxOut;
|
||||
UINT64 RdxOut;
|
||||
UINT64 R8Out;
|
||||
UINT64 R9Out;
|
||||
UINT8 *CallPending;
|
||||
} SVSM_CALL_DATA;
|
||||
|
||||
/**
|
||||
Executes a VMGEXIT instruction (VMMCALL with a REP prefix) with arguments
|
||||
and return code
|
||||
|
||||
Executes a VMGEXIT instruction placing the specified arguments in the
|
||||
corresponding registers before invocation. Upon return an XCHG is done to
|
||||
atomically clear and retrieve the SVSM call pending value. The returned RAX
|
||||
register value becomes the function return code. This function is intended
|
||||
for use with an SVSM. This function is only available on IA-32 and x64.
|
||||
|
||||
@param[in,out] SvsmCallPending Pointer to the location of the SVSM call data
|
||||
|
||||
@return Value of the RAX register on return
|
||||
|
||||
**/
|
||||
UINT32
|
||||
EFIAPI
|
||||
AsmVmgExitSvsm (
|
||||
IN OUT SVSM_CALL_DATA *SvsmCallData
|
||||
);
|
||||
|
||||
/**
|
||||
Patch the immediate operand of an IA32 or X64 instruction such that the byte,
|
||||
word, dword or qword operand is encoded at the end of the instruction's
|
||||
|
|
|
@ -5,7 +5,7 @@ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
|||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
@par Revision Reference:
|
||||
PI Version 1.7
|
||||
PI Version 1.8.A
|
||||
|
||||
**/
|
||||
|
||||
|
@ -58,14 +58,11 @@ typedef enum {
|
|||
/// system. If all memory has the same reliability, then this bit is not used.
|
||||
///
|
||||
EfiGcdMemoryTypeMoreReliable,
|
||||
// ///
|
||||
// /// A memory region that describes system memory that has not been accepted
|
||||
// /// by a corresponding call to the underlying isolation architecture.
|
||||
// ///
|
||||
// /// Please be noted:
|
||||
// /// EfiGcdMemoryTypeUnaccepted is defined in PrePiDxeCis.h because it has not been
|
||||
// /// defined in PI spec.
|
||||
// EfiGcdMemoryTypeUnaccepted,
|
||||
///
|
||||
/// A memory region that describes system memory that has not been accepted
|
||||
/// by a corresponding call to the underlying isolation architecture.
|
||||
///
|
||||
EfiGcdMemoryTypeUnaccepted,
|
||||
EfiGcdMemoryTypeMaximum = 7
|
||||
} EFI_GCD_MEMORY_TYPE;
|
||||
|
||||
|
@ -696,8 +693,8 @@ EFI_STATUS
|
|||
// DXE Services Table
|
||||
//
|
||||
#define DXE_SERVICES_SIGNATURE 0x565245535f455844ULL
|
||||
#define DXE_SPECIFICATION_MAJOR_REVISION 1
|
||||
#define DXE_SPECIFICATION_MINOR_REVISION 70
|
||||
#define DXE_SPECIFICATION_MAJOR_REVISION PI_SPECIFICATION_MAJOR_REVISION
|
||||
#define DXE_SPECIFICATION_MINOR_REVISION PI_SPECIFICATION_MINOR_REVISION
|
||||
#define DXE_SERVICES_REVISION ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -234,16 +234,8 @@ typedef UINT32 EFI_RESOURCE_TYPE;
|
|||
#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT 0x00000004
|
||||
#define EFI_RESOURCE_MEMORY_RESERVED 0x00000005
|
||||
#define EFI_RESOURCE_IO_RESERVED 0x00000006
|
||||
//
|
||||
// BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED is defined for unaccepted memory.
|
||||
// But this defitinion has not been officially in the PI spec. Base
|
||||
// on the code-first we define BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED at
|
||||
// MdeModulePkg/Include/Pi/PrePiHob.h and update EFI_RESOURCE_MAX_MEMORY_TYPE
|
||||
// to 8. After BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED is officially published
|
||||
// in PI spec, we will re-visit here.
|
||||
//
|
||||
// #define BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED 0x00000007
|
||||
#define EFI_RESOURCE_MAX_MEMORY_TYPE 0x00000008
|
||||
#define EFI_RESOURCE_MEMORY_UNACCEPTED 0x00000007
|
||||
#define EFI_RESOURCE_MAX_MEMORY_TYPE 0x00000008
|
||||
|
||||
///
|
||||
/// A type of recount attribute type.
|
||||
|
@ -299,6 +291,8 @@ typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
|
|||
#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTED 0x00040000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE 0x00080000
|
||||
|
||||
#define EFI_RESOURCE_ATTRIBUTE_ENCRYPTED 0x04000000
|
||||
#define EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE 0x08000000
|
||||
//
|
||||
// Physical memory relative reliability attribute. This
|
||||
// memory provides higher reliability relative to other
|
||||
|
|
|
@ -5,7 +5,7 @@ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
|||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
@par Revision Reference:
|
||||
These elements are defined in UEFI Platform Initialization Specification 1.2.
|
||||
These elements are defined in UEFI Platform Initialization Specification 1.8.A
|
||||
|
||||
**/
|
||||
|
||||
|
@ -22,6 +22,13 @@ FILE_LICENCE ( BSD2_PATENT );
|
|||
#include <ipxe/efi/Pi/PiStatusCode.h>
|
||||
#include <ipxe/efi/Pi/PiS3BootScript.h>
|
||||
|
||||
//
|
||||
// PI Specification Version Information
|
||||
//
|
||||
#define PI_SPECIFICATION_MAJOR_REVISION 1
|
||||
#define PI_SPECIFICATION_MINOR_REVISION 80
|
||||
#define PI_SPECIFICATION_VERSION ((PI_SPECIFICATION_MAJOR_REVISION << 16) | (PI_SPECIFICATION_MINOR_REVISION))
|
||||
|
||||
/**
|
||||
Produces an error code in the range reserved for use by the Platform Initialization
|
||||
Architecture Specification.
|
||||
|
|
|
@ -682,23 +682,23 @@ typedef struct {
|
|||
UINT32 STVAL;
|
||||
} EFI_SYSTEM_CONTEXT_RISCV64;
|
||||
|
||||
//
|
||||
// LoongArch processor exception types.
|
||||
//
|
||||
// The exception types is located in the CSR ESTAT
|
||||
// register offset 16 bits, width 6 bits.
|
||||
//
|
||||
// If you want to register an exception hook, you can
|
||||
// shfit the number left by 16 bits, and the exception
|
||||
// handler will know the types.
|
||||
//
|
||||
// For example:
|
||||
// mCpu->CpuRegisterInterruptHandler (
|
||||
// mCpu,
|
||||
// (EXCEPT_LOONGARCH_PPI << CSR_ESTAT_EXC_SHIFT),
|
||||
// PpiExceptionHandler
|
||||
// );
|
||||
//
|
||||
///
|
||||
/// LoongArch processor exception types.
|
||||
///
|
||||
/// The exception types is located in the CSR ESTAT
|
||||
/// register offset 16 bits, width 6 bits.
|
||||
///
|
||||
/// If you want to register an exception hook, you can
|
||||
/// shfit the number left by 16 bits, and the exception
|
||||
/// handler will know the types.
|
||||
///
|
||||
/// For example:
|
||||
/// mCpu->CpuRegisterInterruptHandler (
|
||||
/// mCpu,
|
||||
/// (EXCEPT_LOONGARCH_PPI << CSR_ESTAT_EXC_SHIFT),
|
||||
/// PpiExceptionHandler
|
||||
/// );
|
||||
///
|
||||
#define EXCEPT_LOONGARCH_INT 0
|
||||
#define EXCEPT_LOONGARCH_PIL 1
|
||||
#define EXCEPT_LOONGARCH_PIS 2
|
||||
|
@ -718,11 +718,22 @@ typedef struct {
|
|||
#define EXCEPT_LOONGARCH_SXD 16
|
||||
#define EXCEPT_LOONGARCH_ASXD 17
|
||||
#define EXCEPT_LOONGARCH_FPE 18
|
||||
#define EXCEPT_LOONGARCH_TBR 64 // For code only, there is no such type in the ISA spec, the TLB refill is defined for an independent exception.
|
||||
#define EXCEPT_LOONGARCH_WPE 19
|
||||
#define EXCEPT_LOONGARCH_BTD 20
|
||||
#define EXCEPT_LOONGARCH_BTE 21
|
||||
#define EXCEPT_LOONGARCH_GSPR 22
|
||||
#define EXCEPT_LOONGARCH_HVC 23
|
||||
#define EXCEPT_LOONGARCH_GCXC 24
|
||||
|
||||
//
|
||||
// LoongArch processor Interrupt types.
|
||||
//
|
||||
///
|
||||
/// For coding convenience, define the maximum valid
|
||||
/// LoongArch exception.
|
||||
///
|
||||
#define MAX_LOONGARCH_EXCEPTION 64
|
||||
|
||||
///
|
||||
/// LoongArch processor Interrupt types.
|
||||
///
|
||||
#define EXCEPT_LOONGARCH_INT_SIP0 0
|
||||
#define EXCEPT_LOONGARCH_INT_SIP1 1
|
||||
#define EXCEPT_LOONGARCH_INT_IP0 2
|
||||
|
@ -737,11 +748,11 @@ typedef struct {
|
|||
#define EXCEPT_LOONGARCH_INT_TIMER 11
|
||||
#define EXCEPT_LOONGARCH_INT_IPI 12
|
||||
|
||||
//
|
||||
// For coding convenience, define the maximum valid
|
||||
// LoongArch interrupt.
|
||||
//
|
||||
#define MAX_LOONGARCH_INTERRUPT 14
|
||||
///
|
||||
/// For coding convenience, define the maximum valid
|
||||
/// LoongArch interrupt.
|
||||
///
|
||||
#define MAX_LOONGARCH_INTERRUPT 16
|
||||
|
||||
typedef struct {
|
||||
UINT64 R0;
|
||||
|
|
|
@ -839,6 +839,26 @@ typedef struct {
|
|||
UINT64 NamespaceUuid;
|
||||
} NVME_NAMESPACE_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// NVMe over Fabric (NVMe-oF) Namespace Device Path SubType.
|
||||
///
|
||||
#define MSG_NVME_OF_NAMESPACE_DP 0x22
|
||||
typedef struct {
|
||||
EFI_DEVICE_PATH_PROTOCOL Header;
|
||||
///
|
||||
/// Namespace Identifier Type (NIDT)
|
||||
///
|
||||
UINT8 NamespaceIdType;
|
||||
///
|
||||
/// Namespace Identifier (NID)
|
||||
///
|
||||
UINT8 NamespaceId[16];
|
||||
///
|
||||
/// Unique identifier of an NVM subsystem
|
||||
///
|
||||
CHAR8 SubsystemNqn[];
|
||||
} NVME_OF_NAMESPACE_DEVICE_PATH;
|
||||
|
||||
///
|
||||
/// DNS Device Path SubType
|
||||
///
|
||||
|
@ -1289,6 +1309,7 @@ typedef union {
|
|||
SAS_DEVICE_PATH Sas;
|
||||
SASEX_DEVICE_PATH SasEx;
|
||||
NVME_NAMESPACE_DEVICE_PATH NvmeNamespace;
|
||||
NVME_OF_NAMESPACE_DEVICE_PATH NvmeOfNamespace;
|
||||
DNS_DEVICE_PATH Dns;
|
||||
URI_DEVICE_PATH Uri;
|
||||
BLUETOOTH_DEVICE_PATH Bluetooth;
|
||||
|
@ -1345,6 +1366,7 @@ typedef union {
|
|||
SAS_DEVICE_PATH *Sas;
|
||||
SASEX_DEVICE_PATH *SasEx;
|
||||
NVME_NAMESPACE_DEVICE_PATH *NvmeNamespace;
|
||||
NVME_OF_NAMESPACE_DEVICE_PATH *NvmeOfNamespace;
|
||||
DNS_DEVICE_PATH *Dns;
|
||||
URI_DEVICE_PATH *Uri;
|
||||
BLUETOOTH_DEVICE_PATH *Bluetooth;
|
||||
|
|
|
@ -100,7 +100,8 @@ typedef enum {
|
|||
HTTP_STATUS_503_SERVICE_UNAVAILABLE,
|
||||
HTTP_STATUS_504_GATEWAY_TIME_OUT,
|
||||
HTTP_STATUS_505_HTTP_VERSION_NOT_SUPPORTED,
|
||||
HTTP_STATUS_308_PERMANENT_REDIRECT
|
||||
HTTP_STATUS_308_PERMANENT_REDIRECT,
|
||||
HTTP_STATUS_429_TOO_MANY_REQUESTS
|
||||
} EFI_HTTP_STATUS_CODE;
|
||||
|
||||
///
|
||||
|
|
|
@ -102,6 +102,7 @@ EFI_STATUS
|
|||
@retval EFI_NOT_READY There was no keystroke data available.
|
||||
@retval EFI_DEVICE_ERROR The keystroke information was not returned due to
|
||||
hardware errors.
|
||||
@retval EFI_UNSUPPORTED The device does not support the ability to read keystroke data.
|
||||
|
||||
**/
|
||||
typedef
|
||||
|
|
|
@ -188,6 +188,7 @@ typedef struct {
|
|||
@retval EFI_NOT_READY There was no keystroke data available.
|
||||
@retval EFI_DEVICE_ERROR The keystroke information was not returned due to
|
||||
hardware errors.
|
||||
@retval EFI_UNSUPPORTED The device does not support the ability to read keystroke data.
|
||||
|
||||
|
||||
**/
|
||||
|
|
|
@ -1698,7 +1698,17 @@ typedef enum {
|
|||
EfiKeyF12,
|
||||
EfiKeyPrint,
|
||||
EfiKeySLck,
|
||||
EfiKeyPause
|
||||
EfiKeyPause,
|
||||
EfiKeyIntl0,
|
||||
EfiKeyIntl1,
|
||||
EfiKeyIntl2,
|
||||
EfiKeyIntl3,
|
||||
EfiKeyIntl4,
|
||||
EfiKeyIntl5,
|
||||
EfiKeyIntl6,
|
||||
EfiKeyIntl7,
|
||||
EfiKeyIntl8,
|
||||
EfiKeyIntl9
|
||||
} EFI_KEY;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -110,7 +110,22 @@ typedef enum {
|
|||
/// by a corresponding call to the underlying isolation architecture.
|
||||
///
|
||||
EfiUnacceptedMemoryType,
|
||||
EfiMaxMemoryType
|
||||
EfiMaxMemoryType,
|
||||
//
|
||||
// +---------------------------------------------------+
|
||||
// | 0..(EfiMaxMemoryType - 1) - Normal memory type |
|
||||
// +---------------------------------------------------+
|
||||
// | EfiMaxMemoryType..0x6FFFFFFF - Invalid |
|
||||
// +---------------------------------------------------+
|
||||
// | 0x70000000..0x7FFFFFFF - OEM reserved |
|
||||
// +---------------------------------------------------+
|
||||
// | 0x80000000..0xFFFFFFFF - OS reserved |
|
||||
// +---------------------------------------------------+
|
||||
//
|
||||
MEMORY_TYPE_OEM_RESERVED_MIN = 0x70000000,
|
||||
MEMORY_TYPE_OEM_RESERVED_MAX = 0x7FFFFFFF,
|
||||
MEMORY_TYPE_OS_RESERVED_MIN = 0x80000000,
|
||||
MEMORY_TYPE_OS_RESERVED_MAX = 0xFFFFFFFF
|
||||
} EFI_MEMORY_TYPE;
|
||||
|
||||
///
|
||||
|
|
|
@ -2044,7 +2044,8 @@ typedef struct {
|
|||
UINT32 FirmwareRevision;
|
||||
///
|
||||
/// The handle for the active console input device. This handle must support
|
||||
/// EFI_SIMPLE_TEXT_INPUT_PROTOCOL and EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.
|
||||
/// EFI_SIMPLE_TEXT_INPUT_PROTOCOL and EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL. If
|
||||
/// there is no active console, these protocols must still be present.
|
||||
///
|
||||
EFI_HANDLE ConsoleInHandle;
|
||||
///
|
||||
|
@ -2053,7 +2054,9 @@ typedef struct {
|
|||
///
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
|
||||
///
|
||||
/// The handle for the active console output device.
|
||||
/// The handle for the active console output device. This handle must support the
|
||||
/// EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL. If there is no active console, these protocols
|
||||
/// must still be present.
|
||||
///
|
||||
EFI_HANDLE ConsoleOutHandle;
|
||||
///
|
||||
|
@ -2063,7 +2066,8 @@ typedef struct {
|
|||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
|
||||
///
|
||||
/// The handle for the active standard error console device.
|
||||
/// This handle must support the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.
|
||||
/// This handle must support the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL. If there
|
||||
/// is no active console, this protocol must still be present.
|
||||
///
|
||||
EFI_HANDLE StandardErrorHandle;
|
||||
///
|
||||
|
|
Loading…
Reference in New Issue