Subversion Repositories shark

Rev

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

Rev Author Line No. Line
424 giacomo 1
/* Hook for machine specific memory setup.
2
 *
3
 * This is included late in kernel/setup.c so that it can make use of all of
4
 * the static functions. */
5
 
6
#define MB (1024 * 1024)
7
 
8
unsigned long sgivwfb_mem_phys;
9
unsigned long sgivwfb_mem_size;
10
 
11
long long mem_size __initdata = 0;
12
 
13
static inline char * __init machine_specific_memory_setup(void)
14
{
15
        long long gfx_mem_size = 8 * MB;
16
 
17
        mem_size = ALT_MEM_K;
18
 
19
        if (!mem_size) {
20
                printk(KERN_WARNING "Bootloader didn't set memory size, upgrade it !\n");
21
                mem_size = 128 * MB;
22
        }
23
 
24
        /*
25
         * this hardcodes the graphics memory to 8 MB
26
         * it really should be sized dynamically (or at least
27
         * set as a boot param)
28
         */
29
        if (!sgivwfb_mem_size) {
30
                printk(KERN_WARNING "Defaulting to 8 MB framebuffer size\n");
31
                sgivwfb_mem_size = 8 * MB;
32
        }
33
 
34
        /*
35
         * Trim to nearest MB
36
         */
37
        sgivwfb_mem_size &= ~((1 << 20) - 1);
38
        sgivwfb_mem_phys = mem_size - gfx_mem_size;
39
 
40
        add_memory_region(0, LOWMEMSIZE(), E820_RAM);
41
        add_memory_region(HIGH_MEMORY, mem_size - sgivwfb_mem_size - HIGH_MEMORY, E820_RAM);
42
        add_memory_region(sgivwfb_mem_phys, sgivwfb_mem_size, E820_RESERVED);
43
 
44
        return "PROM";
45
 
46
        /* Remove gcc warnings */
47
        (void) sanitize_e820_map(NULL, NULL);
48
        (void) copy_e820_map(NULL, 0);
49
}