1Summary of boot_params layout (kernel point of view) 2 ( collected by Hans Lermen and Martin Mares ) 3 4The contents of boot_params are used to pass parameters from the 516-bit realmode code of the kernel to the 32-bit part. References/settings 6to 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 14Offset 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 340x1c4 unsigned long EFI system table pointer 350x1c8 unsigned long EFI memory descriptor size 360x1cc unsigned long EFI memory descriptor version 370x1d0 unsigned long EFI memory descriptor map pointer 380x1d4 unsigned long EFI memory descriptor map size 390x1e0 unsigned long ALT_MEM_K, alternative mem check, in Kb 400x1e8 char number of entries in E820MAP (below) 410x1e9 unsigned char number of entries in EDDBUF (below) 420x1ea unsigned char number of entries in EDD_MBR_SIG_BUFFER (below) 430x1f1 char size of setup.S, number of sectors 440x1f2 unsigned short MOUNT_ROOT_RDONLY (if !=0) 450x1f4 unsigned short size of compressed kernel-part in the 46 (b)zImage-file (in 16 byte units, rounded up) 470x1f6 unsigned short swap_dev (unused AFAIK) 480x1f8 unsigned short RAMDISK_FLAGS 490x1fa unsigned short VGA-Mode (old one) 500x1fc unsigned short ORIG_ROOT_DEV (high=Major, low=minor) 510x1ff char AUX_DEVICE_INFO 52 530x200 short jump to start of setup code aka "reserved" field. 540x202 4 bytes Signature for SETUP-header, ="HdrS" 550x206 unsigned short Version number of header format 56 Current version is 0x0201... 570x208 8 bytes (used by setup.S for communication with boot loaders, 58 look there) 590x210 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 66 V = version 670x211 char loadflags: 68 bit0 = 1: kernel is loaded high (bzImage) 69 bit7 = 1: Heap and pointer (see below) set by boot 70 loader. 710x212 unsigned short (setup.S) 720x214 unsigned long KERNEL_START, where the loader started the kernel 730x218 unsigned long INITRD_START, address of loaded ramdisk image 740x21c unsigned long INITRD_SIZE, size in bytes of ramdisk image 750x220 4 bytes (setup.S) 760x224 unsigned short setup.S heap end pointer 770x226 unsigned short zero_pad 780x228 unsigned long cmd_line_ptr 790x22c unsigned long ramdisk_max 800x230 16 bytes trampoline 810x290 - 0x2cf EDD_MBR_SIG_BUFFER (edd.S) 820x2d0 - 0x600 E820MAP 830x600 - 0x7ff EDDBUF (edd.S) for disk signature read sector 840x600 - 0x7eb EDDBUF (edd.S) for edd data 85

