/Documentation/i386/zero-page.txt
https://bitbucket.org/evzijst/gittest · Plain Text · 84 lines · 77 code · 7 blank · 0 comment · 0 complexity · a53616ac959350154fbddbf5300ab7fa MD5 · raw file
- 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
- 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
- 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 - 0x600 E820MAP
- 0x600 - 0x7ff EDDBUF (edd.S) for disk signature read sector
- 0x600 - 0x7eb EDDBUF (edd.S) for edd data