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 50