Hi, Sorry for the (very) late reply. I finally have a bit of time to go over my old boot loader.
While I believe there is merit to your proposal, I don't understand why you want to remove the version information. That is required to determine whether the OS should use the table-based method or the older Plug-and-Play function interface, which was removed from SMBIOS 2.7.0. If the table-based method is not supported, the boot loader should set the field to NULL. After this is done, I think this patch should be merged, so it is not forever lost. Cheers, Bogdan ________________________________ From: Seth Goldberg <[email protected]> To: [email protected] Sent: Tuesday, January 24, 2012 10:26 PM Subject: RFC: SMBIOS Multiboot 2 Tag Revision Hi, 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. Thanks, --S (**) The SMBIOS Entry Point structure is documented in DMTF Specification DSP0134 (SMBIOS Specification), the latest version of which is available from: http://dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf === 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. -@subsection SMBIOS tables +@subsection SMBIOS Entry Point structure @example @group +-------------------+ 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 @example === 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 _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
