Subversion Repositories shark

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
424 giacomo 1
/**
2
 * machine_specific_memory_setup - Hook for machine specific memory setup.
3
 *
4
 * Description:
5
 *      This is included late in kernel/setup.c so that it can make
6
 *      use of all of the static functions.
7
 **/
8
 
9
static inline char * __init machine_specific_memory_setup(void)
10
{
11
        char *who;
12
 
13
 
14
        who = "BIOS-e820";
15
 
16
        /*
17
         * Try to copy the BIOS-supplied E820-map.
18
         *
19
         * Otherwise fake a memory map; one section from 0k->640k,
20
         * the next section from 1mb->appropriate_mem_k
21
         */
22
        sanitize_e820_map(E820_MAP, &E820_MAP_NR);
23
        if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0) {
24
                unsigned long mem_size;
25
 
26
                /* compare results from other methods and take the greater */
27
                if (ALT_MEM_K < EXT_MEM_K) {
28
                        mem_size = EXT_MEM_K;
29
                        who = "BIOS-88";
30
                } else {
31
                        mem_size = ALT_MEM_K;
32
                        who = "BIOS-e801";
33
                }
34
 
35
                e820.nr_map = 0;
36
                add_memory_region(0, LOWMEMSIZE(), E820_RAM);
37
                add_memory_region(HIGH_MEMORY, mem_size << 10, E820_RAM);
38
        }
39
        return who;
40
}