Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb884381 authored by Huang, Ying's avatar Huang, Ying Committed by Ingo Molnar
Browse files

x86, boot: Document for linked list of struct setup_data



Documentation for linked list of struct setup_data.

Signed-off-by: default avatarHuang Ying <ying.huang@intel.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent c14b2adf
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable.
Protocol 2.06:	(Kernel 2.6.22) Added a field that contains the size of
		the boot command line

Protocol 2.09:	(kernel 2.6.26) Added a field of 64-bit physical
		pointer to single linked list of struct	setup_data.

**** MEMORY LAYOUT

@@ -172,6 +174,8 @@ Offset Proto Name Meaning
0240/8	2.07+	hardware_subarch_data Subarchitecture-specific data
0248/4	2.08+	payload_offset	Offset of kernel payload
024C/4	2.08+	payload_length	Length of kernel payload
0250/8	2.09+	setup_data	64-bit physical pointer to linked list
				of struct setup_data

(1) For backwards compatibility, if the setup_sects field contains 0, the
    real value is 4.
@@ -572,6 +576,28 @@ command line is entered using the following protocol:
	covered by setup_move_size, so you may need to adjust this
	field.

Field name:	setup_data
Type:		write (obligatory)
Offset/size:	0x250/8
Protocol:	2.09+

  The 64-bit physical pointer to NULL terminated single linked list of
  struct setup_data. This is used to define a more extensible boot
  parameters passing mechanism. The definition of struct setup_data is
  as follow:

  struct setup_data {
	  u64 next;
	  u32 type;
	  u32 len;
	  u8  data[0];
  };

  Where, the next is a 64-bit physical pointer to the next node of
  linked list, the next field of the last node is 0; the type is used
  to identify the contents of data; the len is the length of data
  field; the data holds the real payload.


**** MEMORY LAYOUT OF THE REAL-MODE CODE