Rev 424 | Details | Compare with Previous | 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 | unsigned long low_mem_size, lower_high, higher_high; |
||
13 | |||
14 | |||
15 | who = "BIOS (common area)"; |
||
16 | |||
17 | low_mem_size = ((*(unsigned char *)__va(PC9800SCA_BIOS_FLAG) & 7) + 1) << 17; |
||
18 | add_memory_region(0, low_mem_size, 1); |
||
19 | lower_high = (__u32) *(__u8 *) bus_to_virt(PC9800SCA_EXPMMSZ) << 17; |
||
20 | higher_high = (__u32) *(__u16 *) bus_to_virt(PC9800SCA_MMSZ16M) << 20; |
||
21 | if (lower_high != 0x00f00000UL) { |
||
22 | add_memory_region(HIGH_MEMORY, lower_high, 1); |
||
23 | add_memory_region(0x01000000UL, higher_high, 1); |
||
24 | } |
||
25 | else |
||
26 | add_memory_region(HIGH_MEMORY, lower_high + higher_high, 1); |
||
27 | |||
28 | return who; |
||
29 | } |