Skip to content
Snippets Groups Projects
Select Git revision
  • 6bfc93ef98f00b38f1913a7fdeae46ae8dbd7c52
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

nfs4proc.c

Blame
  • head32.c 1.74 KiB
    /*
     *  linux/arch/i386/kernel/head32.c -- prepare to run common code
     *
     *  Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
     *  Copyright (C) 2007 Eric Biederman <ebiederm@xmission.com>
     */
    
    #include <linux/init.h>
    #include <linux/start_kernel.h>
    #include <linux/mm.h>
    #include <linux/memblock.h>
    
    #include <asm/setup.h>
    #include <asm/sections.h>
    #include <asm/e820.h>
    #include <asm/page.h>
    #include <asm/apic.h>
    #include <asm/io_apic.h>
    #include <asm/bios_ebda.h>
    #include <asm/tlbflush.h>
    
    static void __init i386_default_early_setup(void)
    {
    	/* Initialize 32bit specific setup functions */
    	x86_init.resources.reserve_resources = i386_reserve_resources;
    	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc;
    
    	reserve_ebda_region();
    }
    
    void __init i386_start_kernel(void)
    {
    	memblock_reserve(__pa_symbol(&_text),
    			 __pa_symbol(&__bss_stop) - __pa_symbol(&_text));
    
    #ifdef CONFIG_BLK_DEV_INITRD
    	/* Reserve INITRD */
    	if (boot_params.hdr.type_of_loader && boot_params.hdr.ramdisk_image) {
    		/* Assume only end is not page aligned */
    		u64 ramdisk_image = boot_params.hdr.ramdisk_image;
    		u64 ramdisk_size  = boot_params.hdr.ramdisk_size;
    		u64 ramdisk_end   = PAGE_ALIGN(ramdisk_image + ramdisk_size);
    		memblock_reserve(ramdisk_image, ramdisk_end - ramdisk_image);
    	}
    #endif
    
    	/* Call the subarch specific early setup function */
    	switch (boot_params.hdr.hardware_subarch) {
    	case X86_SUBARCH_MRST:
    		x86_mrst_early_setup();
    		break;
    	case X86_SUBARCH_CE4100:
    		x86_ce4100_early_setup();
    		break;
    	default:
    		i386_default_early_setup();
    		break;
    	}
    
    	/*
    	 * At this point everything still needed from the boot loader
    	 * or BIOS or kernel text should be early reserved or marked not
    	 * RAM in e820. All other memory is free game.
    	 */
    
    	start_kernel();
    }