mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-28 10:10:29 +00:00
Compact header tags
This commit is contained in:
1 parent
dc375d6161
commit
fd393d45aa
1 file changed
+45
-32
+45
-32
@@ -348,6 +348,8 @@ executable header.
|
|||||||
* Information request header tag::
|
* Information request header tag::
|
||||||
* Address header tag::
|
* Address header tag::
|
||||||
* Console header tags::
|
* Console header tags::
|
||||||
|
* Module alignment tag::
|
||||||
|
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
@@ -424,17 +426,20 @@ Tags are terminated by a tag of type @samp{0} and size @samp{12}.
|
|||||||
@group
|
@group
|
||||||
+-------------------+
|
+-------------------+
|
||||||
0 | type = 1 |
|
0 | type = 1 |
|
||||||
4 | size = 16 |
|
4 | size |
|
||||||
8 | optional |
|
8 | optional |
|
||||||
12-15 | mbi_tag_type |
|
12-xx | mbi_tag_types |
|
||||||
+-------------------+
|
+-------------------+
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@samp{mbi_tag_types} is an array of u32 each one representing an information
|
||||||
|
request
|
||||||
If this tag is present and @samp{optional} is set to @samp{0} information
|
If this tag is present and @samp{optional} is set to @samp{0} information
|
||||||
conveyed by tag type @samp{mbi_tag_type} must be present.
|
conveyed by requested tag types must be present. If bootloader is unable
|
||||||
|
to supply this information it must fail with an error
|
||||||
|
|
||||||
Note: it doesn't garantee that any tags of type @samp{mbi_tag_type} will
|
Note: it doesn't garantee that any tags of type @samp{mbi_tag_types} will
|
||||||
actually be present. E.g. on a videoless system even if you requested tag
|
actually be present. E.g. on a videoless system even if you requested tag
|
||||||
@samp{8} no tags of type @samp{8} will be present in mbi.
|
@samp{8} no tags of type @samp{8} will be present in mbi.
|
||||||
|
|
||||||
@@ -446,12 +451,11 @@ actually be present. E.g. on a videoless system even if you requested tag
|
|||||||
@group
|
@group
|
||||||
+-------------------+
|
+-------------------+
|
||||||
0 | type = 2 |
|
0 | type = 2 |
|
||||||
4 | size = 28 |
|
4 | size = 24 |
|
||||||
8 | optional |
|
8 | optional |
|
||||||
12 | header_addr |
|
12 | header_addr |
|
||||||
16 | load_addr |
|
16 | load_addr |
|
||||||
20 | load_end_addr |
|
20-23 | load_end_addr |
|
||||||
24-27 | entry_addr |
|
|
||||||
+-------------------+
|
+-------------------+
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
@@ -487,34 +491,56 @@ occupies to avoid placing boot modules and other data relevant to the
|
|||||||
operating system in that area. If this field is zero, the boot loader
|
operating system in that area. If this field is zero, the boot loader
|
||||||
assumes that no bss segment is present.
|
assumes that no bss segment is present.
|
||||||
|
|
||||||
@item entry_addr
|
|
||||||
The physical address to which the boot loader should jump in order to
|
|
||||||
start running the operating system.
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@subsection The entry address tag of Multiboot header
|
||||||
@node Console header tags
|
|
||||||
@subsection The interractive console request
|
|
||||||
|
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
+-------------------+
|
+-------------------+
|
||||||
0 | type = 3 |
|
0 | type = 3 |
|
||||||
4 | size = 12 |
|
4 | size = 16 |
|
||||||
8-11 | optional |
|
8 | optional |
|
||||||
|
12-15 | entry_addr |
|
||||||
+-------------------+
|
+-------------------+
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
If this tag is present at least one of supported consoles must be present
|
All of the address fields in this tag are physical addresses.
|
||||||
and information about it must be available in mbi.
|
The meaning of each is as follows:
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
|
||||||
|
@item entry_addr
|
||||||
|
The physical address to which the boot loader should jump in order to
|
||||||
|
start running the operating system.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@node Console header tags
|
||||||
|
@subsection Flags tag
|
||||||
|
|
||||||
|
@example
|
||||||
|
@group
|
||||||
|
+-------------------+
|
||||||
|
0 | type = 4 |
|
||||||
|
4 | size = 16 |
|
||||||
|
8 | optional |
|
||||||
|
12-15 | flags |
|
||||||
|
+-------------------+
|
||||||
|
@end group
|
||||||
|
@end example
|
||||||
|
|
||||||
|
If this tag is present and bit 0 of @samp{flags} is set
|
||||||
|
at least one of supported consoles must be present and information about it must be available in mbi.
|
||||||
|
If bit @samp{1} of @samp{flags} is set it
|
||||||
|
indicates that the OS image has EGA text support.
|
||||||
|
|
||||||
@subsection The framebuffer tag of Multiboot header
|
@subsection The framebuffer tag of Multiboot header
|
||||||
|
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
+-------------------+
|
+-------------------+
|
||||||
0 | type = 4 |
|
0 | type = 5 |
|
||||||
4 | size = 24 |
|
4 | size = 24 |
|
||||||
8 | optional |
|
8 | optional |
|
||||||
12 | width |
|
12 | width |
|
||||||
@@ -549,21 +575,8 @@ a text mode. The value zero indicates that the OS image has no
|
|||||||
preference.
|
preference.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@subsection The EGA text tag of Multiboot header
|
|
||||||
|
|
||||||
@example
|
|
||||||
@group
|
|
||||||
+-------------------+
|
|
||||||
0 | type = 5 |
|
|
||||||
4 | size = 12 |
|
|
||||||
8-11 | optional |
|
|
||||||
+-------------------+
|
|
||||||
@end group
|
|
||||||
@end example
|
|
||||||
|
|
||||||
This tag indicates that the OS image has EGA text support.
|
|
||||||
|
|
||||||
|
|
||||||
|
@node Module alignment tag
|
||||||
@subsection Module alignment tag
|
@subsection Module alignment tag
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
|||||||
Reference in new issue
Block a user