diff options
| author | Huang, Ying <ying.huang@intel.com> | 2008-03-27 22:49:50 -0400 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-04-26 15:34:42 -0400 | 
| commit | fb884381273669fad034538e6cb186678407cf22 (patch) | |
| tree | 2f54f6bb709f50da5325e8e3a9e1c52c649deb4d | |
| parent | c14b2adf19b5d35aff91280b1a73c41a4dcabfe3 (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>
| -rw-r--r-- | Documentation/i386/boot.txt | 26 | 
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. | |||
| 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 | ||
| @@ -172,6 +174,8 @@ Offset Proto Name Meaning | |||
| 172 | 0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data | 174 | 0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data | 
| 173 | 0248/4 2.08+ payload_offset Offset of kernel payload | 175 | 0248/4 2.08+ payload_offset Offset of kernel payload | 
| 174 | 024C/4 2.08+ payload_length Length 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 | ||
| 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 | ||
| 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 | |||
| 575 | 601 | ||
| 576 | **** MEMORY LAYOUT OF THE REAL-MODE CODE | 602 | **** MEMORY LAYOUT OF THE REAL-MODE CODE | 
| 577 | 603 | ||
