Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[wrt350n-kernel.git] / include / asm-arm / arch-ixp23xx / memory.h
blob6d859d742d7f5e405c705a46d4182448ffbad434
1 /*
2 * include/asm-arm/arch-ixp23xx/memory.h
4 * Copyright (c) 2003-2004 Intel Corp.
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.
12 #ifndef __ASM_ARCH_MEMORY_H
13 #define __ASM_ARCH_MEMORY_H
15 #include <asm/hardware.h>
18 * Physical DRAM offset.
20 #define PHYS_OFFSET (0x00000000)
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.
30 #ifndef __ASSEMBLY__
31 #include <asm/mach-types.h>
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; })
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))); })
44 #define arch_is_coherent() 1
46 #endif
49 #endif