From: Vladimir 'phcoder' Serbinenko Date: Mon, 20 Sep 2010 23:41:26 +0000 (+0200) Subject: * doc/multiboot.texi: New tags for EFI system table, DHCP ACK, SMBIOS X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6038ec9ee150344815216f1edd0a87b365e78af1;p=thirdparty%2Fgrub.git * doc/multiboot.texi: New tags for EFI system table, DHCP ACK, SMBIOS and RSDP. --- diff --git a/ChangeLog b/ChangeLog index dc4a389d0..da9c9ea1c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-09-20 Vladimir Serbinenko + + * doc/multiboot.texi: New tags for EFI system table, DHCP ACK, SMBIOS + and RSDP. + 2010-07-02 Vladimir Serbinenko * doc/multiboot.texi: Typo fix. diff --git a/doc/multiboot.texi b/doc/multiboot.texi index ca84880e6..a4482a902 100644 --- a/doc/multiboot.texi +++ b/doc/multiboot.texi @@ -690,6 +690,8 @@ The OS image must leave interrupts disabled until it sets up its own @code{IDT}. @end table +On EFI system boot services must be terminated. + @node Boot information format @section Boot information @subsection Boot information format @@ -1044,6 +1046,88 @@ u8 | framebuffer_blue_mask_size | If @samp{framebuffer_type} is set to @samp{2} it means EGA text. In this case @samp{framebuffer_width} and @samp{framebuffer_height} are expressed in characters and not in pixels. @samp{framebuffer_bpp} is equal 16 (16 bits per character) and @samp{framebuffer_pitch} is expressed in bytes per text line. All further values of @samp{framebuffer_type} are reserved for future expansion +@subsection EFI 32-bit system table pointer +@example +@group + +-------------------+ +u32 | type = 11 | +u32 | size = 12 | +u32 | pointer | + +-------------------+ +@end group +@end example + +This tag contains pointer to i386 EFI system table. + +@subsection EFI 64-bit system table pointer +@example +@group + +-------------------+ +u32 | type = 12 | +u32 | size = 16 | +u64 | pointer | + +-------------------+ +@end group +@end example + +This tag contains pointer to amd64 EFI system table. + +@subsection SMBIOS tables +@example +@group + +-------------------+ +u32 | type = 13 | +u32 | size | +u8 | major | +u8 | minor | +u8[6] | reserved | + | smbios tables | + +-------------------+ +@end group +@end example + +This tag contains a copy of SMBIOS tables as well as their version. + +@subsection ACPI old RSDP +@example +@group + +-------------------+ +u32 | type = 14 | +u32 | size | + | copy of RSDPv1 | + +-------------------+ +@end group +@end example + +This tag contains a copy of RSDP as defined per ACPI 1.0 specification. + +@subsection ACPI new RSDP +@example +@group + +-------------------+ +u32 | type = 15 | +u32 | size | + | copy of RSDPv2 | + +-------------------+ +@end group +@end example + +This tag contains a copy of RSDP as defined per ACPI 2.0 or later specification. + +@subsection Networking information +@example +@group + +-------------------+ +u32 | type = 16 | +u32 | size | + | DHCP ACK | + +-------------------+ +@end group +@end example + +This tag contains network information in the format specified as DHCP. It may be either a real DHCP reply or just the configuration info in the same format. This tag appears once per card. + + @node Examples @chapter Examples diff --git a/doc/multiboot2.h b/doc/multiboot2.h index 275debe75..09a640ffb 100644 --- a/doc/multiboot2.h +++ b/doc/multiboot2.h @@ -52,6 +52,12 @@ #define MULTIBOOT_TAG_TYPE_FRAMEBUFFER 8 #define MULTIBOOT_TAG_TYPE_ELF_SECTIONS 9 #define MULTIBOOT_TAG_TYPE_APM 10 +#define MULTIBOOT_TAG_TYPE_EFI32 11 +#define MULTIBOOT_TAG_TYPE_EFI64 12 +#define MULTIBOOT_TAG_TYPE_SMBIOS 13 +#define MULTIBOOT_TAG_TYPE_ACPI_OLD 14 +#define MULTIBOOT_TAG_TYPE_ACPI_NEW 15 +#define MULTIBOOT_TAG_TYPE_NETWORK 16 #define MULTIBOOT_HEADER_TAG_END 0 #define MULTIBOOT_HEADER_TAG_INFORMATION_REQUEST 1 @@ -309,6 +315,51 @@ struct multiboot_tag_apm multiboot_uint16_t dseg_len; }; +struct multiboot_tag_efi32 +{ + multiboot_uint32_t type; + multiboot_uint32_t size; + multiboot_uint32_t pointer; +}; + +struct multiboot_tag_efi64 +{ + multiboot_uint32_t type; + multiboot_uint32_t size; + multiboot_uint64_t pointer; +}; + +struct multiboot_tag_smbios +{ + 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]; +}; + +struct multiboot_tag_old_acpi +{ + multiboot_uint32_t type; + multiboot_uint32_t size; + multiboot_uint8_t rsdp[0]; +}; + +struct multiboot_tag_new_acpi +{ + multiboot_uint32_t type; + multiboot_uint32_t size; + multiboot_uint8_t rsdp[0]; +}; + +struct multiboot_tag_network +{ + multiboot_uint32_t type; + multiboot_uint32_t size; + multiboot_uint8_t dhcpack[0]; +}; + #endif /* ! ASM_FILE */ #endif /* ! MULTIBOOT_HEADER */