aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/i386
diff options
context:
space:
mode:
authorHuang, Ying <ying.huang@intel.com>2008-03-27 22:49:50 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-26 15:34:42 -0400
commitfb884381273669fad034538e6cb186678407cf22 (patch)
tree2f54f6bb709f50da5325e8e3a9e1c52c649deb4d /Documentation/i386
parentc14b2adf19b5d35aff91280b1a73c41a4dcabfe3 (diff)
x86, boot: Document for linked list of struct setup_data
Documentation for linked list of struct setup_data. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'Documentation/i386')
-rw-r--r--Documentation/i386/boot.txt26
1 files changed, 26 insertions, 0 deletions
diff --git a/Documentation/i386/boot.txt b/Documentation/i386/boot.txt
index 2eb16100bb3f..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
@@ -172,6 +174,8 @@ Offset Proto Name Meaning
1720240/8 2.07+ hardware_subarch_data Subarchitecture-specific data 1740240/8 2.07+ hardware_subarch_data Subarchitecture-specific data
1730248/4 2.08+ payload_offset Offset of kernel payload 1750248/4 2.08+ payload_offset Offset of kernel payload
174024C/4 2.08+ payload_length Length 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
175 179
176(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
177 real value is 4. 181 real value is 4.
@@ -572,6 +576,28 @@ command line is entered using the following protocol:
572 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
573 field. 577 field.
574 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
575 601
576**** MEMORY LAYOUT OF THE REAL-MODE CODE 602**** MEMORY LAYOUT OF THE REAL-MODE CODE
577 603