[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RFC: SMBIOS Multiboot 2 Tag Revision

From: Seth Goldberg
Subject: RFC: SMBIOS Multiboot 2 Tag Revision
Date: Tue, 24 Jan 2012 12:26:16 -0800 (PST)
User-agent: Alpine 2.00 (GSO 1167 2008-08-23)


I'd like to revise the definition of the SMBIOS tag in the Multiboot2 Info structures to include ONLY the SMBIOS Entry Point structure (**). The current definition includes the SMBIOS tables themselves, but this is wasteful (even it the maximum size of the tables is 64k, they are always located in memory, in reserved regions, and duplicating them would be a waste of space). Additionally, many OS consumers need most of the values from the Entry Point structure itself anyway. The alternate solution here is to include both the Entry Point structure and the tables, but that's suboptimal because one would have to include a pointer to the tables (located after the Entry Point structure in memory when stored in a MBI2 tag), which would make relocating (copying) the entire MBI2 structure much more complicated than a simple memcpy. All this boils down to the fact that the most straightforward solution is to JUST include the Entry Point structure, and to allow the SMBIOS tables to remain where firmware placed them.


(**) The SMBIOS Entry Point structure is documented in DMTF Specification DSP0134 (SMBIOS Specification), the latest version of which is available from:

=== modified file 'doc/multiboot.texi'
--- doc/multiboot.texi  2012-01-24 20:11:24 +0000
+++ doc/multiboot.texi  2012-01-24 20:14:53 +0000
@@ -1072,21 +1072,21 @@

 This tag contains pointer to amd64 EFI system table.

address@hidden SMBIOS tables
address@hidden SMBIOS Entry Point structure
 u32     | type = 13         |
 u32     | size              |
-u8      | major             |
-u8      | minor             |
-u8[6]   | reserved          |
-        | smbios tables     |
+        | smbios entry      |
+        |  point structure  |
 @end group
 @end example

-This tag contains a copy of SMBIOS tables as well as their version.
+This tag contains a copy of the SMBIOS entry point structure.  The SMBIOS
+tables are located elsewhere in memory (in firmware-reserved regions),
+referenced by the SMBIOS Entry Point structure.

 @subsection ACPI old RSDP

=== modified file 'doc/multiboot2.h'
--- doc/multiboot2.h    2012-01-24 20:11:24 +0000
+++ doc/multiboot2.h    2012-01-24 20:15:15 +0000
@@ -334,10 +334,7 @@
   multiboot_uint32_t type;
   multiboot_uint32_t size;
-  multiboot_uint8_t major;
-  multiboot_uint8_t minor;
-  multiboot_uint8_t reserved[6];
-  multiboot_uint8_t tables[0];
+  multiboot_uint8_t entry_point[0];

 struct multiboot_tag_old_acpi

reply via email to

[Prev in Thread] Current Thread [Next in Thread]