Commit 76bbb002 authored by Deepak Saxena's avatar Deepak Saxena Committed by Russell King

[ARM] 3487/1: IXP4xx: Support non-PCI systems

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: default avatarDeepak Saxena <dsaxena@plexity.net>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent cd95842c
...@@ -150,8 +150,6 @@ config ARCH_IOP3XX ...@@ -150,8 +150,6 @@ config ARCH_IOP3XX
config ARCH_IXP4XX config ARCH_IXP4XX
bool "IXP4xx-based" bool "IXP4xx-based"
select DMABOUNCE
select PCI
help help
Support for Intel's IXP4XX (XScale) family of processors. Support for Intel's IXP4XX (XScale) family of processors.
......
...@@ -11,6 +11,7 @@ comment "IXP4xx Platforms" ...@@ -11,6 +11,7 @@ comment "IXP4xx Platforms"
config MACH_NSLU2 config MACH_NSLU2
bool bool
prompt "Linksys NSLU2" prompt "Linksys NSLU2"
select PCI
help help
Say 'Y' here if you want your kernel to support Linksys's Say 'Y' here if you want your kernel to support Linksys's
NSLU2 NAS device. For more information on this platform, NSLU2 NAS device. For more information on this platform,
...@@ -18,6 +19,7 @@ config MACH_NSLU2 ...@@ -18,6 +19,7 @@ config MACH_NSLU2
config ARCH_AVILA config ARCH_AVILA
bool "Avila" bool "Avila"
select PCI
help help
Say 'Y' here if you want your kernel to support the Gateworks Say 'Y' here if you want your kernel to support the Gateworks
Avila Network Platform. For more information on this platform, Avila Network Platform. For more information on this platform,
...@@ -25,6 +27,7 @@ config ARCH_AVILA ...@@ -25,6 +27,7 @@ config ARCH_AVILA
config ARCH_ADI_COYOTE config ARCH_ADI_COYOTE
bool "Coyote" bool "Coyote"
select PCI
help help
Say 'Y' here if you want your kernel to support the ADI Say 'Y' here if you want your kernel to support the ADI
Engineering Coyote Gateway Reference Platform. For more Engineering Coyote Gateway Reference Platform. For more
...@@ -32,6 +35,7 @@ config ARCH_ADI_COYOTE ...@@ -32,6 +35,7 @@ config ARCH_ADI_COYOTE
config ARCH_IXDP425 config ARCH_IXDP425
bool "IXDP425" bool "IXDP425"
select PCI
help help
Say 'Y' here if you want your kernel to support Intel's Say 'Y' here if you want your kernel to support Intel's
IXDP425 Development Platform (Also known as Richfield). IXDP425 Development Platform (Also known as Richfield).
...@@ -39,6 +43,7 @@ config ARCH_IXDP425 ...@@ -39,6 +43,7 @@ config ARCH_IXDP425
config MACH_IXDPG425 config MACH_IXDPG425
bool "IXDPG425" bool "IXDPG425"
select PCI
help help
Say 'Y' here if you want your kernel to support Intel's Say 'Y' here if you want your kernel to support Intel's
IXDPG425 Development Platform (Also known as Montajade). IXDPG425 Development Platform (Also known as Montajade).
...@@ -46,6 +51,7 @@ config MACH_IXDPG425 ...@@ -46,6 +51,7 @@ config MACH_IXDPG425
config MACH_IXDP465 config MACH_IXDP465
bool "IXDP465" bool "IXDP465"
select PCI
help help
Say 'Y' here if you want your kernel to support Intel's Say 'Y' here if you want your kernel to support Intel's
IXDP465 Development Platform (Also known as BMP). IXDP465 Development Platform (Also known as BMP).
...@@ -72,6 +78,7 @@ config ARCH_PRPMC1100 ...@@ -72,6 +78,7 @@ config ARCH_PRPMC1100
config MACH_NAS100D config MACH_NAS100D
bool bool
prompt "NAS100D" prompt "NAS100D"
select PCI
help help
Say 'Y' here if you want your kernel to support Iomega's Say 'Y' here if you want your kernel to support Iomega's
NAS 100d device. For more information on this platform, NAS 100d device. For more information on this platform,
...@@ -96,6 +103,7 @@ config CPU_IXP46X ...@@ -96,6 +103,7 @@ config CPU_IXP46X
config MACH_GTWX5715 config MACH_GTWX5715
bool "Gemtek WX5715 (Linksys WRV54G)" bool "Gemtek WX5715 (Linksys WRV54G)"
depends on ARCH_IXP4XX depends on ARCH_IXP4XX
select PCI
help help
This board is currently inside the Linksys WRV54G Gateways. This board is currently inside the Linksys WRV54G Gateways.
...@@ -110,11 +118,16 @@ config MACH_GTWX5715 ...@@ -110,11 +118,16 @@ config MACH_GTWX5715
"High Speed" UART is n/c (as far as I can tell) "High Speed" UART is n/c (as far as I can tell)
20 Pin ARM/Xscale JTAG interface on J2 20 Pin ARM/Xscale JTAG interface on J2
comment "IXP4xx Options" comment "IXP4xx Options"
config DMABOUNCE
bool
default y
depends on PCI
config IXP4XX_INDIRECT_PCI config IXP4XX_INDIRECT_PCI
bool "Use indirect PCI memory access" bool "Use indirect PCI memory access"
depends on PCI
help help
IXP4xx provides two methods of accessing PCI memory space: IXP4xx provides two methods of accessing PCI memory space:
......
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
# Makefile for the linux kernel. # 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_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o
obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o
obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
......
...@@ -260,6 +260,12 @@ out: ...@@ -260,6 +260,12 @@ out:
#endif #endif
#ifndef CONFIG_PCI
#define __io(v) v
#else
/* /*
* IXP4xx does not have a transparent cpu -> PCI I/O translation * IXP4xx does not have a transparent cpu -> PCI I/O translation
* window. Instead, it has a set of registers that must be tweaked * 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) ...@@ -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_map(port, nr) ((void __iomem*)(port + PIO_OFFSET))
#define ioport_unmap(addr) #define ioport_unmap(addr)
#endif // !CONFIG_PCI
#endif // __ASM_ARM_ARCH_IO_H #endif // __ASM_ARM_ARCH_IO_H
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
*/ */
#define PHYS_OFFSET UL(0x00000000) #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); void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment