diff options
Diffstat (limited to 'Documentation/i386/boot.txt')
-rw-r--r-- | Documentation/i386/boot.txt | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Documentation/i386/boot.txt b/Documentation/i386/boot.txt index fc49b79bc1ab..0fac3465f2e3 100644 --- a/Documentation/i386/boot.txt +++ b/Documentation/i386/boot.txt | |||
@@ -42,6 +42,8 @@ Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable. | |||
42 | Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of | 42 | Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of |
43 | the boot command line | 43 | the boot command line |
44 | 44 | ||
45 | Protocol 2.09: (kernel 2.6.26) Added a field of 64-bit physical | ||
46 | pointer to single linked list of struct setup_data. | ||
45 | 47 | ||
46 | **** MEMORY LAYOUT | 48 | **** MEMORY LAYOUT |
47 | 49 | ||
@@ -170,6 +172,10 @@ Offset Proto Name Meaning | |||
170 | 0238/4 2.06+ cmdline_size Maximum size of the kernel command line | 172 | 0238/4 2.06+ cmdline_size Maximum size of the kernel command line |
171 | 023C/4 2.07+ hardware_subarch Hardware subarchitecture | 173 | 023C/4 2.07+ hardware_subarch Hardware subarchitecture |
172 | 0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data | 174 | 0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data |
175 | 0248/4 2.08+ payload_offset Offset of kernel payload | ||
176 | 024C/4 2.08+ payload_length Length of kernel payload | ||
177 | 0250/8 2.09+ setup_data 64-bit physical pointer to linked list | ||
178 | of struct setup_data | ||
173 | 179 | ||
174 | (1) For backwards compatibility, if the setup_sects field contains 0, the | 180 | (1) For backwards compatibility, if the setup_sects field contains 0, the |
175 | real value is 4. | 181 | real value is 4. |
@@ -512,6 +518,32 @@ Protocol: 2.07+ | |||
512 | 518 | ||
513 | A pointer to data that is specific to hardware subarch | 519 | A pointer to data that is specific to hardware subarch |
514 | 520 | ||
521 | Field name: payload_offset | ||
522 | Type: read | ||
523 | Offset/size: 0x248/4 | ||
524 | Protocol: 2.08+ | ||
525 | |||
526 | If non-zero then this field contains the offset from the end of the | ||
527 | real-mode code to the payload. | ||
528 | |||
529 | The payload may be compressed. The format of both the compressed and | ||
530 | uncompressed data should be determined using the standard magic | ||
531 | numbers. Currently only gzip compressed ELF is used. | ||
532 | |||
533 | Field name: payload_length | ||
534 | Type: read | ||
535 | Offset/size: 0x24c/4 | ||
536 | Protocol: 2.08+ | ||
537 | |||
538 | The length of the payload. | ||
539 | |||
540 | **** THE IMAGE CHECKSUM | ||
541 | |||
542 | From boot protocol version 2.08 onwards the CRC-32 is calculated over | ||
543 | the entire file using the characteristic polynomial 0x04C11DB7 and an | ||
544 | initial remainder of 0xffffffff. The checksum is appended to the | ||
545 | file; therefore the CRC of the file up to the limit specified in the | ||
546 | syssize field of the header is always 0. | ||
515 | 547 | ||
516 | **** THE KERNEL COMMAND LINE | 548 | **** THE KERNEL COMMAND LINE |
517 | 549 | ||
@@ -544,6 +576,28 @@ command line is entered using the following protocol: | |||
544 | covered by setup_move_size, so you may need to adjust this | 576 | covered by setup_move_size, so you may need to adjust this |
545 | field. | 577 | field. |
546 | 578 | ||
579 | Field name: setup_data | ||
580 | Type: write (obligatory) | ||
581 | Offset/size: 0x250/8 | ||
582 | Protocol: 2.09+ | ||
583 | |||
584 | The 64-bit physical pointer to NULL terminated single linked list of | ||
585 | struct setup_data. This is used to define a more extensible boot | ||
586 | parameters passing mechanism. The definition of struct setup_data is | ||
587 | as follow: | ||
588 | |||
589 | struct setup_data { | ||
590 | u64 next; | ||
591 | u32 type; | ||
592 | u32 len; | ||
593 | u8 data[0]; | ||
594 | }; | ||
595 | |||
596 | Where, the next is a 64-bit physical pointer to the next node of | ||
597 | linked list, the next field of the last node is 0; the type is used | ||
598 | to identify the contents of data; the len is the length of data | ||
599 | field; the data holds the real payload. | ||
600 | |||
547 | 601 | ||
548 | **** MEMORY LAYOUT OF THE REAL-MODE CODE | 602 | **** MEMORY LAYOUT OF THE REAL-MODE CODE |
549 | 603 | ||