This patch defines a 32-bit boot protocol and adds corresponding
document. It is based on the proposal of Peter Anvin.
Signed-off-by: Huang Ying <ying.huang@intel.com>
---
boot.txt | 68 ++++++++++++++++++++++++++++++
zero-page.txt | 129 +++++++++++++---------------------------------------------
2 files changed, 97 insertions(+), 100 deletions(-)
Index: linux-2.6.23/Documentation/i386/boot.txt
===================================================================
--- linux-2.6.23.orig/Documentation/i386/boot.txt 2007-10-22 13:32:20.000000000 +0800
+++ linux-2.6.23/Documentation/i386/boot.txt 2007-10-22 13:32:46.000000000 +0800
@@ -2,7 +2,7 @@
----------------------------
H. Peter Anvin <hpa@zytor.com>
- Last update 2007-05-23
+ Last update 2007-10-22
On the i386 platform, the Linux kernel uses a rather complicated boot
convention. This has evolved partially due to historical aspects, as
@@ -42,6 +42,9 @@
Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of
the boot command line
+Protocol 2.07: (kernel 2.6.23) Added a field of 64-bit physical
+ pointer to single linked list of struct setup_data.
+ Added 32-bit boot protocol.
**** MEMORY LAYOUT
@@ -168,6 +171,9 @@
0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not
0235/3 N/A pad2 Unused
0238/4 2.06+ cmdline_size Maximum size of the kernel command line
+023c/4 N/A pad3 Unused
+0240/8 2.07+ 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.
@@ -480,6 +486,37 @@
cmdline_size characters. With protocol version 2.05 and earlier, the
maximum size was 255.
+Field name: setup_data
+Type: write (obligatory)
+Offset/size: 0x240/8
+Protocol: 2.07+
+
+ The 64-bit physical pointer to NULL terminated single linked list of
+ struct setup_data. This is used to define a more extensible boot
+ p...