public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v3 0/1] MdePkg/Include SMBIOS 3.5.0 changes
@ 2022-02-24 15:50 Abdul Lateef Attar
  2022-02-24 15:50 ` [PATCH v3 1/1] MdePkg/Include: Smbios Specification " Abdul Lateef Attar
  0 siblings, 1 reply; 4+ messages in thread
From: Abdul Lateef Attar @ 2022-02-24 15:50 UTC (permalink / raw)
  To: devel; +Cc: Michael D Kinney, Liming Gao, Zhiguang Liu

Hi Liming,
   I didnt reliaze that patch v2 was empty.
Sending patch v3 after rebase.
Thanks
AbduL
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>

Abdul Lateef Attar (1):
  MdePkg/Include: Smbios Specification 3.5.0 changes

 MdePkg/Include/IndustryStandard/SmBios.h | 144 +++++++++++++++++++-
 1 file changed, 140 insertions(+), 4 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v3 1/1] MdePkg/Include: Smbios Specification 3.5.0 changes
  2022-02-24 15:50 [PATCH v3 0/1] MdePkg/Include SMBIOS 3.5.0 changes Abdul Lateef Attar
@ 2022-02-24 15:50 ` Abdul Lateef Attar
  2022-03-08  1:42   ` 回复: " gaoliming
       [not found]   ` <16DA445789CC6E39.8112@groups.io>
  0 siblings, 2 replies; 4+ messages in thread
From: Abdul Lateef Attar @ 2022-02-24 15:50 UTC (permalink / raw)
  To: devel; +Cc: Michael D Kinney, Liming Gao, Zhiguang Liu

Adds following changes
1) Added support for manufacturing mode in
   BIOS Characteristics Extension Byte 2.
2) Added support for slot height in
   System Slot Table (type 9).
3) Updated Built-in pointing device interface with
   USB, I2C and SPI.
4) Updates Onboard Devices Extended Information with
   wireless LAN, bluetooth, WWAN, eMMC, NVMe and UFC.
5) Added new table Firmware Inventory Information (Type 45)
   and its corresponding enum values.
6) Added new table String Property Table (Type 46)
   and its corresponding enum values.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Abdul Lateef Attar <abdattar@amd.com>
---
 MdePkg/Include/IndustryStandard/SmBios.h | 144 +++++++++++++++++++-
 1 file changed, 140 insertions(+), 4 deletions(-)

diff --git a/MdePkg/Include/IndustryStandard/SmBios.h b/MdePkg/Include/IndustryStandard/SmBios.h
index 828ea6d753c2..2b1567b0528b 100644
--- a/MdePkg/Include/IndustryStandard/SmBios.h
+++ b/MdePkg/Include/IndustryStandard/SmBios.h
@@ -1,9 +1,10 @@
 /** @file
-  Industry Standard Definitions of SMBIOS Table Specification v3.3.0.
+  Industry Standard Definitions of SMBIOS Table Specification v3.5.0.
 
 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>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
@@ -94,6 +95,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #define SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE  42
 #define SMBIOS_TYPE_TPM_DEVICE                            43
 #define SMBIOS_TYPE_PROCESSOR_ADDITIONAL_INFORMATION      44
+#define SMBIOS_TYPE_FIRMWARE_INVENTORY_INFORMATION        45
+#define SMBIOS_TYPE_STRING_PROPERTY_INFORMATION           46
 
 ///
 /// Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter 3.3.43.
@@ -252,7 +255,9 @@ typedef struct {
   UINT8    TargetContentDistributionEnabled  : 1;
   UINT8    UefiSpecificationSupported        : 1;
   UINT8    VirtualMachineSupported           : 1;
-  UINT8    ExtensionByte2Reserved            : 3;
+  UINT8    ManufacturingModeSupported        : 1;
+  UINT8    ManufacturingModeEnabled          : 1;
+  UINT8    ExtensionByte2Reserved            : 1;
 } MBCE_SYSTEM_RESERVED;
 
 ///
@@ -1401,6 +1406,17 @@ typedef struct {
   UINT8    Reserved                : 1; ///< Set to 0.
 } MISC_SLOT_CHARACTERISTICS2;
 
+///
+/// System Slots - Slot Height
+///
+typedef enum {
+  SlotHeightNone       = 0x00,
+  SlotHeightOther      = 0x01,
+  SlotHeightUnknown    = 0x02,
+  SlotHeightFullHeight = 0x03,
+  SlotHeightLowProfile = 0x04
+} MISC_SLOT_HEIGHT;
+
 ///
 /// System Slots - Peer Segment/Bus/Device/Function/Width Groups
 ///
@@ -1446,6 +1462,10 @@ typedef struct {
   UINT8                         SlotInformation;
   UINT8                         SlotPhysicalWidth;
   UINT16                        SlotPitch;
+  //
+  // Add for smbios 3.5
+  //
+  UINT8                         SlotHeight;             ///< The enumeration value from MISC_SLOT_HEIGHT.
 } SMBIOS_TABLE_TYPE9;
 
 ///
@@ -2004,7 +2024,9 @@ typedef enum {
   PointingDeviceInterfaceADB              = 0x08,
   PointingDeviceInterfaceBusMouseDB9      = 0xA0,
   PointingDeviceInterfaceBusMouseMicroDin = 0xA1,
-  PointingDeviceInterfaceUsb              = 0xA2
+  PointingDeviceInterfaceUsb              = 0xA2,
+  PointingDeviceInterfaceI2c              = 0xA3,
+  PointingDeviceInterfaceSpi              = 0xA4
 } BUILTIN_POINTING_DEVICE_INTERFACE;
 
 ///
@@ -2508,7 +2530,13 @@ typedef enum {
   OnBoardDeviceExtendedTypeSound          = 0x07,
   OnBoardDeviceExtendedTypePATAController = 0x08,
   OnBoardDeviceExtendedTypeSATAController = 0x09,
-  OnBoardDeviceExtendedTypeSASController  = 0x0A
+  OnBoardDeviceExtendedTypeSASController  = 0x0A,
+  OnBoardDeviceExtendedTypeWirelessLAN    = 0x0B,
+  OnBoardDeviceExtendedTypeBluetooth      = 0x0C,
+  OnBoardDeviceExtendedTypeWWAN           = 0x0D,
+  OnBoardDeviceExtendedTypeeMMC           = 0x0E,
+  OnBoardDeviceExtendedTypeNvme           = 0x0F,
+  OnBoardDeviceExtendedTypeUfc            = 0x10
 } ONBOARD_DEVICE_EXTENDED_INFO_TYPE;
 
 ///
@@ -2646,6 +2674,112 @@ typedef struct {
   UINT32                 OemDefined;
 } SMBIOS_TABLE_TYPE43;
 
+///
+/// Firmware Inventory Version Format Type (Type 45).
+///
+typedef enum {
+  VersionFormatTypeFreeForm   = 0x00,
+  VersionFormatTypeMajorMinor = 0x01,
+  VersionFormatType32BitHex   = 0x02,
+  VersionFormatType64BitHex   = 0x03,
+  VersionFormatTypeReserved   = 0x04,  /// 0x04 - 0x7F are reserved
+  VersionFormatTypeOem        = 0x80   /// 0x80 - 0xFF are BIOS Vendor/OEM-specific
+} FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE;
+
+///
+/// Firmware Inventory Firmware Id Format Type (Type 45).
+///
+typedef enum {
+  FirmwareIdFormatTypeFreeForm     = 0x00,
+  FirmwareIdFormatTypeUuid         = 0x01,
+  FirmwareIdFormatTypeReserved     = 0x04,  /// 0x04 - 0x7F are reserved
+  InventoryFirmwareIdFormatTypeOem = 0x80   /// 0x80 - 0xFF are BIOS Vendor/OEM-specific
+} FIRMWARE_INVENTORY_FIRMWARE_ID_FORMAT_TYPE;
+
+///
+/// Firmware Inventory Firmware Characteristics (Type 45).
+///
+typedef enum {
+  CharacteristicsUpdatable      = 0x00,
+  CharacteristicsWriteProtected = 0x01,
+  CharacteristicsReserved       = 0x02    /// 0x02 - 0x0F are reserved
+} FIRMWARE_INVENTORY_CHARACTERISTICS;
+
+///
+/// Firmware Inventory State Information (Type 45).
+///
+typedef enum {
+  FirmwareInventoryStateOther              = 0x01,
+  FirmwareInventoryStateUnknown            = 0x02,
+  FirmwareInventoryStateDisabled           = 0x03,
+  FirmwareInventoryStateEnabled            = 0x04,
+  FirmwareInventoryStateAbsent             = 0x05,
+  FirmwareInventoryStateStandbyOffline     = 0x06,
+  FirmwareInventoryStateStandbySpare       = 0x07,
+  FirmwareInventoryStateUnavailableOffline = 0x08,
+} FIRMWARE_INVENTORY_STATE;
+
+///
+/// Firmware Inventory Information (Type 45)
+///
+/// The information in this structure defines an inventory of firmware
+/// components in the system. This can include firmware components such as
+/// BIOS, BMC, as well as firmware for other devices in the system.
+/// The information can be used by software to display the firmware inventory
+/// in a uniform manner. It can also be used by a management controller,
+/// such as a BMC, for remote system management.
+/// This structure is not intended to replace other standard programmatic
+/// interfaces for firmware updates.
+/// 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;
+  ///
+  /// zero or n-number of handles depends on AssociatedComponentCount
+  /// handles are of type SMBIOS_HANDLE
+  ///
+} SMBIOS_TABLE_TYPE45;
+
+///
+/// String Property IDs (Type 46).
+///
+typedef enum {
+  StringPropertyIdNone       = 0x0000,
+  StringPropertyIdDevicePath = 0x0001,
+  StringPropertyIdReserved   = 0x0002,  /// Reserved    0x0002 - 0x7FFF
+  StringPropertyIdBiosVendor = 0x8000,  /// BIOS vendor 0x8000 - 0xBFFF
+  StringPropertyIdOem        = 0xC000   /// OEM range   0xC000 - 0xFFFF
+} STRING_PROPERTY_ID;
+
+///
+/// This structure defines a string property for another structure.
+/// This allows adding string properties that are common to several structures
+/// without having to modify the definitions of these structures.
+/// Multiple type 46 structures can add string properties to the same
+/// parent structure.
+///
+typedef struct {
+  SMBIOS_STRUCTURE    Hdr;
+  SMBIOS_HANDLE       RefHandle;
+  UINT16              StringPropertyId;
+  UINT8               StringPropertyValue;
+  SMBIOS_HANDLE       ParentHandle;
+} SMBIOS_TABLE_TYPE46;
+
 ///
 /// Inactive (Type 126)
 ///
@@ -2710,6 +2844,8 @@ typedef union {
   SMBIOS_TABLE_TYPE42     *Type42;
   SMBIOS_TABLE_TYPE43     *Type43;
   SMBIOS_TABLE_TYPE44     *Type44;
+  SMBIOS_TABLE_TYPE45     *Type45;
+  SMBIOS_TABLE_TYPE46     *Type46;
   SMBIOS_TABLE_TYPE126    *Type126;
   SMBIOS_TABLE_TYPE127    *Type127;
   UINT8                   *Raw;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* 回复: [PATCH v3 1/1] MdePkg/Include: Smbios Specification 3.5.0 changes
  2022-02-24 15:50 ` [PATCH v3 1/1] MdePkg/Include: Smbios Specification " Abdul Lateef Attar
@ 2022-03-08  1:42   ` gaoliming
       [not found]   ` <16DA445789CC6E39.8112@groups.io>
  1 sibling, 0 replies; 4+ messages in thread
From: gaoliming @ 2022-03-08  1:42 UTC (permalink / raw)
  To: 'Abdul Lateef Attar', devel
  Cc: 'Michael D Kinney', 'Zhiguang Liu'

Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>

> -----邮件原件-----
> 发件人: abdullateef.attar@amd.com <abdullateef.attar@amd.com> 代表
> Abdul Lateef Attar
> 发送时间: 2022年2月24日 23:50
> 收件人: devel@edk2.groups.io
> 抄送: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>
> 主题: [PATCH v3 1/1] MdePkg/Include: Smbios Specification 3.5.0 changes
> 
> Adds following changes
> 1) Added support for manufacturing mode in
>    BIOS Characteristics Extension Byte 2.
> 2) Added support for slot height in
>    System Slot Table (type 9).
> 3) Updated Built-in pointing device interface with
>    USB, I2C and SPI.
> 4) Updates Onboard Devices Extended Information with
>    wireless LAN, bluetooth, WWAN, eMMC, NVMe and UFC.
> 5) Added new table Firmware Inventory Information (Type 45)
>    and its corresponding enum values.
> 6) Added new table String Property Table (Type 46)
>    and its corresponding enum values.
> 
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Signed-off-by: Abdul Lateef Attar <abdattar@amd.com>
> ---
>  MdePkg/Include/IndustryStandard/SmBios.h | 144 +++++++++++++++++++-
>  1 file changed, 140 insertions(+), 4 deletions(-)
> 
> diff --git a/MdePkg/Include/IndustryStandard/SmBios.h
> b/MdePkg/Include/IndustryStandard/SmBios.h
> index 828ea6d753c2..2b1567b0528b 100644
> --- a/MdePkg/Include/IndustryStandard/SmBios.h
> +++ b/MdePkg/Include/IndustryStandard/SmBios.h
> @@ -1,9 +1,10 @@
>  /** @file
> 
> -  Industry Standard Definitions of SMBIOS Table Specification v3.3.0.
> 
> +  Industry Standard Definitions of SMBIOS Table Specification v3.5.0.
> 
> 
> 
>  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>
> 
>  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> 
> 
>  **/
> 
> @@ -94,6 +95,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>  #define SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE
> 42
> 
>  #define SMBIOS_TYPE_TPM_DEVICE                            43
> 
>  #define SMBIOS_TYPE_PROCESSOR_ADDITIONAL_INFORMATION      44
> 
> +#define SMBIOS_TYPE_FIRMWARE_INVENTORY_INFORMATION
> 45
> 
> +#define SMBIOS_TYPE_STRING_PROPERTY_INFORMATION           46
> 
> 
> 
>  ///
> 
>  /// Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter
> 3.3.43.
> 
> @@ -252,7 +255,9 @@ typedef struct {
>    UINT8    TargetContentDistributionEnabled  : 1;
> 
>    UINT8    UefiSpecificationSupported        : 1;
> 
>    UINT8    VirtualMachineSupported           : 1;
> 
> -  UINT8    ExtensionByte2Reserved            : 3;
> 
> +  UINT8    ManufacturingModeSupported        : 1;
> 
> +  UINT8    ManufacturingModeEnabled          : 1;
> 
> +  UINT8    ExtensionByte2Reserved            : 1;
> 
>  } MBCE_SYSTEM_RESERVED;
> 
> 
> 
>  ///
> 
> @@ -1401,6 +1406,17 @@ typedef struct {
>    UINT8    Reserved                : 1; ///< Set to 0.
> 
>  } MISC_SLOT_CHARACTERISTICS2;
> 
> 
> 
> +///
> 
> +/// System Slots - Slot Height
> 
> +///
> 
> +typedef enum {
> 
> +  SlotHeightNone       = 0x00,
> 
> +  SlotHeightOther      = 0x01,
> 
> +  SlotHeightUnknown    = 0x02,
> 
> +  SlotHeightFullHeight = 0x03,
> 
> +  SlotHeightLowProfile = 0x04
> 
> +} MISC_SLOT_HEIGHT;
> 
> +
> 
>  ///
> 
>  /// System Slots - Peer Segment/Bus/Device/Function/Width Groups
> 
>  ///
> 
> @@ -1446,6 +1462,10 @@ typedef struct {
>    UINT8                         SlotInformation;
> 
>    UINT8                         SlotPhysicalWidth;
> 
>    UINT16                        SlotPitch;
> 
> +  //
> 
> +  // Add for smbios 3.5
> 
> +  //
> 
> +  UINT8                         SlotHeight;             ///< The
> enumeration value from MISC_SLOT_HEIGHT.
> 
>  } SMBIOS_TABLE_TYPE9;
> 
> 
> 
>  ///
> 
> @@ -2004,7 +2024,9 @@ typedef enum {
>    PointingDeviceInterfaceADB              = 0x08,
> 
>    PointingDeviceInterfaceBusMouseDB9      = 0xA0,
> 
>    PointingDeviceInterfaceBusMouseMicroDin = 0xA1,
> 
> -  PointingDeviceInterfaceUsb              = 0xA2
> 
> +  PointingDeviceInterfaceUsb              = 0xA2,
> 
> +  PointingDeviceInterfaceI2c              = 0xA3,
> 
> +  PointingDeviceInterfaceSpi              = 0xA4
> 
>  } BUILTIN_POINTING_DEVICE_INTERFACE;
> 
> 
> 
>  ///
> 
> @@ -2508,7 +2530,13 @@ typedef enum {
>    OnBoardDeviceExtendedTypeSound          = 0x07,
> 
>    OnBoardDeviceExtendedTypePATAController = 0x08,
> 
>    OnBoardDeviceExtendedTypeSATAController = 0x09,
> 
> -  OnBoardDeviceExtendedTypeSASController  = 0x0A
> 
> +  OnBoardDeviceExtendedTypeSASController  = 0x0A,
> 
> +  OnBoardDeviceExtendedTypeWirelessLAN    = 0x0B,
> 
> +  OnBoardDeviceExtendedTypeBluetooth      = 0x0C,
> 
> +  OnBoardDeviceExtendedTypeWWAN           = 0x0D,
> 
> +  OnBoardDeviceExtendedTypeeMMC           = 0x0E,
> 
> +  OnBoardDeviceExtendedTypeNvme           = 0x0F,
> 
> +  OnBoardDeviceExtendedTypeUfc            = 0x10
> 
>  } ONBOARD_DEVICE_EXTENDED_INFO_TYPE;
> 
> 
> 
>  ///
> 
> @@ -2646,6 +2674,112 @@ typedef struct {
>    UINT32                 OemDefined;
> 
>  } SMBIOS_TABLE_TYPE43;
> 
> 
> 
> +///
> 
> +/// Firmware Inventory Version Format Type (Type 45).
> 
> +///
> 
> +typedef enum {
> 
> +  VersionFormatTypeFreeForm   = 0x00,
> 
> +  VersionFormatTypeMajorMinor = 0x01,
> 
> +  VersionFormatType32BitHex   = 0x02,
> 
> +  VersionFormatType64BitHex   = 0x03,
> 
> +  VersionFormatTypeReserved   = 0x04,  /// 0x04 - 0x7F are reserved
> 
> +  VersionFormatTypeOem        = 0x80   /// 0x80 - 0xFF are BIOS
> Vendor/OEM-specific
> 
> +} FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE;
> 
> +
> 
> +///
> 
> +/// Firmware Inventory Firmware Id Format Type (Type 45).
> 
> +///
> 
> +typedef enum {
> 
> +  FirmwareIdFormatTypeFreeForm     = 0x00,
> 
> +  FirmwareIdFormatTypeUuid         = 0x01,
> 
> +  FirmwareIdFormatTypeReserved     = 0x04,  /// 0x04 - 0x7F are
> reserved
> 
> +  InventoryFirmwareIdFormatTypeOem = 0x80   /// 0x80 - 0xFF are BIOS
> Vendor/OEM-specific
> 
> +} FIRMWARE_INVENTORY_FIRMWARE_ID_FORMAT_TYPE;
> 
> +
> 
> +///
> 
> +/// Firmware Inventory Firmware Characteristics (Type 45).
> 
> +///
> 
> +typedef enum {
> 
> +  CharacteristicsUpdatable      = 0x00,
> 
> +  CharacteristicsWriteProtected = 0x01,
> 
> +  CharacteristicsReserved       = 0x02    /// 0x02 - 0x0F are reserved
> 
> +} FIRMWARE_INVENTORY_CHARACTERISTICS;
> 
> +
> 
> +///
> 
> +/// Firmware Inventory State Information (Type 45).
> 
> +///
> 
> +typedef enum {
> 
> +  FirmwareInventoryStateOther              = 0x01,
> 
> +  FirmwareInventoryStateUnknown            = 0x02,
> 
> +  FirmwareInventoryStateDisabled           = 0x03,
> 
> +  FirmwareInventoryStateEnabled            = 0x04,
> 
> +  FirmwareInventoryStateAbsent             = 0x05,
> 
> +  FirmwareInventoryStateStandbyOffline     = 0x06,
> 
> +  FirmwareInventoryStateStandbySpare       = 0x07,
> 
> +  FirmwareInventoryStateUnavailableOffline = 0x08,
> 
> +} FIRMWARE_INVENTORY_STATE;
> 
> +
> 
> +///
> 
> +/// Firmware Inventory Information (Type 45)
> 
> +///
> 
> +/// The information in this structure defines an inventory of firmware
> 
> +/// components in the system. This can include firmware components such
> as
> 
> +/// BIOS, BMC, as well as firmware for other devices in the system.
> 
> +/// The information can be used by software to display the firmware
> inventory
> 
> +/// in a uniform manner. It can also be used by a management controller,
> 
> +/// such as a BMC, for remote system management.
> 
> +/// This structure is not intended to replace other standard programmatic
> 
> +/// interfaces for firmware updates.
> 
> +/// 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;
> 
> +  ///
> 
> +  /// zero or n-number of handles depends on AssociatedComponentCount
> 
> +  /// handles are of type SMBIOS_HANDLE
> 
> +  ///
> 
> +} SMBIOS_TABLE_TYPE45;
> 
> +
> 
> +///
> 
> +/// String Property IDs (Type 46).
> 
> +///
> 
> +typedef enum {
> 
> +  StringPropertyIdNone       = 0x0000,
> 
> +  StringPropertyIdDevicePath = 0x0001,
> 
> +  StringPropertyIdReserved   = 0x0002,  /// Reserved    0x0002 -
> 0x7FFF
> 
> +  StringPropertyIdBiosVendor = 0x8000,  /// BIOS vendor 0x8000 - 0xBFFF
> 
> +  StringPropertyIdOem        = 0xC000   /// OEM range   0xC000 -
> 0xFFFF
> 
> +} STRING_PROPERTY_ID;
> 
> +
> 
> +///
> 
> +/// This structure defines a string property for another structure.
> 
> +/// This allows adding string properties that are common to several
> structures
> 
> +/// without having to modify the definitions of these structures.
> 
> +/// Multiple type 46 structures can add string properties to the same
> 
> +/// parent structure.
> 
> +///
> 
> +typedef struct {
> 
> +  SMBIOS_STRUCTURE    Hdr;
> 
> +  SMBIOS_HANDLE       RefHandle;
> 
> +  UINT16              StringPropertyId;
> 
> +  UINT8               StringPropertyValue;
> 
> +  SMBIOS_HANDLE       ParentHandle;
> 
> +} SMBIOS_TABLE_TYPE46;
> 
> +
> 
>  ///
> 
>  /// Inactive (Type 126)
> 
>  ///
> 
> @@ -2710,6 +2844,8 @@ typedef union {
>    SMBIOS_TABLE_TYPE42     *Type42;
> 
>    SMBIOS_TABLE_TYPE43     *Type43;
> 
>    SMBIOS_TABLE_TYPE44     *Type44;
> 
> +  SMBIOS_TABLE_TYPE45     *Type45;
> 
> +  SMBIOS_TABLE_TYPE46     *Type46;
> 
>    SMBIOS_TABLE_TYPE126    *Type126;
> 
>    SMBIOS_TABLE_TYPE127    *Type127;
> 
>    UINT8                   *Raw;
> 
> --
> 2.25.1




^ permalink raw reply	[flat|nested] 4+ messages in thread

* 回复: [edk2-devel] 回复: [PATCH v3 1/1] MdePkg/Include: Smbios Specification 3.5.0 changes
       [not found]   ` <16DA445789CC6E39.8112@groups.io>
@ 2022-03-18  2:09     ` gaoliming
  0 siblings, 0 replies; 4+ messages in thread
From: gaoliming @ 2022-03-18  2:09 UTC (permalink / raw)
  To: devel, gaoliming, 'Abdul Lateef Attar'
  Cc: 'Michael D Kinney', 'Zhiguang Liu'

Create PR https://github.com/tianocore/edk2/pull/2647 to merge it.

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 gaoliming
> 发送时间: 2022年3月8日 9:42
> 收件人: 'Abdul Lateef Attar' <abdattar@amd.com>; devel@edk2.groups.io
> 抄送: 'Michael D Kinney' <michael.d.kinney@intel.com>; 'Zhiguang Liu'
> <zhiguang.liu@intel.com>
> 主题: [edk2-devel] 回复: [PATCH v3 1/1] MdePkg/Include: Smbios
> Specification 3.5.0 changes
> 
> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
> 
> > -----邮件原件-----
> > 发件人: abdullateef.attar@amd.com <abdullateef.attar@amd.com> 代表
> > Abdul Lateef Attar
> > 发送时间: 2022年2月24日 23:50
> > 收件人: devel@edk2.groups.io
> > 抄送: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao
> > <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>
> > 主题: [PATCH v3 1/1] MdePkg/Include: Smbios Specification 3.5.0 changes
> >
> > Adds following changes
> > 1) Added support for manufacturing mode in
> >    BIOS Characteristics Extension Byte 2.
> > 2) Added support for slot height in
> >    System Slot Table (type 9).
> > 3) Updated Built-in pointing device interface with
> >    USB, I2C and SPI.
> > 4) Updates Onboard Devices Extended Information with
> >    wireless LAN, bluetooth, WWAN, eMMC, NVMe and UFC.
> > 5) Added new table Firmware Inventory Information (Type 45)
> >    and its corresponding enum values.
> > 6) Added new table String Property Table (Type 46)
> >    and its corresponding enum values.
> >
> > Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> > Signed-off-by: Abdul Lateef Attar <abdattar@amd.com>
> > ---
> >  MdePkg/Include/IndustryStandard/SmBios.h | 144
> +++++++++++++++++++-
> >  1 file changed, 140 insertions(+), 4 deletions(-)
> >
> > diff --git a/MdePkg/Include/IndustryStandard/SmBios.h
> > b/MdePkg/Include/IndustryStandard/SmBios.h
> > index 828ea6d753c2..2b1567b0528b 100644
> > --- a/MdePkg/Include/IndustryStandard/SmBios.h
> > +++ b/MdePkg/Include/IndustryStandard/SmBios.h
> > @@ -1,9 +1,10 @@
> >  /** @file
> >
> > -  Industry Standard Definitions of SMBIOS Table Specification v3.3.0.
> >
> > +  Industry Standard Definitions of SMBIOS Table Specification v3.5.0.
> >
> >
> >
> >  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>
> >
> >  SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> >
> >
> >  **/
> >
> > @@ -94,6 +95,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> >  #define SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE
> > 42
> >
> >  #define SMBIOS_TYPE_TPM_DEVICE
> 43
> >
> >  #define SMBIOS_TYPE_PROCESSOR_ADDITIONAL_INFORMATION
> 44
> >
> > +#define SMBIOS_TYPE_FIRMWARE_INVENTORY_INFORMATION
> > 45
> >
> > +#define SMBIOS_TYPE_STRING_PROPERTY_INFORMATION
> 46
> >
> >
> >
> >  ///
> >
> >  /// Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6,
> chapter
> > 3.3.43.
> >
> > @@ -252,7 +255,9 @@ typedef struct {
> >    UINT8    TargetContentDistributionEnabled  : 1;
> >
> >    UINT8    UefiSpecificationSupported        : 1;
> >
> >    UINT8    VirtualMachineSupported           : 1;
> >
> > -  UINT8    ExtensionByte2Reserved            : 3;
> >
> > +  UINT8    ManufacturingModeSupported        : 1;
> >
> > +  UINT8    ManufacturingModeEnabled          : 1;
> >
> > +  UINT8    ExtensionByte2Reserved            : 1;
> >
> >  } MBCE_SYSTEM_RESERVED;
> >
> >
> >
> >  ///
> >
> > @@ -1401,6 +1406,17 @@ typedef struct {
> >    UINT8    Reserved                : 1; ///< Set to 0.
> >
> >  } MISC_SLOT_CHARACTERISTICS2;
> >
> >
> >
> > +///
> >
> > +/// System Slots - Slot Height
> >
> > +///
> >
> > +typedef enum {
> >
> > +  SlotHeightNone       = 0x00,
> >
> > +  SlotHeightOther      = 0x01,
> >
> > +  SlotHeightUnknown    = 0x02,
> >
> > +  SlotHeightFullHeight = 0x03,
> >
> > +  SlotHeightLowProfile = 0x04
> >
> > +} MISC_SLOT_HEIGHT;
> >
> > +
> >
> >  ///
> >
> >  /// System Slots - Peer Segment/Bus/Device/Function/Width Groups
> >
> >  ///
> >
> > @@ -1446,6 +1462,10 @@ typedef struct {
> >    UINT8                         SlotInformation;
> >
> >    UINT8                         SlotPhysicalWidth;
> >
> >    UINT16                        SlotPitch;
> >
> > +  //
> >
> > +  // Add for smbios 3.5
> >
> > +  //
> >
> > +  UINT8                         SlotHeight;             ///<
> The
> > enumeration value from MISC_SLOT_HEIGHT.
> >
> >  } SMBIOS_TABLE_TYPE9;
> >
> >
> >
> >  ///
> >
> > @@ -2004,7 +2024,9 @@ typedef enum {
> >    PointingDeviceInterfaceADB              = 0x08,
> >
> >    PointingDeviceInterfaceBusMouseDB9      = 0xA0,
> >
> >    PointingDeviceInterfaceBusMouseMicroDin = 0xA1,
> >
> > -  PointingDeviceInterfaceUsb              = 0xA2
> >
> > +  PointingDeviceInterfaceUsb              = 0xA2,
> >
> > +  PointingDeviceInterfaceI2c              = 0xA3,
> >
> > +  PointingDeviceInterfaceSpi              = 0xA4
> >
> >  } BUILTIN_POINTING_DEVICE_INTERFACE;
> >
> >
> >
> >  ///
> >
> > @@ -2508,7 +2530,13 @@ typedef enum {
> >    OnBoardDeviceExtendedTypeSound          = 0x07,
> >
> >    OnBoardDeviceExtendedTypePATAController = 0x08,
> >
> >    OnBoardDeviceExtendedTypeSATAController = 0x09,
> >
> > -  OnBoardDeviceExtendedTypeSASController  = 0x0A
> >
> > +  OnBoardDeviceExtendedTypeSASController  = 0x0A,
> >
> > +  OnBoardDeviceExtendedTypeWirelessLAN    = 0x0B,
> >
> > +  OnBoardDeviceExtendedTypeBluetooth      = 0x0C,
> >
> > +  OnBoardDeviceExtendedTypeWWAN           = 0x0D,
> >
> > +  OnBoardDeviceExtendedTypeeMMC           = 0x0E,
> >
> > +  OnBoardDeviceExtendedTypeNvme           = 0x0F,
> >
> > +  OnBoardDeviceExtendedTypeUfc            = 0x10
> >
> >  } ONBOARD_DEVICE_EXTENDED_INFO_TYPE;
> >
> >
> >
> >  ///
> >
> > @@ -2646,6 +2674,112 @@ typedef struct {
> >    UINT32                 OemDefined;
> >
> >  } SMBIOS_TABLE_TYPE43;
> >
> >
> >
> > +///
> >
> > +/// Firmware Inventory Version Format Type (Type 45).
> >
> > +///
> >
> > +typedef enum {
> >
> > +  VersionFormatTypeFreeForm   = 0x00,
> >
> > +  VersionFormatTypeMajorMinor = 0x01,
> >
> > +  VersionFormatType32BitHex   = 0x02,
> >
> > +  VersionFormatType64BitHex   = 0x03,
> >
> > +  VersionFormatTypeReserved   = 0x04,  /// 0x04 - 0x7F are reserved
> >
> > +  VersionFormatTypeOem        = 0x80   /// 0x80 - 0xFF are BIOS
> > Vendor/OEM-specific
> >
> > +} FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE;
> >
> > +
> >
> > +///
> >
> > +/// Firmware Inventory Firmware Id Format Type (Type 45).
> >
> > +///
> >
> > +typedef enum {
> >
> > +  FirmwareIdFormatTypeFreeForm     = 0x00,
> >
> > +  FirmwareIdFormatTypeUuid         = 0x01,
> >
> > +  FirmwareIdFormatTypeReserved     = 0x04,  /// 0x04 - 0x7F are
> > reserved
> >
> > +  InventoryFirmwareIdFormatTypeOem = 0x80   /// 0x80 - 0xFF are
> BIOS
> > Vendor/OEM-specific
> >
> > +} FIRMWARE_INVENTORY_FIRMWARE_ID_FORMAT_TYPE;
> >
> > +
> >
> > +///
> >
> > +/// Firmware Inventory Firmware Characteristics (Type 45).
> >
> > +///
> >
> > +typedef enum {
> >
> > +  CharacteristicsUpdatable      = 0x00,
> >
> > +  CharacteristicsWriteProtected = 0x01,
> >
> > +  CharacteristicsReserved       = 0x02    /// 0x02 - 0x0F are
> reserved
> >
> > +} FIRMWARE_INVENTORY_CHARACTERISTICS;
> >
> > +
> >
> > +///
> >
> > +/// Firmware Inventory State Information (Type 45).
> >
> > +///
> >
> > +typedef enum {
> >
> > +  FirmwareInventoryStateOther              = 0x01,
> >
> > +  FirmwareInventoryStateUnknown            = 0x02,
> >
> > +  FirmwareInventoryStateDisabled           = 0x03,
> >
> > +  FirmwareInventoryStateEnabled            = 0x04,
> >
> > +  FirmwareInventoryStateAbsent             = 0x05,
> >
> > +  FirmwareInventoryStateStandbyOffline     = 0x06,
> >
> > +  FirmwareInventoryStateStandbySpare       = 0x07,
> >
> > +  FirmwareInventoryStateUnavailableOffline = 0x08,
> >
> > +} FIRMWARE_INVENTORY_STATE;
> >
> > +
> >
> > +///
> >
> > +/// Firmware Inventory Information (Type 45)
> >
> > +///
> >
> > +/// The information in this structure defines an inventory of firmware
> >
> > +/// components in the system. This can include firmware components such
> > as
> >
> > +/// BIOS, BMC, as well as firmware for other devices in the system.
> >
> > +/// The information can be used by software to display the firmware
> > inventory
> >
> > +/// in a uniform manner. It can also be used by a management
controller,
> >
> > +/// such as a BMC, for remote system management.
> >
> > +/// This structure is not intended to replace other standard
programmatic
> >
> > +/// interfaces for firmware updates.
> >
> > +/// 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;
> >
> > +  ///
> >
> > +  /// zero or n-number of handles depends on
> AssociatedComponentCount
> >
> > +  /// handles are of type SMBIOS_HANDLE
> >
> > +  ///
> >
> > +} SMBIOS_TABLE_TYPE45;
> >
> > +
> >
> > +///
> >
> > +/// String Property IDs (Type 46).
> >
> > +///
> >
> > +typedef enum {
> >
> > +  StringPropertyIdNone       = 0x0000,
> >
> > +  StringPropertyIdDevicePath = 0x0001,
> >
> > +  StringPropertyIdReserved   = 0x0002,  /// Reserved    0x0002 -
> > 0x7FFF
> >
> > +  StringPropertyIdBiosVendor = 0x8000,  /// BIOS vendor 0x8000 -
> 0xBFFF
> >
> > +  StringPropertyIdOem        = 0xC000   /// OEM range   0xC000 -
> > 0xFFFF
> >
> > +} STRING_PROPERTY_ID;
> >
> > +
> >
> > +///
> >
> > +/// This structure defines a string property for another structure.
> >
> > +/// This allows adding string properties that are common to several
> > structures
> >
> > +/// without having to modify the definitions of these structures.
> >
> > +/// Multiple type 46 structures can add string properties to the same
> >
> > +/// parent structure.
> >
> > +///
> >
> > +typedef struct {
> >
> > +  SMBIOS_STRUCTURE    Hdr;
> >
> > +  SMBIOS_HANDLE       RefHandle;
> >
> > +  UINT16              StringPropertyId;
> >
> > +  UINT8               StringPropertyValue;
> >
> > +  SMBIOS_HANDLE       ParentHandle;
> >
> > +} SMBIOS_TABLE_TYPE46;
> >
> > +
> >
> >  ///
> >
> >  /// Inactive (Type 126)
> >
> >  ///
> >
> > @@ -2710,6 +2844,8 @@ typedef union {
> >    SMBIOS_TABLE_TYPE42     *Type42;
> >
> >    SMBIOS_TABLE_TYPE43     *Type43;
> >
> >    SMBIOS_TABLE_TYPE44     *Type44;
> >
> > +  SMBIOS_TABLE_TYPE45     *Type45;
> >
> > +  SMBIOS_TABLE_TYPE46     *Type46;
> >
> >    SMBIOS_TABLE_TYPE126    *Type126;
> >
> >    SMBIOS_TABLE_TYPE127    *Type127;
> >
> >    UINT8                   *Raw;
> >
> > --
> > 2.25.1
> 
> 
> 
> 
> 
> 
> 




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-03-18  2:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-24 15:50 [PATCH v3 0/1] MdePkg/Include SMBIOS 3.5.0 changes Abdul Lateef Attar
2022-02-24 15:50 ` [PATCH v3 1/1] MdePkg/Include: Smbios Specification " Abdul Lateef Attar
2022-03-08  1:42   ` 回复: " gaoliming
     [not found]   ` <16DA445789CC6E39.8112@groups.io>
2022-03-18  2:09     ` 回复: [edk2-devel] " gaoliming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox