linux-bk/Documentation/i386/zero-page.txt
<<
>>
Prefs
   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
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.