Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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.

+14 −1
Original line number Diff line number Diff line
@@ -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:

+2 −1
Original line number Diff line number Diff line
@@ -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
+7 −0
Original line number Diff line number Diff line
@@ -260,6 +260,12 @@ check_signature(const unsigned char __iomem *bus_addr, const unsigned char *sign

#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
+1 −1
Original line number Diff line number Diff line
@@ -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);