linux/arch/x86/kernel/head32.c
<<
>>
Prefs
   1/*
   2 *  linux/arch/i386/kernel/head32.c -- prepare to run common code
   3 *
   4 *  Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
   5 *  Copyright (C) 2007 Eric Biederman <ebiederm@xmission.com>
   6 */
   7
   8#include <linux/init.h>
   9#include <linux/start_kernel.h>
  10
  11#include <asm/setup.h>
  12#include <asm/sections.h>
  13#include <asm/e820.h>
  14#include <asm/bios_ebda.h>
  15
  16void __init i386_start_kernel(void)
  17{
  18        reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS");
  19
  20#ifdef CONFIG_BLK_DEV_INITRD
  21        /* Reserve INITRD */
  22        if (boot_params.hdr.type_of_loader && boot_params.hdr.ramdisk_image) {
  23                u64 ramdisk_image = boot_params.hdr.ramdisk_image;
  24                u64 ramdisk_size  = boot_params.hdr.ramdisk_size;
  25                u64 ramdisk_end   = ramdisk_image + ramdisk_size;
  26                reserve_early(ramdisk_image, ramdisk_end, "RAMDISK");
  27        }
  28#endif
  29        reserve_early(init_pg_tables_start, init_pg_tables_end,
  30                        "INIT_PG_TABLE");
  31
  32        reserve_ebda_region();
  33
  34        /*
  35         * At this point everything still needed from the boot loader
  36         * or BIOS or kernel text should be early reserved or marked not
  37         * RAM in e820. All other memory is free game.
  38         */
  39
  40        start_kernel();
  41}
  42
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.