---------------------------------------------------------------------------
!!!!!!!!!!!!!!!WARNING!!!!!!!!
The zero page is a kernel internal data structure, not a stable ABI.  It might change
without warning and the kernel has no way to detect old version of it.
If you're writing some external code like a boot loader you should only use
the stable versioned real mode boot protocol described in boot.txt. Otherwise the kernel
might break you at any time.
!!!!!!!!!!!!!WARNING!!!!!!!!!!!
----------------------------------------------------------------------------

Summary of boot_params layout (kernel point of view)
     ( collected by Hans Lermen and Martin Mares )
 
The contents of boot_params are used to pass parameters from the
16-bit realmode code of the kernel to the 32-bit part. References/settings
to it mainly are in:

  arch/i386/boot/setup.S
  arch/i386/boot/video.S
  arch/i386/kernel/head.S
  arch/i386/kernel/setup.c
 

Offset	Type		Description
------  ----		-----------
    0	32 bytes	struct screen_info, SCREEN_INFO
			ATTENTION, overlaps the following !!!
    2	unsigned short	EXT_MEM_K, extended memory size in Kb (from int 0x15)
 0x20	unsigned short	CL_MAGIC, commandline magic number (=0xA33F)
 0x22	unsigned short	CL_OFFSET, commandline offset
			Address of commandline is calculated:
			  0x90000 + contents of CL_OFFSET
			(only taken, when CL_MAGIC = 0xA33F)
 0x40	20 bytes	struct apm_bios_info, APM_BIOS_INFO
 0x60	16 bytes	Intel SpeedStep (IST) BIOS support information
 0x80	16 bytes	hd0-disk-parameter from intvector 0x41
 0x90	16 bytes	hd1-disk-parameter from intvector 0x46

 0xa0	16 bytes	System description table truncated to 16 bytes.
			( struct sys_desc_table_struct )
 0xb0 - 0x13f		Free. Add more parameters here if you really need them.
 0x140- 0x1be		EDID_INFO Video mode setup

0x1c4	unsigned long	EFI system table pointer
0x1c8	unsigned long	EFI memory descriptor size
0x1cc	unsigned long	EFI memory descriptor version
0x1d0	unsigned long	EFI memory descriptor map pointer
0x1d4	unsigned long	EFI memory descriptor map size
0x1e0	unsigned long	ALT_MEM_K, alternative mem check, in Kb
0x1e4	unsigned long	Scratch field for the kernel setup code
0x1e8	char		number of entries in E820MAP (below)
0x1e9	unsigned char	number of entries in EDDBUF (below)
0x1ea	unsigned char	number of entries in EDD_MBR_SIG_BUFFER (below)
0x1f1	char		size of setup.S, number of sectors
0x1f2	unsigned short	MOUNT_ROOT_RDONLY (if !=0)
0x1f4	unsigned short	size of compressed kernel-part in the
			(b)zImage-file (in 16 byte units, rounded up)
0x1f6	unsigned short	swap_dev (unused AFAIK)
0x1f8	unsigned short	RAMDISK_FLAGS
0x1fa	unsigned short	VGA-Mode (old one)
0x1fc	unsigned short	ORIG_ROOT_DEV (high=Major, low=minor)
0x1ff	char		AUX_DEVICE_INFO

0x200	short jump to start of setup code aka "reserved" field.
0x202	4 bytes		Signature for SETUP-header, ="HdrS"
0x206	unsigned short	Version number of header format
			Current version is 0x0201...
0x208	8 bytes		(used by setup.S for communication with boot loaders,
			 look there)
0x210	char		LOADER_TYPE, = 0, old one
			else it is set by the loader:
			0xTV: T=0 for LILO
				1 for Loadlin
				2 for bootsect-loader
				3 for SYSLINUX
				4 for ETHERBOOT
				5 for ELILO
				7 for GRuB
				8 for U-BOOT
				9 for Xen
				V = version
0x211	char		loadflags:
			bit0 = 1: kernel is loaded high (bzImage)
			bit7 = 1: Heap and pointer (see below) set by boot
				  loader.
0x212	unsigned short	(setup.S)
0x214	unsigned long	KERNEL_START, where the loader started the kernel
0x218	unsigned long	INITRD_START, address of loaded ramdisk image
0x21c	unsigned long	INITRD_SIZE, size in bytes of ramdisk image
0x220	4 bytes		(setup.S)
0x224	unsigned short	setup.S heap end pointer
0x226   unsigned short	zero_pad
0x228   unsigned long	cmd_line_ptr
0x22c   unsigned long	ramdisk_max
0x230   16 bytes 	trampoline
0x290 - 0x2cf		EDD_MBR_SIG_BUFFER (edd.S)
0x2d0 - 0xd00		E820MAP
0xd00 - 0xeff		EDDBUF (edd.S) for disk signature read sector
0xd00 - 0xeeb		EDDBUF (edd.S) for edd data
