[ARM] 3388/1: ixp23xx: add core ixp23xx support
Patch from Lennert Buytenhek
This patch adds support for the Intel ixp23xx series of CPUs. The
ixp23xx is an XSC3 based CPU with 512K of L2 cache, a 64bit 66MHz PCI
interface, two DDR RAM interfaces, QDR RAM interfaces, two gigabit
MACs, two 10/100 MACs, expansion bus, four microengines, a Media and
Switch Fabric unit almost identical to the one on the ixp2400, two
xscale (8250ish) UARTs and a bunch of other stuff.
This patch adds the core ixp23xx support code, and support for the
ADI Engineering Roadrunner, Intel IXDP2351, and IP Fabrics Double
Espresso platforms.
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-28 13:18:54 -07:00
|
|
|
/*
|
|
|
|
* 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__
|
2006-04-01 16:07:39 -07:00
|
|
|
#include <asm/mach-types.h>
|
[ARM] 3388/1: ixp23xx: add core ixp23xx support
Patch from Lennert Buytenhek
This patch adds support for the Intel ixp23xx series of CPUs. The
ixp23xx is an XSC3 based CPU with 512K of L2 cache, a 64bit 66MHz PCI
interface, two DDR RAM interfaces, QDR RAM interfaces, two gigabit
MACs, two 10/100 MACs, expansion bus, four microengines, a Media and
Switch Fabric unit almost identical to the one on the ixp2400, two
xscale (8250ish) UARTs and a bunch of other stuff.
This patch adds the core ixp23xx support code, and support for the
ADI Engineering Roadrunner, Intel IXDP2351, and IP Fabrics Double
Espresso platforms.
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-28 13:18:54 -07:00
|
|
|
|
|
|
|
#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))); })
|
|
|
|
|
2006-04-01 16:07:39 -07:00
|
|
|
/*
|
|
|
|
* Coherency support. Only supported on A2 CPUs or on A1
|
|
|
|
* systems that have the cache coherency workaround.
|
|
|
|
*/
|
|
|
|
static inline int __ixp23xx_arch_is_coherent(void)
|
|
|
|
{
|
|
|
|
extern unsigned int processor_id;
|
|
|
|
|
2006-06-02 11:51:50 -07:00
|
|
|
if (((processor_id & 15) >= 4) || machine_is_roadrunner())
|
2006-04-01 16:07:39 -07:00
|
|
|
return 1;
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
#define arch_is_coherent() __ixp23xx_arch_is_coherent()
|
|
|
|
|
[ARM] 3388/1: ixp23xx: add core ixp23xx support
Patch from Lennert Buytenhek
This patch adds support for the Intel ixp23xx series of CPUs. The
ixp23xx is an XSC3 based CPU with 512K of L2 cache, a 64bit 66MHz PCI
interface, two DDR RAM interfaces, QDR RAM interfaces, two gigabit
MACs, two 10/100 MACs, expansion bus, four microengines, a Media and
Switch Fabric unit almost identical to the one on the ixp2400, two
xscale (8250ish) UARTs and a bunch of other stuff.
This patch adds the core ixp23xx support code, and support for the
ADI Engineering Roadrunner, Intel IXDP2351, and IP Fabrics Double
Espresso platforms.
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-28 13:18:54 -07:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|