X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-arm%2Farch-sa1100%2Fmemory.h;h=0e907fc6d42a5694c27905de849b092ed783f3eb;hb=refs%2Fheads%2Fvserver;hp=076b3a9d41b68680ba333402fa045438e006a3da;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/asm-arm/arch-sa1100/memory.h b/include/asm-arm/arch-sa1100/memory.h index 076b3a9d4..0e907fc6d 100644 --- a/include/asm-arm/arch-sa1100/memory.h +++ b/include/asm-arm/arch-sa1100/memory.h @@ -7,39 +7,25 @@ #ifndef __ASM_ARCH_MEMORY_H #define __ASM_ARCH_MEMORY_H -#include +#include /* - * Task size: 3GB + * Physical DRAM offset is 0xc0000000 on the SA1100 */ -#define TASK_SIZE (0xbf000000UL) -#define TASK_SIZE_26 (0x04000000UL) +#define PHYS_OFFSET UL(0xc0000000) -/* - * This decides where the kernel will search for a free chunk of vm - * space during mmap's. - */ -#define TASK_UNMAPPED_BASE (0x40000000) +#ifndef __ASSEMBLY__ -/* - * Page offset: 3GB - */ -#define PAGE_OFFSET (0xc0000000UL) +#ifdef CONFIG_SA1111 +void sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes); -/* - * Physical DRAM offset is 0xc0000000 on the SA1100 - */ -#define PHYS_OFFSET (0xc0000000UL) +#define arch_adjust_zones(node, size, holes) \ + sa1111_adjust_zones(node, size, holes) -/* - * We take advantage of the fact that physical and virtual address can be the - * same. The NUMA code is handling the large holes that might exist between - * all memory banks. - */ -#define __virt_to_phys__is_a_macro -#define __phys_to_virt__is_a_macro -#define __virt_to_phys(x) (x) -#define __phys_to_virt(x) (x) +#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_1M - 1) + +#endif +#endif /* * Virtual view <-> DMA view memory address translations @@ -50,12 +36,9 @@ * * On the SA1100, bus addresses are equivalent to physical addresses. */ -#define __virt_to_bus__is_a_macro -#define __bus_to_virt__is_a_macro #define __virt_to_bus(x) __virt_to_phys(x) #define __bus_to_virt(x) __phys_to_virt(x) -#ifdef CONFIG_DISCONTIGMEM /* * Because of the wide memory address space between physical RAM banks on the * SA1100, it's much convenient to use Linux's NUMA support to implement our @@ -73,41 +56,13 @@ * node 2: 0xd0000000 - 0xd7ffffff * node 3: 0xd8000000 - 0xdfffffff */ +#define NODE_MEM_SIZE_BITS 27 /* - * Given a kernel address, find the home node of the underlying memory. + * Cache flushing area - SA1100 zero bank */ -#define KVADDR_TO_NID(addr) (((unsigned long)(addr) - PAGE_OFFSET) >> 27) - -/* - * Given a page frame number, convert it to a node id. - */ -#define PFN_TO_NID(pfn) (((pfn) - PHYS_PFN_OFFSET) >> (27 - PAGE_SHIFT)) - -/* - * Given a kaddr, ADDR_TO_MAPBASE finds the owning node of the memory - * and return the mem_map of that node. - */ -#define ADDR_TO_MAPBASE(kaddr) NODE_MEM_MAP(KVADDR_TO_NID(kaddr)) - -/* - * Given a page frame number, find the owning node of the memory - * and return the mem_map of that node. - */ -#define PFN_TO_MAPBASE(pfn) NODE_MEM_MAP(PFN_TO_NID(pfn)) - -/* - * Given a kaddr, LOCAL_MEM_MAP finds the owning node of the memory - * and returns the index corresponding to the appropriate page in the - * node's mem_map. - */ -#define LOCAL_MAP_NR(addr) \ - (((unsigned long)(addr) & 0x07ffffff) >> PAGE_SHIFT) - -#else - -#define PFN_TO_NID(addr) (0) - -#endif +#define FLUSH_BASE_PHYS 0xe0000000 +#define FLUSH_BASE 0xf5000000 +#define FLUSH_BASE_MINICACHE 0xf5100000 #endif