From 901eb34ad77b2363400646d1102db5d403f7d32f Mon Sep 17 00:00:00 2001 From: Andrei Warkentin Date: Wed, 18 Oct 2023 15:10:57 -0500 Subject: [PATCH] Flesh out/clean SMBIOS section. Signed-off-by: Andrei Warkentin --- appendices.adoc | 4 ++- brs.bib | 2 +- non-normative/smbios.adoc | 2 ++ recipes.adoc | 4 +-- smbios.adoc | 66 +++++++++++++++------------------------ uefi.adoc | 1 + 6 files changed, 34 insertions(+), 45 deletions(-) create mode 100644 non-normative/smbios.adoc diff --git a/appendices.adoc b/appendices.adoc index 6abbf90..34213e1 100644 --- a/appendices.adoc +++ b/appendices.adoc @@ -17,4 +17,6 @@ include::non-normative/uefi.adoc[] ==== ACPI Implementation Guidance include::non-normative/acpi.adoc[] - +[[smbios-guidance]] +==== SMBIOS Implementation Guidance +include::non-normative/smbios.adoc[] diff --git a/brs.bib b/brs.bib index 704f978..b3c3000 100644 --- a/brs.bib +++ b/brs.bib @@ -15,7 +15,7 @@ @electronic{UEFI-PI url = {https://uefi.org/specifications} } @electronic{SMBIOS, - title = {System Management BIOS}, + title = {System Management BIOS (SMBIOS) Reference Specification 3.7.0}, url = {https://www.dmtf.org/standards/smbios} } @electronic{DT, diff --git a/non-normative/smbios.adoc b/non-normative/smbios.adoc new file mode 100644 index 0000000..9aa4d2f --- /dev/null +++ b/non-normative/smbios.adoc @@ -0,0 +1,2 @@ +Note the DMTF requirements on the 64-bit SMBIOS 3.0 entry point (cite:[SMBIOS] Section 5.2.2) and data structures (cite:[SMBIOS] Section 6.2). + diff --git a/recipes.adoc b/recipes.adoc index cc0028d..f54ea33 100644 --- a/recipes.adoc +++ b/recipes.adoc @@ -46,7 +46,7 @@ unexpected behavior in a generic OS must be configured by firmware as opt-in. [%header, cols="10,10,10,10,10,10"] |=== | Profile | UEFI | ACPI | DT | SBI | SMBIOS -| >= RVA20 | >= 2.10 | >= 6.6 | N/A | >= 2.0 | >= 3.6.0 +| >= RVA20 | >= 2.10 | >= 6.6 | N/A | >= 2.0 | >= 3.7.0 |=== === BRS-B Recipe @@ -64,5 +64,5 @@ custom distributions. [%header, cols="10,10,20,20,10,20"] |=== | Profile | UEFI | ACPI | DT | SBI | SMBIOS -| >= RVA20 | EBBR cite:[EBBR] | optional, >= 6.6 | optional, >= v0.3 | >= 2.0 | optional, >= 3.6.0 +| >= RVA20 | EBBR cite:[EBBR] | optional, >= 6.6 | optional, >= v0.3 | >= 2.0 | optional, >= 3.7.0 |=== diff --git a/smbios.adoc b/smbios.adoc index 7b9cc68..97c933e 100644 --- a/smbios.adoc +++ b/smbios.adoc @@ -1,44 +1,28 @@ [[smbios]] == SMBIOS Requirements -=== SMBIOS Version -==== SMBIOS Requirements on UEFI -=== SMBIOS Structures -==== Type 00: BIOS Information (Required) -==== Type 01: System Information (Required) -==== Type 02: Baseboard/Module Information (Recommended) -==== Type 03: System Enclosure/Chassis (Recommended) -==== Type 04: Processor Information (Required) -==== Type 07: Cache Information (Required) -==== Type 08: Port Connector Information (Recommended) -Recommended for systems with physical ports. - -==== Type 09: System Slots (Conditionally Required) -Required for systems with expansion slots. - -==== Type 11: OEM Strings (Recommended) -==== Type 13: BIOS Language Information (Recommended) -==== Type 14: Group Associations (Recommended) -Recommended for systems to describe associations between SMBIOS types. - -==== Type 16: Physical Memory Array (Required) -==== Type 17: Memory Device (Required) -==== Type 19: Memory Array Mapped Address (Required) -==== Type 32: System Boot Information (Required) -==== Type 38: IPMI Device Information (Conditionally Required) -Required for systems with an IPMIv1.0 BMC Host Interface. - -==== Type 39: System Power Supplies (Recommended) -Recommended for servers. - -==== Type 41: Onboard Devices Extended Information (Recommended) -==== Type 42: Redfish Host Interface (Conditionally Required) -Required for systems supporting the Redfish Host Interface. - -==== Type 43: TPM Device (Conditionally Required) -Required for systems with a TPM. - -==== Type 44: Standard Processor Additional Information (Required) -==== Type 45: Firmware Inventory Information (Recommended) -==== Type 46: String Property (Recommended) - +The System Management BIOS (SMBIOS) specification defines a standard format for presenting management information about an implentation, mostly focusing on hardware components. + +This section defines the BRS-I mandatory and optional SMBIOS requirements +on top of cite:[SMBIOS], and is optional and recommended for BRS-B. Additional non-normative guidance may be found in the <>. + +.*SMBIOS structures in a conforming implementation* +[cols="1,3,2,4", width=95%, align="center", options="header"] +|=== +| Type | SMBIOS Structure | Status | Note +| 02 | Baseboard/Module Information | Recommended | +| 03 | System Enclosure/Chassis | Recommended | Relaxes DMTF requirement. +| 08 | Port Connector Information | Recommended | When physical ports present. +| 09 | System Slots | Conditional | Required when expansion slots present. +| 11 | OEM Strings | Recommended | +| 13 | BIOS Language Information | Recommended | +| 14 | Group Associations | Recommended | To describe associations between SMBIOS types. +| 38 | IPMI Device Information | Conditional | Required when IPMIv1.0 host interface present. +| 39 | System Power Supplies | Recommended | For servers. +| 41 | Onboard Devices Extended Information | Recommended | +| 42 | Redfish Host Interface | Conditional | Required when Redfish host interface present. +| 43 | TPM Device | Conditional | Required when TPM present. +| 44 | Standard Processor Additional Information | Required | +| 45 | Firwmare Inventory Information | Recommended | +| 46 | String Property | Recommended | +|=== diff --git a/uefi.adoc b/uefi.adoc index 3bee757..10f2f37 100644 --- a/uefi.adoc +++ b/uefi.adoc @@ -12,6 +12,7 @@ A compliant system must: * Meet the following UEFI memory map requirements: ** The default memory space attribute must be EFI_MEMORY_WB. ** Enable address translation. +** Only use EfiRuntimeServicesData memory type for describing any SMBIOS data structures. * Declare a EFI_CONFORMANCE_PROFILES_UEFI_SPEC_GUID conformance profile, as the BRS requirements are a superset of UEFI cite:[UEFI] (Section 2.6). * Declare EFI_CONFORMANCE_PROFILE_BRS_1_0_SPEC_GUID conformance profile ({ 0x05453310, 0x0545, 0x0545, { 0x05, 0x45, 0x33, 0x05, 0x45, 0x33, 0x05, 0x45 }}).