diff options
Diffstat (limited to 'arch/mips/loongson/common/mem.c')
-rw-r--r-- | arch/mips/loongson/common/mem.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/arch/mips/loongson/common/mem.c b/arch/mips/loongson/common/mem.c index 8626a42f5b94..b01d52473da8 100644 --- a/arch/mips/loongson/common/mem.c +++ b/arch/mips/loongson/common/mem.c | |||
@@ -11,9 +11,14 @@ | |||
11 | #include <asm/bootinfo.h> | 11 | #include <asm/bootinfo.h> |
12 | 12 | ||
13 | #include <loongson.h> | 13 | #include <loongson.h> |
14 | #include <boot_param.h> | ||
14 | #include <mem.h> | 15 | #include <mem.h> |
15 | #include <pci.h> | 16 | #include <pci.h> |
16 | 17 | ||
18 | #ifndef CONFIG_LEFI_FIRMWARE_INTERFACE | ||
19 | |||
20 | u32 memsize, highmemsize; | ||
21 | |||
17 | void __init prom_init_memory(void) | 22 | void __init prom_init_memory(void) |
18 | { | 23 | { |
19 | add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM); | 24 | add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM); |
@@ -49,6 +54,43 @@ void __init prom_init_memory(void) | |||
49 | #endif /* !CONFIG_64BIT */ | 54 | #endif /* !CONFIG_64BIT */ |
50 | } | 55 | } |
51 | 56 | ||
57 | #else /* CONFIG_LEFI_FIRMWARE_INTERFACE */ | ||
58 | |||
59 | void __init prom_init_memory(void) | ||
60 | { | ||
61 | int i; | ||
62 | u32 node_id; | ||
63 | u32 mem_type; | ||
64 | |||
65 | /* parse memory information */ | ||
66 | for (i = 0; i < loongson_memmap->nr_map; i++) { | ||
67 | node_id = loongson_memmap->map[i].node_id; | ||
68 | mem_type = loongson_memmap->map[i].mem_type; | ||
69 | |||
70 | if (node_id == 0) { | ||
71 | switch (mem_type) { | ||
72 | case SYSTEM_RAM_LOW: | ||
73 | add_memory_region(loongson_memmap->map[i].mem_start, | ||
74 | (u64)loongson_memmap->map[i].mem_size << 20, | ||
75 | BOOT_MEM_RAM); | ||
76 | break; | ||
77 | case SYSTEM_RAM_HIGH: | ||
78 | add_memory_region(loongson_memmap->map[i].mem_start, | ||
79 | (u64)loongson_memmap->map[i].mem_size << 20, | ||
80 | BOOT_MEM_RAM); | ||
81 | break; | ||
82 | case MEM_RESERVED: | ||
83 | add_memory_region(loongson_memmap->map[i].mem_start, | ||
84 | (u64)loongson_memmap->map[i].mem_size << 20, | ||
85 | BOOT_MEM_RESERVED); | ||
86 | break; | ||
87 | } | ||
88 | } | ||
89 | } | ||
90 | } | ||
91 | |||
92 | #endif /* CONFIG_LEFI_FIRMWARE_INTERFACE */ | ||
93 | |||
52 | /* override of arch/mips/mm/cache.c: __uncached_access */ | 94 | /* override of arch/mips/mm/cache.c: __uncached_access */ |
53 | int __uncached_access(struct file *file, unsigned long addr) | 95 | int __uncached_access(struct file *file, unsigned long addr) |
54 | { | 96 | { |