summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MdePkg/Include/IndustryStandard/SmBios.h71
1 files changed, 40 insertions, 31 deletions
diff --git a/MdePkg/Include/IndustryStandard/SmBios.h b/MdePkg/Include/IndustryStandard/SmBios.h
index c7a4971f14..dc7271c92f 100644
--- a/MdePkg/Include/IndustryStandard/SmBios.h
+++ b/MdePkg/Include/IndustryStandard/SmBios.h
@@ -5,6 +5,7 @@ Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development LP<BR>
Copyright (c) 2022, AMD Incorporated. All rights reserved.<BR>
+Copyright (c) 1985 - 2022, American Megatrends International LLC.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -1504,16 +1505,27 @@ typedef struct {
UINT8 PeerGroupingCount;
MISC_SLOT_PEER_GROUP PeerGroups[1];
//
+ // Since PeerGroups has a variable number of entries, must not define new
+ // fields in the structure. Remaining fields can be referenced using
+ // SMBIOS_TABLE_TYPE9_EXTENDED structure
+ //
+} SMBIOS_TABLE_TYPE9;
+
+///
+/// Extended structure for System Slots (Type 9)
+///
+typedef struct {
+ //
// Add for smbios 3.4
//
- UINT8 SlotInformation;
- UINT8 SlotPhysicalWidth;
- UINT16 SlotPitch;
+ UINT8 SlotInformation;
+ UINT8 SlotPhysicalWidth;
+ UINT16 SlotPitch;
//
// Add for smbios 3.5
//
- UINT8 SlotHeight; ///< The enumeration value from MISC_SLOT_HEIGHT.
-} SMBIOS_TABLE_TYPE9;
+ UINT8 SlotHeight; ///< The enumeration value from MISC_SLOT_HEIGHT.
+} SMBIOS_TABLE_TYPE9_EXTENDED;
///
/// On Board Devices Information - Device Types.
@@ -2746,11 +2758,11 @@ typedef enum {
///
/// Firmware Inventory Firmware Characteristics (Type 45).
///
-typedef enum {
- CharacteristicsUpdatable = 0x00,
- CharacteristicsWriteProtected = 0x01,
- CharacteristicsReserved = 0x02 /// 0x02 - 0x0F are reserved
-} FIRMWARE_INVENTORY_CHARACTERISTICS;
+typedef struct {
+ UINT16 Updatable : 1;
+ UINT16 WriteProtected : 1;
+ UINT16 Reserved : 14;
+} FIRMWARE_CHARACTERISTICS;
///
/// Firmware Inventory State Information (Type 45).
@@ -2763,7 +2775,7 @@ typedef enum {
FirmwareInventoryStateAbsent = 0x05,
FirmwareInventoryStateStandbyOffline = 0x06,
FirmwareInventoryStateStandbySpare = 0x07,
- FirmwareInventoryStateUnavailableOffline = 0x08,
+ FirmwareInventoryStateUnavailableOffline = 0x08
} FIRMWARE_INVENTORY_STATE;
///
@@ -2780,21 +2792,19 @@ typedef enum {
/// One Type 45 structure is provided for each firmware component.
///
typedef struct {
- SMBIOS_STRUCTURE Hdr;
- SMBIOS_HANDLE RefHandle;
-
- UINT8 FirmwareComponentName;
- UINT8 FirmwareVersion;
- UINT8 FirmwareVersionFormat; ///< The enumeration value from FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE
- UINT8 FirmwareId;
- UINT8 FirmwareIdFormat;
- UINT8 ReleaseDate;
- UINT8 Manufacturer;
- UINT8 LowestSupportedVersion;
- UINT64 ImageSize;
- UINT32 Characteristics;
- UINT8 State;
- UINT8 AssociatedComponentCount;
+ SMBIOS_STRUCTURE Hdr;
+ SMBIOS_TABLE_STRING FirmwareComponentName;
+ SMBIOS_TABLE_STRING FirmwareVersion;
+ UINT8 FirmwareVersionFormat; ///< The enumeration value from FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE
+ SMBIOS_TABLE_STRING FirmwareId;
+ UINT8 FirmwareIdFormat; ///< The enumeration value from FIRMWARE_INVENTORY_FIRMWARE_ID_FORMAT_TYPE.
+ SMBIOS_TABLE_STRING ReleaseDate;
+ SMBIOS_TABLE_STRING Manufacturer;
+ SMBIOS_TABLE_STRING LowestSupportedVersion;
+ UINT64 ImageSize;
+ FIRMWARE_CHARACTERISTICS Characteristics;
+ UINT8 State; ///< The enumeration value from FIRMWARE_INVENTORY_STATE.
+ UINT8 AssociatedComponentCount;
///
/// zero or n-number of handles depends on AssociatedComponentCount
/// handles are of type SMBIOS_HANDLE
@@ -2820,11 +2830,10 @@ typedef enum {
/// parent structure.
///
typedef struct {
- SMBIOS_STRUCTURE Hdr;
- SMBIOS_HANDLE RefHandle;
- UINT16 StringPropertyId;
- UINT8 StringPropertyValue;
- SMBIOS_HANDLE ParentHandle;
+ SMBIOS_STRUCTURE Hdr;
+ UINT16 StringPropertyId; ///< The enumeration value from STRING_PROPERTY_ID.
+ SMBIOS_TABLE_STRING StringPropertyValue;
+ SMBIOS_HANDLE ParentHandle;
} SMBIOS_TABLE_TYPE46;
///