aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/i386/boot.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/i386/boot.txt')
-rw-r--r--Documentation/i386/boot.txt54
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.
42Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of 42Protocol 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
45Protocol 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
1700238/4 2.06+ cmdline_size Maximum size of the kernel command line 1720238/4 2.06+ cmdline_size Maximum size of the kernel command line
171023C/4 2.07+ hardware_subarch Hardware subarchitecture 173023C/4 2.07+ hardware_subarch Hardware subarchitecture
1720240/8 2.07+ hardware_subarch_data Subarchitecture-specific data 1740240/8 2.07+ hardware_subarch_data Subarchitecture-specific data
1750248/4 2.08+ payload_offset Offset of kernel payload
176024C/4 2.08+ payload_length Length of kernel payload
1770250/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
521Field name: payload_offset
522Type: read
523Offset/size: 0x248/4
524Protocol: 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
533Field name: payload_length
534Type: read
535Offset/size: 0x24c/4
536Protocol: 2.08+
537
538 The length of the payload.
539
540**** THE IMAGE CHECKSUM
541
542From boot protocol version 2.08 onwards the CRC-32 is calculated over
543the entire file using the characteristic polynomial 0x04C11DB7 and an
544initial remainder of 0xffffffff. The checksum is appended to the
545file; therefore the CRC of the file up to the limit specified in the
546syssize 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
579Field name: setup_data
580Type: write (obligatory)
581Offset/size: 0x250/8
582Protocol: 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