@code{IDT}.
@end table
+On EFI system boot services must be terminated.
+
@node Boot information format
@section Boot information
@subsection Boot information format
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
#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
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 */