[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
|
|
|
/*
|
|
|
|
* arch/arm/mach-ixp23xx/espresso.c
|
|
|
|
*
|
|
|
|
* Double Espresso-specific routines
|
|
|
|
*
|
|
|
|
* Author: Lennert Buytenhek <buytenh@wantstofly.org>
|
|
|
|
*
|
|
|
|
* This file is licensed under the terms of the GNU General Public
|
|
|
|
* License version 2. This program is licensed "as is" without any
|
|
|
|
* warranty of any kind, whether express or implied.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
#include <linux/init.h>
|
|
|
|
#include <linux/spinlock.h>
|
|
|
|
#include <linux/sched.h>
|
|
|
|
#include <linux/interrupt.h>
|
|
|
|
#include <linux/serial.h>
|
|
|
|
#include <linux/tty.h>
|
|
|
|
#include <linux/bitops.h>
|
|
|
|
#include <linux/ioport.h>
|
|
|
|
#include <linux/serial.h>
|
|
|
|
#include <linux/serial_8250.h>
|
|
|
|
#include <linux/serial_core.h>
|
|
|
|
#include <linux/device.h>
|
|
|
|
#include <linux/mm.h>
|
|
|
|
#include <linux/pci.h>
|
|
|
|
#include <linux/mtd/physmap.h>
|
|
|
|
|
|
|
|
#include <asm/types.h>
|
|
|
|
#include <asm/setup.h>
|
|
|
|
#include <asm/memory.h>
|
|
|
|
#include <asm/hardware.h>
|
|
|
|
#include <asm/mach-types.h>
|
|
|
|
#include <asm/irq.h>
|
|
|
|
#include <asm/system.h>
|
|
|
|
#include <asm/tlbflush.h>
|
|
|
|
#include <asm/pgtable.h>
|
|
|
|
|
|
|
|
#include <asm/mach/map.h>
|
|
|
|
#include <asm/mach/irq.h>
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
|
#include <asm/mach/irq.h>
|
|
|
|
#include <asm/mach/pci.h>
|
|
|
|
|
2006-04-02 01:33:35 +08:00
|
|
|
static int __init espresso_pci_init(void)
|
|
|
|
{
|
|
|
|
if (machine_is_espresso())
|
|
|
|
ixp23xx_pci_slave_init();
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
};
|
|
|
|
subsys_initcall(espresso_pci_init);
|
|
|
|
|
2006-06-22 17:30:52 +08:00
|
|
|
static struct physmap_flash_data espresso_flash_data = {
|
|
|
|
.width = 2,
|
|
|
|
};
|
|
|
|
|
|
|
|
static struct resource espresso_flash_resource = {
|
|
|
|
.start = 0x90000000,
|
2006-06-28 05:56:17 +08:00
|
|
|
.end = 0x91ffffff,
|
2006-06-22 17:30:52 +08:00
|
|
|
.flags = IORESOURCE_MEM,
|
|
|
|
};
|
|
|
|
|
|
|
|
static struct platform_device espresso_flash = {
|
|
|
|
.name = "physmap-flash",
|
|
|
|
.id = 0,
|
|
|
|
.dev = {
|
|
|
|
.platform_data = &espresso_flash_data,
|
|
|
|
},
|
|
|
|
.num_resources = 1,
|
|
|
|
.resource = &espresso_flash_resource,
|
|
|
|
};
|
|
|
|
|
[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 void __init espresso_init(void)
|
|
|
|
{
|
2006-06-22 17:30:52 +08:00
|
|
|
platform_device_register(&espresso_flash);
|
[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
|
|
|
|
|
|
|
/*
|
|
|
|
* Mark flash as writeable.
|
|
|
|
*/
|
|
|
|
IXP23XX_EXP_CS0[0] |= IXP23XX_FLASH_WRITABLE;
|
|
|
|
IXP23XX_EXP_CS0[1] |= IXP23XX_FLASH_WRITABLE;
|
|
|
|
|
|
|
|
ixp23xx_sys_init();
|
|
|
|
}
|
|
|
|
|
|
|
|
MACHINE_START(ESPRESSO, "IP Fabrics Double Espresso")
|
|
|
|
/* Maintainer: Lennert Buytenhek */
|
|
|
|
.phys_io = IXP23XX_PERIPHERAL_PHYS,
|
|
|
|
.io_pg_offst = ((IXP23XX_PERIPHERAL_VIRT >> 18)) & 0xfffc,
|
|
|
|
.map_io = ixp23xx_map_io,
|
|
|
|
.init_irq = ixp23xx_init_irq,
|
|
|
|
.timer = &ixp23xx_timer,
|
|
|
|
.boot_params = 0x00000100,
|
|
|
|
.init_machine = espresso_init,
|
|
|
|
MACHINE_END
|