fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-arm / arch-sa1100 / memory.h
index 076b3a9..0e907fc 100644 (file)
@@ -7,39 +7,25 @@
 #ifndef __ASM_ARCH_MEMORY_H
 #define __ASM_ARCH_MEMORY_H
 
-#include <linux/config.h>
+#include <asm/sizes.h>
 
 /*
- * 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
  *
  * 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 
  *     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