[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>
This commit is contained in:
parent
7919a693bd
commit
b4819b5937
7 changed files with 19 additions and 5 deletions
|
@ -1416,6 +1416,12 @@ config HIGHMEM
|
|||
bool "High Memory Support"
|
||||
depends on MIPS32 && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_RM9000 || CPU_R10000) && !(MACH_DECSTATION || MOMENCO_JAGUAR_ATX)
|
||||
|
||||
config ARCH_FLATMEM_ENABLE
|
||||
def_bool y
|
||||
depends on !NUMA
|
||||
|
||||
source "mm/Kconfig"
|
||||
|
||||
config SMP
|
||||
bool "Multi-Processing support"
|
||||
depends on CPU_RM9000 || (SIBYTE_SB1250 && !SIBYTE_STANDALONE) || SGI_IP27
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <linux/root_dev.h>
|
||||
#include <linux/highmem.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/mmzone.h>
|
||||
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/bootinfo.h>
|
||||
|
@ -356,6 +357,8 @@ static inline void bootmem_init(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
memory_present(0, first_usable_pfn, max_low_pfn);
|
||||
|
||||
/* Initialize the boot-time allocator with low memory only. */
|
||||
bootmap_size = init_bootmem(first_usable_pfn, max_low_pfn);
|
||||
|
||||
|
@ -557,6 +560,7 @@ void __init setup_arch(char **cmdline_p)
|
|||
|
||||
parse_cmdline_early();
|
||||
bootmem_init();
|
||||
sparse_init();
|
||||
paging_init();
|
||||
resource_init();
|
||||
}
|
||||
|
|
|
@ -128,7 +128,7 @@ static void __init fixrange_init(unsigned long start, unsigned long end,
|
|||
#endif /* CONFIG_MIPS64 */
|
||||
#endif /* CONFIG_HIGHMEM */
|
||||
|
||||
#ifndef CONFIG_DISCONTIGMEM
|
||||
#ifndef CONFIG_NEED_MULTIPLE_NODES
|
||||
extern void pagetable_init(void);
|
||||
|
||||
void __init paging_init(void)
|
||||
|
@ -253,7 +253,7 @@ void __init mem_init(void)
|
|||
initsize >> 10,
|
||||
(unsigned long) (totalhigh_pages << (PAGE_SHIFT-10)));
|
||||
}
|
||||
#endif /* !CONFIG_DISCONTIGMEM */
|
||||
#endif /* !CONFIG_NEED_MULTIPLE_NODES */
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
void free_initrd_mem(unsigned long start, unsigned long end)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
void show_mem(void)
|
||||
{
|
||||
#ifndef CONFIG_DISCONTIGMEM /* XXX(hch): later.. */
|
||||
#ifndef CONFIG_NEED_MULTIPLE_NODES /* XXX(hch): later.. */
|
||||
int pfn, total = 0, reserved = 0;
|
||||
int shared = 0, cached = 0;
|
||||
int highmem = 0;
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
#include <asm/page.h>
|
||||
#include <mmzone.h>
|
||||
|
||||
#ifdef CONFIG_DISCONTIGMEM
|
||||
|
||||
#define kvaddr_to_nid(kvaddr) pa_to_nid(__pa(kvaddr))
|
||||
#define pfn_to_nid(pfn) pa_to_nid((pfn) << PAGE_SHIFT)
|
||||
|
||||
|
@ -36,4 +38,6 @@
|
|||
/* XXX: FIXME -- wli */
|
||||
#define kern_addr_valid(addr) (0)
|
||||
|
||||
#endif /* CONFIG_DISCONTIGMEM */
|
||||
|
||||
#endif /* _ASM_MMZONE_H_ */
|
||||
|
|
|
@ -127,7 +127,7 @@ static __inline__ int get_order(unsigned long size)
|
|||
|
||||
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
|
||||
|
||||
#ifndef CONFIG_DISCONTIGMEM
|
||||
#ifndef CONFIG_NEED_MULTIPLE_NODES
|
||||
#define pfn_to_page(pfn) (mem_map + (pfn))
|
||||
#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
|
||||
#define pfn_valid(pfn) ((pfn) < max_mapnr)
|
||||
|
|
|
@ -350,7 +350,7 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
|
|||
__update_cache(vma, address, pte);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_DISCONTIGMEM
|
||||
#ifndef CONFIG_NEED_MULTIPLE_NODES
|
||||
#define kern_addr_valid(addr) (1)
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue