Merge branch 'fortglx/39/tip/timers/rtc' of git://git.linaro.org/people/jstultz/linux...
[pandora-kernel.git] / arch / unicore32 / include / mach / memory.h
1 /*
2  * linux/arch/unicore32/include/mach/memory.h
3  *
4  * Code specific to PKUnity SoC and UniCore ISA
5  *
6  * Copyright (C) 2001-2010 GUAN Xue-tao
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11  */
12 #ifndef __MACH_PUV3_MEMORY_H__
13 #define __MACH_PUV3_MEMORY_H__
14
15 #include <mach/hardware.h>
16
17 /* Physical DRAM offset. */
18 #define PHYS_OFFSET     UL(0x00000000)
19 /* The base address of exception vectors. */
20 #define VECTORS_BASE    UL(0xffff0000)
21 /* The base address of kuser area. */
22 #define KUSER_BASE      UL(0x80000000)
23
24 #ifdef __ASSEMBLY__
25 /* The byte offset of the kernel image in RAM from the start of RAM. */
26 #define KERNEL_IMAGE_START      0x00408000
27 #endif
28
29 #if !defined(__ASSEMBLY__) && defined(CONFIG_PCI)
30
31 void puv3_pci_adjust_zones(unsigned long *size, unsigned long *holes);
32
33 #define arch_adjust_zones(size, holes) \
34         puv3_pci_adjust_zones(size, holes)
35
36 #endif
37
38 /*
39  * PCI controller in PKUnity-3 masks highest 5-bit for upstream channel,
40  * so we must limit the DMA allocation within 128M physical memory for
41  * supporting PCI devices.
42  */
43 #define PCI_DMA_THRESHOLD       (PHYS_OFFSET + SZ_128M - 1)
44
45 #define is_pcibus_device(dev)   (dev &&                 \
46                                 (strncmp(dev->bus->name, "pci", 3) == 0))
47
48 #define __virt_to_pcibus(x)     (__virt_to_phys((x) + PKUNITY_PCIAHB_BASE))
49 #define __pcibus_to_virt(x)     (__phys_to_virt(x) - PKUNITY_PCIAHB_BASE)
50
51 /* kuser area */
52 #define KUSER_VECPAGE_BASE      (KUSER_BASE + UL(0x3fff0000))
53 /* kuser_vecpage (0xbfff0000) is ro, and vectors page (0xffff0000) is rw */
54 #define kuser_vecpage_to_vectors(x)     ((x) - (KUSER_VECPAGE_BASE)     \
55                                         + (VECTORS_BASE))
56
57 #endif