Changeset 105670 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include
- Timestamp:
- Aug 14, 2024 1:16:30 PM (6 months ago)
- svn:sync-xref-src-repo-rev:
- 164367
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 10 added
- 59 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-159268 /vendor/edk2/current 103735-103757,103769-103776,129194-164365
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Guid/FileInfo.h
r99404 r105670 48 48 /// 49 49 /// The Null-terminated name of the file. 50 /// For a root directory, the name is an empty string. 50 51 /// 51 52 CHAR16 FileName[1]; -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Guid/GlobalVariable.h
r99404 r105670 2 2 GUID for EFI (NVRAM) Variables. 3 3 4 Copyright (c) 2006 - 20 18, Intel Corporation. All rights reserved.<BR>4 Copyright (c) 2006 - 2024, Intel Corporation. All rights reserved.<BR> 5 5 SPDX-License-Identifier: BSD-2-Clause-Patent 6 6 … … 184 184 #define EFI_VENDOR_KEYS_VARIABLE_NAME L"VendorKeys" 185 185 186 /// 187 /// Whether the platform firmware is operating in device authentication boot mode (1) or not (0). 188 /// The content is UINT8. 189 /// 190 #define EFI_DEVICE_AUTH_BOOT_MODE_NAME L"devAuthBoot" 191 186 192 #endif -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Guid/ImageAuthentication.h
r99404 r105670 2 2 Image signature database are defined for the signed image validation. 3 3 4 Copyright (c) 2009 - 20 18, Intel Corporation. All rights reserved.<BR>4 Copyright (c) 2009 - 2024, Intel Corporation. All rights reserved.<BR> 5 5 SPDX-License-Identifier: BSD-2-Clause-Patent 6 6 … … 41 41 #define SETUP_MODE 1 42 42 #define USER_MODE 0 43 44 #define DEVICE_AUTH_BOOT_MODE_ENABLE 1 45 #define DEVICE_AUTH_BOOT_MODE_DISABLE 0 43 46 44 47 // *********************************************************************** -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi30.h
r99404 r105670 17 17 18 18 #define ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR 0x8B 19 20 /// 21 /// C-state Coordination Types 22 /// See s8.4.2.2 _CSD (C-State Dependency) 23 /// 24 #define ACPI_AML_COORD_TYPE_SW_ALL 0xFC 25 #define ACPI_AML_COORD_TYPE_SW_ANY 0xFD 26 #define ACPI_AML_COORD_TYPE_HW_ALL 0xFE 27 28 /// 29 /// _PSD Revision for ACPI 3.0 30 // See s8.4.4.5 _PSD (P-State Dependency) 31 /// 32 #define EFI_ACPI_3_0_AML_PSD_REVISION 0 19 33 20 34 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi40.h
r99404 r105670 10 10 11 11 #include <IndustryStandard/Acpi30.h> 12 13 /// 14 /// _PSD Revision for ACPI 4.0 15 /// 16 #define EFI_ACPI_4_0_AML_PSD_REVISION 0 12 17 13 18 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi50.h
r99404 r105670 23 23 #define ACPI_GPIO_CONNECTION_DESCRIPTOR 0x8C 24 24 #define ACPI_GENERIC_SERIAL_BUS_CONNECTION_DESCRIPTOR 0x8E 25 26 /// 27 /// _PSD Revision for ACPI 5.0 28 /// 29 #define EFI_ACPI_5_0_AML_PSD_REVISION 0 30 31 /// 32 /// _CPC Revision for ACPI 5.0 33 /// 34 #define EFI_ACPI_5_0_AML_CPC_REVISION 1 25 35 26 36 #pragma pack(1) -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi51.h
r99404 r105670 13 13 14 14 #include <IndustryStandard/Acpi50.h> 15 16 /// 17 /// _PSD Revision for ACPI 5.1 18 /// 19 #define EFI_ACPI_5_1_AML_PSD_REVISION 0 20 21 /// 22 /// _CPC Revision for ACPI 5.1 23 /// 24 #define EFI_ACPI_5_1_AML_CPC_REVISION 2 15 25 16 26 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi60.h
r99404 r105670 12 12 13 13 #include <IndustryStandard/Acpi51.h> 14 15 /// 16 /// _PSD Revision for ACPI 6.0 17 /// 18 #define EFI_ACPI_6_0_AML_PSD_REVISION 0 19 20 /// 21 /// _CPC Revision for ACPI 6.0 22 /// 23 #define EFI_ACPI_6_0_AML_CPC_REVISION 2 14 24 15 25 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi61.h
r99404 r105670 12 12 13 13 #include <IndustryStandard/Acpi60.h> 14 15 /// 16 /// _PSD Revision for ACPI 6.1 17 /// 18 #define EFI_ACPI_6_1_AML_PSD_REVISION 0 19 20 /// 21 /// _CPC Revision for ACPI 6.1 22 /// 23 #define EFI_ACPI_6_1_AML_CPC_REVISION 2 14 24 15 25 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi62.h
r99404 r105670 29 29 #define ACPI_PIN_GROUP_FUNCTION_DESCRIPTOR 0x91 30 30 #define ACPI_PIN_GROUP_CONFIGURATION_DESCRIPTOR 0x92 31 32 /// 33 /// _PSD Revision for ACPI 6.2 34 /// 35 #define EFI_ACPI_6_2_AML_PSD_REVISION 0 36 37 /// 38 /// _CPC Revision for ACPI 6.2 39 /// 40 #define EFI_ACPI_6_2_AML_CPC_REVISION 3 31 41 32 42 #pragma pack(1) -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi63.h
r99404 r105670 12 12 13 13 #include <IndustryStandard/Acpi62.h> 14 15 /// 16 /// _PSD Revision for ACPI 6.3 17 /// 18 #define EFI_ACPI_6_3_AML_PSD_REVISION 0 19 20 /// 21 /// _CPC Revision for ACPI 6.3 22 /// 23 #define EFI_ACPI_6_3_AML_CPC_REVISION 3 14 24 15 25 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi64.h
r99404 r105670 12 12 13 13 #include <IndustryStandard/Acpi63.h> 14 15 /// 16 /// _PSD Revision for ACPI 6.4 17 /// 18 #define EFI_ACPI_6_4_AML_PSD_REVISION 0 19 20 /// 21 /// _CPC Revision for ACPI 6.4 22 /// 23 #define EFI_ACPI_6_4_AML_CPC_REVISION 3 14 24 15 25 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Acpi65.h
r101291 r105670 3 3 4 4 Copyright (c) 2017 - 2022, Intel Corporation. All rights reserved.<BR> 5 Copyright (c) 2019 - 202 1, ARM Ltd. All rights reserved.<BR>5 Copyright (c) 2019 - 2023, ARM Ltd. All rights reserved.<BR> 6 6 Copyright (c) 2023, Loongson Technology Corporation Limited. All rights reserved.<BR> 7 7 … … 18 18 // 19 19 #pragma pack(1) 20 21 /// 22 /// _PSD Revision for ACPI 6.5 23 /// 24 #define EFI_ACPI_6_5_AML_PSD_REVISION 0 25 26 /// 27 /// _CPC Revision for ACPI 6.5 28 /// 29 #define EFI_ACPI_6_5_AML_CPC_REVISION 3 20 30 21 31 /// … … 44 54 #define EFI_ACPI_6_5_GENERIC_SERIAL_BUS 0x09 45 55 #define EFI_ACPI_6_5_PLATFORM_COMMUNICATION_CHANNEL 0x0A 56 #define EFI_ACPI_6_5_PLATFORM_RUNTIME_MECHANISM 0x0B 46 57 #define EFI_ACPI_6_5_FUNCTIONAL_FIXED_HARDWARE 0x7F 47 58 … … 526 537 UINT8 Reserved2; 527 538 UINT16 SpeOverflowInterrupt; 539 UINT16 TrbeInterrupt; 528 540 } EFI_ACPI_6_5_GIC_STRUCTURE; 529 541 … … 534 546 #define EFI_ACPI_6_5_PERFORMANCE_INTERRUPT_MODEL BIT1 535 547 #define EFI_ACPI_6_5_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS BIT2 548 #define EFI_ACPI_6_5_GIC_ONLINE_CAPABLE BIT3 536 549 537 550 /// -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Cxl.h
r99404 r105670 13 13 #define _CXL_MAIN_H_ 14 14 15 #include <IndustryStandard/Cxl 11.h>15 #include <IndustryStandard/Cxl30.h> 16 16 // 17 17 // CXL assigned new Vendor ID -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/IpmiNetFnApp.h
r101291 r105670 1094 1094 1095 1095 // 1096 // Response of interface capability of SSIF/KCS/SMIC. 1097 // 1098 typedef union { 1099 IPMI_GET_SYSTEM_INTERFACE_SSIF_CAPABILITIES_RESPONSE *InterfaceSsifCapability; 1100 IPMI_GET_SYSTEM_INTERFACE_KCS_SMIC_CAPABILITIES_RESPONSE *InterfaceKcsSmicCapability; 1101 } IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_RESPONSE; 1102 1103 // 1096 1104 // Definitions for Get System Interface Capabilities command SSIF transaction support 1097 1105 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Mctp.h
r101291 r105670 112 112 UINT32 Reserved : 4; ///< Reserved for future definitions. 113 113 UINT32 DestinationEndpointId : 8; ///< Destination endpoint Id (EID). 114 UINT32 SourceEndpointId Id: 8; ///< Source endpoint Id (EID)114 UINT32 SourceEndpointId : 8; ///< Source endpoint Id (EID) 115 115 UINT32 MessageTag : 3; ///< Check the MCTP Base specification for the 116 116 ///< usages. -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Nvme.h
r99404 r105670 1 1 /** @file 2 Definitions based on NVMe spec. version 1.1.2 Definitions based on NVMe spec. version 2.0c. 3 3 4 4 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> … … 10 10 NVMe Specification 1.4 11 11 NVMe Specification 2.0 12 NVMe Specification 2.0c 12 13 13 14 **/ … … 355 356 } NVME_PSDESCRIPTOR; 356 357 358 typedef struct { 359 UINT32 Ces : 1; /* Crypto Erase Supported */ 360 UINT32 Bes : 1; /* Block Erase Supported */ 361 UINT32 Ows : 1; /* Overwrite Supported */ 362 UINT32 Rsvd1 : 26; /* Reserved as of NVM Express 2.0c Spec */ 363 UINT32 Ndi : 1; /* No-Deallocate Inhibited */ 364 UINT32 Nodmmas : 2; /* No-Deallocate Modifies Media After Sanitize */ 365 } NVME_SANICAP; 366 357 367 // 358 368 // Identify Controller Data … … 404 414 UINT8 Dsto; /* Device Self-test Options */ 405 415 UINT8 Fwug; /* Firmware Update Granularity */ 406 UINT8 Rsvd2[192]; /* Reserved as of Nvm Express 1.4 Spec */ 416 UINT16 Kas; /* Keep Alive Support */ 417 UINT16 Hctma; /* Host Controlled Thermal Management Attributes */ 418 UINT16 Mntmt; /* Minimum Thermal Management Temperature */ 419 UINT16 Mxtmt; /* Maximum Thermal Management Temperature */ 420 NVME_SANICAP Sanicap; /* Sanitize Capabilities */ 421 UINT8 Rsvd2[180]; /* Reserved as of Nvm Express 1.4 Spec */ 407 422 // 408 423 // NVM Command Set Attributes … … 688 703 // 689 704 UINT32 Lid : 8; /* Log Page Identifier */ 690 #define LID_ERROR_INFO 0x1 691 #define LID_SMART_INFO 0x2 692 #define LID_FW_SLOT_INFO 0x3 693 #define LID_BP_INFO 0x15 705 #define LID_ERROR_INFO 0x1 706 #define LID_SMART_INFO 0x2 707 #define LID_FW_SLOT_INFO 0x3 708 #define LID_BP_INFO 0x15 709 #define LID_SANITIZE_STATUS_INFO 0x81 694 710 UINT32 Rsvd1 : 8; 695 711 UINT32 Numd : 12; /* Number of Dwords */ … … 708 724 UINT32 Sv : 1; /* Save */ 709 725 } NVME_ADMIN_SET_FEATURES; 726 727 // 728 // NvmExpress Admin Sanitize Command 729 // 730 typedef struct { 731 // 732 // CDW 10 733 // 734 UINT32 Sanact : 3; /* Sanitize Action */ 735 UINT32 Ause : 1; /* Allow Unrestricted Sanitize Exit */ 736 UINT32 Owpass : 4; /* Overwrite Pass Count */ 737 UINT32 Oipbp : 1; /* Overwrite Invert Pattern Between Passes */ 738 UINT32 Nodas : 1; /* No-Deallocate After Sanitize */ 739 UINT32 Rsvd1 : 22; 740 // 741 // CDW 11 742 // 743 UINT32 Ovrpat; /* Overwrite Pattern */ 744 } NVME_ADMIN_SANITIZE; 745 746 #define SANITIZE_ACTION_NO_ACTION 0x0 747 #define SANITIZE_ACTION_EXIT_FAILURE_MODE 0x1 748 #define SANITIZE_ACTION_BLOCK_ERASE 0x2 749 #define SANITIZE_ACTION_OVERWRITE 0x3 750 #define SANITIZE_ACTION_CRYPTO_ERASE 0x4 710 751 711 752 // … … 771 812 NVME_ADMIN_SECURITY_RECEIVE SecurityReceive; 772 813 NVME_ADMIN_SECURITY_SEND SecuritySend; 814 NVME_ADMIN_SANITIZE Sanitize; 773 815 } NVME_ADMIN_CMD; 774 816 … … 873 915 #define NVME_ADMIN_SECURITY_SEND_CMD 0x81 874 916 #define NVME_ADMIN_SECURITY_RECEIVE_CMD 0x82 917 #define NVME_ADMIN_SANITIZE_CMD 0x84 875 918 876 919 #define NVME_IO_FLUSH_OPC 0 … … 895 938 FormatNvmOpcode = NVME_ADMIN_FORMAT_NVM_CMD, 896 939 SecuritySendOpcode = NVME_ADMIN_SECURITY_SEND_CMD, 897 SecurityReceiveOpcode = NVME_ADMIN_SECURITY_RECEIVE_CMD 940 SecurityReceiveOpcode = NVME_ADMIN_SECURITY_RECEIVE_CMD, 941 SanitizeOpcode = NVME_ADMIN_SANITIZE_CMD 898 942 } NVME_ADMIN_COMMAND_OPCODE; 899 943 … … 935 979 // 936 980 // Get Log Page ? Log Page Identifiers 937 // (ref. spec. v 1.1 Figure 73).981 // (ref. spec. v2.0c Figure 202). 938 982 // 939 983 typedef enum { 940 ErrorInfoLogID = LID_ERROR_INFO, 941 SmartHealthInfoLogID = LID_SMART_INFO, 942 FirmwareSlotInfoLogID = LID_FW_SLOT_INFO 984 ErrorInfoLogID = LID_ERROR_INFO, 985 SmartHealthInfoLogID = LID_SMART_INFO, 986 FirmwareSlotInfoLogID = LID_FW_SLOT_INFO, 987 BootPartitionInfoLogID = LID_BP_INFO, 988 SanitizeStatusInfoLogID = LID_SANITIZE_STATUS_INFO 943 989 } NVME_LOG_ID; 944 990 … … 1063 1109 } NVME_SMART_HEALTH_INFO_LOG; 1064 1110 1111 // 1112 // Sanitize Status (Log Identifier 81h) 1113 // (ref. spec. v2.0c 5.16.1.25). 1114 // 1115 typedef struct { 1116 // 1117 // Indicates the fraction complete of the sanitize operation. (SPROG) 1118 // 1119 UINT16 SanitizeProgress; 1120 // 1121 // Indicates the status associated with the most recent sanitize operation. (SSTAT) 1122 // 1123 UINT16 SanitizeStatus : 3; 1124 UINT16 OverwriteSanitizeCompletedNumber : 5; 1125 UINT16 GlobalDataErased : 1; 1126 UINT16 SanitizeStatusRsvd : 7; 1127 // 1128 // Contains the value of the Command Dword 10 field of the Sanitize command that started the sanitize operation whose status is reported in the SSTAT field. (SCDW10) 1129 // 1130 UINT32 SanitizeCmdDw10Info; 1131 // 1132 // Indicates the number of seconds required to complete an Overwrite sanitize operation with 16 passes in the background when the No-Deallocate Modifies Media After Sanitize field is not set to 10b. 1133 // 1134 UINT32 OverwriteEstimatedTime; 1135 // 1136 // Indicates the number of seconds required to complete a Block Erase sanitize operation in the background when the No-Deallocate Modifies Media After Sanitize field is not set to 10b. 1137 // 1138 UINT32 BlockEraseEstimatedTime; 1139 // 1140 // Indicates the number of seconds required to complete a Crypto Erase sanitize operation in the background when the No-Deallocate Modifies Media After Sanitize field is not set to 10b. 1141 // 1142 UINT32 CryptoEraseEstimatedTime; 1143 // 1144 // Indicates the number of seconds required to complete an Overwrite sanitize operation and the associated additional media modification after the Overwrite sanitize operation in the background. 1145 // The No-Deallocate After Sanitize bit was set to ?1? in the Sanitize command that requested the Overwrite sanitize operation. 1146 // The No-Deallocate Modifies Media After Sanitize field is set to 10b. 1147 // 1148 UINT32 OverwriteEstimatedTimeWithNodmm; 1149 // 1150 // Indicates the number of seconds required to complete a Block Erase sanitize operation and the associated additional media modification after the Block Erase sanitize operation in the background. 1151 // The No-Deallocate After Sanitize bit was set to ?1? in the Sanitize command that requested the Block Erase sanitize operation. 1152 // The No-Deallocate Modifies Media After Sanitize field is set to 10b. 1153 // 1154 UINT32 BlockEraseEstimatedTimeWithNodmm; 1155 // 1156 // Indicates the number of seconds required to complete a Crypto Erase sanitize operation and the associated additional media modification after the Crypto Erase sanitize operation in the background. 1157 // The No-Deallocate After Sanitize bit was set to ?1? in the Sanitize command that requested the Crypto Erase sanitize operation. 1158 // The No-Deallocate Modifies Media After Sanitize field is set to 10b. 1159 // 1160 UINT32 CryptoEraseEstimatedTimeWithNodmm; 1161 UINT8 Reserved[480]; 1162 } NVME_SANITIZE_STATUS_INFO_LOG; 1163 1065 1164 #pragma pack() 1066 1165 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/PeImage.h
r101296 r105670 5 5 6 6 This file is coded to the Visual Studio, Microsoft Portable Executable and 7 Common Object File Format Specification, Revision 8.3 - February 6, 2013.7 Common Object File Format Specification, Revision 9.3 - December 29, 2015. 8 8 This file also includes some definitions in PI Specification, Revision 1.0. 9 9 … … 270 270 #define EFI_IMAGE_SUBSYSTEM_POSIX_CUI 7 271 271 272 // 273 // DLL Characteristics 274 // 275 #define IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA 0x0020 276 #define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040 277 #define IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080 278 #define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 279 #define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200 280 #define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 281 #define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 282 #define IMAGE_DLLCHARACTERISTICS_APPCONTAINER 0x1000 283 #define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 284 #define IMAGE_DLLCHARACTERISTICS_GUARD_CF 0x4000 285 #define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 286 272 287 /// 273 288 /// Length of ShortName. -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Pldm.h
r101291 r105670 41 41 42 42 #define PLDM_MESSAGE_HEADER_IS_REQUEST 1 43 #define PLDM_MESSAGE_HEADER_IS_RESPONSE 0 43 44 #define PLDM_MESSAGE_HEADER_IS_DATAGRAM 1 44 45 #define PLDM_MESSAGE_HEADER_INSTANCE_ID_MASK 0x1f -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h
r99404 r105670 24 24 #define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x02 25 25 26 #define EFI_ACPI_4_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x04 26 27 /// 27 28 /// Serial Port Console Redirection Table Format … … 51 52 } EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE; 52 53 54 /// 55 /// Serial Port Console Redirection Table Format Revision 4 56 /// 57 typedef struct { 58 EFI_ACPI_DESCRIPTION_HEADER Header; 59 UINT8 InterfaceType; 60 UINT8 Reserved1[3]; 61 EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE BaseAddress; 62 UINT8 InterruptType; 63 UINT8 Irq; 64 UINT32 GlobalSystemInterrupt; 65 UINT8 BaudRate; 66 UINT8 Parity; 67 UINT8 StopBits; 68 UINT8 FlowControl; 69 UINT8 TerminalType; 70 UINT8 Reserved2; 71 UINT16 PciDeviceId; 72 UINT16 PciVendorId; 73 UINT8 PciBusNumber; 74 UINT8 PciDeviceNumber; 75 UINT8 PciFunctionNumber; 76 UINT32 PciFlags; 77 UINT8 PciSegment; 78 UINT32 UartClockFrequency; 79 UINT32 PreciseBaudRate; 80 UINT16 NameSpaceStrLength; 81 UINT16 NameSpaceStrOffset; 82 CHAR8 NameSpaceString[0]; 83 } EFI_ACPI_4_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE; 84 53 85 #pragma pack() 54 86 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/SmBios.h
r101291 r105670 1 1 /** @file 2 Industry Standard Definitions of SMBIOS Table Specification v3. 6.0.3 4 Copyright (c) 2006 - 202 1, Intel Corporation. All rights reserved.<BR>2 Industry Standard Definitions of SMBIOS Table Specification v3.8.0. 3 4 Copyright (c) 2006 - 2024, Intel Corporation. All rights reserved.<BR> 5 5 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR> 6 6 (C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development LP<BR> … … 555 555 ProcessorFamilyIntelCeleronM = 0x14, 556 556 ProcessorFamilyIntelPentium4Ht = 0x15, 557 ProcessorFamilyIntel = 0x16, 557 558 ProcessorFamilyAmdDuron = 0x18, 558 559 ProcessorFamilyK5 = 0x19, … … 774 775 ProcessorFamilyMultiCoreLoongson3B = 0x026F, 775 776 ProcessorFamilyMultiCoreLoongson3C = 0x0270, 776 ProcessorFamilyMultiCoreLoongson3D = 0x0271 777 ProcessorFamilyMultiCoreLoongson3D = 0x0271, 778 ProcessorFamilyIntelCore3 = 0x0300, 779 ProcessorFamilyIntelCore5 = 0x0301, 780 ProcessorFamilyIntelCore7 = 0x0302, 781 ProcessorFamilyIntelCore9 = 0x0303, 782 ProcessorFamilyIntelCoreUltra3 = 0x0304, 783 ProcessorFamilyIntelCoreUltra5 = 0x0305, 784 ProcessorFamilyIntelCoreUltra7 = 0x0306, 785 ProcessorFamilyIntelCoreUltra9 = 0x0307 777 786 } PROCESSOR_FAMILY2_DATA; 778 787 … … 864 873 ProcessorUpgradeSocketLGA2422 = 0x46, 865 874 ProcessorUpgradeSocketLGA5773 = 0x47, 866 ProcessorUpgradeSocketBGA5773 = 0x48 875 ProcessorUpgradeSocketBGA5773 = 0x48, 876 ProcessorUpgradeSocketAM5 = 0x49, 877 ProcessorUpgradeSocketSP5 = 0x4A, 878 ProcessorUpgradeSocketSP6 = 0x4B, 879 ProcessorUpgradeSocketBGA883 = 0x4C, 880 ProcessorUpgradeSocketBGA1190 = 0x4D, 881 ProcessorUpgradeSocketBGA4129 = 0x4E, 882 ProcessorUpgradeSocketLGA4710 = 0x4F, 883 ProcessorUpgradeSocketLGA7529 = 0x50, 884 ProcessorUpgradeSocketBGA1964 = 0x51, 885 ProcessorUpgradeSocketBGA1792 = 0x52, 886 ProcessorUpgradeSocketBGA2049 = 0x53, 887 ProcessorUpgradeSocketBGA2551 = 0x54, 888 ProcessorUpgradeSocketLGA1851 = 0x55, 889 ProcessorUpgradeSocketBGA2114 = 0x56, 890 ProcessorUpgradeSocketBGA2833 = 0x57 867 891 } PROCESSOR_UPGRADE; 868 892 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Spdm.h
r99404 r105670 1 1 /** @file 2 Definitions of Security Protocol & Data Model Specification (SPDM)3 version 1. 0.0 in Distributed Management Task Force (DMTF).4 5 Copyright (c) 2019 , Intel Corporation. All rights reserved.<BR>2 Definitions of DSP0274 Security Protocol & Data Model Specification (SPDM) 3 version 1.2.0 in Distributed Management Task Force (DMTF). 4 5 Copyright (c) 2019 - 2024, Intel Corporation. All rights reserved.<BR> 6 6 SPDX-License-Identifier: BSD-2-Clause-Patent 7 7 … … 13 13 #pragma pack(1) 14 14 15 /// 16 /// SPDM response code 17 /// 18 #define SPDM_DIGESTS 0x01 19 #define SPDM_CERTIFICATE 0x02 20 #define SPDM_CHALLENGE_AUTH 0x03 21 #define SPDM_VERSION 0x04 22 #define SPDM_MEASUREMENTS 0x60 23 #define SPDM_CAPABILITIES 0x61 24 #define SPDM_SET_CERT_RESPONSE 0x62 25 #define SPDM_ALGORITHMS 0x63 26 #define SPDM_ERROR 0x7F 27 /// 28 /// SPDM request code 29 /// 30 #define SPDM_GET_DIGESTS 0x81 31 #define SPDM_GET_CERTIFICATE 0x82 32 #define SPDM_CHALLENGE 0x83 33 #define SPDM_GET_VERSION 0x84 34 #define SPDM_GET_MEASUREMENTS 0xE0 35 #define SPDM_GET_CAPABILITIES 0xE1 36 #define SPDM_NEGOTIATE_ALGORITHMS 0xE3 37 #define SPDM_RESPOND_IF_READY 0xFF 15 #define SPDM_MAX_SLOT_COUNT 8 16 #define SPDM_MAX_OPAQUE_DATA_SIZE 1024 17 #define SPDM_NONCE_SIZE 32 18 #define SPDM_RANDOM_DATA_SIZE 32 19 /// 20 /// SPDM response code (1.0) 21 /// 22 #define SPDM_DIGESTS 0x01 23 #define SPDM_CERTIFICATE 0x02 24 #define SPDM_CHALLENGE_AUTH 0x03 25 #define SPDM_VERSION 0x04 26 #define SPDM_MEASUREMENTS 0x60 27 #define SPDM_CAPABILITIES 0x61 28 #define SPDM_ALGORITHMS 0x63 29 #define SPDM_VENDOR_DEFINED_RESPONSE 0x7E 30 #define SPDM_ERROR 0x7F 31 /// 32 /// SPDM response code (1.1) 33 /// 34 #define SPDM_KEY_EXCHANGE_RSP 0x64 35 #define SPDM_FINISH_RSP 0x65 36 #define SPDM_PSK_EXCHANGE_RSP 0x66 37 #define SPDM_PSK_FINISH_RSP 0x67 38 #define SPDM_HEARTBEAT_ACK 0x68 39 #define SPDM_KEY_UPDATE_ACK 0x69 40 #define SPDM_ENCAPSULATED_REQUEST 0x6A 41 #define SPDM_ENCAPSULATED_RESPONSE_ACK 0x6B 42 #define SPDM_END_SESSION_ACK 0x6C 43 /// 44 /// SPDM response code (1.2) 45 /// 46 #define SPDM_CSR 0x6D 47 #define SPDM_SET_CERTIFICATE_RSP 0x6E 48 #define SPDM_CHUNK_SEND_ACK 0x05 49 #define SPDM_CHUNK_RESPONSE 0x06 50 /// 51 /// SPDM request code (1.0) 52 /// 53 #define SPDM_GET_DIGESTS 0x81 54 #define SPDM_GET_CERTIFICATE 0x82 55 #define SPDM_CHALLENGE 0x83 56 #define SPDM_GET_VERSION 0x84 57 #define SPDM_GET_MEASUREMENTS 0xE0 58 #define SPDM_GET_CAPABILITIES 0xE1 59 #define SPDM_NEGOTIATE_ALGORITHMS 0xE3 60 #define SPDM_VENDOR_DEFINED_REQUEST 0xFE 61 #define SPDM_RESPOND_IF_READY 0xFF 62 /// 63 /// SPDM request code (1.1) 64 /// 65 #define SPDM_KEY_EXCHANGE 0xE4 66 #define SPDM_FINISH 0xE5 67 #define SPDM_PSK_EXCHANGE 0xE6 68 #define SPDM_PSK_FINISH 0xE7 69 #define SPDM_HEARTBEAT 0xE8 70 #define SPDM_KEY_UPDATE 0xE9 71 #define SPDM_GET_ENCAPSULATED_REQUEST 0xEA 72 #define SPDM_DELIVER_ENCAPSULATED_RESPONSE 0xEB 73 #define SPDM_END_SESSION 0xEC 74 /// 75 /// SPDM request code (1.2) 76 /// 77 #define SPDM_GET_CSR 0xED 78 #define SPDM_SET_CERTIFICATE 0xEE 79 #define SPDM_CHUNK_SEND 0x85 80 #define SPDM_CHUNK_GET 0x86 38 81 39 82 /// … … 47 90 } SPDM_MESSAGE_HEADER; 48 91 49 #define SPDM_MESSAGE_VERSION 0x10 92 #define SPDM_MESSAGE_VERSION_10 0x10 93 #define SPDM_MESSAGE_VERSION_11 0x11 94 #define SPDM_MESSAGE_VERSION_12 0x12 95 #define SPDM_MESSAGE_VERSION SPDM_MESSAGE_VERSION_10 50 96 51 97 /// … … 54 100 typedef struct { 55 101 SPDM_MESSAGE_HEADER Header; 102 // Param1 == RSVD 103 // Param2 == RSVD 56 104 } SPDM_GET_VERSION_REQUEST; 57 105 … … 61 109 typedef struct { 62 110 SPDM_MESSAGE_HEADER Header; 111 // Param1 == RSVD 112 // Param2 == RSVD 63 113 UINT8 Reserved; 64 114 UINT8 VersionNumberEntryCount; … … 69 119 /// SPDM VERSION structure 70 120 /// 71 typedef struct { 72 UINT16 Alpha : 4; 73 UINT16 UpdateVersionNumber : 4; 74 UINT16 MinorVersion : 4; 75 UINT16 MajorVersion : 4; 76 } SPDM_VERSION_NUMBER; 77 121 /// bit[15:12] major_version 122 /// bit[11:8] minor_version 123 /// bit[7:4] update_version_number 124 /// bit[3:0] alpha 125 typedef UINT16 SPDM_VERSION_NUMBER; 126 #define SPDM_VERSION_NUMBER_SHIFT_BIT 8 127 128 #define SPDM_VERSION_1_2_SIGNING_PREFIX_CONTEXT "dmtf-spdm-v1.2.*" 129 #define SPDM_VERSION_1_2_SIGNING_PREFIX_CONTEXT_SIZE \ 130 (sizeof(SPDM_VERSION_1_2_SIGNING_PREFIX_CONTEXT) - 1) 131 #define SPDM_VERSION_1_2_SIGNING_CONTEXT_SIZE 100 78 132 /// 79 133 /// SPDM GET_CAPABILITIES request … … 81 135 typedef struct { 82 136 SPDM_MESSAGE_HEADER Header; 83 } SPDM_GET_CAPABILITIES_REQUEST; 84 85 /// 86 /// SPDM GET_CAPABILITIES response 87 /// 88 typedef struct { 89 SPDM_MESSAGE_HEADER Header; 137 // Param1 == RSVD 138 // Param2 == RSVD 139 // Below field is added in 1.1. 90 140 UINT8 Reserved; 91 141 UINT8 CTExponent; 92 142 UINT16 Reserved2; 93 143 UINT32 Flags; 144 // Below field is added in 1.2. 145 UINT32 DataTransferSize; 146 UINT32 MaxSpdmMsgSize; 147 } SPDM_GET_CAPABILITIES_REQUEST; 148 149 /// 150 /// SPDM GET_CAPABILITIES response 151 /// 152 typedef struct { 153 SPDM_MESSAGE_HEADER Header; 154 // Param1 == RSVD 155 // Param2 == RSVD 156 UINT8 Reserved; 157 UINT8 CTExponent; 158 UINT16 Reserved2; 159 UINT32 Flags; 160 // Below field is added in 1.2. 161 UINT32 DataTransferSize; 162 UINT32 MaxSpdmMsgSize; 94 163 } SPDM_CAPABILITIES_RESPONSE; 95 164 96 /// 97 /// SPDM GET_CAPABILITIES response Flags 165 #define SPDM_MIN_DATA_TRANSFER_SIZE_VERSION_12 42 166 167 /// 168 /// SPDM GET_CAPABILITIES request Flags (1.1) 169 /// 170 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CERT_CAP BIT1 171 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHAL_CAP BIT2 172 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_ENCRYPT_CAP BIT6 173 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_MAC_CAP BIT7 174 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_MUT_AUTH_CAP BIT8 175 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_KEY_EX_CAP BIT9 176 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PSK_CAP (BIT10 | BIT11) 177 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PSK_CAP_REQUESTER BIT10 178 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_ENCAP_CAP BIT12 179 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_HBEAT_CAP BIT13 180 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_KEY_UPD_CAP BIT14 181 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_HANDSHAKE_IN_THE_CLEAR_CAP BIT15 182 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PUB_KEY_ID_CAP BIT16 183 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_11_MASK (\ 184 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CERT_CAP | \ 185 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHAL_CAP | \ 186 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_ENCRYPT_CAP | \ 187 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_MAC_CAP | \ 188 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_MUT_AUTH_CAP | \ 189 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_KEY_EX_CAP | \ 190 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PSK_CAP | \ 191 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_ENCAP_CAP | \ 192 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_HBEAT_CAP | \ 193 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_KEY_UPD_CAP | \ 194 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_HANDSHAKE_IN_THE_CLEAR_CAP | \ 195 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_PUB_KEY_ID_CAP) 196 197 /// 198 /// SPDM GET_CAPABILITIES request Flags (1.2) 199 /// 200 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHUNK_CAP BIT17 201 #define SPDM_GET_CAPABILITIES_REQUEST_FLAGS_12_MASK (\ 202 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_11_MASK | \ 203 SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHUNK_CAP) 204 /// 205 /// SPDM GET_CAPABILITIES response Flags (1.0) 98 206 /// 99 207 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CACHE_CAP BIT0 … … 104 212 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_CAP_SIG BIT4 105 213 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_FRESH_CAP BIT5 106 214 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_10_MASK (\ 215 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CACHE_CAP | \ 216 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CERT_CAP | \ 217 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CHAL_CAP | \ 218 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_CAP | \ 219 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MEAS_FRESH_CAP) 220 /// 221 /// SPDM GET_CAPABILITIES response Flags (1.1) 222 /// 223 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_ENCRYPT_CAP BIT6 224 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MAC_CAP BIT7 225 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MUT_AUTH_CAP BIT8 226 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_KEY_EX_CAP BIT9 227 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP (BIT10 | BIT11) 228 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP_RESPONDER BIT10 229 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP_RESPONDER_WITH_CONTEXT BIT11 230 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_ENCAP_CAP BIT12 231 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_HBEAT_CAP BIT13 232 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_KEY_UPD_CAP BIT14 233 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_HANDSHAKE_IN_THE_CLEAR_CAP BIT15 234 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PUB_KEY_ID_CAP BIT16 235 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_11_MASK (\ 236 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_10_MASK | \ 237 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_ENCRYPT_CAP | \ 238 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MAC_CAP | \ 239 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_MUT_AUTH_CAP | \ 240 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_KEY_EX_CAP | \ 241 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PSK_CAP | \ 242 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_ENCAP_CAP | \ 243 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_HBEAT_CAP | \ 244 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_KEY_UPD_CAP | \ 245 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_HANDSHAKE_IN_THE_CLEAR_CAP | \ 246 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_PUB_KEY_ID_CAP) 247 /// 248 /// SPDM GET_CAPABILITIES response Flags (1.2) 249 /// 250 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CHUNK_CAP BIT17 251 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_ALIAS_CERT_CAP BIT18 252 253 /// 254 /// SPDM GET_CAPABILITIES response Flags (1.2.1) 255 /// 256 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_SET_CERT_CAP BIT19 257 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CSR_CAP BIT20 258 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CERT_INSTALL_RESET_CAP BIT21 259 #define SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_12_MASK (\ 260 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_11_MASK | \ 261 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CHUNK_CAP | \ 262 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_ALIAS_CERT_CAP | \ 263 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_SET_CERT_CAP | \ 264 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CSR_CAP | \ 265 SPDM_GET_CAPABILITIES_RESPONSE_FLAGS_CERT_INSTALL_RESET_CAP) 107 266 /// 108 267 /// SPDM NEGOTIATE_ALGORITHMS request … … 110 269 typedef struct { 111 270 SPDM_MESSAGE_HEADER Header; 271 // Param1 == Number of Algorithms Structure Tables 272 // Param2 == RSVD 112 273 UINT16 Length; 113 274 UINT8 MeasurementSpecification; 114 UINT8 Reserved; 275 276 // OtherParamsSupport is added in 1.2. 277 // BIT[0:3]=opaque_data_format support 278 // BIT[4:7]=Reserved 279 UINT8 OtherParamsSupport; 115 280 UINT32 BaseAsymAlgo; 116 281 UINT32 BaseHashAlgo; … … 119 284 UINT8 ExtHashCount; 120 285 UINT16 Reserved3; 121 // UINT32 ExtAsym[ExtAsymCount]; 122 // UINT32 ExtHash[ExtHashCount]; 286 // SPDM_EXTENDED_ALGORITHM ExtAsym[ExtAsymCount]; 287 // SPDM_EXTENDED_ALGORITHM ExtHash[ExtHashCount]; 288 // Below field is added in 1.1. 289 // SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE AlgStruct[Param1]; 123 290 } SPDM_NEGOTIATE_ALGORITHMS_REQUEST; 124 291 125 /// 126 /// SPDM NEGOTIATE_ALGORITHMS request BaseAsymAlgo 292 #define SPDM_NEGOTIATE_ALGORITHMS_REQUEST_MAX_LENGTH_VERSION_10 BIT6 293 #define SPDM_NEGOTIATE_ALGORITHMS_REQUEST_MAX_LENGTH_VERSION_11 BIT7 294 #define SPDM_NEGOTIATE_ALGORITHMS_REQUEST_MAX_LENGTH_VERSION_12 BIT7 295 #define SPDM_NEGOTIATE_ALGORITHMS_REQUEST_MAX_EXT_ALG_COUNT_VERSION_10 BIT3 296 #define SPDM_NEGOTIATE_ALGORITHMS_REQUEST_MAX_EXT_ALG_COUNT_VERSION_11 (BIT4 | BIT2) 297 #define SPDM_NEGOTIATE_ALGORITHMS_REQUEST_MAX_EXT_ALG_COUNT_VERSION_12 (BIT4 | BIT2) 298 299 typedef struct { 300 UINT8 AlgType; 301 UINT8 AlgCount; // BIT[0:3]=ExtAlgCount, BIT[4:7]=FixedAlgByteCount 302 // UINT8 AlgSupported[FixedAlgByteCount]; 303 // UINT32 AlgExternal[ExtAlgCount]; 304 } SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE; 305 306 typedef struct { 307 UINT8 ExtAlgCount : 4; 308 UINT8 FixedAlgByteCount : 4; 309 } SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_COUNT; 310 311 #define SPDM_NEGOTIATE_ALGORITHMS_MAX_NUM_STRUCT_TABLE_ALG 4 312 313 #define SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_TYPE_DHE 2 314 #define SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_TYPE_AEAD 3 315 #define SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_TYPE_REQ_BASE_ASYM_ALG 4 316 #define SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE_ALG_TYPE_KEY_SCHEDULE 5 317 318 typedef struct { 319 UINT8 AlgType; 320 UINT8 AlgCount; 321 UINT16 AlgSupported; 322 } SPDM_NEGOTIATE_ALGORITHMS_COMMON_STRUCT_TABLE; 323 324 /// 325 /// SPDM NEGOTIATE_ALGORITHMS request BaseAsymAlgo/REQ_BASE_ASYM_ALG 127 326 /// 128 327 #define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSASSA_2048 BIT0 … … 137 336 138 337 /// 338 /// SPDM NEGOTIATE_ALGORITHMS request base_asym_algo/REQ_BASE_ASYM_ALG (1.2) 339 /// 340 #define SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_SM2_ECC_SM2_P256 BIT9 341 #define SPDM_ALGORITHMS_BASE_ASYM_ALGO_EDDSA_ED25519 BIT10 342 #define SPDM_ALGORITHMS_BASE_ASYM_ALGO_EDDSA_ED448 BIT11 343 344 /// 139 345 /// SPDM NEGOTIATE_ALGORITHMS request BaseHashAlgo 140 346 /// … … 147 353 148 354 /// 355 /// SPDM NEGOTIATE_ALGORITHMS request base_hash_algo (1.2) 356 /// 357 #define SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SM3_256 BIT6 358 359 /// 360 /// SPDM NEGOTIATE_ALGORITHMS request DHE 361 /// 362 #define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_2048 BIT0 363 #define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_3072 BIT1 364 #define SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_4096 BIT2 365 #define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_256_R1 BIT3 366 #define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_384_R1 BIT4 367 #define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_521_R1 BIT5 368 369 /// 370 /// SPDM NEGOTIATE_ALGORITHMS request DHE (1.2) 371 /// 372 #define SPDM_ALGORITHMS_DHE_NAMED_GROUP_SM2_P256 BIT6 373 374 /// 375 /// SPDM NEGOTIATE_ALGORITHMS request AEAD 376 /// 377 #define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_128_GCM BIT0 378 #define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_256_GCM BIT1 379 #define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_CHACHA20_POLY1305 BIT2 380 381 /// 382 /// SPDM NEGOTIATE_ALGORITHMS request AEAD (1.2) 383 /// 384 #define SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AEAD_SM4_GCM BIT3 385 /// 386 /// SPDM NEGOTIATE_ALGORITHMS request KEY_SCHEDULE 387 /// 388 #define SPDM_ALGORITHMS_KEY_SCHEDULE_HMAC_HASH BIT0 389 390 /// 149 391 /// SPDM NEGOTIATE_ALGORITHMS response 150 392 /// 151 393 typedef struct { 152 394 SPDM_MESSAGE_HEADER Header; 395 // Param1 == Number of Algorithms Structure Tables 396 // Param2 == RSVD 153 397 UINT16 Length; 154 398 UINT8 MeasurementSpecificationSel; 155 UINT8 Reserved; 399 400 // OtherParamsSelection is added in 1.2. 401 // BIT[0:3]=opaque_data_format select, 402 // BIT[4:7]=Reserved 403 UINT8 OtherParamsSelection; 156 404 UINT32 MeasurementHashAlgo; 157 405 UINT32 BaseAsymSel; … … 161 409 UINT8 ExtHashSelCount; 162 410 UINT16 Reserved3; 163 // UINT32 ExtAsymSel[ExtAsymSelCount]; 164 // UINT32 ExtHashSel[ExtHashSelCount]; 411 // SPDM_EXTENDED_ALGORITHM ExtAsymSel[ExtAsymSelCount]; 412 // SPDM_EXTENDED_ALGORITHM ExtHashSel[ExtHashSelCount]; 413 // Below field is added in 1.1. 414 // SPDM_NEGOTIATE_ALGORITHMS_STRUCT_TABLE AlgStruct[Param1]; 165 415 } SPDM_ALGORITHMS_RESPONSE; 166 416 … … 177 427 178 428 /// 429 /// SPDM NEGOTIATE_ALGORITHMS response measurement_hash_algo (1.2) 430 /// 431 #define SPDM_ALGORITHMS_MEASUREMENT_HASH_ALGO_TPM_ALG_SM3_256 BIT7 432 433 /// 434 /// SPDM Opaque Data Format (1.2) 435 /// 436 #define SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_NONE 0x0 437 #define SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_0 0x1 438 #define SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_1 0x2 439 #define SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_MASK 0xF 440 441 /// 442 /// SPDM Opaque Data Format 1 (1.2) 443 /// 444 typedef struct { 445 UINT8 TotalElements; 446 UINT8 Reserved[3]; 447 // opaque_element_table_t opaque_list[]; 448 } SPDM_GENERAL_OPAQUE_DATA_TABLE_HEADER; 449 450 /// 451 /// SPDM extended algorithm 452 /// 453 typedef struct { 454 UINT8 RegistryID; 455 UINT8 Reserved; 456 UINT16 AlgorithmID; 457 } SPDM_EXTENDED_ALGORITHM; 458 459 /// 460 /// SPDM RegistryID 461 /// 462 #define SPDM_REGISTRY_ID_DMTF 0 463 #define SPDM_REGISTRY_ID_TCG 1 464 #define SPDM_REGISTRY_ID_USB 2 465 #define SPDM_REGISTRY_ID_PCISIG 3 466 #define SPDM_REGISTRY_ID_IANA 4 467 #define SPDM_REGISTRY_ID_HDBASET 5 468 #define SPDM_REGISTRY_ID_MIPI 6 469 #define SPDM_REGISTRY_ID_CXL 7 470 #define SPDM_REGISTRY_ID_JEDEC 8 471 472 /// 179 473 /// SPDM GET_DIGESTS request 180 474 /// 181 475 typedef struct { 182 476 SPDM_MESSAGE_HEADER Header; 477 // Param1 == RSVD 478 // Param2 == RSVD 183 479 } SPDM_GET_DIGESTS_REQUEST; 184 480 … … 188 484 typedef struct { 189 485 SPDM_MESSAGE_HEADER Header; 190 // UINT8 Digest[DigestSize]; 486 // Param1 == RSVD 487 // Param2 == SlotMask 488 // UINT8 Digest[DigestSize][SlotCount]; 191 489 } SPDM_DIGESTS_RESPONSE; 192 490 193 491 /// 194 /// SPDM GET_DIGESTS request 195 /// 196 typedef struct { 197 SPDM_MESSAGE_HEADER Header; 492 /// SPDM GET_CERTIFICATE request 493 /// 494 typedef struct { 495 SPDM_MESSAGE_HEADER Header; 496 // Param1 == SlotNum 497 // Param2 == RSVD 198 498 UINT16 Offset; 199 499 UINT16 Length; 200 500 } SPDM_GET_CERTIFICATE_REQUEST; 201 501 202 /// 203 /// SPDM GET_DIGESTS response 204 /// 205 typedef struct { 206 SPDM_MESSAGE_HEADER Header; 502 #define SPDM_GET_CERTIFICATE_REQUEST_SLOT_ID_MASK 0xF 503 /// 504 /// SPDM GET_CERTIFICATE response 505 /// 506 typedef struct { 507 SPDM_MESSAGE_HEADER Header; 508 // Param1 == SlotNum 509 // Param2 == RSVD 207 510 UINT16 PortionLength; 208 511 UINT16 RemainderLength; 209 // UINT8 CertChain[ CertChainSize];512 // UINT8 CertChain[PortionLength]; 210 513 } SPDM_CERTIFICATE_RESPONSE; 211 514 515 #define SPDM_CERTIFICATE_RESPONSE_SLOT_ID_MASK 0xF 516 517 typedef struct { 518 // 519 // Total length of the certificate chain, in bytes, 520 // including all fields in this table. 521 // 522 UINT16 Length; 523 UINT16 Reserved; 524 // 525 // Digest of the Root Certificate. 526 // Note that Root Certificate is ASN.1 DER-encoded for this digest. 527 // The hash size is determined by the SPDM device. 528 // 529 // UINT8 RootHash[HashSize]; 530 // 531 // One or more ASN.1 DER-encoded X509v3 certificates where the first certificate is signed by the Root 532 // Certificate or is the Root Certificate itself and each subsequent certificate is signed by the preceding 533 // certificate. The last certificate is the Leaf Certificate. 534 // 535 // UINT8 Certificates[Length - 4 - HashSize]; 536 } SPDM_CERT_CHAIN; 537 538 /// 539 /// Maximum size, in bytes, of a certificate chain. 540 /// 541 #define SPDM_MAX_CERTIFICATE_CHAIN_SIZE 65535 212 542 /// 213 543 /// SPDM CHALLENGE request … … 215 545 typedef struct { 216 546 SPDM_MESSAGE_HEADER Header; 547 // Param1 == SlotNum 548 // Param2 == HashType 217 549 UINT8 Nonce[32]; 218 550 } SPDM_CHALLENGE_REQUEST; … … 223 555 typedef struct { 224 556 SPDM_MESSAGE_HEADER Header; 557 // Param1 == ResponseAttribute 558 // Param2 == SlotMask 225 559 // UINT8 CertChainHash[DigestSize]; 226 560 // UINT8 Nonce[32]; … … 232 566 233 567 /// 568 /// SPDM generic request measurement summary HashType 569 /// 570 #define SPDM_REQUEST_NO_MEASUREMENT_SUMMARY_HASH 0 571 #define SPDM_REQUEST_TCB_COMPONENT_MEASUREMENT_HASH 1 572 #define SPDM_REQUEST_ALL_MEASUREMENTS_HASH 0xFF 573 574 /// 575 /// SPDM CHALLENGE request measurement summary HashType 576 /// 577 #define SPDM_CHALLENGE_REQUEST_NO_MEASUREMENT_SUMMARY_HASH SPDM_REQUEST_NO_MEASUREMENT_SUMMARY_HASH 578 #define SPDM_CHALLENGE_REQUEST_TCB_COMPONENT_MEASUREMENT_HASH \ 579 SPDM_REQUEST_TCB_COMPONENT_MEASUREMENT_HASH 580 #define SPDM_CHALLENGE_REQUEST_ALL_MEASUREMENTS_HASH SPDM_REQUEST_ALL_MEASUREMENTS_HASH 581 582 #define SPDM_CHALLENGE_AUTH_RESPONSE_ATTRIBUTE_SLOT_ID_MASK 0xF 583 584 typedef struct { 585 UINT8 SlotNum : 4; 586 UINT8 Reserved : 3; 587 UINT8 BasicMutAuthReq : 1; 588 } SPDM_CHALLENGE_AUTH_RESPONSE_ATTRIBUTE; 589 590 /// 591 /// Deprecated in SPDM 1.2 592 /// 593 #define SPDM_CHALLENGE_AUTH_RESPONSE_ATTRIBUTE_BASIC_MUT_AUTH_REQ BIT7 594 595 #define SPDM_CHALLENGE_AUTH_SIGN_CONTEXT "responder-challenge_auth signing" 596 #define SPDM_CHALLENGE_AUTH_SIGN_CONTEXT_SIZE (sizeof(SPDM_CHALLENGE_AUTH_SIGN_CONTEXT) - 1) 597 #define SPDM_MUT_CHALLENGE_AUTH_SIGN_CONTEXT "requester-challenge_auth signing" 598 #define SPDM_MUT_CHALLENGE_AUTH_SIGN_CONTEXT_SIZE (sizeof(SPDM_MUT_CHALLENGE_AUTH_SIGN_CONTEXT) - 1) 599 600 /// 234 601 /// SPDM GET_MEASUREMENTS request 235 602 /// 236 603 typedef struct { 237 604 SPDM_MESSAGE_HEADER Header; 605 // Param1 == Attributes 606 // Param2 == MeasurementOperation 238 607 UINT8 Nonce[32]; 608 // Below field is added in 1.1. 609 UINT8 SlotIDParam; // BIT[0:3]=SlotNum, BIT[4:7]=Reserved 239 610 } SPDM_GET_MEASUREMENTS_REQUEST; 611 612 typedef struct { 613 UINT8 SlotNum : 4; 614 UINT8 Reserved : 4; 615 } SPDM_GET_MEASUREMENTS_REQUEST_SLOT_ID_PARAMETER; 616 617 #define SPDM_GET_MEASUREMENTS_REQUEST_SLOT_ID_MASK 0xF 618 619 /// 620 /// SPDM GET_MEASUREMENTS request Attributes 621 /// 622 #define SPDM_GET_MEASUREMENTS_REQUEST_ATTRIBUTES_GENERATE_SIGNATURE BIT0 623 #define SPDM_GET_MEASUREMENTS_REQUEST_ATTRIBUTES_RAW_BIT_STREAM_REQUESTED BIT1 624 #define SPDM_GET_MEASUREMENTS_REQUEST_ATTRIBUTES_NEW_MEASUREMENT_REQUESTED BIT2 625 626 /// 627 /// SPDM GET_MEASUREMENTS request MeasurementOperation 628 /// 629 #define SPDM_GET_MEASUREMENTS_REQUEST_MEASUREMENT_OPERATION_TOTAL_NUMBER_OF_MEASUREMENTS 0 630 631 /// 632 /// SPDM_GET_MEASUREMENTS_REQUEST_MEASUREMENT_OPERATION_INDEX 633 /// 634 #define SPDM_GET_MEASUREMENTS_REQUEST_MEASUREMENT_OPERATION_ALL_MEASUREMENTS 0xFF 240 635 241 636 /// … … 260 655 } SPDM_MEASUREMENT_BLOCK_DMTF_HEADER; 261 656 657 typedef struct { 658 SPDM_MEASUREMENT_BLOCK_COMMON_HEADER MeasurementBlockCommonHeader; 659 SPDM_MEASUREMENT_BLOCK_DMTF_HEADER MeasurementBlockDmtfHeader; 660 // UINT8 HashValue[HashSize]; 661 } SPDM_MEASUREMENT_BLOCK_DMTF; 662 663 typedef struct { 664 UINT8 Content : 7; 665 UINT8 Presentation : 1; 666 } SPDM_MEASUREMENTS_BLOCK_MEASUREMENT_TYPE; 667 262 668 /// 263 669 /// SPDM MEASUREMENTS block MeasurementValueType … … 267 673 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_HARDWARE_CONFIGURATION 2 268 674 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_FIRMWARE_CONFIGURATION 3 675 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_MEASUREMENT_MANIFEST 4 676 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_DEVICE_MODE 5 677 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_VERSION 6 678 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_SECURE_VERSION_NUMBER 7 679 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_MASK 0x7 269 680 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_TYPE_RAW_BIT_STREAM BIT7 270 681 271 682 /// 683 /// SPDM MEASUREMENTS block index 684 /// 685 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_INDEX_MEASUREMENT_MANIFEST 0xFD 686 #define SPDM_MEASUREMENT_BLOCK_MEASUREMENT_INDEX_DEVICE_MODE 0xFE 687 688 /// 689 /// SPDM MEASUREMENTS device mode 690 /// 691 typedef struct { 692 UINT32 OperationalModeCapabilities; 693 UINT32 OperationalModeState; 694 UINT32 DeviceModeCapabilities; 695 UINT32 DeviceModeState; 696 } SPDM_MEASUREMENT_DEVICE_MODE; 697 698 #define SPDM_MEASUREMENT_DEVICE_OPERATION_MODE_MANUFACTURING_MODE BIT0 699 #define SPDM_MEASUREMENT_DEVICE_OPERATION_MODE_VALIDATION_MODE BIT1 700 #define SPDM_MEASUREMENT_DEVICE_OPERATION_MODE_NORMAL_MODE BIT2 701 #define SPDM_MEASUREMENT_DEVICE_OPERATION_MODE_RECOVERY_MODE BIT3 702 #define SPDM_MEASUREMENT_DEVICE_OPERATION_MODE_RMA_MODE BIT4 703 #define SPDM_MEASUREMENT_DEVICE_OPERATION_MODE_DECOMMISSIONED_MODE BIT5 704 705 #define SPDM_MEASUREMENT_DEVICE_MODE_NON_INVASIVE_DEBUG_MODE_IS_ACTIVE BIT0 706 #define SPDM_MEASUREMENT_DEVICE_MODE_INVASIVE_DEBUG_MODE_IS_ACTIVE BIT1 707 #define SPDM_MEASUREMENT_DEVICE_MODE_NON_INVASIVE_DEBUG_MODE_HAS_BEEN_ACTIVE BIT2 708 #define SPDM_MEASUREMENT_DEVICE_MODE_INVASIVE_DEBUG_MODE_HAS_BEEN_ACTIVE BIT3 709 #define SPDM_MEASUREMENT_DEVICE_MODE_INVASIVE_DEBUG_MODE_HAS_BEEN_ACTIVE_AFTER_MFG BIT4 710 711 /// 712 /// SPDM MEASUREMENTS SVN 713 /// 714 typedef UINT64 SPDM_MEASUREMENTS_SECURE_VERSION_NUMBER; 715 716 /// 272 717 /// SPDM GET_MEASUREMENTS response 273 718 /// 274 719 typedef struct { 275 720 SPDM_MESSAGE_HEADER Header; 721 // Param1 == TotalNumberOfMeasurement/RSVD 722 // Param2 == SlotNum 276 723 UINT8 NumberOfBlocks; 277 724 UINT8 MeasurementRecordLength[3]; … … 283 730 } SPDM_MEASUREMENTS_RESPONSE; 284 731 732 #define SPDM_MEASUREMENTS_RESPONSE_SLOT_ID_MASK 0xF 733 734 /// 735 /// SPDM MEASUREMENTS content changed 736 /// 737 #define SPDM_MEASUREMENTS_RESPONSE_CONTENT_CHANGE_MASK 0x30 738 #define SPDM_MEASUREMENTS_RESPONSE_CONTENT_CHANGE_NO_DETECTION 0x00 739 #define SPDM_MEASUREMENTS_RESPONSE_CONTENT_CHANGE_DETECTED 0x10 740 #define SPDM_MEASUREMENTS_RESPONSE_CONTENT_NO_CHANGE_DETECTED 0x20 741 742 #define SPDM_MEASUREMENTS_SIGN_CONTEXT "responder-measurements signing" 743 #define SPDM_MEASUREMENTS_SIGN_CONTEXT_SIZE (sizeof(SPDM_MEASUREMENTS_SIGN_CONTEXT) - 1) 744 745 #define SPDM_MEL_SPECIFICATION_DMTF BIT0 746 285 747 /// 286 748 /// SPDM ERROR response … … 293 755 } SPDM_ERROR_RESPONSE; 294 756 757 #define SPDM_EXTENDED_ERROR_DATA_MAX_SIZE 32 758 295 759 /// 296 760 /// SPDM error code 297 761 /// 298 #define SPDM_ERROR_CODE_INVALID_REQUEST 0x01 299 #define SPDM_ERROR_CODE_BUSY 0x03 300 #define SPDM_ERROR_CODE_UNEXPECTED_REQUEST 0x04 301 #define SPDM_ERROR_CODE_UNSPECIFIED 0x05 302 #define SPDM_ERROR_CODE_UNSUPPORTED_REQUEST 0x07 303 #define SPDM_ERROR_CODE_MAJOR_VERSION_MISMATCH 0x41 304 #define SPDM_ERROR_CODE_RESPONSE_NOT_READY 0x42 305 #define SPDM_ERROR_CODE_REQUEST_RESYNCH 0x43 762 #define SPDM_ERROR_CODE_INVALID_REQUEST 0x01 763 #define SPDM_ERROR_CODE_BUSY 0x03 764 #define SPDM_ERROR_CODE_UNEXPECTED_REQUEST 0x04 765 #define SPDM_ERROR_CODE_UNSPECIFIED 0x05 766 #define SPDM_ERROR_CODE_UNSUPPORTED_REQUEST 0x07 767 #define SPDM_ERROR_CODE_VERSION_MISMATCH 0x41 768 #define SPDM_ERROR_CODE_RESPONSE_NOT_READY 0x42 769 #define SPDM_ERROR_CODE_REQUEST_RESYNCH 0x43 770 #define SPDM_ERROR_CODE_VENDOR_DEFINED 0xFF 771 /// 772 /// SPDM error code (1.1) 773 /// 774 #define SPDM_ERROR_CODE_DECRYPT_ERROR 0x06 775 #define SPDM_ERROR_CODE_REQUEST_IN_FLIGHT 0x08 776 #define SPDM_ERROR_CODE_INVALID_RESPONSE_CODE 0x09 777 #define SPDM_ERROR_CODE_SESSION_LIMIT_EXCEEDED 0x0A 778 779 /// 780 /// SPDM error code (1.2) 781 /// 782 #define SPDM_ERROR_CODE_SESSION_REQUIRED 0x0B 783 #define SPDM_ERROR_CODE_RESET_REQUIRED 0x0C 784 #define SPDM_ERROR_CODE_RESPONSE_TOO_LARGE 0x0D 785 #define SPDM_ERROR_CODE_REQUEST_TOO_LARGE 0x0E 786 #define SPDM_ERROR_CODE_LARGE_RESPONSE 0x0F 787 #define SPDM_ERROR_CODE_MESSAGE_LOST 0x10 788 /// 789 /// SPDM ResponseNotReady extended data 790 /// 791 typedef struct { 792 UINT8 RDTExponent; 793 UINT8 RequestCode; 794 UINT8 Token; 795 UINT8 Rdtm; 796 } SPDM_ERROR_DATA_RESPONSE_NOT_READY; 797 798 typedef struct { 799 SPDM_MESSAGE_HEADER Header; 800 // Param1 == Error Code 801 // Param2 == Error Data 802 SPDM_ERROR_DATA_RESPONSE_NOT_READY ExtendErrorData; 803 } SPDM_ERROR_RESPONSE_DATA_RESPONSE_NOT_READY; 804 805 /// 806 /// SPDM LargeResponse extended data 807 /// 808 typedef struct { 809 UINT8 Handle; 810 } SPDM_ERROR_DATA_LARGE_RESPONSE; 811 812 typedef struct { 813 SPDM_MESSAGE_HEADER Header; 814 815 // param1 == Error Code 816 // param2 == Error data 817 // 818 SPDM_ERROR_DATA_LARGE_RESPONSE ExtendErrorData; 819 } SPDM_ERROR_RESPONSE_LARGE_RESPONSE; 306 820 307 821 /// … … 314 828 } SPDM_RESPONSE_IF_READY_REQUEST; 315 829 830 /// 831 /// Maximum size of a vendor defined message data length 832 /// limited by the length field size which is 2 bytes 833 /// 834 #define SPDM_MAX_VENDOR_DEFINED_DATA_LEN 65535 835 836 /// 837 /// Maximum size of a vendor defined vendor id length 838 /// limited by the length field size which is 1 byte 839 /// 840 #define SPDM_MAX_VENDOR_ID_LENGTH 255 841 842 /// 843 /// SPDM VENDOR_DEFINED request 844 /// 845 typedef struct { 846 SPDM_MESSAGE_HEADER Header; 847 // Param1 == RSVD 848 // Param2 == RSVD 849 UINT16 StandardID; 850 UINT8 Len; 851 // UINT8 VendorID[Len]; 852 // UINT16 PayloadLength; 853 // UINT8 VendorDefinedPayload[PayloadLength]; 854 } SPDM_VENDOR_DEFINED_REQUEST_MSG; 855 856 /// 857 /// SPDM VENDOR_DEFINED response 858 /// 859 typedef struct { 860 SPDM_MESSAGE_HEADER Header; 861 // Param1 == RSVD 862 // Param2 == RSVD 863 UINT16 StandardID; 864 UINT8 Len; 865 // UINT8 VendorID[Len]; 866 // UINT16 PayloadLength; 867 // UINT8 VendorDefinedPayload[PayloadLength]; 868 } SPDM_VENDOR_DEFINED_RESPONSE_MSG; 869 870 // 871 // Below command is defined in SPDM 1.1 872 // 873 874 /// 875 /// SPDM KEY_EXCHANGE request 876 /// 877 typedef struct { 878 SPDM_MESSAGE_HEADER Header; 879 // Param1 == HashType 880 // Param2 == SlotNum 881 UINT16 ReqSessionID; 882 UINT16 Reserved; 883 UINT8 RandomData[32]; 884 // UINT8 ExchangeData[D]; 885 // UINT16 OpaqueLength; 886 // UINT8 OpaqueData[OpaqueLength]; 887 } SPDM_KEY_EXCHANGE_REQUEST; 888 889 /// 890 /// SPDM KEY_EXCHANGE request session_policy 891 /// 892 #define SPDM_KEY_EXCHANGE_REQUEST_SESSION_POLICY_TERMINATION_POLICY_RUNTIME_UPDATE BIT0 893 894 /// 895 /// SPDM KEY_EXCHANGE request measurement summary HashType 896 /// 897 #define SPDM_KEY_EXCHANGE_REQUEST_NO_MEASUREMENT_SUMMARY_HASH \ 898 SPDM_REQUEST_NO_MEASUREMENT_SUMMARY_HASH 899 #define SPDM_KEY_EXCHANGE_REQUEST_TCB_COMPONENT_MEASUREMENT_HASH \ 900 SPDM_REQUEST_TCB_COMPONENT_MEASUREMENT_HASH 901 #define SPDM_KEY_EXCHANGE_REQUEST_ALL_MEASUREMENTS_HASH SPDM_REQUEST_ALL_MEASUREMENTS_HASH 902 903 /// 904 /// SPDM KEY_EXCHANGE response 905 /// 906 typedef struct { 907 SPDM_MESSAGE_HEADER Header; 908 // Param1 == HeartbeatPeriod 909 // Param2 == RSVD 910 UINT16 RspSessionID; 911 UINT8 MutAuthRequested; 912 UINT8 ReqSlotIDParam; 913 UINT8 RandomData[32]; 914 // UINT8 ExchangeData[D]; 915 // UINT8 MeasurementSummaryHash[DigestSize]; 916 // UINT16 OpaqueLength; 917 // UINT8 OpaqueData[OpaqueLength]; 918 // UINT8 Signature[S]; 919 // UINT8 ResponderVerifyData[H]; 920 } SPDM_KEY_EXCHANGE_RESPONSE; 921 922 /// 923 /// SPDM KEY_EXCHANGE response MutAuthRequested 924 /// 925 #define SPDM_KEY_EXCHANGE_RESPONSE_MUT_AUTH_REQUESTED BIT0 926 #define SPDM_KEY_EXCHANGE_RESPONSE_MUT_AUTH_REQUESTED_WITH_ENCAP_REQUEST BIT1 927 #define SPDM_KEY_EXCHANGE_RESPONSE_MUT_AUTH_REQUESTED_WITH_GET_DIGESTS BIT2 928 929 #define SPDM_KEY_EXCHANGE_RESPONSE_SIGN_CONTEXT "responder-key_exchange_rsp signing" 930 #define SPDM_KEY_EXCHANGE_RESPONSE_SIGN_CONTEXT_SIZE \ 931 (sizeof(SPDM_KEY_EXCHANGE_RESPONSE_SIGN_CONTEXT) - 1) 932 933 #define SPDM_VERSION_1_2_KEY_EXCHANGE_REQUESTER_CONTEXT "Requester-KEP-dmtf-spdm-v1.2" 934 #define SPDM_VERSION_1_2_KEY_EXCHANGE_REQUESTER_CONTEXT_SIZE \ 935 (sizeof(SPDM_VERSION_1_2_KEY_EXCHANGE_REQUESTER_CONTEXT) - 1) 936 937 #define SPDM_VERSION_1_2_KEY_EXCHANGE_RESPONDER_CONTEXT "Responder-KEP-dmtf-spdm-v1.2" 938 #define SPDM_VERSION_1_2_KEY_EXCHANGE_RESPONDER_CONTEXT_SIZE \ 939 (sizeof(SPDM_VERSION_1_2_KEY_EXCHANGE_RESPONDER_CONTEXT) - 1) 940 941 /// 942 /// SPDM FINISH request 943 /// 944 typedef struct { 945 SPDM_MESSAGE_HEADER Header; 946 // Param1 == SignatureIncluded 947 // Param2 == ReqSlotNum 948 // UINT8 Signature[S]; 949 // UINT8 RequesterVerifyData[H]; 950 } SPDM_FINISH_REQUEST; 951 952 /// 953 /// SPDM FINISH request SignatureIncluded 954 /// 955 #define SPDM_FINISH_REQUEST_ATTRIBUTES_SIGNATURE_INCLUDED BIT0 956 957 /// 958 /// SPDM FINISH response 959 /// 960 typedef struct { 961 SPDM_MESSAGE_HEADER Header; 962 // Param1 == RSVD 963 // Param2 == RSVD 964 // UINT8 ResponderVerifyData[H]; 965 } SPDM_FINISH_RESPONSE; 966 967 #define SPDM_FINISH_SIGN_CONTEXT "requester-finish signing" 968 #define SPDM_FINISH_SIGN_CONTEXT_SIZE (sizeof(SPDM_FINISH_SIGN_CONTEXT) - 1) 969 970 /// 971 /// SPDM PSK_EXCHANGE request 972 /// 973 typedef struct { 974 SPDM_MESSAGE_HEADER Header; 975 // Param1 == HashType 976 // Param2 == RSVD/session_policy (1.2) 977 UINT16 ReqSessionID; 978 UINT16 PSKHintLength; 979 UINT16 RequesterContextLength; 980 UINT16 OpaqueLength; 981 // UINT8 PSKHint[PSKHintLength]; 982 // UINT8 RequesterContext[RequesterContextLength]; 983 // UINT8 OpaqueData[OpaqueLength]; 984 } SPDM_PSK_EXCHANGE_REQUEST; 985 986 /// 987 /// SPDM PSK_EXCHANGE request measurement summary HashType 988 /// 989 #define SPDM_PSK_EXCHANGE_REQUEST_NO_MEASUREMENT_SUMMARY_HASH \ 990 SPDM_REQUEST_NO_MEASUREMENT_SUMMARY_HASH 991 #define SPDM_PSK_EXCHANGE_REQUEST_TCB_COMPONENT_MEASUREMENT_HASH \ 992 SPDM_REQUEST_TCB_COMPONENT_MEASUREMENT_HASH 993 #define SPDM_PSK_EXCHANGE_REQUEST_ALL_MEASUREMENTS_HASH SPDM_REQUEST_ALL_MEASUREMENTS_HASH 994 995 /// 996 /// SPDM PSK_EXCHANGE response 997 /// 998 typedef struct { 999 SPDM_MESSAGE_HEADER Header; 1000 // Param1 == HeartbeatPeriod 1001 // Param2 == RSVD 1002 UINT16 RspSessionID; 1003 UINT16 Reserved; 1004 UINT16 ResponderContextLength; 1005 UINT16 OpaqueLength; 1006 // UINT8 MeasurementSummaryHash[DigestSize]; 1007 // UINT8 ResponderContext[ResponderContextLength]; 1008 // UINT8 OpaqueData[OpaqueLength]; 1009 // UINT8 ResponderVerifyData[H]; 1010 } SPDM_PSK_EXCHANGE_RESPONSE; 1011 1012 /// 1013 /// SPDM PSK_FINISH request 1014 /// 1015 typedef struct { 1016 SPDM_MESSAGE_HEADER Header; 1017 // Param1 == RSVD 1018 // Param2 == RSVD 1019 // UINT8 RequesterVerifyData[H]; 1020 } SPDM_PSK_FINISH_REQUEST; 1021 1022 /// 1023 /// SPDM PSK_FINISH response 1024 /// 1025 typedef struct { 1026 SPDM_MESSAGE_HEADER Header; 1027 // Param1 == RSVD 1028 // Param2 == RSVD 1029 } SPDM_PSK_FINISH_RESPONSE; 1030 1031 /// 1032 /// SPDM HEARTBEAT request 1033 /// 1034 typedef struct { 1035 SPDM_MESSAGE_HEADER Header; 1036 // Param1 == RSVD 1037 // Param2 == RSVD 1038 } SPDM_HEARTBEAT_REQUEST; 1039 1040 /// 1041 /// SPDM HEARTBEAT response 1042 /// 1043 typedef struct { 1044 SPDM_MESSAGE_HEADER Header; 1045 // Param1 == RSVD 1046 // Param2 == RSVD 1047 } SPDM_HEARTBEAT_RESPONSE; 1048 1049 /// 1050 /// SPDM KEY_UPDATE request 1051 /// 1052 typedef struct { 1053 SPDM_MESSAGE_HEADER Header; 1054 // Param1 == KeyOperation 1055 // Param2 == Tag 1056 } SPDM_KEY_UPDATE_REQUEST; 1057 1058 /// 1059 /// SPDM KEY_UPDATE Operations Table 1060 /// 1061 #define SPDM_KEY_UPDATE_OPERATIONS_TABLE_UPDATE_KEY 1 1062 #define SPDM_KEY_UPDATE_OPERATIONS_TABLE_UPDATE_ALL_KEYS 2 1063 #define SPDM_KEY_UPDATE_OPERATIONS_TABLE_VERIFY_NEW_KEY 3 1064 1065 /// 1066 /// SPDM KEY_UPDATE response 1067 /// 1068 typedef struct { 1069 SPDM_MESSAGE_HEADER Header; 1070 // Param1 == KeyOperation 1071 // Param2 == Tag 1072 } SPDM_KEY_UPDATE_RESPONSE; 1073 1074 /// 1075 /// SPDM GET_ENCAPSULATED_REQUEST request 1076 /// 1077 typedef struct { 1078 SPDM_MESSAGE_HEADER Header; 1079 // Param1 == RSVD 1080 // Param2 == RSVD 1081 } SPDM_GET_ENCAPSULATED_REQUEST_REQUEST; 1082 1083 /// 1084 /// SPDM ENCAPSULATED_REQUEST response 1085 /// 1086 typedef struct { 1087 SPDM_MESSAGE_HEADER Header; 1088 // Param1 == RequestID 1089 // Param2 == RSVD 1090 // UINT8 EncapsulatedRequest[]; 1091 } SPDM_ENCAPSULATED_REQUEST_RESPONSE; 1092 1093 /// 1094 /// SPDM DELIVER_ENCAPSULATED_RESPONSE request 1095 /// 1096 typedef struct { 1097 SPDM_MESSAGE_HEADER Header; 1098 // Param1 == RequestID 1099 // Param2 == RSVD 1100 // UINT8 EncapsulatedResponse[]; 1101 } SPDM_DELIVER_ENCAPSULATED_RESPONSE_REQUEST; 1102 1103 /// 1104 /// SPDM ENCAPSULATED_RESPONSE_ACK response 1105 /// 1106 typedef struct { 1107 SPDM_MESSAGE_HEADER Header; 1108 // Param1 == RequestID 1109 // Param2 == PayloadType 1110 // below 4 bytes are added in 1.2. 1111 UINT8 AckRequestId; 1112 UINT8 Reserved[3]; 1113 // UINT8 EncapsulatedRequest[]; 1114 } SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE; 1115 1116 /// 1117 /// SPDM ENCAPSULATED_RESPONSE_ACK_RESPONSE Payload Type 1118 /// 1119 #define SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE_PAYLOAD_TYPE_ABSENT 0 1120 #define SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE_PAYLOAD_TYPE_PRESENT 1 1121 #define SPDM_ENCAPSULATED_RESPONSE_ACK_RESPONSE_PAYLOAD_TYPE_REQ_SLOT_NUMBER 2 1122 1123 /// 1124 /// SPDM END_SESSION request 1125 /// 1126 typedef struct { 1127 SPDM_MESSAGE_HEADER Header; 1128 // Param1 == EndSessionRequestAttributes 1129 // Param2 == RSVD 1130 } SPDM_END_SESSION_REQUEST; 1131 1132 /// 1133 /// SPDM END_SESSION request Attributes 1134 /// 1135 #define SPDM_END_SESSION_REQUEST_ATTRIBUTES_PRESERVE_NEGOTIATED_STATE_CLEAR BIT0 1136 1137 /// 1138 /// SPDM END_SESSION response 1139 /// 1140 typedef struct { 1141 SPDM_MESSAGE_HEADER Header; 1142 // Param1 == RSVD 1143 // Param2 == RSVD 1144 } SPDM_END_SESSION_RESPONSE; 1145 1146 // 1147 // Below command is defined in SPDM 1.2 1148 // 1149 1150 /// 1151 /// SPDM SET_CERTIFICATE request 1152 /// 1153 typedef struct { 1154 SPDM_MESSAGE_HEADER Header; 1155 1156 // param1 == BIT[0:3]=slot_id, BIT[4:7]=RSVD 1157 // param2 == RSVD 1158 // param1 and param2 are updated in 1.3 1159 // param1 == Request attributes, BIT[0:3]=slot_id, BIT[4:6]=SetCertModel, BIT[7]=Erase 1160 // param2 == KeyPairID 1161 // void * CertChain 1162 } SPDM_SET_CERTIFICATE_REQUEST; 1163 1164 #define SPDM_SET_CERTIFICATE_REQUEST_SLOT_ID_MASK 0xF 1165 1166 /// 1167 /// SPDM SET_CERTIFICATE request Attributes 1168 /// 1169 #define SPDM_SET_CERTIFICATE_REQUEST_ATTRIBUTES_CERT_MODEL_MASK 0x70 1170 #define SPDM_SET_CERTIFICATE_REQUEST_ATTRIBUTES_CERT_MODEL_OFFSET 4 1171 #define SPDM_SET_CERTIFICATE_REQUEST_ATTRIBUTES_ERASE 0x80 1172 1173 /// 1174 /// SPDM SET_CERTIFICATE_RSP response 1175 /// 1176 typedef struct { 1177 SPDM_MESSAGE_HEADER Header; 1178 1179 // param1 == BIT[0:3]=slot_id, BIT[4:7]=RSVD 1180 // param2 == RSVD 1181 } SPDM_SET_CERTIFICATE_RESPONSE; 1182 1183 #define SPDM_SET_CERTIFICATE_RESPONSE_SLOT_ID_MASK 0xF 1184 1185 /// 1186 /// SPDM GET_CSR request 1187 /// 1188 typedef struct { 1189 SPDM_MESSAGE_HEADER Header; 1190 UINT16 RequesterInfoLength; 1191 UINT16 OpaqueDataLength; 1192 1193 // UINT8 RequesterInfo[RequesterInfoLength]; 1194 // UINT8 OpaqueData[OpaqueDataLength]; 1195 } SPDM_GET_CSR_REQUEST; 1196 1197 /// 1198 /// SPDM GET_CSR request Attributes 1199 /// 1200 #define SPDM_GET_CSR_REQUEST_ATTRIBUTES_CERT_MODEL_MASK 0x07 1201 #define SPDM_GET_CSR_REQUEST_ATTRIBUTES_CSR_TRACKING_TAG_MASK 0x38 1202 #define SPDM_GET_CSR_REQUEST_ATTRIBUTES_CSR_TRACKING_TAG_OFFSET 3 1203 #define SPDM_GET_CSR_REQUEST_ATTRIBUTES_OVERWRITE 0x80 1204 #define SPDM_GET_CSR_REQUEST_ATTRIBUTES_MAX_CSR_CERT_MODEL 4 1205 1206 /// 1207 /// Maximum size, in bytes, of a CSR. 1208 /// 1209 #define SPDM_MAX_CSR_SIZE 65535 1210 1211 /// 1212 /// SPDM CSR response 1213 /// 1214 typedef struct { 1215 SPDM_MESSAGE_HEADER Header; 1216 1217 // param1 == RSVD 1218 // param2 == RSVD 1219 UINT16 CsrLength; 1220 UINT16 Reserved; 1221 } SPDM_CSR_RESPONSE; 1222 1223 /// 1224 /// SPDM CHUNK_SEND request 1225 /// 1226 typedef struct { 1227 SPDM_MESSAGE_HEADER Header; 1228 1229 // param1 - Request Attributes 1230 // param2 - Handle 1231 UINT16 ChunkSeqNo; 1232 UINT16 Reserved; 1233 UINT32 ChunkSize; 1234 1235 // UINT32 LargeMessageSize; 1236 // UINT8 SpdmChunk[ChunkSize]; 1237 } SPDM_CHUNK_SEND_REQUEST; 1238 1239 #define SPDM_CHUNK_SEND_REQUEST_ATTRIBUTE_LAST_CHUNK (1 << 0) 1240 1241 /// 1242 /// SPDM CHUNK_SEND_ACK response 1243 /// 1244 typedef struct { 1245 SPDM_MESSAGE_HEADER Header; 1246 1247 // param1 - Response Attributes 1248 // param2 - Handle 1249 UINT16 ChunkSeqNo; 1250 // UINT8 response_to_large_request[variable] 1251 } SPDM_CHUNK_SEND_ACK_RESPONSE; 1252 1253 #define SPDM_CHUNK_SEND_ACK_RESPONSE_ATTRIBUTE_EARLY_ERROR_DETECTED (1 << 0) 1254 1255 /// 1256 /// SPDM CHUNK_GET request 1257 /// 1258 typedef struct { 1259 SPDM_MESSAGE_HEADER Header; 1260 1261 // param1 - Reserved 1262 // param2 - Handle 1263 UINT16 ChunkSeqNo; 1264 } SPDM_CHUNK_GET_REQUEST; 1265 1266 /// 1267 /// SPDM CHUNK_RESPONSE response 1268 /// 1269 typedef struct { 1270 SPDM_MESSAGE_HEADER Header; 1271 1272 // param1 - Response Attributes 1273 // param2 - Handle 1274 UINT16 ChunkSeqNo; 1275 UINT16 Reserved; 1276 UINT32 ChunkSize; 1277 1278 // UINT32 LargeMessageSize; 1279 // UINT8 SpdmChunk[ChunkSize]; 1280 } SPDM_CHUNK_RESPONSE_RESPONSE; 1281 1282 #define SPDM_CHUNK_GET_RESPONSE_ATTRIBUTE_LAST_CHUNK (1 << 0) 316 1283 #pragma pack() 317 1284 1285 #define SPDM_VERSION_1_1_BIN_CONCAT_LABEL "spdm1.1 " 1286 #define SPDM_VERSION_1_2_BIN_CONCAT_LABEL "spdm1.2 " 1287 #define SPDM_BIN_STR_0_LABEL "derived" 1288 #define SPDM_BIN_STR_1_LABEL "req hs data" 1289 #define SPDM_BIN_STR_2_LABEL "rsp hs data" 1290 #define SPDM_BIN_STR_3_LABEL "req app data" 1291 #define SPDM_BIN_STR_4_LABEL "rsp app data" 1292 #define SPDM_BIN_STR_5_LABEL "key" 1293 #define SPDM_BIN_STR_6_LABEL "iv" 1294 #define SPDM_BIN_STR_7_LABEL "finished" 1295 #define SPDM_BIN_STR_8_LABEL "exp master" 1296 #define SPDM_BIN_STR_9_LABEL "traffic upd" 1297 1298 /// 1299 /// The maximum amount of time in microseconds the Responder has to provide a response 1300 /// to requests that do not require cryptographic processing. 1301 /// 1302 #define SPDM_ST1_VALUE_US 100000 1303 1304 /// 1305 /// id-DMTF 1.3.6.1.4.1.412. 1306 /// These OID are defiend in ANNEX C (informative) OID reference section from the DMTF SPDM spec. 1307 /// https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.2.2.pdf 1308 /// 1309 #define SPDM_OID_DMTF \ 1310 {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1C } 1311 // id-DMTF-spdm, { id-DMTF 274 }, 1.3.6.1.4.1.412.274 1312 #define SPDM_OID_DMTF_SPDM \ 1313 {0x06, 0x01, 0x04, 0x01, 0x83, 0x1C, 0x82, 0x12 } 1314 // id-DMTF-device-info, { id-DMTF-spdm 1 }, 1.3.6.1.4.1.412.274.1 1315 #define SPDM_OID_DMTF_DEVICE_INFO \ 1316 {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1C, 0x82, 0x12, 0x01 } 1317 // id-DMTF-hardware-identity, { id-DMTF-spdm 2 }, 1.3.6.1.4.1.412.274.2 1318 #define SPDM_OID_DMTF_HARDWARE_IDENTITY \ 1319 {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1C, 0x82, 0x12, 0x02 } 1320 // id-DMTF-eku-responder-auth, { id-DMTF-spdm 3 }, 1.3.6.1.4.1.412.274.3 1321 #define SPDM_OID_DMTF_EKU_RESPONDER_AUTH \ 1322 {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1C, 0x82, 0x12, 0x03 } 1323 // id-DMTF-eku-requester-auth, { id-DMTF-spdm 4 }, 1.3.6.1.4.1.412.274.4 1324 #define SPDM_OID_DMTF_EKU_REQUESTER_AUTH \ 1325 {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1C, 0x82, 0x12, 0x04 } 1326 // id-DMTF-mutable-certificate, { id-DMTF-spdm 5 }, 1.3.6.1.4.1.412.274.5 1327 #define SPDM_OID_DMTF_MUTABLE_CERTIFICATE \ 1328 {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1C, 0x82, 0x12, 0x05 } 1329 // id-DMTF-SPDM-extension, { id-DMTF-spdm 6 }, 1.3.6.1.4.1.412.274.6 1330 #define SPDM_OID_DMTF_SPDM_EXTENSION \ 1331 {0x2B, 0x06, 0x01, 0x04, 0x01, 0x83, 0x1C, 0x82, 0x12, 0x06 } 318 1332 #endif -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/Tdx.h
r99404 r105670 104 104 #define TDVMCALL_SETUP_EVENT_NOTIFY 0x10004 105 105 106 #define TDVMCALL_STATUS_RETRY 0x1 107 106 108 #pragma pack(1) 107 109 typedef struct { -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/IndustryStandard/UefiTcgPlatform.h
r99404 r105670 1 1 /** @file 2 2 TCG EFI Platform Definition in TCG_EFI_Platform_1_20_Final and 3 TCG PC Client Platform Firmware Profile Specification, Revision 1.0 54 5 Copyright (c) 2006 - 20 19, Intel Corporation. All rights reserved.<BR>3 TCG PC Client Platform Firmware Profile Specification, Revision 1.06 4 5 Copyright (c) 2006 - 2024, Intel Corporation. All rights reserved.<BR> 6 6 SPDX-License-Identifier: BSD-2-Clause-Patent 7 7 … … 54 54 #define EV_EFI_SPDM_FIRMWARE_BLOB (EV_EFI_EVENT_BASE + 0xE1) 55 55 #define EV_EFI_SPDM_FIRMWARE_CONFIG (EV_EFI_EVENT_BASE + 0xE2) 56 #define EV_EFI_SPDM_DEVICE_BLOB EV_EFI_SPDM_FIRMWARE_BLOB 57 #define EV_EFI_SPDM_DEVICE_CONFIG EV_EFI_SPDM_FIRMWARE_CONFIG 58 // 59 // The SPDM policy database for SPDM verification. 60 // It goes to PCR7 61 // 62 #define EV_EFI_SPDM_DEVICE_POLICY (EV_EFI_EVENT_BASE + 0xE3) 63 // 64 // The SPDM policy authority for SPDM verification for the signature 65 // of GET_MEASUREMENT or CHALLENGE_AUTH. It goes to PCR7. 66 // 67 #define EV_EFI_SPDM_DEVICE_AUTHORITY (EV_EFI_EVENT_BASE + 0xE4) 56 68 57 69 #define EFI_CALLING_EFI_APPLICATION \ … … 375 387 #define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2 0 376 388 #define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_105 105 389 #define TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_106 106 377 390 378 391 typedef struct { … … 439 452 #define TCG_Sp800_155_PlatformId_Event_SIGNATURE "SP800-155 Event" 440 453 #define TCG_Sp800_155_PlatformId_Event2_SIGNATURE "SP800-155 Event2" 454 #define TCG_Sp800_155_PlatformId_Event3_SIGNATURE "SP800-155 Event3" 441 455 442 456 typedef struct tdTCG_Sp800_155_PlatformId_Event2 { … … 466 480 // UINT32 FirmwareManufacturerId; 467 481 // UINT8 FirmwareVersion; 468 // UINT8 FirmwareVersion[FirmwareVersionSize] ];482 // UINT8 FirmwareVersion[FirmwareVersionSize]; 469 483 } TCG_Sp800_155_PlatformId_Event2; 484 485 typedef struct tdTCG_Sp800_155_PlatformId_Event3 { 486 UINT8 Signature[16]; 487 // 488 // Where Vendor ID is an integer defined 489 // at http://www.iana.org/assignments/enterprisenumbers 490 // 491 UINT32 VendorId; 492 // 493 // 16-byte identifier of a given platform's static configuration of code 494 // 495 EFI_GUID ReferenceManifestGuid; 496 // UINT8 PlatformManufacturerStrSize; 497 // UINT8 PlatformManufacturerStr[PlatformManufacturerStrSize]; 498 // UINT8 PlatformModelSize; 499 // UINT8 PlatformModel[PlatformModelSize]; 500 // UINT8 PlatformVersionSize; 501 // UINT8 PlatformVersion[PlatformVersionSize]; 502 // UINT8 PlatformModelSize; 503 // UINT8 PlatformModel[PlatformModelSize]; 504 // UINT8 FirmwareManufacturerStrSize; 505 // UINT8 FirmwareManufacturerStr[FirmwareManufacturerStrSize]; 506 // UINT32 FirmwareManufacturerId; 507 // UINT8 FirmwareVersion; 508 // UINT8 FirmwareVersion[FirmwareVersionSize]; 509 // 510 // Below structure is newly added in TCG_Sp800_155_PlatformId_Event3 511 // 512 // UINT32 RimLocatorType; 513 // UINT32 RimLocatorLength; 514 // UINT8 RimLocator[RimLocatorLength]; 515 // UINT32 PlatformCertLocatorType; 516 // UINT32 PlatformCertLocatorLength; 517 // UINT8 PlatformCertLocator[PlatformCertLocatorLength]; 518 } TCG_Sp800_155_PlatformId_Event3; 470 519 471 520 #define TCG_EfiStartupLocalityEvent_SIGNATURE "StartupLocality" … … 493 542 #pragma pack () 494 543 544 // 545 // ====================================================================================================================== 546 // Event Type PCR Event Log Usage 547 // ====================================================================================================================== 548 // EV_EFI_SPDM_DEVICE_BLOB 2 SPDM_MEASUREMENT_BLOCK (subtype) MEASUREMENT from device 549 // EV_EFI_SPDM_DEVICE_CONFIG 3 SPDM_MEASUREMENT_BLOCK (subtype) MEASUREMENT from device 550 // EV_EFI_SPDM_DEVICE_BLOB 2 SPDM_MEASUREMENT_SUMMARY_HASH.TCB (subtype) SUMMARY_HASH from device 551 552 // EV_EFI_SPDM_DEVICE_POLICY 7 UEFI_VARIABLE_DATA with EFI_SIGNATURE_LIST Provisioned device public cert. 553 // EV_EFI_SPDM_DEVICE_AUTHORITY 7 UEFI_VARIABLE_DATA with EFI_SIGNATURE_DATA CHALLENGE_AUTH signature verification 554 // ====================================================================================================================== 555 // 556 557 #define PCR_INDEX_FOR_SIGNATURE_DB 7 558 559 #pragma pack(1) 560 561 #define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION_1 1 562 #define TCG_DEVICE_SECURITY_EVENT_DATA_VERSION_2 2 563 #define TCG_DEVICE_SECURITY_EVENT_DATA_SIGNATURE_2 "SPDM Device Sec2" 564 565 typedef struct { 566 UINT8 Signature[16]; 567 UINT16 Version; 568 UINT8 AuthState; 569 UINT8 Reserved; 570 UINT32 Length; // Length in bytes for all following structures. 571 UINT32 DeviceType; 572 UINT32 SubHeaderType; 573 UINT32 SubHeaderLength; // Length in bytes of the sub header followed by. 574 UINT64 SubHeaderUID; // Universal identifier assigned by the event log creator. It can be used to bind two sub header structure together. 575 // UINT64 DevicePathLength; 576 // UINT8 DevicePath[DevicePathLength]; 577 } TCG_DEVICE_SECURITY_EVENT_DATA_HEADER2; 578 579 #define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_SUCCESS 0 580 #define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_AUTH 1 581 #define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_BINDING 2 582 #define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_FAIL_NO_SIG 3 583 #define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_FAIL_INVALID 4 584 #define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_NO_SPDM 0xFF 585 586 #define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_SUB_HEADER_TYPE_SPDM_MEASUREMENT_BLOCK 0 587 #define TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_SUB_HEADER_TYPE_SPDM_CERT_CHAIN 1 588 589 typedef struct { 590 UINT16 SpdmVersion; 591 UINT8 SpdmMeasurementBlockCount; 592 UINT8 Reserved; 593 UINT32 SpdmMeasurementHashAlgo; 594 // SPDM_MEASUREMENT_BLOCK SpdmMeasurementBlock; 595 } TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_MEASUREMENT_BLOCK; 596 597 typedef struct { 598 UINT16 SpdmVersion; 599 UINT8 SpdmSlotId; 600 UINT8 Reserved; 601 UINT32 SpdmHashAlgo; 602 // SPDM_CERT_CHAIN SpdmCertChain; 603 } TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_CERT_CHAIN; 604 605 typedef struct { 606 UINT32 Type; 607 UINT32 Length; 608 UINT8 Value[1]; 609 } TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_OEM_MEASUREMENT; 610 611 typedef union { 612 TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_MEASUREMENT_BLOCK SpdmMeasurementBlock; 613 TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_SPDM_CERT_CHAIN SpdmCertChain; 614 TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER_OEM_MEASUREMENT OemMeasurement; 615 } TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER; 616 617 typedef union { 618 TCG_DEVICE_SECURITY_EVENT_DATA_PCI_CONTEXT Pci; 619 TCG_DEVICE_SECURITY_EVENT_DATA_USB_CONTEXT Usb; 620 } TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_CONTEXT; 621 622 typedef struct { 623 TCG_DEVICE_SECURITY_EVENT_DATA_HEADER2 EventDataHeader; 624 TCG_DEVICE_SECURITY_EVENT_DATA_SUB_HEADER EventDataSubHeader; 625 TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_CONTEXT DeviceContext; 626 } TCG_DEVICE_SECURITY_EVENT_DATA2; 627 628 #pragma pack() 629 630 // 631 // EventType:EV_NO_ACTION 632 // ====================================================================================================================== 633 // NVIndex Name PCR/NvIndex Event Log Usage 634 // ====================================================================================================================== 635 // NV_EXTEND_INDEX_FOR_INSTANCE 0x01C40200 NV_INDEX_INSTANCE_EVENT_LOG_STRUCT NV Extend Record for instance data (CertChain) 636 // NV_EXTEND_INDEX_FOR_DYNAMIC 0x01C40201 NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT NV Extend Record for dynamic data (Nonce) 637 638 // EVENT_LOG_INTEGRITY_NV_INDEX_EXIT_PM_AUTH 0x01C40202 EVENT_LOG_INTEGRITY_NV_INDEX_STRUCT Event Log Integrity for ExitPmAuth 639 // EVENT_LOG_INTEGRITY_NV_INDEX_READY_TO_BOOT 0x01C40203 EVENT_LOG_INTEGRITY_NV_INDEX_STRUCT Event Log Integrity for ReadyToBoot 640 // ====================================================================================================================== 641 // 642 643 #define TCG_NV_EXTEND_INDEX_FOR_INSTANCE 0x01C40200 644 #define TCG_NV_EXTEND_INDEX_FOR_DYNAMIC 0x01C40201 645 #define TCG_EVENT_LOG_INTEGRITY_NV_INDEX_EXIT_PM_AUTH 0x01C40202 646 #define TCG_EVENT_LOG_INTEGRITY_NV_INDEX_READY_TO_BOOT 0x01C40203 647 648 #pragma pack(1) 649 650 #define TCG_NV_EXTEND_INDEX_FOR_INSTANCE_SIGNATURE "NvIndexInstance" 651 #define TCG_NV_INDEX_INSTANCE_EVENT_LOG_STRUCT_VERSION 1 652 653 typedef struct { 654 UINT8 Signature[16]; 655 UINT16 Version; 656 UINT8 Reserved[6]; 657 // TCG_DEVICE_SECURITY_EVENT_DATA2 Data; 658 } TCG_NV_INDEX_INSTANCE_EVENT_LOG_STRUCT; 659 660 #define TCG_NV_EXTEND_INDEX_FOR_DYNAMIC_SIGNATURE "NvIndexDynamic " 661 #define TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_VERSION 1 662 663 #define TCG_SPDM_CHALLENGE_DESCRIPTION "SPDM CHALLENGE" 664 #define TCG_SPDM_CHALLENGE_AUTH_DESCRIPTION "SPDM CHALLENGE_AUTH" 665 #define TCG_SPDM_GET_MEASUREMENTS_DESCRIPTION "SPDM GET_MEASUREMENTS" 666 #define TCG_SPDM_MEASUREMENTS_DESCRIPTION "SPDM MEASUREMENTS" 667 668 typedef struct { 669 UINT8 Signature[16]; 670 UINT16 Version; 671 UINT8 Reserved[6]; 672 UINT64 Uid; 673 // UINT16 DescriptionSize; 674 // UINT8 Description[DescriptionSize]; 675 // UINT16 DataSize; 676 // UINT8 Data[DataSize]; 677 } TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT; 678 679 typedef struct { 680 TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header; 681 UINT16 DescriptionSize; 682 UINT8 Description[sizeof (TCG_SPDM_CHALLENGE_DESCRIPTION)]; 683 UINT16 DataSize; 684 UINT8 Data[32]; 685 } TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_CHALLENGE; 686 687 typedef struct { 688 TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header; 689 UINT16 DescriptionSize; 690 UINT8 Description[sizeof (TCG_SPDM_CHALLENGE_AUTH_DESCRIPTION)]; 691 UINT16 DataSize; 692 UINT8 Data[32]; 693 } TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_CHALLENGE_AUTH; 694 695 typedef struct { 696 TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header; 697 UINT16 DescriptionSize; 698 UINT8 Description[sizeof (TCG_SPDM_GET_MEASUREMENTS_DESCRIPTION)]; 699 UINT16 DataSize; 700 UINT8 Data[32]; 701 } TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_GET_MEASUREMENTS; 702 703 typedef struct { 704 TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT Header; 705 UINT16 DescriptionSize; 706 UINT8 Description[sizeof (TCG_SPDM_MEASUREMENTS_DESCRIPTION)]; 707 UINT16 DataSize; 708 UINT8 Data[32]; 709 } TCG_NV_INDEX_DYNAMIC_EVENT_LOG_STRUCT_SPDM_MEASUREMENTS; 710 711 #pragma pack() 712 495 713 #endif -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Library/BaseLib.h
r101291 r105670 193 193 194 194 VOID 195 RiscVSetSupervisorTimeCompareRegister ( 196 IN UINT64 197 ); 198 199 VOID 195 200 RiscVEnableTimerInterrupt ( 196 201 VOID … … 205 210 RiscVClearPendingTimerInterrupt ( 206 211 VOID 212 ); 213 214 /** 215 RISC-V invalidate instruction cache. 216 217 **/ 218 VOID 219 EFIAPI 220 RiscVInvalidateInstCacheFenceAsm ( 221 VOID 222 ); 223 224 /** 225 RISC-V invalidate data cache. 226 227 **/ 228 VOID 229 EFIAPI 230 RiscVInvalidateDataCacheFenceAsm ( 231 VOID 232 ); 233 234 /** 235 RISC-V flush cache block. Atomically perform a clean operation 236 followed by an invalidate operation 237 238 **/ 239 VOID 240 EFIAPI 241 RiscVCpuCacheFlushCmoAsm ( 242 IN UINTN 243 ); 244 245 /** 246 Perform a write transfer to another cache or to memory if the 247 data in the copy of the cache block have been modified by a store 248 operation 249 250 **/ 251 VOID 252 EFIAPI 253 RiscVCpuCacheCleanCmoAsm ( 254 IN UINTN 255 ); 256 257 /** 258 Deallocate the copy of the cache block 259 260 **/ 261 VOID 262 EFIAPI 263 RiscVCpuCacheInvalCmoAsm ( 264 IN UINTN 207 265 ); 208 266 … … 230 288 #define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8 231 289 290 /* 291 * Set the exception base address for LoongArch. 292 * 293 * @param ExceptionBaseAddress The exception base address, must be aligned greater than or qeual to 4K . 294 */ 295 VOID 296 SetExceptionBaseAddress ( 297 IN UINT64 298 ); 299 300 /* 301 * Set the TlbRebase address for LoongArch. 302 * 303 * @param TlbRebaseAddress The TlbRebase address, must be aligned greater than or qeual to 4K . 304 */ 305 VOID 306 SetTlbRebaseAddress ( 307 IN UINT64 308 ); 309 310 /** 311 Enables local CPU interrupts. 312 313 @param Needs to enable local interrupt bit. 314 **/ 315 VOID 316 EnableLocalInterrupts ( 317 IN UINT16 318 ); 319 320 /** 321 Disables local CPU interrupts. 322 323 @param Needs to disable local interrupt bit. 324 **/ 325 VOID 326 DisableLocalInterrupts ( 327 IN UINT16 328 ); 329 330 /** 331 Read CPUCFG register. 332 333 @param Index Specifies the register number of the CPUCFG to read the data. 334 @param Data A pointer to the variable used to store the CPUCFG register value. 335 **/ 336 VOID 337 AsmCpucfg ( 338 IN UINT32 Index, 339 OUT UINT32 *Data 340 ); 341 342 /** 343 Gets the timer count value. 344 345 @param[] VOID 346 @retval timer count value. 347 348 **/ 349 UINTN 350 AsmReadStableCounter ( 351 VOID 352 ); 353 354 /** 355 CSR read operation. 356 357 @param[in] Select CSR read instruction select values. 358 359 @return The return value of csrrd instruction, return -1 means no CSR instruction 360 is found. 361 **/ 362 UINTN 363 CsrRead ( 364 IN UINT16 Select 365 ); 366 367 /** 368 CSR write operation. 369 370 @param[in] Select CSR write instruction select values. 371 @param[in] Value The csrwr will write the value. 372 373 @return The return value of csrwr instruction, that is, store the old value of 374 the register, return -1 means no CSR instruction is found. 375 **/ 376 UINTN 377 CsrWrite ( 378 IN UINT16 Select, 379 IN UINTN Value 380 ); 381 382 /** 383 CSR exchange operation. 384 385 @param[in] Select CSR exchange instruction select values. 386 @param[in] Value The csrxchg will write the value. 387 @param[in] Mask The csrxchg mask value. 388 389 @return The return value of csrxchg instruction, that is, store the old value of 390 the register, return -1 means no CSR instruction is found. 391 **/ 392 UINTN 393 CsrXChg ( 394 IN UINT16 Select, 395 IN UINTN Value, 396 IN UINTN Mask 397 ); 398 399 /** 400 IO CSR read byte operation. 401 402 @param[in] Select IO CSR read instruction select values. 403 404 @return The return value of iocsrrd.b instruction. 405 406 **/ 407 UINT8 408 IoCsrRead8 ( 409 IN UINTN Select 410 ); 411 412 /** 413 IO CSR read half word operation. 414 415 @param[in] Select IO CSR read instruction select values. 416 417 @return The return value of iocsrrd.h instruction. 418 419 **/ 420 UINT16 421 IoCsrRead16 ( 422 IN UINTN Select 423 ); 424 425 /** 426 IO CSR read word operation. 427 428 @param[in] Select IO CSR read instruction select values. 429 430 @return The return value of iocsrrd.w instruction. 431 432 **/ 433 UINT32 434 IoCsrRead32 ( 435 IN UINTN Select 436 ); 437 438 /** 439 IO CSR read double word operation. Only for LoongArch64. 440 441 @param[in] Select IO CSR read instruction select values. 442 443 @return The return value of iocsrrd.d instruction. 444 445 **/ 446 UINT64 447 IoCsrRead64 ( 448 IN UINTN Select 449 ); 450 451 /** 452 IO CSR write byte operation. 453 454 @param[in] Select IO CSR write instruction select values. 455 @param[in] Value The iocsrwr.b will write the value. 456 457 @return VOID. 458 459 **/ 460 VOID 461 IoCsrWrite8 ( 462 IN UINTN Select, 463 IN UINT8 Value 464 ); 465 466 /** 467 IO CSR write half word operation. 468 469 @param[in] Select IO CSR write instruction select values. 470 @param[in] Value The iocsrwr.h will write the value. 471 472 @return VOID. 473 474 **/ 475 VOID 476 IoCsrWrite16 ( 477 IN UINTN Select, 478 IN UINT16 Value 479 ); 480 481 /** 482 IO CSR write word operation. 483 484 @param[in] Select IO CSR write instruction select values. 485 @param[in] Value The iocsrwr.w will write the value. 486 487 @return VOID. 488 489 **/ 490 VOID 491 IoCsrWrite32 ( 492 IN UINTN Select, 493 IN UINT32 Value 494 ); 495 496 /** 497 IO CSR write double word operation. Only for LoongArch64. 498 499 @param[in] Select IO CSR write instruction select values. 500 @param[in] Value The iocsrwr.d will write the value. 501 502 @return VOID. 503 504 **/ 505 VOID 506 IoCsrWrite64 ( 507 IN UINTN Select, 508 IN UINT64 Value 509 ); 510 232 511 #endif // defined (MDE_CPU_LOONGARCH64) 233 512 … … 4599 4878 IN UINT16 InitialValue 4600 4879 ); 4880 4881 // 4882 // Initial value for the CRC16-ANSI algorithm, when no prior checksum has been calculated. 4883 // 4884 #define CRC16ANSI_INIT 0xffff 4601 4885 4602 4886 /** … … 7593 7877 ); 7594 7878 7879 /// 7880 /// The structure used to supply and return data to and from the SVSM. 7881 /// 7882 typedef struct { 7883 VOID *Caa; 7884 UINT64 RaxIn; 7885 UINT64 RcxIn; 7886 UINT64 RdxIn; 7887 UINT64 R8In; 7888 UINT64 R9In; 7889 UINT64 RaxOut; 7890 UINT64 RcxOut; 7891 UINT64 RdxOut; 7892 UINT64 R8Out; 7893 UINT64 R9Out; 7894 UINT8 *CallPending; 7895 } SVSM_CALL_DATA; 7896 7897 /** 7898 Executes a VMGEXIT instruction (VMMCALL with a REP prefix) with arguments 7899 and return code 7900 7901 Executes a VMGEXIT instruction placing the specified arguments in the 7902 corresponding registers before invocation. Upon return an XCHG is done to 7903 atomically clear and retrieve the SVSM call pending value. The returned RAX 7904 register value becomes the function return code. This function is intended 7905 for use with an SVSM. This function is only available on IA-32 and x64. 7906 7907 @param[in,out] SvsmCallPending Pointer to the location of the SVSM call data 7908 7909 @return Value of the RAX register on return 7910 7911 **/ 7912 UINT32 7913 EFIAPI 7914 AsmVmgExitSvsm ( 7915 IN OUT SVSM_CALL_DATA *SvsmCallData 7916 ); 7917 7595 7918 /** 7596 7919 Patch the immediate operand of an IA32 or X64 instruction such that the byte, -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Library/CpuLib.h
r101291 r105670 9 9 10 10 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> 11 Copyright (c) 2024, Loongson Technology Corporation Limited. All rights reserved.<BR> 11 12 SPDX-License-Identifier: BSD-2-Clause-Patent 12 13 … … 42 43 ); 43 44 44 #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64) 45 #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64) || defined (MDE_CPU_LOONGARCH64) 45 46 46 47 /** 48 Initialize the CPU floating point units. 49 47 50 Initializes floating point units for requirement of UEFI specification. 48 This function initializes floating-point control word to 0x027F (all exceptions49 masked,double-precision, round-to-nearest) and multimedia-extensions control word50 (if supported) to 0x1F80 (all exceptions masked, round-to-nearest, flush to zero51 f or masked underflow).51 For IA32 and X64, this function initializes floating-point control word to 0x027F 52 (all exceptions masked,double-precision, round-to-nearest) and multimedia-extensions 53 control word (if supported) to 0x1F80 (all exceptions masked, round-to-nearest, 54 flush to zero for masked underflow). 52 55 **/ 53 56 VOID … … 56 59 VOID 57 60 ); 61 62 #endif 63 64 #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64) 58 65 59 66 /** … … 90 97 #endif 91 98 99 #if defined (MDE_CPU_LOONGARCH64) 100 101 /** 102 Enable the CPU floating point units. 103 104 Enable the CPU floating point units. 105 **/ 106 VOID 107 EFIAPI 108 EnableFloatingPointUnits ( 109 VOID 110 ); 111 112 /** 113 Disable the CPU floating point units. 114 115 Disable the CPU floating point units. 116 **/ 117 VOID 118 EFIAPI 119 DisableFloatingPointUnits ( 120 VOID 121 ); 122 92 123 #endif 124 125 #endif -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Library/DebugLib.h
r101291 r105670 49 49 #define DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may 50 50 // significantly impact boot performance 51 #define DEBUG_MANAGEABILITY 0x00800000 // Detailed debug and payload m essage of manageability52 // related modules, such Redfish, IPMI, MCTP andetc.51 #define DEBUG_MANAGEABILITY 0x00800000 // Detailed debug and payload manageability messages 52 // related to modules such as Redfish, IPMI, MCTP etc. 53 53 #define DEBUG_ERROR 0x80000000 // Error 54 54 … … 376 376 } \ 377 377 } while (FALSE) 378 #define _DEBUG (Expression) _DEBUG_PRINT Expression379 #else 380 #define _DEBUG (Expression) DebugPrint Expression378 #define _DEBUGLIB_DEBUG(Expression) _DEBUG_PRINT Expression 379 #else 380 #define _DEBUGLIB_DEBUG(Expression) DebugPrint Expression 381 381 #endif 382 382 … … 423 423 do { \ 424 424 if (DebugPrintEnabled ()) { \ 425 _DEBUG (Expression); \425 _DEBUGLIB_DEBUG (Expression); \ 426 426 } \ 427 427 } while (FALSE) -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Library/FdtLib.h
r101291 r105670 399 399 ); 400 400 401 /** 402 Returns the name of a given node. 403 404 @param[in] Fdt The pointer to FDT blob. 405 @param[in] NodeOffse Offset of node to check. 406 @param[in] Length The pointer to an integer variable (will be overwritten) or NULL. 407 408 @return The pointer to the node's name. 409 410 **/ 411 CONST CHAR8 * 412 EFIAPI 413 FdtGetName ( 414 IN VOID *Fdt, 415 IN INT32 NodeOffset, 416 IN INT32 *Length 417 ); 418 419 /** 420 FdtNodeDepth() finds the depth of a given node. The root node 421 has depth 0, its immediate subnodes depth 1 and so forth. 422 423 @param[in] Fdt The pointer to FDT blob. 424 @param[in] NodeOffset Offset of node to check. 425 426 @return Depth of the node at NodeOffset. 427 **/ 428 INT32 429 EFIAPI 430 FdtNodeDepth ( 431 IN CONST VOID *Fdt, 432 IN INT32 NodeOffset 433 ); 434 401 435 #endif /* FDT_LIB_H_ */ -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Library/PeiServicesTablePointerLib.h
r99404 r105670 53 53 For X64 CPUs, the PEI Services Table pointer is stored in the 8 bytes 54 54 immediately preceding the Interrupt Descriptor Table (IDT) in memory. 55 For Itanium and ARM CPUs, a the PEI Services Table Pointer is stored in 56 a dedicated CPU register. This means that there is no memory storage 57 associated with storing the PEI Services Table pointer, so no additional 58 migration actions are required for Itanium or ARM CPUs. 55 For Itanium, ARM and LoongArch CPUs, a the PEI Services Table Pointer 56 is stored in a dedicated CPU register. This means that there is no 57 memory storage associated with storing the PEI Services Table pointer, 58 so no additional migration actions are required for Itanium, ARM and 59 LoongArch CPUs. 59 60 60 61 **/ -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Library/RngLib.h
r99404 r105670 2 2 Provides random number generator services. 3 3 4 Copyright (c) 2023, Arm Limited. All rights reserved.<BR> 4 5 Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> 5 6 SPDX-License-Identifier: BSD-2-Clause-Patent … … 78 79 ); 79 80 81 /** 82 Get a GUID identifying the RNG algorithm implementation. 83 84 @param [out] RngGuid If success, contains the GUID identifying 85 the RNG algorithm implementation. 86 87 @retval EFI_SUCCESS Success. 88 @retval EFI_UNSUPPORTED Not supported. 89 @retval EFI_INVALID_PARAMETER Invalid parameter. 90 **/ 91 EFI_STATUS 92 EFIAPI 93 GetRngGuid ( 94 GUID *RngGuid 95 ); 96 80 97 #endif // __RNG_LIB_H__ -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Library/UefiRuntimeLib.h
r99404 r105670 65 65 @retval EFI_INVALID_PARAMETER Time is NULL. 66 66 @retval EFI_DEVICE_ERROR The time could not be retrieved due to a hardware error. 67 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 68 The platform should describe this runtime service as unsupported at runtime 69 via an EFI_RT_PROPERTIES_TABLE configuration table. 67 70 68 71 **/ … … 94 97 @retval EFI_INVALID_PARAMETER A time field is out of range. 95 98 @retval EFI_DEVICE_ERROR The time could not be set due to a hardware error. 99 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 100 The platform should describe this runtime service as unsupported at runtime 101 via an EFI_RT_PROPERTIES_TABLE configuration table. 96 102 97 103 **/ … … 120 126 @retval EFI_INVALID_PARAMETER Time is NULL. 121 127 @retval EFI_DEVICE_ERROR The wakeup time could not be retrieved due to a hardware error. 122 @retval EFI_UNSUPPORTED A wakeup timer is not supported on this platform. 128 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 129 The platform should describe this runtime service as unsupported at runtime 130 via an EFI_RT_PROPERTIES_TABLE configuration table. 123 131 124 132 **/ … … 150 158 @retval EFI_INVALID_PARAMETER A time field is out of range. 151 159 @retval EFI_DEVICE_ERROR The wakeup time could not be set due to a hardware error. 152 @retval EFI_UNSUPPORTED A wakeup timer is not supported on this platform. 160 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 161 The platform should describe this runtime service as unsupported at runtime 162 via an EFI_RT_PROPERTIES_TABLE configuration table. 153 163 154 164 **/ … … 189 199 @retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error. 190 200 @retval EFI_SECURITY_VIOLATION The variable could not be retrieved due to an authentication failure. 201 @retval EFI_UNSUPPORTED After ExitBootServices() has been called, this return code may be returned 202 if no variable storage is supported. The platform should describe this 203 runtime service as unsupported at runtime via an EFI_RT_PROPERTIES_TABLE 204 configuration table. 191 205 **/ 192 206 EFI_STATUS … … 228 242 @retval EFI_INVALID_PARAMETER VendorGuid is NULL. 229 243 @retval EFI_DEVICE_ERROR The variable name could not be retrieved due to a hardware error. 244 @retval EFI_UNSUPPORTED After ExitBootServices() has been called, this return code may be returned 245 if no variable storage is supported. The platform should describe this 246 runtime service as unsupported at runtime via an EFI_RT_PROPERTIES_TABLE 247 configuration table. 230 248 231 249 **/ … … 265 283 out by the firmware. 266 284 @retval EFI_NOT_FOUND The variable trying to be updated or deleted was not found. 285 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 286 The platform should describe this runtime service as unsupported at runtime 287 via an EFI_RT_PROPERTIES_TABLE configuration table. 267 288 268 289 **/ … … 291 312 @retval EFI_DEVICE_ERROR The device is not functioning properly. 292 313 @retval EFI_INVALID_PARAMETER HighCount is NULL. 314 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 315 The platform should describe this runtime service as unsupported at runtime 316 via an EFI_RT_PROPERTIES_TABLE configuration table. 317 293 318 294 319 **/ … … 351 376 the current memory map. This is normally fatal. 352 377 @retval EFI_INVALID_PARAMETER Address is NULL. 353 @retval EFI_INVALID_PARAMETER *Address is NULL and DebugDispositio 378 @retval EFI_INVALID_PARAMETER *Address is NULL and DebugDisposition does 379 not have the EFI_OPTIONAL_PTR bit set. 380 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 381 The platform should describe this runtime service as unsupported at runtime 382 via an EFI_RT_PROPERTIES_TABLE configuration table. 354 383 355 384 **/ … … 415 444 @retval EFI_NOT_FOUND A virtual address was supplied for an address that is not found 416 445 in the memory map. 446 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 447 The platform should describe this runtime service as unsupported at runtime 448 via an EFI_RT_PROPERTIES_TABLE configuration table. 417 449 **/ 418 450 EFI_STATUS … … 479 511 @retval EFI_UNSUPPORTED The capsule type is not supported on this platform. 480 512 @retval EFI_OUT_OF_RESOURCES There were insufficient resources to process the capsule. 513 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 514 The platform should describe this runtime service as unsupported at runtime 515 via an EFI_RT_PROPERTIES_TABLE configuration table. 481 516 482 517 **/ … … 521 556 MaximumCapsuleSize and ResetType are undefined. 522 557 @retval EFI_OUT_OF_RESOURCES There were insufficient resources to process the query request. 558 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 559 The platform should describe this runtime service as unsupported at runtime 560 via an EFI_RT_PROPERTIES_TABLE configuration table. 523 561 524 562 **/ -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Pi/PiDxeCis.h
r99404 r105670 57 57 /// 58 58 EfiGcdMemoryTypeMoreReliable, 59 // /// 60 // /// A memory region that describes system memory that has not been accepted 61 // /// by a corresponding call to the underlying isolation architecture. 62 // /// 63 // /// Please be noted: 64 // /// EfiGcdMemoryTypeUnaccepted is defined in PrePiDxeCis.h because it has not been 65 // /// defined in PI spec. 66 // EfiGcdMemoryTypeUnaccepted, 59 /// 60 /// A memory region that describes system memory that has not been accepted 61 /// by a corresponding call to the underlying isolation architecture. 62 /// 63 EfiGcdMemoryTypeUnaccepted, 67 64 EfiGcdMemoryTypeMaximum = 7 68 65 } EFI_GCD_MEMORY_TYPE; -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Pi/PiHob.h
r99404 r105670 233 233 #define EFI_RESOURCE_MEMORY_RESERVED 0x00000005 234 234 #define EFI_RESOURCE_IO_RESERVED 0x00000006 235 // 236 // BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED is defined for unaccepted memory. 237 // But this defitinion has not been officially in the PI spec. Base 238 // on the code-first we define BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED at 239 // MdeModulePkg/Include/Pi/PrePiHob.h and update EFI_RESOURCE_MAX_MEMORY_TYPE 240 // to 8. After BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED is officially published 241 // in PI spec, we will re-visit here. 242 // 243 // #define BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED 0x00000007 244 #define EFI_RESOURCE_MAX_MEMORY_TYPE 0x00000008 235 #define EFI_RESOURCE_MEMORY_UNACCEPTED 0x00000007 236 #define EFI_RESOURCE_MAX_MEMORY_TYPE 0x00000008 245 237 246 238 /// … … 298 290 #define EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE 0x00080000 299 291 292 #define EFI_RESOURCE_ATTRIBUTE_ENCRYPTED 0x04000000 293 #define EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE 0x08000000 300 294 // 301 295 // Physical memory relative reliability attribute. This -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Ppi/DelayedDispatch.h
r99404 r105670 50 50 @param Function Function to call back 51 51 @param Context Context data 52 @param UniqueId UniqueId 52 53 @param Delay Delay interval 53 54 … … 63 64 IN EFI_DELAYED_DISPATCH_FUNCTION Function, 64 65 IN UINT64 Context, 66 IN EFI_GUID *UniqueId OPTIONAL, 65 67 OUT UINT32 Delay 68 ); 69 70 /** 71 Function invoked by a PEIM to wait until all specified UniqueId events have been dispatched. The other events 72 will continue to dispatch while this process is being paused 73 74 @param This Pointer to the EFI_DELAYED_DISPATCH_PPI instance 75 @param UniqueId Delayed dispatch request ID the caller will wait on 76 77 @retval EFI_SUCCESS Function successfully invoked 78 @retval EFI_INVALID_PARAMETER One of the Arguments is not supported 79 80 **/ 81 82 typedef 83 EFI_STATUS 84 (EFIAPI *EFI_DELAYED_DISPATCH_WAIT_ON_EVENT)( 85 IN EFI_DELAYED_DISPATCH_PPI *This, 86 IN EFI_GUID UniqueId 66 87 ); 67 88 … … 73 94 /// 74 95 struct _EFI_DELAYED_DISPATCH_PPI { 75 EFI_DELAYED_DISPATCH_REGISTER Register; 96 EFI_DELAYED_DISPATCH_REGISTER Register; 97 EFI_DELAYED_DISPATCH_WAIT_ON_EVENT WaitOnEvent; 76 98 }; 77 99 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/AdapterInformation.h
r99404 r105670 141 141 This function returns information of type InformationType from the adapter. 142 142 If an adapter does not support the requested informational type, then 143 EFI_UNSUPPORTED is returned. 143 EFI_UNSUPPORTED is returned. If an adapter does not contain Information for 144 the requested InformationType, it fills InformationBlockSize with 0 and 145 returns EFI_NOT_FOUND. 144 146 145 147 @param[in] This A pointer to the EFI_ADAPTER_INFORMATION_PROTOCOL instance. … … 151 153 @retval EFI_SUCCESS The InformationType information was retrieved. 152 154 @retval EFI_UNSUPPORTED The InformationType is not known. 155 @retval EFI_NOT_FOUND Information is not available for the requested information type. 153 156 @retval EFI_DEVICE_ERROR The device reported an error. 154 157 @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources. -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/DebugSupport.h
r101291 r105670 684 684 // LoongArch processor exception types. 685 685 // 686 // The exception types is located in the CSR ESTAT 687 // register offset 16 bits, width 6 bits. 688 // 689 // If you want to register an exception hook, you can 690 // shfit the number left by 16 bits, and the exception 691 // handler will know the types. 692 // 693 // For example: 694 // mCpu->CpuRegisterInterruptHandler ( 695 // mCpu, 696 // (EXCEPT_LOONGARCH_PPI << CSR_ESTAT_EXC_SHIFT), 697 // PpiExceptionHandler 698 // ); 699 // 686 700 #define EXCEPT_LOONGARCH_INT 0 687 701 #define EXCEPT_LOONGARCH_PIL 1 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/DevicePath.h
r99404 r105670 837 837 UINT64 NamespaceUuid; 838 838 } NVME_NAMESPACE_DEVICE_PATH; 839 840 /// 841 /// NVMe over Fabric (NVMe-oF) Namespace Device Path SubType. 842 /// 843 #define MSG_NVME_OF_NAMESPACE_DP 0x22 844 typedef struct { 845 EFI_DEVICE_PATH_PROTOCOL Header; 846 /// 847 /// Namespace Identifier Type (NIDT) 848 /// 849 UINT8 NamespaceIdType; 850 /// 851 /// Namespace Identifier (NID) 852 /// 853 UINT8 NamespaceId[16]; 854 /// 855 /// Unique identifier of an NVM subsystem 856 /// 857 CHAR8 SubsystemNqn[]; 858 } NVME_OF_NAMESPACE_DEVICE_PATH; 839 859 840 860 /// … … 1288 1308 SASEX_DEVICE_PATH SasEx; 1289 1309 NVME_NAMESPACE_DEVICE_PATH NvmeNamespace; 1310 NVME_OF_NAMESPACE_DEVICE_PATH NvmeOfNamespace; 1290 1311 DNS_DEVICE_PATH Dns; 1291 1312 URI_DEVICE_PATH Uri; … … 1344 1365 SASEX_DEVICE_PATH *SasEx; 1345 1366 NVME_NAMESPACE_DEVICE_PATH *NvmeNamespace; 1367 NVME_OF_NAMESPACE_DEVICE_PATH *NvmeOfNamespace; 1346 1368 DNS_DEVICE_PATH *Dns; 1347 1369 URI_DEVICE_PATH *Uri; -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/DriverHealth.h
r99404 r105670 138 138 EfiDriverHealthStatusConfigurationRequired. 139 139 140 @retval EFI_SUCCESS ControllerHandle is NULL, and all the controllers 141 managed by this driver specified by This have a health 142 status of EfiDriverHealthStatusHealthy with no warning 143 messages to be returned. The ChildHandle, HealthStatus, 144 MessageList, and FormList parameters are ignored. 145 146 @retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the 147 controllers managed by this driver specified by This 148 do not have a health status of EfiDriverHealthStatusHealthy. 149 The ChildHandle, HealthStatus, MessageList, and 150 FormList parameters are ignored. 151 152 @retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the 153 controllers managed by this driver specified by This 154 have one or more warning and/or error messages. 155 The ChildHandle, HealthStatus, MessageList, and 156 FormList parameters are ignored. 157 158 @retval EFI_SUCCESS ControllerHandle is not NULL and the health status 159 of the controller specified by ControllerHandle and 160 ChildHandle was returned in HealthStatus. A list 161 of warning and error messages may be optionally 162 returned in MessageList, and a list of HII Forms 163 may be optionally returned in FormList. 140 @retval EFI_SUCCESS The health status of the controller specified by 141 ControllerHandle and ChildHandle was returned in HealthStatus. 142 A list of warning and error messages may be optionally 143 returned in MessageList, and an HII Form may be optionally 144 specified by FormHiiHandle. 164 145 165 146 @retval EFI_UNSUPPORTED ControllerHandle is not NULL, and the controller 166 147 specified by ControllerHandle and ChildHandle is not 167 148 currently being managed by the driver specified by This. 149 150 @retval EFI_UNSUPPORTED ControllerHandle is NULL and there are no devices being 151 managed by the driver. 168 152 169 153 @retval EFI_INVALID_PARAMETER HealthStatus is NULL. -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/FirmwareManagement.h
r99404 r105670 31 31 /// Dependency Expression Opcode 32 32 /// 33 #define EFI_FMP_DEP_PUSH_GUID 0x00 34 #define EFI_FMP_DEP_PUSH_VERSION 0x01 35 #define EFI_FMP_DEP_VERSION_STR 0x02 36 #define EFI_FMP_DEP_AND 0x03 37 #define EFI_FMP_DEP_OR 0x04 38 #define EFI_FMP_DEP_NOT 0x05 39 #define EFI_FMP_DEP_TRUE 0x06 40 #define EFI_FMP_DEP_FALSE 0x07 41 #define EFI_FMP_DEP_EQ 0x08 42 #define EFI_FMP_DEP_GT 0x09 43 #define EFI_FMP_DEP_GTE 0x0A 44 #define EFI_FMP_DEP_LT 0x0B 45 #define EFI_FMP_DEP_LTE 0x0C 46 #define EFI_FMP_DEP_END 0x0D 33 #define EFI_FMP_DEP_PUSH_GUID 0x00 34 #define EFI_FMP_DEP_PUSH_VERSION 0x01 35 #define EFI_FMP_DEP_VERSION_STR 0x02 36 #define EFI_FMP_DEP_AND 0x03 37 #define EFI_FMP_DEP_OR 0x04 38 #define EFI_FMP_DEP_NOT 0x05 39 #define EFI_FMP_DEP_TRUE 0x06 40 #define EFI_FMP_DEP_FALSE 0x07 41 #define EFI_FMP_DEP_EQ 0x08 42 #define EFI_FMP_DEP_GT 0x09 43 #define EFI_FMP_DEP_GTE 0x0A 44 #define EFI_FMP_DEP_LT 0x0B 45 #define EFI_FMP_DEP_LTE 0x0C 46 #define EFI_FMP_DEP_END 0x0D 47 #define EFI_FMP_DEP_DECLARE_LENGTH 0x0E 47 48 48 49 /// -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/FormBrowser2.h
r99404 r105670 56 56 #define EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD 7 57 57 #define EFI_BROWSER_ACTION_REQUEST_RECONNECT 8 58 #define EFI_BROWSER_ACTION_REQUEST_QUESTION_APPLY 9 58 59 59 60 /** … … 139 140 awaiting distribution. 140 141 141 @retval EFI_ OUT_OF_RESOURCESThe ResultsDataSize specified142 @retval EFI_BUFFER_TOO_SMALL The ResultsDataSize specified 142 143 was too small to contain the 143 144 results data. 145 146 @retval EFI_UNSUPPORTED Uncommitted browser state is not available 147 at the current stage of execution. 144 148 145 149 **/ -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/HiiConfigAccess.h
r99404 r105670 103 103 104 104 @retval EFI_INVALID_PARAMETER Unknown name. Progress points 105 to the &before the name in105 to the "&" before the name in 106 106 question. 107 108 @retval EFI_INVALID_PARAMETER If Results or Progress is NULL. 109 110 @retval EFI_ACCESS_DENIED The action violated a system policy. 111 112 @retval EFI_DEVICE_ERROR Failed to extract the current configuration 113 for one or more named elements. 107 114 108 115 **/ -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/NvdimmLabel.h
r99404 r105670 109 109 /// When set, the complete label set is local to a single NVDIMM Label Storage Area. 110 110 /// When clear, the complete label set is contained on multiple NVDIMM Label Storage Areas. 111 /// If NLabel is 1 then setting this flag is optional and it is implied that the 112 /// EFI_NVDIMM_LABEL_FLAGS_LOCAL flag is set as the complete label set is local to a single NVDIMM Label Storage Area. 111 113 /// 112 114 #define EFI_NVDIMM_LABEL_FLAGS_LOCAL 0x00000002 … … 123 125 #define EFI_NVDIMM_LABEL_FLAGS_UPDATING 0x00000008 124 126 127 /// 128 /// When set, the SPALocationCookie in the namespace label is valid and should match the 129 /// current value in the NFIT SPA Range Structure. 130 /// 131 #define EFI_NVDIMM_LABEL_FLAGS_SPACOOKIE_BOUND 0x00000010 132 125 133 typedef struct { 126 134 /// … … 198 206 199 207 /// 208 /// When creating the label, this value is set to the value from the NFIT SPA Range Structure if the 209 /// SPALocationCookie flag (bit 2) is set. If EFI_NVDIMM_LABEL_FLAGS_SPACOOKIE_BOUND is set, the SPALocationCookie 210 /// value stored in the namespace label should match the current value in the NFIT SPA Range Structure. 211 /// Otherwise, the data may not be read correctly. 212 /// 213 UINT64 SPALocationCookie; 214 215 /// 200 216 /// Shall be 0. 201 217 /// 202 UINT8 Reserved1[8 8];218 UINT8 Reserved1[80]; 203 219 204 220 /// -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/RestEx.h
r99404 r105670 132 132 request to the REST resource identified by RequestMessage.Request.Url. The 133 133 ResponseMessage is the returned HTTP response for that request, including any HTTP 134 status. 134 status. It's caller's responsibility to free this ResponseMessage using FreePool(). 135 RestConfigFreeHttpMessage() in RedfishLib is an example to release ResponseMessage structure. 135 136 136 137 @param[in] This Pointer to EFI_REST_EX_PROTOCOL instance for a particular -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/Rng.h
r99404 r105670 67 67 { \ 68 68 0xe43176d7, 0xb6e8, 0x4827, {0xb7, 0x84, 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61 } \ 69 } 70 /// 71 /// The Arm Architecture states the RNDR that the DRBG algorithm should be compliant 72 /// with NIST SP800-90A, while not mandating a particular algorithm, so as to be 73 /// inclusive of different geographies. 74 /// 75 #define EFI_RNG_ALGORITHM_ARM_RNDR \ 76 { \ 77 0x43d2fde3, 0x9d4e, 0x4d79, {0x02, 0x96, 0xa8, 0x9b, 0xca, 0x78, 0x08, 0x41} \ 69 78 } 70 79 … … 147 156 extern EFI_GUID gEfiRngAlgorithmX931AesGuid; 148 157 extern EFI_GUID gEfiRngAlgorithmRaw; 158 extern EFI_GUID gEfiRngAlgorithmArmRndr; 149 159 150 160 #endif -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/SimpleTextIn.h
r99404 r105670 101 101 @retval EFI_DEVICE_ERROR The keystroke information was not returned due to 102 102 hardware errors. 103 @retval EFI_UNSUPPORTED The device does not support the ability to read keystroke data. 103 104 104 105 **/ -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/SimpleTextInEx.h
r99404 r105670 187 187 @retval EFI_DEVICE_ERROR The keystroke information was not returned due to 188 188 hardware errors. 189 @retval EFI_UNSUPPORTED The device does not support the ability to read keystroke data. 189 190 190 191 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/SpiConfiguration.h
r99404 r105670 3 3 4 4 Copyright (c) 2017, Intel Corporation. All rights reserved.<BR> 5 Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. 5 6 SPDX-License-Identifier: BSD-2-Clause-Patent 6 7 7 8 @par Revision Reference: 8 This Protocol was introduced in UEFI PI Specification 1. 6.9 This Protocol was introduced in UEFI PI Specification 1.8 A. 9 10 10 11 **/ … … 170 171 171 172 /// 173 /// Definitions of SPI Part Attributes. 174 /// 175 #define SPI_PART_SUPPORTS_2_BIT_DATA_BUS_WIDTH BIT0 176 #define SPI_PART_SUPPORTS_4_BIT_DATA_BUS_WIDTH BIT1 177 #define SPI_PART_SUPPORTS_8_BIT_DATA_BUS_WIDTH BIT2 178 179 /// 172 180 /// The EFI_SPI_PERIPHERAL data structure describes how a specific block of 173 181 /// logic which is connected to the SPI bus. This data structure also selects -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/SpiHc.h
r99404 r105670 3 3 4 4 Copyright (c) 2017, Intel Corporation. All rights reserved.<BR> 5 Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. 5 6 SPDX-License-Identifier: BSD-2-Clause-Patent 6 7 7 8 @par Revision Reference: 8 This Protocol was introduced in UEFI PI Specification 1. 6.9 This Protocol was introduced in UEFI PI Specification 1.8 A. 9 10 10 11 **/ … … 122 123 ); 123 124 125 /// 126 /// Definitions of SPI Host Controller Attributes. 127 /// 128 #define HC_SUPPORTS_WRITE_ONLY_OPERATIONS BIT0 129 #define HC_SUPPORTS_READ_ONLY_OPERATIONS BIT1 130 #define HC_SUPPORTS_WRITE_THEN_READ_OPERATIONS BIT2 131 #define HC_TX_FRAME_IN_MOST_SIGNIFICANT_BITS BIT3 132 #define HC_RX_FRAME_IN_MOST_SIGNIFICANT_BITS BIT4 133 #define HC_SUPPORTS_2_BIT_DATA_BUS_WIDTH BIT5 134 #define HC_SUPPORTS_4_BIT_DATA_BUS_WIDTH BIT6 135 #define HC_SUPPORTS_8_BIT_DATA_BUS_WIDTH BIT7 136 #define HC_TRANSFER_SIZE_INCLUDES_OPCODE BIT8 137 #define HC_TRANSFER_SIZE_INCLUDES_ADDRESS BIT9 124 138 /// 125 139 /// Support a SPI data transaction between the SPI controller and a SPI chip. -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/SpiIo.h
r99404 r105670 3 3 4 4 Copyright (c) 2017, Intel Corporation. All rights reserved.<BR> 5 Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. 5 6 SPDX-License-Identifier: BSD-2-Clause-Patent 6 7 7 8 @par Revision Reference: 8 This Protocol was introduced in UEFI PI Specification 1. 6.9 This Protocol was introduced in UEFI PI Specification 1.8 A. 9 10 10 11 **/ … … 225 226 226 227 /// 228 /// Definitions of SPI I/O Attributes. 229 /// 230 #define SPI_IO_SUPPORTS_2_BIT_DATA_BUS_WIDTH BIT0 231 #define SPI_IO_SUPPORTS_4_BIT_DATA_BUS_WIDTH BIT1 232 #define SPI_IO_SUPPORTS_8_BIT_DATA_BUS_WIDTH BIT2 233 #define SPI_IO_TRANSFER_SIZE_INCLUDES_OPCODE BIT3 234 #define SPI_IO_TRANSFER_SIZE_INCLUDES_ADDRESS BIT4 235 236 /// 227 237 /// Support managed SPI data transactions between the SPI controller and a SPI 228 238 /// chip. -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/StorageSecurityCommand.h
r99404 r105670 60 60 61 61 @param This Indicates a pointer to the calling context. 62 @param MediaId ID of the medium to receive data from. 62 @param MediaId ID of the medium to receive data from. If there is no 63 block IO protocol supported by the physical device, the 64 value of MediaId is undefined. 63 65 @param Timeout The timeout, in 100ns units, to use for the execution 64 66 of the security protocol command. A Timeout value of 0 … … 139 141 140 142 @param This Indicates a pointer to the calling context. 141 @param MediaId ID of the medium to receive data from. 143 @param MediaId ID of the medium to receive data from. If there is no 144 block IO protocol supported by the physical device, the 145 value of MediaId is undefined. 142 146 @param Timeout The timeout, in 100ns units, to use for the execution 143 147 of the security protocol command. A Timeout value of 0 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Protocol/Tcp6.h
r99404 r105670 193 193 /// 194 194 /// Set it to TRUE to enable TCP timestamps option as defined in 195 /// RFC 1323. Set to FALSE to disable it.195 /// RFC7323. Set to FALSE to disable it. 196 196 /// 197 197 BOOLEAN EnableTimeStamp; 198 198 /// 199 199 /// Set it to TRUE to enable TCP window scale option as defined in 200 /// RFC 1323. Set it to FALSE to disable it.200 /// RFC7323. Set it to FALSE to disable it. 201 201 /// 202 202 BOOLEAN EnableWindowScaling; -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Register/Amd/Cpuid.h
r99404 r105670 7 7 not provided for that register. 8 8 9 Copyright (c) 2017 , Advanced Micro Devices. All rights reserved.<BR>9 Copyright (c) 2017 - 2024, Advanced Micro Devices. All rights reserved.<BR> 10 10 11 11 SPDX-License-Identifier: BSD-2-Clause-Patent … … 44 44 45 45 /** 46 CPUID Extended Topology Enumeration 47 48 @note 49 Reference: AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions, 50 Revision 3.35 Appendix E, 51 E.4.24 Function 8000_0026—Extended CPU Topology: 52 CPUID Fn8000_0026 reports extended topology information for logical processors, including 53 asymmetric and heterogenous topology descriptions. Individual logical processors may report 54 different values in systems with asynchronous and heterogeneous topologies. 55 The topology level is selected by the value passed to the instruction in ECX. To discover the topology 56 of a system, software should execute CPUID Fn8000_0026 with increasing ECX values, starting with 57 a value of zero, until the returned hierarchy level type (CPUID Fn8000_0026_ECX[LevelType]) is 58 equal to zero. It is not guaranteed that all topology level types are present in the system 59 60 @param EAX AMD_CPUID_EXTENDED_TOPOLOGY (0x80000026) 61 @param ECX Level number 62 63 **/ 64 #define AMD_CPUID_EXTENDED_TOPOLOGY 0x80000026 65 66 /** 46 67 CPUID Extended Processor Signature and Features 47 68 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Register/Amd/Fam17Msr.h
r99404 r105670 7 7 provided for that MSR. 8 8 9 Copyright (c) 2017 , Advanced Micro Devices. All rights reserved.<BR>9 Copyright (c) 2017 - 2024, Advanced Micro Devices. All rights reserved.<BR> 10 10 SPDX-License-Identifier: BSD-2-Clause-Patent 11 11 … … 72 72 } SnpPageStateChangeResponse; 73 73 74 struct { 75 UINT64 Function : 12; 76 UINT64 Reserved1 : 20; 77 UINT64 Vmpl : 8; 78 UINT64 Reserved2 : 56; 79 } SnpVmplRequest; 80 81 struct { 82 UINT32 Function : 12; 83 UINT32 Reserved : 20; 84 UINT32 ErrorCode; 85 } SnpVmplResponse; 86 74 87 VOID *Ghcb; 75 88 76 89 UINT64 GhcbPhysicalAddress; 90 91 UINT64 Uint64; 77 92 } MSR_SEV_ES_GHCB_REGISTER; 78 93 … … 85 100 #define GHCB_INFO_SNP_PAGE_STATE_CHANGE_REQUEST 20 86 101 #define GHCB_INFO_SNP_PAGE_STATE_CHANGE_RESPONSE 21 102 #define GHCB_INFO_SNP_VMPL_REQUEST 22 103 #define GHCB_INFO_SNP_VMPL_RESPONSE 23 87 104 #define GHCB_HYPERVISOR_FEATURES_REQUEST 128 88 105 #define GHCB_HYPERVISOR_FEATURES_RESPONSE 129 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Register/Amd/Ghcb.h
r99404 r105670 5 5 using the GHCB protocol. 6 6 7 Copyright (C) 2020 , Advanced Micro Devices, Inc. All rights reserved.<BR>7 Copyright (C) 2020 - 2024, Advanced Micro Devices, Inc. All rights reserved.<BR> 8 8 SPDX-License-Identifier: BSD-2-Clause-Patent 9 9 … … 57 57 #define SVM_EXIT_SNP_PAGE_STATE_CHANGE 0x80000010ULL 58 58 #define SVM_EXIT_SNP_AP_CREATION 0x80000013ULL 59 #define SVM_EXIT_GET_APIC_IDS 0x80000017ULL 59 60 #define SVM_EXIT_HYPERVISOR_FEATURES 0x8000FFFDULL 60 61 #define SVM_EXIT_UNSUPPORTED 0x8000FFFFULL … … 171 172 #define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION (GHCB_HV_FEATURES_SNP_AP_CREATE | BIT2) 172 173 #define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION_TIMER (GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION | BIT3) 174 #define GHCB_HV_FEATURES_APIC_ID_LIST BIT4 173 175 174 176 // … … 196 198 } SNP_PAGE_STATE_HEADER; 197 199 198 #define SNP_PAGE_STATE_MAX_ENTRY 253199 200 200 typedef struct { 201 201 SNP_PAGE_STATE_HEADER Header; 202 SNP_PAGE_STATE_ENTRY Entry[ SNP_PAGE_STATE_MAX_ENTRY];202 SNP_PAGE_STATE_ENTRY Entry[]; 203 203 } SNP_PAGE_STATE_CHANGE_INFO; 204 205 #define SNP_PAGE_STATE_MAX_ENTRY \ 206 ((sizeof (((GHCB *)0)->SharedBuffer) - sizeof (SNP_PAGE_STATE_HEADER)) / sizeof (SNP_PAGE_STATE_ENTRY)) 207 208 // 209 // Get APIC IDs 210 // 211 typedef struct { 212 UINT32 NumEntries; 213 UINT32 ApicIds[]; 214 } GHCB_APIC_IDS; 204 215 205 216 // -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Register/Amd/Msr.h
r85718 r105670 7 7 provided for that MSR. 8 8 9 Copyright (c) 2017 - 20 19, Advanced Micro Devices. All rights reserved.<BR>9 Copyright (c) 2017 - 2024, Advanced Micro Devices. All rights reserved.<BR> 10 10 SPDX-License-Identifier: BSD-2-Clause-Patent 11 11 … … 20 20 #include <Register/Intel/ArchitecturalMsr.h> 21 21 #include <Register/Amd/Fam17Msr.h> 22 #include <Register/Amd/SvsmMsr.h> 22 23 23 24 #endif -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Register/RiscV64/RiscVEncoding.h
r101291 r105670 97 97 #define CSR_SATP 0x180 98 98 99 /* Sstc extension */ 100 #define CSR_STIMECMP 0x14D 101 99 102 /* Trap/Exception Causes */ 100 103 #define CAUSE_MISALIGNED_FETCH 0x0 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Uefi/UefiInternalFormRepresentation.h
r99404 r105670 1697 1697 EfiKeyPrint, 1698 1698 EfiKeySLck, 1699 EfiKeyPause 1699 EfiKeyPause, 1700 EfiKeyIntl0, 1701 EfiKeyIntl1, 1702 EfiKeyIntl2, 1703 EfiKeyIntl3, 1704 EfiKeyIntl4, 1705 EfiKeyIntl5, 1706 EfiKeyIntl6, 1707 EfiKeyIntl7, 1708 EfiKeyIntl8, 1709 EfiKeyIntl9 1700 1710 } EFI_KEY; 1701 1711 -
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Uefi/UefiSpec.h
r99404 r105670 110 110 // 111 111 #define EFI_MEMORY_RUNTIME 0x8000000000000000ULL 112 113 // 114 // If this flag is set, the memory region is 115 // described with additional ISA-specific memory attributes 116 // as specified in EFI_MEMORY_ISA_MASK. 117 // 118 #define EFI_MEMORY_ISA_VALID 0x4000000000000000ULL 119 120 // 121 // Defines the bits reserved for describing optional ISA-specific cacheability 122 // attributes that are not covered by the standard UEFI Memory Attributes cacheability 123 // bits (EFI_MEMORY_UC, EFI_MEMORY_WC, EFI_MEMORY_WT, EFI_MEMORY_WB and EFI_MEMORY_UCE). 124 // See Calling Conventions for further ISA-specific enumeration of these bits. 125 // 126 #define EFI_MEMORY_ISA_MASK 0x0FFFF00000000000ULL 112 127 113 128 // … … 306 321 @retval EFI_NOT_FOUND A virtual address was supplied for an address that is not found 307 322 in the memory map. 323 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 324 The platform should describe this runtime service as unsupported at runtime 325 via an EFI_RT_PROPERTIES_TABLE configuration table. 308 326 309 327 **/ … … 396 414 397 415 @retval EFI_SUCCESS The pointer pointed to by Address was modified. 398 @retval EFI_INVALID_PARAMETER 1) Address is NULL.399 2) *Address is NULL and DebugDisposition does400 not have the EFI_OPTIONAL_PTR bit set.401 416 @retval EFI_NOT_FOUND The pointer pointed to by Address was not found to be part 402 417 of the current memory map. This is normally fatal. 418 @retval EFI_INVALID_PARAMETER Address is NULL. 419 @retval EFI_INVALID_PARAMETER *Address is NULL and DebugDisposition does 420 not have the EFI_OPTIONAL_PTR bit set. 421 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 422 The platform should describe this runtime service as unsupported at runtime 423 via an EFI_RT_PROPERTIES_TABLE configuration table. 403 424 404 425 **/ … … 665 686 @retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error. 666 687 @retval EFI_SECURITY_VIOLATION The variable could not be retrieved due to an authentication failure. 688 @retval EFI_UNSUPPORTED After ExitBootServices() has been called, this return code may be returned 689 if no variable storage is supported. The platform should describe this 690 runtime service as unsupported at runtime via an EFI_RT_PROPERTIES_TABLE 691 configuration table. 667 692 668 693 **/ … … 701 726 the input VariableName buffer. 702 727 @retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error. 728 @retval EFI_UNSUPPORTED After ExitBootServices() has been called, this return code may be returned 729 if no variable storage is supported. The platform should describe this 730 runtime service as unsupported at runtime via an EFI_RT_PROPERTIES_TABLE 731 configuration table. 703 732 704 733 **/ … … 743 772 744 773 @retval EFI_NOT_FOUND The variable trying to be updated or deleted was not found. 774 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 775 The platform should describe this runtime service as unsupported at runtime 776 via an EFI_RT_PROPERTIES_TABLE configuration table. 745 777 746 778 **/ … … 795 827 @retval EFI_INVALID_PARAMETER Time is NULL. 796 828 @retval EFI_DEVICE_ERROR The time could not be retrieved due to hardware error. 829 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 830 The platform should describe this runtime service as unsupported at runtime 831 via an EFI_RT_PROPERTIES_TABLE configuration table. 797 832 798 833 **/ … … 812 847 @retval EFI_INVALID_PARAMETER A time field is out of range. 813 848 @retval EFI_DEVICE_ERROR The time could not be set due due to hardware error. 849 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 850 The platform should describe this runtime service as unsupported at runtime 851 via an EFI_RT_PROPERTIES_TABLE configuration table. 814 852 815 853 **/ … … 832 870 @retval EFI_INVALID_PARAMETER Time is NULL. 833 871 @retval EFI_DEVICE_ERROR The wakeup time could not be retrieved due to a hardware error. 834 @retval EFI_UNSUPPORTED A wakeup timer is not supported on this platform. 872 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 873 The platform should describe this runtime service as unsupported at runtime 874 via an EFI_RT_PROPERTIES_TABLE configuration table. 835 875 836 876 **/ … … 854 894 @retval EFI_INVALID_PARAMETER A time field is out of range. 855 895 @retval EFI_DEVICE_ERROR The wakeup time could not be set due to a hardware error. 856 @retval EFI_UNSUPPORTED A wakeup timer is not supported on this platform. 896 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 897 The platform should describe this runtime service as unsupported at runtime 898 via an EFI_RT_PROPERTIES_TABLE configuration table. 857 899 858 900 **/ … … 899 941 IN BOOLEAN BootPolicy, 900 942 IN EFI_HANDLE ParentImageHandle, 901 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ,943 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL, 902 944 IN VOID *SourceBuffer OPTIONAL, 903 945 IN UINTN SourceSize, … … 1076 1118 @retval EFI_INVALID_PARAMETER HighCount is NULL. 1077 1119 @retval EFI_DEVICE_ERROR The device is not functioning properly. 1120 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 1121 The platform should describe this runtime service as unsupported at runtime 1122 via an EFI_RT_PROPERTIES_TABLE configuration table. 1078 1123 1079 1124 **/ … … 1649 1694 UINT32 Flags; 1650 1695 /// 1651 /// Size in bytes of the capsule .1696 /// Size in bytes of the capsule (including capsule header). 1652 1697 /// 1653 1698 UINT32 CapsuleImageSize; … … 1702 1747 @retval EFI_OUT_OF_RESOURCES When ExitBootServices() has not been previously called then this error indicates 1703 1748 the capsule is compatible with this platform but there are insufficient resources to process. 1749 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 1750 The platform should describe this runtime service as unsupported at runtime 1751 via an EFI_RT_PROPERTIES_TABLE configuration table. 1704 1752 1705 1753 **/ … … 1733 1781 @retval EFI_OUT_OF_RESOURCES When ExitBootServices() has not been previously called then this error indicates 1734 1782 the capsule is compatible with this platform but there are insufficient resources to process. 1783 @retval EFI_UNSUPPORTED This call is not supported by this platform at the time the call is made. 1784 The platform should describe this runtime service as unsupported at runtime 1785 via an EFI_RT_PROPERTIES_TABLE configuration table. 1735 1786 1736 1787 **/ … … 1992 2043 /// 1993 2044 /// The handle for the active console input device. This handle must support 1994 /// EFI_SIMPLE_TEXT_INPUT_PROTOCOL and EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL. 2045 /// EFI_SIMPLE_TEXT_INPUT_PROTOCOL and EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL. If 2046 /// there is no active console, these protocols must still be present. 1995 2047 /// 1996 2048 EFI_HANDLE ConsoleInHandle; … … 2001 2053 EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn; 2002 2054 /// 2003 /// The handle for the active console output device. 2055 /// The handle for the active console output device. This handle must support the 2056 /// EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL. If there is no active console, these protocols 2057 /// must still be present. 2004 2058 /// 2005 2059 EFI_HANDLE ConsoleOutHandle; … … 2011 2065 /// 2012 2066 /// The handle for the active standard error console device. 2013 /// This handle must support the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL. 2067 /// This handle must support the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL. If there 2068 /// is no active console, this protocol must still be present. 2014 2069 /// 2015 2070 EFI_HANDLE StandardErrorHandle;
Note:
See TracChangeset
for help on using the changeset viewer.