diff options
author | Yoichi Yuasa <yuasa@hh.iij4u.or.jp> | 2005-06-25 17:54:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-25 19:24:25 -0400 |
commit | b4819b593740a6d11db07b52e0fe35975b29a185 (patch) | |
tree | 3e697be3b75988432596131ccde17c33d2318650 /arch/mips | |
parent | 7919a693bd735ed0aa93fc359ae09a588cfeb3bc (diff) |
[PATCH] mips: add MIPS-specific support for flatmem/discontigmem
2.6.12-git6 doesn't boot on some MIPS machines. They need the support of flat
memory and discontig memory.
Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/Kconfig | 6 | ||||
-rw-r--r-- | arch/mips/kernel/setup.c | 4 | ||||
-rw-r--r-- | arch/mips/mm/init.c | 4 | ||||
-rw-r--r-- | arch/mips/mm/pgtable.c | 2 |
4 files changed, 13 insertions, 3 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 94f5a8eb2c22..bd9de7b00c0a 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -1416,6 +1416,12 @@ config HIGHMEM | |||
1416 | bool "High Memory Support" | 1416 | bool "High Memory Support" |
1417 | depends on MIPS32 && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_RM9000 || CPU_R10000) && !(MACH_DECSTATION || MOMENCO_JAGUAR_ATX) | 1417 | depends on MIPS32 && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_RM9000 || CPU_R10000) && !(MACH_DECSTATION || MOMENCO_JAGUAR_ATX) |
1418 | 1418 | ||
1419 | config ARCH_FLATMEM_ENABLE | ||
1420 | def_bool y | ||
1421 | depends on !NUMA | ||
1422 | |||
1423 | source "mm/Kconfig" | ||
1424 | |||
1419 | config SMP | 1425 | config SMP |
1420 | bool "Multi-Processing support" | 1426 | bool "Multi-Processing support" |
1421 | depends on CPU_RM9000 || (SIBYTE_SB1250 && !SIBYTE_STANDALONE) || SGI_IP27 | 1427 | depends on CPU_RM9000 || (SIBYTE_SB1250 && !SIBYTE_STANDALONE) || SGI_IP27 |
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 6018ca25aceb..3a240e3e004c 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <linux/root_dev.h> | 33 | #include <linux/root_dev.h> |
34 | #include <linux/highmem.h> | 34 | #include <linux/highmem.h> |
35 | #include <linux/console.h> | 35 | #include <linux/console.h> |
36 | #include <linux/mmzone.h> | ||
36 | 37 | ||
37 | #include <asm/addrspace.h> | 38 | #include <asm/addrspace.h> |
38 | #include <asm/bootinfo.h> | 39 | #include <asm/bootinfo.h> |
@@ -356,6 +357,8 @@ static inline void bootmem_init(void) | |||
356 | } | 357 | } |
357 | #endif | 358 | #endif |
358 | 359 | ||
360 | memory_present(0, first_usable_pfn, max_low_pfn); | ||
361 | |||
359 | /* Initialize the boot-time allocator with low memory only. */ | 362 | /* Initialize the boot-time allocator with low memory only. */ |
360 | bootmap_size = init_bootmem(first_usable_pfn, max_low_pfn); | 363 | bootmap_size = init_bootmem(first_usable_pfn, max_low_pfn); |
361 | 364 | ||
@@ -557,6 +560,7 @@ void __init setup_arch(char **cmdline_p) | |||
557 | 560 | ||
558 | parse_cmdline_early(); | 561 | parse_cmdline_early(); |
559 | bootmem_init(); | 562 | bootmem_init(); |
563 | sparse_init(); | ||
560 | paging_init(); | 564 | paging_init(); |
561 | resource_init(); | 565 | resource_init(); |
562 | } | 566 | } |
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index 73843c528778..9c9a271c8a3a 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -128,7 +128,7 @@ static void __init fixrange_init(unsigned long start, unsigned long end, | |||
128 | #endif /* CONFIG_MIPS64 */ | 128 | #endif /* CONFIG_MIPS64 */ |
129 | #endif /* CONFIG_HIGHMEM */ | 129 | #endif /* CONFIG_HIGHMEM */ |
130 | 130 | ||
131 | #ifndef CONFIG_DISCONTIGMEM | 131 | #ifndef CONFIG_NEED_MULTIPLE_NODES |
132 | extern void pagetable_init(void); | 132 | extern void pagetable_init(void); |
133 | 133 | ||
134 | void __init paging_init(void) | 134 | void __init paging_init(void) |
@@ -253,7 +253,7 @@ void __init mem_init(void) | |||
253 | initsize >> 10, | 253 | initsize >> 10, |
254 | (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))); | 254 | (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))); |
255 | } | 255 | } |
256 | #endif /* !CONFIG_DISCONTIGMEM */ | 256 | #endif /* !CONFIG_NEED_MULTIPLE_NODES */ |
257 | 257 | ||
258 | #ifdef CONFIG_BLK_DEV_INITRD | 258 | #ifdef CONFIG_BLK_DEV_INITRD |
259 | void free_initrd_mem(unsigned long start, unsigned long end) | 259 | void free_initrd_mem(unsigned long start, unsigned long end) |
diff --git a/arch/mips/mm/pgtable.c b/arch/mips/mm/pgtable.c index 3b88fdeef329..3fe94202da8c 100644 --- a/arch/mips/mm/pgtable.c +++ b/arch/mips/mm/pgtable.c | |||
@@ -5,7 +5,7 @@ | |||
5 | 5 | ||
6 | void show_mem(void) | 6 | void show_mem(void) |
7 | { | 7 | { |
8 | #ifndef CONFIG_DISCONTIGMEM /* XXX(hch): later.. */ | 8 | #ifndef CONFIG_NEED_MULTIPLE_NODES /* XXX(hch): later.. */ |
9 | int pfn, total = 0, reserved = 0; | 9 | int pfn, total = 0, reserved = 0; |
10 | int shared = 0, cached = 0; | 10 | int shared = 0, cached = 0; |
11 | int highmem = 0; | 11 | int highmem = 0; |