| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Summary of boot_params layout (kernel point of view) | 
 | 2 |      ( collected by Hans Lermen and Martin Mares ) | 
 | 3 |   | 
 | 4 | The contents of boot_params are used to pass parameters from the | 
 | 5 | 16-bit realmode code of the kernel to the 32-bit part. References/settings | 
 | 6 | to it mainly are in: | 
 | 7 |  | 
 | 8 |   arch/i386/boot/setup.S | 
 | 9 |   arch/i386/boot/video.S | 
 | 10 |   arch/i386/kernel/head.S | 
 | 11 |   arch/i386/kernel/setup.c | 
 | 12 |   | 
 | 13 |  | 
 | 14 | Offset	Type		Description | 
 | 15 | ------  ----		----------- | 
 | 16 |     0	32 bytes	struct screen_info, SCREEN_INFO | 
 | 17 | 			ATTENTION, overlaps the following !!! | 
 | 18 |     2	unsigned short	EXT_MEM_K, extended memory size in Kb (from int 0x15) | 
 | 19 |  0x20	unsigned short	CL_MAGIC, commandline magic number (=0xA33F) | 
 | 20 |  0x22	unsigned short	CL_OFFSET, commandline offset | 
 | 21 | 			Address of commandline is calculated: | 
 | 22 | 			  0x90000 + contents of CL_OFFSET | 
 | 23 | 			(only taken, when CL_MAGIC = 0xA33F) | 
 | 24 |  0x40	20 bytes	struct apm_bios_info, APM_BIOS_INFO | 
 | 25 |  0x60	16 bytes	Intel SpeedStep (IST) BIOS support information | 
 | 26 |  0x80	16 bytes	hd0-disk-parameter from intvector 0x41 | 
 | 27 |  0x90	16 bytes	hd1-disk-parameter from intvector 0x46 | 
 | 28 |  | 
 | 29 |  0xa0	16 bytes	System description table truncated to 16 bytes. | 
 | 30 | 			( struct sys_desc_table_struct ) | 
 | 31 |  0xb0 - 0x13f		Free. Add more parameters here if you really need them. | 
 | 32 |  0x140- 0x1be		EDID_INFO Video mode setup | 
 | 33 |  | 
 | 34 | 0x1c4	unsigned long	EFI system table pointer | 
 | 35 | 0x1c8	unsigned long	EFI memory descriptor size | 
 | 36 | 0x1cc	unsigned long	EFI memory descriptor version | 
 | 37 | 0x1d0	unsigned long	EFI memory descriptor map pointer | 
 | 38 | 0x1d4	unsigned long	EFI memory descriptor map size | 
 | 39 | 0x1e0	unsigned long	ALT_MEM_K, alternative mem check, in Kb | 
 | 40 | 0x1e8	char		number of entries in E820MAP (below) | 
 | 41 | 0x1e9	unsigned char	number of entries in EDDBUF (below) | 
 | 42 | 0x1ea	unsigned char	number of entries in EDD_MBR_SIG_BUFFER (below) | 
 | 43 | 0x1f1	char		size of setup.S, number of sectors | 
 | 44 | 0x1f2	unsigned short	MOUNT_ROOT_RDONLY (if !=0) | 
 | 45 | 0x1f4	unsigned short	size of compressed kernel-part in the | 
 | 46 | 			(b)zImage-file (in 16 byte units, rounded up) | 
 | 47 | 0x1f6	unsigned short	swap_dev (unused AFAIK) | 
 | 48 | 0x1f8	unsigned short	RAMDISK_FLAGS | 
 | 49 | 0x1fa	unsigned short	VGA-Mode (old one) | 
 | 50 | 0x1fc	unsigned short	ORIG_ROOT_DEV (high=Major, low=minor) | 
 | 51 | 0x1ff	char		AUX_DEVICE_INFO | 
 | 52 |  | 
 | 53 | 0x200	short jump to start of setup code aka "reserved" field. | 
 | 54 | 0x202	4 bytes		Signature for SETUP-header, ="HdrS" | 
 | 55 | 0x206	unsigned short	Version number of header format | 
 | 56 | 			Current version is 0x0201... | 
 | 57 | 0x208	8 bytes		(used by setup.S for communication with boot loaders, | 
 | 58 | 			 look there) | 
 | 59 | 0x210	char		LOADER_TYPE, = 0, old one | 
 | 60 | 			else it is set by the loader: | 
 | 61 | 			0xTV: T=0 for LILO | 
 | 62 | 				1 for Loadlin | 
 | 63 | 				2 for bootsect-loader | 
 | 64 | 				3 for SYSLINUX | 
 | 65 | 				4 for ETHERBOOT | 
| Jeremy Fitzhardinge | 354332e | 2006-09-12 20:35:57 -0700 | [diff] [blame] | 66 | 				5 for ELILO | 
 | 67 | 				7 for GRuB | 
 | 68 | 				8 for U-BOOT | 
 | 69 | 				9 for Xen | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 70 | 				V = version | 
 | 71 | 0x211	char		loadflags: | 
 | 72 | 			bit0 = 1: kernel is loaded high (bzImage) | 
 | 73 | 			bit7 = 1: Heap and pointer (see below) set by boot | 
 | 74 | 				  loader. | 
 | 75 | 0x212	unsigned short	(setup.S) | 
 | 76 | 0x214	unsigned long	KERNEL_START, where the loader started the kernel | 
 | 77 | 0x218	unsigned long	INITRD_START, address of loaded ramdisk image | 
 | 78 | 0x21c	unsigned long	INITRD_SIZE, size in bytes of ramdisk image | 
 | 79 | 0x220	4 bytes		(setup.S) | 
 | 80 | 0x224	unsigned short	setup.S heap end pointer | 
 | 81 | 0x226   unsigned short	zero_pad | 
 | 82 | 0x228   unsigned long	cmd_line_ptr | 
 | 83 | 0x22c   unsigned long	ramdisk_max | 
 | 84 | 0x230   16 bytes 	trampoline | 
 | 85 | 0x290 - 0x2cf		EDD_MBR_SIG_BUFFER (edd.S) | 
| Venkatesh Pallipadi | f9ba705 | 2005-05-01 08:58:51 -0700 | [diff] [blame] | 86 | 0x2d0 - 0xd00		E820MAP | 
 | 87 | 0xd00 - 0xeff		EDDBUF (edd.S) for disk signature read sector | 
 | 88 | 0xd00 - 0xeeb		EDDBUF (edd.S) for edd data |