[edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 table and Smbios 3.5.0 spec changes

Sainadh Nagolu via groups.io posted 1 patch 2 weeks, 1 day ago
Failed in applying to current master (apply log)
MdePkg/Include/IndustryStandard/SmBios.h | 62 +++++++++++---------
1 file changed, 35 insertions(+), 27 deletions(-)
[edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 table and Smbios 3.5.0 spec changes
Posted by Sainadh Nagolu via groups.io 2 weeks, 1 day ago
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 <sainadhn@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 (#91944): https://edk2.groups.io/g/devel/message/91944
Mute This Topic: https://groups.io/mt/92672838/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
回复: [edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 table and Smbios 3.5.0 spec changes
Posted by gaoliming via groups.io 6 days, 17 hours ago
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 <sainadhn@ami.com>; Sundaresan S
> <sundaresans@ami.com>; Vasudevan Sambandan <vasudevans@ami.com>;
> gaoliming@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 <sainadhn@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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] 回复: [edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 table and Smbios 3.5.0 spec changes
Posted by Sainadh Nagolu via groups.io 2 days, 12 hours ago
Updated PrintInfo.c from ShellPkg, Patch for the same is available in edk2 maillist.( https://edk2.groups.io/g/devel/message/92250 )

Please help to review.

Thanks,
Sainadh.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92251): https://edk2.groups.io/g/devel/message/92251
Mute This Topic: https://groups.io/mt/92829976/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] MdePkg:Improved Smbios Type9 table and Smbios 3.5.0 spec changes
Posted by Sainadh Nagolu via groups.io 1 week, 3 days ago
Please help to review this Patch.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92006): https://edk2.groups.io/g/devel/message/92006
Mute This Topic: https://groups.io/mt/92672838/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-