Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4819b59 authored by Yoichi Yuasa's avatar Yoichi Yuasa Committed by Linus Torvalds
Browse files

[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: default avatarYoichi Yuasa <yuasa@hh.iij4u.or.jp>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 7919a693
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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
+4 −0
Original line number Diff line number Diff line
@@ -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();
}
+2 −2
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -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;
+4 −0
Original line number Diff line number Diff line
@@ -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_ */
Loading