[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-29 04:18:54 +08:00
|
|
|
/*
|
|
|
|
* include/asm-arm/arch-ixp23xx/io.h
|
|
|
|
*
|
|
|
|
* Original Author: Naeem M Afzal <naeem.m.afzal@intel.com>
|
|
|
|
* Maintainer: Deepak Saxena <dsaxena@plexity.net>
|
|
|
|
*
|
|
|
|
* Copyright (C) 2003-2005 Intel Corp.
|
|
|
|
* Copyright (C) 2005 MontaVista Software, Inc
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
|
|
* published by the Free Software Foundation.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __ASM_ARCH_IO_H
|
|
|
|
#define __ASM_ARCH_IO_H
|
|
|
|
|
|
|
|
#define IO_SPACE_LIMIT 0xffffffff
|
|
|
|
|
|
|
|
#define __io(p) ((void __iomem*)((p) + IXP23XX_PCI_IO_VIRT))
|
|
|
|
#define __mem_pci(a) (a)
|
|
|
|
|
|
|
|
#include <linux/kernel.h> /* For BUG */
|
|
|
|
|
|
|
|
static inline void __iomem *
|
2007-05-06 03:59:27 +08:00
|
|
|
ixp23xx_ioremap(unsigned long addr, unsigned long size, unsigned int mtype)
|
[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-29 04:18:54 +08:00
|
|
|
{
|
|
|
|
if (addr >= IXP23XX_PCI_MEM_START &&
|
|
|
|
addr <= IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE) {
|
|
|
|
if (addr + size > IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
return (void __iomem *)
|
|
|
|
((addr - IXP23XX_PCI_MEM_START) + IXP23XX_PCI_MEM_VIRT);
|
|
|
|
}
|
|
|
|
|
2007-05-06 03:59:27 +08:00
|
|
|
return __arm_ioremap(addr, size, mtype);
|
[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-29 04:18:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline void
|
|
|
|
ixp23xx_iounmap(void __iomem *addr)
|
|
|
|
{
|
|
|
|
if ((((u32)addr) >= IXP23XX_PCI_MEM_VIRT) &&
|
|
|
|
(((u32)addr) < IXP23XX_PCI_MEM_VIRT + IXP23XX_PCI_MEM_SIZE))
|
|
|
|
return;
|
|
|
|
|
|
|
|
__iounmap(addr);
|
|
|
|
}
|
|
|
|
|
|
|
|
#define __arch_ioremap(a,s,f) ixp23xx_ioremap(a,s,f)
|
|
|
|
#define __arch_iounmap(a) ixp23xx_iounmap(a)
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|