]> err.no Git - linux-2.6/blob - arch/arm/mach-ixp23xx/include/mach/memory.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / arch / arm / mach-ixp23xx / include / mach / memory.h
1 /*
2  * arch/arm/mach-ixp23xx/include/mach/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 <mach/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
32 #define __virt_to_bus(v)                                                \
33         ({ unsigned int ret;                                            \
34         ret = ((__virt_to_phys(v) - 0x00000000) +                       \
35          (*((volatile int *)IXP23XX_PCI_SDRAM_BAR) & 0xfffffff0));      \
36         ret; })
37
38 #define __bus_to_virt(b)                                                \
39         ({ unsigned int data;                                           \
40         data = *((volatile int *)IXP23XX_PCI_SDRAM_BAR);                \
41          __phys_to_virt((((b - (data & 0xfffffff0)) + 0x00000000))); })
42
43 #define arch_is_coherent()      1
44
45 #endif
46
47
48 #endif