The change is good. But the change in Smbios type 9 will impact ShellPkg\Library\UefiShellDebug1CommandsLib\SmbiosView\PrintInfo.c. Please also update ShellPkg.
Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Sainadh > Nagolu via groups.io > 发送时间: 2022年7月28日 0:21 > 收件人: devel@edk2.groups.io > 抄送: Sainadh Nagolu <saina...@ami.com>; Sundaresan S > <sundares...@ami.com>; Vasudevan Sambandan <vasudev...@ami.com>; > gaolim...@byosoft.com.cn > 主题: [edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 table and > Smbios 3.5.0 spec changes > > In Type9 structure since PeerGroups has a variable > number of entries, must not define new fields in the structure.So added an > extended structure and defined new fields added after PeerGroups. Also > done > some improvements to Smbios 3.5.0 spec changes. > > Signed-off-by: > sainadh nagolu <saina...@ami.com> > > --- > MdePkg/Include/IndustryStandard/SmBios.h | 62 +++++++++++--------- > 1 file changed, 35 insertions(+), 27 deletions(-) > > diff --git a/MdePkg/Include/IndustryStandard/SmBios.h > b/MdePkg/Include/IndustryStandard/SmBios.h > index c7a4971f14..f62ad7fa4d 100644 > --- a/MdePkg/Include/IndustryStandard/SmBios.h > +++ b/MdePkg/Include/IndustryStandard/SmBios.h > @@ -1503,6 +1503,17 @@ typedef struct { > UINT8 DataBusWidth; > > 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 > > // > > @@ -1513,7 +1524,7 @@ typedef struct { > // Add for smbios 3.5 > > // > > UINT8 SlotHeight; ///< The > enumeration value from MISC_SLOT_HEIGHT. > > -} SMBIOS_TABLE_TYPE9; > > +} SMBIOS_TABLE_TYPE9_EXTENDED; > > > > /// > > /// On Board Devices Information - Device Types. > > @@ -2746,11 +2757,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 +2774,7 @@ typedef enum { > FirmwareInventoryStateAbsent = 0x05, > > FirmwareInventoryStateStandbyOffline = 0x06, > > FirmwareInventoryStateStandbySpare = 0x07, > > - FirmwareInventoryStateUnavailableOffline = 0x08, > > + FirmwareInventoryStateUnavailableOffline = 0x08 > > } FIRMWARE_INVENTORY_STATE; > > > > /// > > @@ -2780,21 +2791,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 +2829,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; > > > > /// > > -- > 2.36.0.windows.1 > -The information contained in this message may be confidential and > proprietary to American Megatrends (AMI). This communication is intended to > be read only by the individual or entity to whom it is addressed or by their > designee. If the reader of this message is not the intended recipient, you are > on notice that any distribution of this message, in any form, is strictly > prohibited. Please promptly notify the sender by reply e-mail or by telephone > at 770-246-8600, and then delete or destroy all copies of the transmission. > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#92145): https://edk2.groups.io/g/devel/message/92145 Mute This Topic: https://groups.io/mt/92829976/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-