Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
[linux-2.6] / include / asm-arm / arch-ixp23xx / memory.h
1 /*
2  * include/asm-arm/arch-ixp23xx/memory.h
3  *
4  * Copyright (c) 2003-2004 Intel Corp.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the
8  * Free Software Foundation; either version 2 of the License, or (at your
9  * option) any later version.
10  */
11
12 #ifndef __ASM_ARCH_MEMORY_H
13 #define __ASM_ARCH_MEMORY_H
14
15 #include <asm/hardware.h>
16
17 /*
18  * Physical DRAM offset.
19  */
20 #define PHYS_OFFSET             (0x00000000)
21
22
23 /*
24  * Virtual view <-> DMA view memory address translations
25  * virt_to_bus: Used to translate the virtual address to an
26  *              address suitable to be passed to set_dma_addr
27  * bus_to_virt: Used to convert an address for DMA operations
28  *              to an address that the kernel can use.
29  */
30 #ifndef __ASSEMBLY__
31 #include <asm/mach-types.h>
32
33 #define __virt_to_bus(v)                                                \
34         ({ unsigned int ret;                                            \
35         ret = ((__virt_to_phys(v) - 0x00000000) +                       \
36          (*((volatile int *)IXP23XX_PCI_SDRAM_BAR) & 0xfffffff0));      \
37         ret; })
38
39 #define __bus_to_virt(b)                                                \
40         ({ unsigned int data;                                           \
41         data = *((volatile int *)IXP23XX_PCI_SDRAM_BAR);                \
42          __phys_to_virt((((b - (data & 0xfffffff0)) + 0x00000000))); })
43
44 #define arch_is_coherent()      1
45
46 #endif
47
48
49 #endif