47 lines
1.1 KiB
C
47 lines
1.1 KiB
C
|
/*
|
||
|
* include/asm-arm/arch-ixp23xx/memory.h
|
||
|
*
|
||
|
* Copyright (c) 2003-2004 Intel Corp.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify it
|
||
|
* under the terms of the GNU General Public License as published by the
|
||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||
|
* option) any later version.
|
||
|
*/
|
||
|
|
||
|
#ifndef __ASM_ARCH_MEMORY_H
|
||
|
#define __ASM_ARCH_MEMORY_H
|
||
|
|
||
|
#include <asm/hardware.h>
|
||
|
|
||
|
/*
|
||
|
* Physical DRAM offset.
|
||
|
*/
|
||
|
#define PHYS_OFFSET (0x00000000)
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Virtual view <-> DMA view memory address translations
|
||
|
* virt_to_bus: Used to translate the virtual address to an
|
||
|
* address suitable to be passed to set_dma_addr
|
||
|
* bus_to_virt: Used to convert an address for DMA operations
|
||
|
* to an address that the kernel can use.
|
||
|
*/
|
||
|
#ifndef __ASSEMBLY__
|
||
|
|
||
|
#define __virt_to_bus(v) \
|
||
|
({ unsigned int ret; \
|
||
|
ret = ((__virt_to_phys(v) - 0x00000000) + \
|
||
|
(*((volatile int *)IXP23XX_PCI_SDRAM_BAR) & 0xfffffff0)); \
|
||
|
ret; })
|
||
|
|
||
|
#define __bus_to_virt(b) \
|
||
|
({ unsigned int data; \
|
||
|
data = *((volatile int *)IXP23XX_PCI_SDRAM_BAR); \
|
||
|
__phys_to_virt((((b - (data & 0xfffffff0)) + 0x00000000))); })
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#endif
|