OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [Documentation/] [i386/] [zero-page.txt] - Rev 1765

Compare with Previous | Blame | View Log

Summary of empty_zero_page layout (kernel point of view)
     ( collected by Hans Lermen and Martin Mares )
 
The contents of empty_zero_page 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
 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 - 0x1df           Free. Add more parameters here if you really need them.

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)
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
0x228   4 bytes         unknown, but writing this in setup.S makes
                        kernel fail to decompress on some systems
0x2cc   4 bytes         DISK80_SIG_BUFFER (setup.S)
0x2d0 - 0x600           E820MAP
0x600 - 0x7ff           EDDBUF (setup.S) for disk signature read sector
0x600 - 0x7de           EDDBUF (setup.S)

0x800   string, 2K max  COMMAND_LINE, the kernel commandline as
                        copied using CL_OFFSET.
                        Note: this will be copied once more by setup.c
                        into a local buffer which is only 256 bytes long.
                        ( #define COMMAND_LINE_SIZE 256 )

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.