]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* doc/multiboot.texi: New tags for EFI system table, DHCP ACK, SMBIOS
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 20 Sep 2010 23:41:26 +0000 (01:41 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 20 Sep 2010 23:41:26 +0000 (01:41 +0200)
and RSDP.

ChangeLog
doc/multiboot.texi
doc/multiboot2.h

index dc4a389d080eb8c4a0437630d72258f1bfb701fd..da9c9ea1cca40555e6b9b4c8e79fca321f271e8d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-20  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * doc/multiboot.texi: New tags for EFI system table, DHCP ACK, SMBIOS
+       and RSDP.
+
 2010-07-02  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * doc/multiboot.texi: Typo fix.
index ca84880e60f6b551130247499ee6605062f0327d..a4482a90253435670f8853ff4d903b4dbd1511f8 100644 (file)
@@ -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
 
index 275debe758d0aa7f95d8ec8266fecd1d24286b3a..09a640ffb271dc002f5d788a2027bbe2d35d10a3 100644 (file)
 #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 */