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