[ARM] 3487/1: IXP4xx: Support non-PCI systems
authorDeepak Saxena <dsaxena@plexity.net>
Sun, 30 Apr 2006 14:34:29 +0000 (15:34 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 30 Apr 2006 14:34:29 +0000 (15:34 +0100)
Patch from Deepak Saxena

This patch allows for the addition of IXP4xx systems that do not make
use of the PCI interface by moving the CONFIG_PCI symbol selection to
be platform-specific instead of for all of IXP4xx. If at least one machine
with PCI support is built, the PCI code will be compiled in, but when
building !PCI, this will drastically shrink the kernel size.

Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/Kconfig
arch/arm/mach-ixp4xx/Kconfig
arch/arm/mach-ixp4xx/Makefile
include/asm-arm/arch-ixp4xx/io.h
include/asm-arm/arch-ixp4xx/memory.h

index 1dbf6ddb300d2b5a9cfafd9e064dffee468dec52..08b7cc900cae5cd87c817b4c54d345c866d9182c 100644 (file)
@@ -150,8 +150,6 @@ config ARCH_IOP3XX
 
 config ARCH_IXP4XX
        bool "IXP4xx-based"
-       select DMABOUNCE
-       select PCI
        help
          Support for Intel's IXP4XX (XScale) family of processors.
 
index 5bf50a2a737ddcff4ee342560828519f6f876b9a..2a39f9e481ad2d455ae6f00b13f26042755f37d8 100644 (file)
@@ -11,6 +11,7 @@ comment "IXP4xx Platforms"
 config MACH_NSLU2
        bool
        prompt "Linksys NSLU2"
+       select PCI
        help
          Say 'Y' here if you want your kernel to support Linksys's
          NSLU2 NAS device. For more information on this platform,
@@ -18,6 +19,7 @@ config MACH_NSLU2
 
 config ARCH_AVILA
        bool "Avila"
+       select PCI
        help
          Say 'Y' here if you want your kernel to support the Gateworks
          Avila Network Platform. For more information on this platform,
@@ -25,6 +27,7 @@ config ARCH_AVILA
 
 config ARCH_ADI_COYOTE
        bool "Coyote"
+       select PCI
        help
          Say 'Y' here if you want your kernel to support the ADI 
          Engineering Coyote Gateway Reference Platform. For more
@@ -32,6 +35,7 @@ config ARCH_ADI_COYOTE
 
 config ARCH_IXDP425
        bool "IXDP425"
+       select PCI
        help
          Say 'Y' here if you want your kernel to support Intel's 
          IXDP425 Development Platform (Also known as Richfield).  
@@ -39,6 +43,7 @@ config ARCH_IXDP425
 
 config MACH_IXDPG425
        bool "IXDPG425"
+       select PCI
        help
          Say 'Y' here if you want your kernel to support Intel's
          IXDPG425 Development Platform (Also known as Montajade).
@@ -46,6 +51,7 @@ config MACH_IXDPG425
 
 config MACH_IXDP465
        bool "IXDP465"
+       select PCI
        help
          Say 'Y' here if you want your kernel to support Intel's
          IXDP465 Development Platform (Also known as BMP).
@@ -72,6 +78,7 @@ config ARCH_PRPMC1100
 config MACH_NAS100D
        bool
        prompt "NAS100D"
+       select PCI
        help
          Say 'Y' here if you want your kernel to support Iomega's
          NAS 100d device. For more information on this platform,
@@ -96,6 +103,7 @@ config CPU_IXP46X
 config MACH_GTWX5715
        bool "Gemtek WX5715 (Linksys WRV54G)"
        depends on ARCH_IXP4XX
+       select PCI
        help
                This board is currently inside the Linksys WRV54G Gateways.
 
@@ -110,11 +118,16 @@ config MACH_GTWX5715
                "High Speed" UART is n/c (as far as I can tell)
                20 Pin ARM/Xscale JTAG interface on J2
 
-
 comment "IXP4xx Options"
 
+config DMABOUNCE
+       bool
+       default y
+       depends on PCI
+
 config IXP4XX_INDIRECT_PCI
        bool "Use indirect PCI memory access"
+       depends on PCI
        help
           IXP4xx provides two methods of accessing PCI memory space:
 
index 0471044fa179869a26ac07b41d63274dfd595c3b..5a4aaa0e0a0977f8d993a1ceb91f2d2af4dd9c71 100644 (file)
@@ -2,8 +2,9 @@
 # Makefile for the linux kernel.
 #
 
-obj-y  += common.o common-pci.o 
+obj-y  += common.o
 
+obj-$(CONFIG_PCI)              += common-pci.o
 obj-$(CONFIG_ARCH_IXDP4XX)     += ixdp425-pci.o ixdp425-setup.o
 obj-$(CONFIG_MACH_IXDPG425)    += ixdpg425-pci.o coyote-setup.o
 obj-$(CONFIG_ARCH_ADI_COYOTE)  += coyote-pci.o coyote-setup.o
index 942b622455bc438ad2a164580ce190c03bcdeea4..b59520e56fc7fee72bc8262a08c9af2d8d690985 100644 (file)
@@ -260,6 +260,12 @@ out:
 
 #endif
 
+#ifndef CONFIG_PCI
+
+#define        __io(v)         v
+
+#else
+
 /*
  * IXP4xx does not have a transparent cpu -> PCI I/O translation
  * window.  Instead, it has a set of registers that must be tweaked
@@ -578,6 +584,7 @@ __ixp4xx_iowrite32_rep(void __iomem *addr, const void *vaddr, u32 count)
 
 #define        ioport_map(port, nr)            ((void __iomem*)(port + PIO_OFFSET))
 #define        ioport_unmap(addr)
+#endif // !CONFIG_PCI
 
 #endif //  __ASM_ARM_ARCH_IO_H
 
index ee211d28a3ef3260ae315a0ca0e4bd161e5f4c5b..af9667b57ab379be02824371929a47b19653ccc9 100644 (file)
@@ -14,7 +14,7 @@
  */
 #define PHYS_OFFSET    UL(0x00000000)
 
-#ifndef __ASSEMBLY__
+#if !defined(__ASSEMBLY__) && defined(CONFIG_PCI)
 
 void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes);