18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciif ARCH_IXP4XX
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_cimenu "Intel IXP4xx Implementation Options"
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cicomment "IXP4xx Platforms"
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciconfig MACH_IXP4XX_OF
98c2ecf20Sopenharmony_ci	bool
108c2ecf20Sopenharmony_ci	prompt "Devce Tree IXP4xx boards"
118c2ecf20Sopenharmony_ci	default y
128c2ecf20Sopenharmony_ci	select ARM_APPENDED_DTB # Old Redboot bootloaders deployed
138c2ecf20Sopenharmony_ci	select I2C
148c2ecf20Sopenharmony_ci	select I2C_IOP3XX
158c2ecf20Sopenharmony_ci	select PCI
168c2ecf20Sopenharmony_ci	select USE_OF
178c2ecf20Sopenharmony_ci	help
188c2ecf20Sopenharmony_ci	  Say 'Y' here to support Device Tree-based IXP4xx platforms.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciconfig MACH_NSLU2
218c2ecf20Sopenharmony_ci	bool
228c2ecf20Sopenharmony_ci	prompt "Linksys NSLU2"
238c2ecf20Sopenharmony_ci	select FORCE_PCI
248c2ecf20Sopenharmony_ci	help
258c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Linksys's
268c2ecf20Sopenharmony_ci	  NSLU2 NAS device. For more information on this platform,
278c2ecf20Sopenharmony_ci	  see http://www.nslu2-linux.org
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciconfig MACH_AVILA
308c2ecf20Sopenharmony_ci	bool "Avila"
318c2ecf20Sopenharmony_ci	select FORCE_PCI
328c2ecf20Sopenharmony_ci	help
338c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support the Gateworks
348c2ecf20Sopenharmony_ci	  Avila Network Platform. For more information on this platform,
358c2ecf20Sopenharmony_ci	  see <file:Documentation/arm/ixp4xx.rst>.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciconfig MACH_LOFT
388c2ecf20Sopenharmony_ci    bool "Loft"
398c2ecf20Sopenharmony_ci    depends on MACH_AVILA
408c2ecf20Sopenharmony_ci    help
418c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support the Giant
428c2ecf20Sopenharmony_ci	  Shoulder Inc Loft board (a minor variation on the standard
438c2ecf20Sopenharmony_ci	  Gateworks Avila Network Platform).
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ciconfig ARCH_ADI_COYOTE
468c2ecf20Sopenharmony_ci	bool "Coyote"
478c2ecf20Sopenharmony_ci	select FORCE_PCI
488c2ecf20Sopenharmony_ci	help
498c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support the ADI 
508c2ecf20Sopenharmony_ci	  Engineering Coyote Gateway Reference Platform. For more
518c2ecf20Sopenharmony_ci	  information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciconfig MACH_GATEWAY7001
548c2ecf20Sopenharmony_ci	bool "Gateway 7001"
558c2ecf20Sopenharmony_ci	select FORCE_PCI
568c2ecf20Sopenharmony_ci	help
578c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Gateway's
588c2ecf20Sopenharmony_ci	  7001 Access Point. For more information on this platform,
598c2ecf20Sopenharmony_ci	  see http://openwrt.org
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciconfig MACH_WG302V2
628c2ecf20Sopenharmony_ci	bool "Netgear WG302 v2 / WAG302 v2"
638c2ecf20Sopenharmony_ci	select FORCE_PCI
648c2ecf20Sopenharmony_ci	help
658c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Netgear's
668c2ecf20Sopenharmony_ci	  WG302 v2 or WAG302 v2 Access Points. For more information
678c2ecf20Sopenharmony_ci	  on this platform, see http://openwrt.org
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ciconfig ARCH_IXDP425
708c2ecf20Sopenharmony_ci	bool "IXDP425"
718c2ecf20Sopenharmony_ci	help
728c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Intel's 
738c2ecf20Sopenharmony_ci	  IXDP425 Development Platform (Also known as Richfield).  
748c2ecf20Sopenharmony_ci	  For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciconfig MACH_IXDPG425
778c2ecf20Sopenharmony_ci	bool "IXDPG425"
788c2ecf20Sopenharmony_ci	help
798c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Intel's
808c2ecf20Sopenharmony_ci	  IXDPG425 Development Platform (Also known as Montajade).
818c2ecf20Sopenharmony_ci	  For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ciconfig MACH_IXDP465
848c2ecf20Sopenharmony_ci	bool "IXDP465"
858c2ecf20Sopenharmony_ci	help
868c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Intel's
878c2ecf20Sopenharmony_ci	  IXDP465 Development Platform (Also known as BMP).
888c2ecf20Sopenharmony_ci	  For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ciconfig MACH_GORAMO_MLR
918c2ecf20Sopenharmony_ci	bool "GORAMO Multi Link Router"
928c2ecf20Sopenharmony_ci	help
938c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support GORAMO
948c2ecf20Sopenharmony_ci	  MultiLink router.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciconfig MACH_KIXRP435
978c2ecf20Sopenharmony_ci	bool "KIXRP435"
988c2ecf20Sopenharmony_ci	help
998c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Intel's
1008c2ecf20Sopenharmony_ci	  KIXRP435 Reference Platform.
1018c2ecf20Sopenharmony_ci	  For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci#
1048c2ecf20Sopenharmony_ci# IXCDP1100 is the exact same HW as IXDP425, but with a different machine 
1058c2ecf20Sopenharmony_ci# number from the bootloader due to marketing monkeys, so we just enable it 
1068c2ecf20Sopenharmony_ci# by default if IXDP425 is enabled.
1078c2ecf20Sopenharmony_ci#
1088c2ecf20Sopenharmony_ciconfig ARCH_IXCDP1100
1098c2ecf20Sopenharmony_ci	bool 
1108c2ecf20Sopenharmony_ci	depends on ARCH_IXDP425
1118c2ecf20Sopenharmony_ci	default y
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ciconfig ARCH_PRPMC1100
1148c2ecf20Sopenharmony_ci	bool "PrPMC1100"
1158c2ecf20Sopenharmony_ci	help
1168c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support the Motorola
1178c2ecf20Sopenharmony_ci	  PrPCM1100 Processor Mezanine Module. For more information on
1188c2ecf20Sopenharmony_ci	  this platform, see <file:Documentation/arm/ixp4xx.rst>.
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ciconfig MACH_NAS100D
1218c2ecf20Sopenharmony_ci	bool
1228c2ecf20Sopenharmony_ci	prompt "NAS100D"
1238c2ecf20Sopenharmony_ci	select FORCE_PCI
1248c2ecf20Sopenharmony_ci	help
1258c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Iomega's
1268c2ecf20Sopenharmony_ci	  NAS 100d device. For more information on this platform,
1278c2ecf20Sopenharmony_ci	  see http://www.nslu2-linux.org/wiki/NAS100d/HomePage
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ciconfig MACH_DSMG600
1308c2ecf20Sopenharmony_ci	bool
1318c2ecf20Sopenharmony_ci	prompt "D-Link DSM-G600 RevA"
1328c2ecf20Sopenharmony_ci	select FORCE_PCI
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support D-Link's
1358c2ecf20Sopenharmony_ci	  DSM-G600 RevA device. For more information on this platform,
1368c2ecf20Sopenharmony_ci	  see http://www.nslu2-linux.org/wiki/DSMG600/HomePage
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ciconfig	ARCH_IXDP4XX
1398c2ecf20Sopenharmony_ci	bool
1408c2ecf20Sopenharmony_ci	depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435
1418c2ecf20Sopenharmony_ci	default y
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ciconfig MACH_FSG
1448c2ecf20Sopenharmony_ci	bool
1458c2ecf20Sopenharmony_ci	prompt "Freecom FSG-3"
1468c2ecf20Sopenharmony_ci	select FORCE_PCI
1478c2ecf20Sopenharmony_ci	help
1488c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Freecom's
1498c2ecf20Sopenharmony_ci	  FSG-3 device. For more information on this platform,
1508c2ecf20Sopenharmony_ci	  see http://www.nslu2-linux.org/wiki/FSG3/HomePage
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ciconfig MACH_ARCOM_VULCAN
1538c2ecf20Sopenharmony_ci	bool
1548c2ecf20Sopenharmony_ci	prompt "Arcom/Eurotech Vulcan"
1558c2ecf20Sopenharmony_ci	select FORCE_PCI
1568c2ecf20Sopenharmony_ci	help
1578c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support Arcom's
1588c2ecf20Sopenharmony_ci	  Vulcan board.
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci#
1618c2ecf20Sopenharmony_ci# Certain registers and IRQs are only enabled if supporting IXP465 CPUs
1628c2ecf20Sopenharmony_ci#
1638c2ecf20Sopenharmony_ciconfig CPU_IXP46X
1648c2ecf20Sopenharmony_ci	bool
1658c2ecf20Sopenharmony_ci	depends on MACH_IXDP465
1668c2ecf20Sopenharmony_ci	default y
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ciconfig CPU_IXP43X
1698c2ecf20Sopenharmony_ci	bool
1708c2ecf20Sopenharmony_ci	depends on MACH_KIXRP435
1718c2ecf20Sopenharmony_ci	default y
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ciconfig MACH_GTWX5715
1748c2ecf20Sopenharmony_ci	bool "Gemtek WX5715 (Linksys WRV54G)"
1758c2ecf20Sopenharmony_ci	depends on ARCH_IXP4XX
1768c2ecf20Sopenharmony_ci	select FORCE_PCI
1778c2ecf20Sopenharmony_ci	help
1788c2ecf20Sopenharmony_ci		This board is currently inside the Linksys WRV54G Gateways.
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ci		IXP425 - 266mhz
1818c2ecf20Sopenharmony_ci		32mb SDRAM
1828c2ecf20Sopenharmony_ci		8mb Flash
1838c2ecf20Sopenharmony_ci		miniPCI slot 0 does not have a card connector soldered to the board
1848c2ecf20Sopenharmony_ci		miniPCI slot 1 has an ISL3880 802.11g card (Prism54)
1858c2ecf20Sopenharmony_ci		npe0 is connected to a Kendin KS8995M Switch (4 ports)
1868c2ecf20Sopenharmony_ci		npe1 is the "wan" port
1878c2ecf20Sopenharmony_ci		"Console" UART is available on J11 as console
1888c2ecf20Sopenharmony_ci		"High Speed" UART is n/c (as far as I can tell)
1898c2ecf20Sopenharmony_ci		20 Pin ARM/Xscale JTAG interface on J2
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ciconfig MACH_DEVIXP
1928c2ecf20Sopenharmony_ci	bool "Omicron DEVIXP"
1938c2ecf20Sopenharmony_ci	help
1948c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support the DEVIXP
1958c2ecf20Sopenharmony_ci	  board from OMICRON electronics GmbH.
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ciconfig MACH_MICCPT
1988c2ecf20Sopenharmony_ci	bool "Omicron MICCPT"
1998c2ecf20Sopenharmony_ci	select FORCE_PCI
2008c2ecf20Sopenharmony_ci	help
2018c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support the MICCPT
2028c2ecf20Sopenharmony_ci	  board from OMICRON electronics GmbH.
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ciconfig MACH_MIC256
2058c2ecf20Sopenharmony_ci	bool "Omicron MIC256"
2068c2ecf20Sopenharmony_ci	help
2078c2ecf20Sopenharmony_ci	  Say 'Y' here if you want your kernel to support the MIC256
2088c2ecf20Sopenharmony_ci	  board from OMICRON electronics GmbH.
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_cicomment "IXP4xx Options"
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ciconfig IXP4XX_INDIRECT_PCI
2138c2ecf20Sopenharmony_ci	bool "Use indirect PCI memory access"
2148c2ecf20Sopenharmony_ci	depends on PCI
2158c2ecf20Sopenharmony_ci	help
2168c2ecf20Sopenharmony_ci          IXP4xx provides two methods of accessing PCI memory space:
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ci          1) A direct mapped window from 0x48000000 to 0x4BFFFFFF (64MB).
2198c2ecf20Sopenharmony_ci             To access PCI via this space, we simply ioremap() the BAR
2208c2ecf20Sopenharmony_ci             into the kernel and we can use the standard read[bwl]/write[bwl]
2218c2ecf20Sopenharmony_ci             macros. This is the preferred method due to speed but it
2228c2ecf20Sopenharmony_ci             limits the system to just 64MB of PCI memory. This can be
2238c2ecf20Sopenharmony_ci             problematic if using video cards and other memory-heavy devices.
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ci	  2) If > 64MB of memory space is required, the IXP4xx can be
2268c2ecf20Sopenharmony_ci	     configured to use indirect registers to access the whole PCI
2278c2ecf20Sopenharmony_ci	     memory space. This currently allows for up to 1 GB (0x10000000
2288c2ecf20Sopenharmony_ci	     to 0x4FFFFFFF) of memory on the bus. The disadvantage of this
2298c2ecf20Sopenharmony_ci	     is that every PCI access requires three local register accesses
2308c2ecf20Sopenharmony_ci	     plus a spinlock, but in some cases the performance hit is
2318c2ecf20Sopenharmony_ci	     acceptable. In addition, you cannot mmap() PCI devices in this
2328c2ecf20Sopenharmony_ci	     case due to the indirect nature of the PCI window.
2338c2ecf20Sopenharmony_ci
2348c2ecf20Sopenharmony_ci	  By default, the direct method is used. Choose this option if you
2358c2ecf20Sopenharmony_ci	  need to use the indirect method instead. If you don't know
2368c2ecf20Sopenharmony_ci	  what you need, leave this option unselected.
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ciendmenu
2398c2ecf20Sopenharmony_ci
2408c2ecf20Sopenharmony_ciendif
241