[ARM] Add initial sparsemem support
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
05dda977f2
commit
05944d74bc
@ -422,6 +422,8 @@ config ARCH_SA1100
|
|||||||
bool "SA1100-based"
|
bool "SA1100-based"
|
||||||
select ISA
|
select ISA
|
||||||
select ARCH_DISCONTIGMEM_ENABLE
|
select ARCH_DISCONTIGMEM_ENABLE
|
||||||
|
select ARCH_SPARSEMEM_ENABLE
|
||||||
|
select ARCH_SELECT_MEMORY_MODEL
|
||||||
select ARCH_MTD_XIP
|
select ARCH_MTD_XIP
|
||||||
select GENERIC_GPIO
|
select GENERIC_GPIO
|
||||||
select GENERIC_TIME
|
select GENERIC_TIME
|
||||||
@ -774,6 +776,12 @@ config ARCH_DISCONTIGMEM_ENABLE
|
|||||||
or have huge holes in the physical address space for other reasons.
|
or have huge holes in the physical address space for other reasons.
|
||||||
See <file:Documentation/vm/numa> for more.
|
See <file:Documentation/vm/numa> for more.
|
||||||
|
|
||||||
|
config ARCH_SPARSEMEM_ENABLE
|
||||||
|
bool
|
||||||
|
|
||||||
|
config ARCH_SELECT_MEMORY_MODEL
|
||||||
|
bool
|
||||||
|
|
||||||
config NODES_SHIFT
|
config NODES_SHIFT
|
||||||
int
|
int
|
||||||
default "4" if ARCH_LH7A40X
|
default "4" if ARCH_LH7A40X
|
||||||
|
@ -31,6 +31,8 @@ config ARCH_EDB7211
|
|||||||
bool "EDB7211"
|
bool "EDB7211"
|
||||||
select ISA
|
select ISA
|
||||||
select ARCH_DISCONTIGMEM_ENABLE
|
select ARCH_DISCONTIGMEM_ENABLE
|
||||||
|
select ARCH_SPARSEMEM_ENABLE
|
||||||
|
select ARCH_SELECT_MEMORY_MODEL
|
||||||
help
|
help
|
||||||
Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211
|
Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211
|
||||||
evaluation board.
|
evaluation board.
|
||||||
|
@ -217,7 +217,10 @@ static inline __deprecated void *bus_to_virt(unsigned long x)
|
|||||||
#ifndef CONFIG_DISCONTIGMEM
|
#ifndef CONFIG_DISCONTIGMEM
|
||||||
|
|
||||||
#define ARCH_PFN_OFFSET PHYS_PFN_OFFSET
|
#define ARCH_PFN_OFFSET PHYS_PFN_OFFSET
|
||||||
|
|
||||||
|
#ifndef CONFIG_SPARSEMEM
|
||||||
#define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
|
#define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
|
||||||
|
#endif
|
||||||
|
|
||||||
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
|
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
|
||||||
#define virt_addr_valid(kaddr) ((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory)
|
#define virt_addr_valid(kaddr) ((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory)
|
||||||
|
10
include/asm-arm/sparsemem.h
Normal file
10
include/asm-arm/sparsemem.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#ifndef ASMARM_SPARSEMEM_H
|
||||||
|
#define ASMARM_SPARSEMEM_H
|
||||||
|
|
||||||
|
#include <asm/memory.h>
|
||||||
|
|
||||||
|
#define MAX_PHYSADDR_BITS 32
|
||||||
|
#define MAX_PHYSMEM_BITS 32
|
||||||
|
#define SECTION_SIZE_BITS NODE_MEM_SIZE_BITS
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user