support for the Giant Shoulder Inc Loft board - a very minor variation on a standard Avila board --- linux-2.6.15/arch/arm/mach-ixp4xx/Kconfig 1970-01-01 00:00:00.000000000 +0000 +++ linux-2.6.15/arch/arm/mach-ixp4xx/Kconfig 1970-01-01 00:00:00.000000000 +0000 @@ -25,6 +25,12 @@ config ARCH_AVILA Avila Network Platform. For more information on this platform, see . +config MACH_LOFT + bool "Loft" + help + Say 'Y' here if you want your kernel to support the Giant + Shoulder Inc Loft board. + config ARCH_ADI_COYOTE bool "Coyote" help @@ -85,7 +91,7 @@ config MACH_NAS100D # config ARCH_IXDP4XX bool - depends on ARCH_IXDP425 || ARCH_AVILA || MACH_IXDP465 + depends on ARCH_IXDP425 || ARCH_AVILA || MACH_IXDP465 || MACH_LOFT default y # --- linux-2.6.15/arch/arm/mach-ixp4xx/ixdp425-pci.c 1970-01-01 00:00:00.000000000 +0000 +++ linux-2.6.15/arch/arm/mach-ixp4xx/ixdp425-pci.c 1970-01-01 00:00:00.000000000 +0000 @@ -51,7 +51,8 @@ static int __init ixdp425_map_irq(struct int irq = -1; - if (slot >= 1 && slot <= IXDP425_PCI_MAX_DEV && + if (slot >= 1 && + slot <= (machine_is_loft() ? LOFT_PCI_MAX_DEV : IXDP425_PCI_MAX_DEV) && pin >= 1 && pin <= IXDP425_PCI_IRQ_LINES) { irq = pci_irq_table[(slot + pin - 2) % 4]; } @@ -71,7 +72,8 @@ struct hw_pci ixdp425_pci __initdata = { int __init ixdp425_pci_init(void) { if (machine_is_ixdp425() || machine_is_ixcdp1100() || - machine_is_avila() || machine_is_ixdp465()) + machine_is_avila() || machine_is_ixdp465() || + machine_is_loft()) pci_common_init(&ixdp425_pci); return 0; } --- linux-2.6.15/arch/arm/mach-ixp4xx/ixdp425-setup.c 1970-01-01 00:00:00.000000000 +0000 +++ linux-2.6.15/arch/arm/mach-ixp4xx/ixdp425-setup.c 1970-01-01 00:00:00.000000000 +0000 @@ -185,3 +185,22 @@ MACHINE_START(AVILA, "Gateworks Avila Ne MACHINE_END #endif +/* + * Loft is functionally equivalent to Avila except that it has a + * different number for the maximum PCI devices. The MACHINE + * structure below is identical to Avila except for the comment. + */ +#ifdef CONFIG_MACH_LOFT +MACHINE_START(LOFT, "Giant Shoulder Inc Loft board") + /* Maintainer: Tom Billman */ + .phys_ram = PHYS_OFFSET, + .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, + .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc, + .map_io = ixp4xx_map_io, + .init_irq = ixp4xx_init_irq, + .timer = &ixp4xx_timer, + .boot_params = 0x0100, + .init_machine = ixdp425_init, +MACHINE_END +#endif + --- linux-2.6.15/include/asm-arm/arch-ixp4xx/ixdp425.h 1970-01-01 00:00:00.000000000 +0000 +++ linux-2.6.15/include/asm-arm/arch-ixp4xx/ixdp425.h 1970-01-01 00:00:00.000000000 +0000 @@ -26,6 +26,7 @@ * IXDP425 PCI IRQs */ #define IXDP425_PCI_MAX_DEV 4 +#define LOFT_PCI_MAX_DEV 6 #define IXDP425_PCI_IRQ_LINES 4