From: "gaoliming" <gaoliming@byosoft.com.cn>
To: <devel@edk2.groups.io>, <gaoliming@byosoft.com.cn>,
"'Abdul Lateef Attar'" <abdattar@amd.com>
Cc: "'Michael D Kinney'" <michael.d.kinney@intel.com>,
"'Zhiguang Liu'" <zhiguang.liu@intel.com>
Subject: 回复: [edk2-devel] 回复: [PATCH v3 1/1] MdePkg/Include: Smbios Specification 3.5.0 changes
Date: Fri, 18 Mar 2022 10:09:48 +0800 [thread overview]
Message-ID: <01f701d83a6d$3e981470$bbc83d50$@byosoft.com.cn> (raw)
In-Reply-To: <16DA445789CC6E39.8112@groups.io>
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
>
>
>
>
>
>
>
prev parent reply other threads:[~2022-03-18 2:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` gaoliming [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='01f701d83a6d$3e981470$bbc83d50$@byosoft.com.cn' \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox