]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Initial work on 64-bit systems.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 10 Mar 2010 21:47:37 +0000 (22:47 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 10 Mar 2010 21:47:37 +0000 (22:47 +0100)
doc/multiboot.texi

index db06539cabf497c1c8ce349fcc48b42446ecc296..d1606e5df8ebf0c0c562dbfbc27e3a1e6dcb9290 100644 (file)
@@ -296,6 +296,13 @@ little-endian, u32 is coded in little-endian.
 @item u64
 The type of unsigned 64-bit data. Because the target architecture is
 little-endian, u64 is coded in little-endian.
+
+@item u_phys
+The type of unsigned data of the same size as target architecture physical address size.
+
+@item u_virt
+The type of unsigned data of the same size as target architecture virtual address size.
+
 @end table
 
 
@@ -406,9 +413,9 @@ Every structure has following format:
 @example
 @group
         +-------------------+
-0       | type              |
-4       | size              |
-8-11    | flags             |
+u32     | type              |
+u32     | size              |
+u32     | flags             |
         +-------------------+
 @end group
 @end example
@@ -425,10 +432,10 @@ Tags are terminated by a tag of type @samp{0} and size @samp{12}.
 @example
 @group
         +-------------------+
-0       | type = 1          |
-4       | size              |
-8       | flags             |
-12-xx   | mbi_tag_types     |
+u32     | type = 1          |
+u32     | size              |
+u32     | flags             |
+u32[n]  | mbi_tag_types     |
         +-------------------+
 @end group
 @end example
@@ -450,13 +457,13 @@ actually be present. E.g. on a videoless system even if you requested tag
 @example
 @group
         +-------------------+
-0       | type = 2          |
-4       | size = 28         |
-8       | flags             |
-12      | header_addr       |
-16      | load_addr         |
-20      | load_end_addr     |
-24-27   | bss_end_addr      |
+u32     | type = 2          |
+u32     | size = 28         |
+u32     | flags             |
+u_virt  | header_addr       |
+u_virt  | load_addr         |
+u_virt  | load_end_addr     |
+u_virt  | bss_end_addr      |
         +-------------------+
 @end group
 @end example
@@ -499,10 +506,10 @@ assumes that no bss segment is present.
 @example
 @group
         +-------------------+
-0       | type = 3          |
-4       | size = 16         |
-8       | flags             |
-12-15   | entry_addr        |
+u32     | type = 3          |
+u32     | size = 16         |
+u32     | flags             |
+u_virt  | entry_addr        |
         +-------------------+
 @end group
 @end example
@@ -523,10 +530,10 @@ start running the operating system.
 @example
 @group
         +-------------------+
-0       | type = 4          |
-4       | size = 16         |
-8       | flags             |
-12-15   | console_flags     |
+u32     | type = 4          |
+u32     | size = 16         |
+u32     | flags             |
+u32     | console_flags     |
         +-------------------+
 @end group
 @end example
@@ -541,12 +548,12 @@ indicates that the OS image has EGA text support.
 @example
 @group
         +-------------------+
-0       | type = 5          |
-4       | size = 24         |
-8       | flags             |
-12      | width             |
-16      | height            |
-20-23   | depth             |
+u32     | type = 5          |
+u32     | size = 24         |
+u32     | flags             |
+u32     | width             |
+u32     | height            |
+u32     | depth             |
         +-------------------+
 @end group
 @end example
@@ -583,9 +590,9 @@ preference.
 @example
 @group
         +-------------------+
-0       | type = 6          |
-4       | size = 12         |
-8-11    | flags             |
+u32     | type = 6          |
+u32     | size = 12         |
+u32     | flags             |
         +-------------------+
 @end group
 @end example
@@ -685,8 +692,8 @@ Boot information consists of fixed part and a series of tags. Its start is 8-byt
 @example
 @group
         +-------------------+
-0-3     | total_size        |
-4-7     | reserved          |
+u32     | total_size        |
+u32     | reserved          |
         +-------------------+
 @end group
 @end example
@@ -701,8 +708,8 @@ Every tag begins with following fields:
 @example
 @group
         +-------------------+
-0       | type              |
-4-7     | size              |
+u32     | type              |
+u32     | size              |
         +-------------------+
 @end group
 @end example
@@ -715,10 +722,10 @@ Tags follow one another padded when necessary in order for each tag to start at
 @example
 @group
         +-------------------+
-0       | type = 4          |
-4       | size = 16         |
-8       | mem_lower         |
-12-15   | mem_upper         |
+u32     | type = 4          |
+u32     | size = 16         |
+u32     | mem_lower         |
+u32     | mem_upper         |
         +-------------------+
 @end group
 @end example
@@ -734,11 +741,11 @@ minus 1 megabyte. It is not guaranteed to be this value.
 @example
 @group
         +-------------------+
-0       | type = 5          |
-4       | size = 20         |
-8       | biosdev           |
-12      | partition         |
-16-19   | sub_parition      |
+u32     | type = 5          |
+u32     | size = 20         |
+u32     | biosdev           |
+u32     | partition         |
+u32     | sub_parition      |
         +-------------------+
 @end group
 @end example
@@ -778,9 +785,9 @@ partition on a disk partitioned in conventional DOS style, then
 @example
 @group
         +-------------------+
-0       | type = 1          |
-4       | size              |
-8-xx    | string            |
+u32     | type = 1          |
+u32     | size              |
+u8[n]   | string            |
         +-------------------+
 @end group
 @end example
@@ -792,11 +799,11 @@ zero-terminated UTF-8 string.
 @example
 @group
         +-------------------+
-0       | type = 3          |
-4       | size              |
-8       | mod_start         |
-12      | mod_end           |
-16-xx   | string            |   
+u32     | type = 3          |
+u32     | size              |
+u_phys  | mod_start         |
+u_phys  | mod_end           |
+u8[n]   | string            |   
         +-------------------+
 @end group
 @end example
@@ -822,12 +829,13 @@ the Multiboot information structure starting at byte 28 are valid:
 @example
 @group
         +-------------------+
-0       | type = 9          |
-4       | size              |
-8       | num               |
-12      | entsize           |
-16      | shndx             |
-20-xx   | section headers   |
+u32     | type = 9          |
+u32     | size              |
+u16     | num               |
+u16     | entsize           |
+u16     | shndx             |
+u16     | reserved          |
+varies  | section headers   |
         +-------------------+
 @end group
 @end example
@@ -848,11 +856,11 @@ This tag provides memory map.
 @example
 @group
         +-------------------+
-0       | type = 6          |
-4       | size              |
-8       | entry_size        |
-12      | entry_version     |
-16-xx   | entries           |
+u32     | type = 6          |
+u32     | size              |
+u32     | entry_size        |
+u32     | entry_version     |
+varies  | entries           |
         +-------------------+
 @end group
 @end example
@@ -863,10 +871,10 @@ This tag provides memory map.
 @example
 @group
         +-------------------+
-0       | base_addr         |
-8       | length            |
-16      | type              |
-20      | reserved          |
+u64     | base_addr         |
+u64     | length            |
+u32     | type              |
+u32     | reserved          |
         +-------------------+
 @end group
 @end example
@@ -885,9 +893,9 @@ be available for normal use.
 @example
 @group
         +-------------------+
-0       | type = 2          |
-4       | size              |
-8-xx    | string            |
+u32     | type = 2          |
+u32     | size              |
+u8[n]   | string            |
         +-------------------+
 @end group
 @end example
@@ -901,17 +909,17 @@ The tag type 10 contains @sc{apm} table
 @example
 @group
         +----------------------+
-0       | type = 10            |
-4       | size = 28            |
-8       | version              |
-10      | cseg                 |
-12      | offset               |
-16      | cseg_16              |
-18      | dseg                 |
-20      | flags                |
-22      | cseg_len             |
-24      | cseg_16_len          |
-26-27   | dseg_len             |
+u32     | type = 10            |
+u32     | size = 28            |
+u16     | version              |
+u16     | cseg                 |
+u32     | offset               |
+u16     | cseg_16              |
+u16     | dseg                 |
+u16     | flags                |
+u16     | cseg_len             |
+u16     | cseg_16_len          |
+u16     | dseg_len             |
         +----------------------+
 @end group
 @end example
@@ -932,14 +940,14 @@ Management (APM) BIOS Interface Specification}, for more information.
 @example
 @group
         +-------------------+
-0       | type = 7          |
-4       | size = 784        |
-8       | vbe_mode          |
-10      | vbe_interface_seg |
-12      | vbe_interface_off |
-14      | vbe_interface_len |
-16      | vbe_control_info  |
-528-783 | vbe_mode_info     |
+u32     | type = 7          |
+u32     | size = 784        |
+u16     | vbe_mode          |
+u16     | vbe_interface_seg |
+u16     | vbe_interface_off |
+u16     | vbe_interface_len |
+u8[512] | vbe_control_info  |
+u8[256] | vbe_mode_info     |
         +-------------------+
 @end group
 @end example
@@ -964,16 +972,16 @@ yourself.
 @example
 @group
         +--------------------+
-0       | type = 8           |
-4       | size               |
-8       | framebuffer_addr   |
-16      | framebuffer_pitch  |
-20      | framebuffer_width  |
-24      | framebuffer_height |
-28      | framebuffer_bpp    |
-29      | framebuffer_type   |
-30      | reserved           |
-32      | color_info         |
+u32     | type = 8           |
+u32     | size               |
+u64     | framebuffer_addr   |
+u32     | framebuffer_pitch  |
+u32     | framebuffer_width  |
+u32     | framebuffer_height |
+u8      | framebuffer_bpp    |
+u8      | framebuffer_type   |
+u8      | reserved           |
+varies  | color_info         |
         +--------------------+
 @end group
 @end example
@@ -982,8 +990,8 @@ The field @samp{framebuffer_addr} contains framebuffer physical address. This fi
 @example
 @group
         +----------------------------------+
-32      | framebuffer_palette_num_colors   |
-36-xx   | framebuffer_palette              |
+u32     | framebuffer_palette_num_colors   |
+varies  | framebuffer_palette              |
         +----------------------------------+
 @end group
 @end example
@@ -992,9 +1000,9 @@ Each colour descriptor has following structure:
 @example
 @group
         +-------------+
-      | red_value   |
-      | green_value |
-2-2     | blue_value  |
+u8      | red_value   |
+u8      | green_value |
+u8      | blue_value  |
         +-------------+
 @end group
 @end example
@@ -1004,12 +1012,12 @@ Then color_type is defined as follows:
 @example
 @group
        +----------------------------------+
-32     | framebuffer_red_field_position   |
-33     | framebuffer_red_mask_size        |
-34     | framebuffer_green_field_position |
-35     | framebuffer_green_mask_size      |
-36     | framebuffer_blue_field_position  |
-37-37  | framebuffer_blue_mask_size       |
+u8     | framebuffer_red_field_position   |
+u8     | framebuffer_red_mask_size        |
+u8     | framebuffer_green_field_position |
+u8     | framebuffer_green_mask_size      |
+u8     | framebuffer_blue_field_position  |
+u8     | framebuffer_blue_mask_size       |
        +----------------------------------+
 @end group
 @end example