1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunif ARCH_IXP4XX 3*4882a593Smuzhiyun 4*4882a593Smuzhiyunmenu "Intel IXP4xx Implementation Options" 5*4882a593Smuzhiyun 6*4882a593Smuzhiyuncomment "IXP4xx Platforms" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunconfig MACH_IXP4XX_OF 9*4882a593Smuzhiyun bool 10*4882a593Smuzhiyun prompt "Devce Tree IXP4xx boards" 11*4882a593Smuzhiyun default y 12*4882a593Smuzhiyun select ARM_APPENDED_DTB # Old Redboot bootloaders deployed 13*4882a593Smuzhiyun select I2C 14*4882a593Smuzhiyun select I2C_IOP3XX 15*4882a593Smuzhiyun select PCI 16*4882a593Smuzhiyun select USE_OF 17*4882a593Smuzhiyun help 18*4882a593Smuzhiyun Say 'Y' here to support Device Tree-based IXP4xx platforms. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunconfig MACH_NSLU2 21*4882a593Smuzhiyun bool 22*4882a593Smuzhiyun prompt "Linksys NSLU2" 23*4882a593Smuzhiyun select FORCE_PCI 24*4882a593Smuzhiyun help 25*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Linksys's 26*4882a593Smuzhiyun NSLU2 NAS device. For more information on this platform, 27*4882a593Smuzhiyun see http://www.nslu2-linux.org 28*4882a593Smuzhiyun 29*4882a593Smuzhiyunconfig MACH_AVILA 30*4882a593Smuzhiyun bool "Avila" 31*4882a593Smuzhiyun select FORCE_PCI 32*4882a593Smuzhiyun help 33*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support the Gateworks 34*4882a593Smuzhiyun Avila Network Platform. For more information on this platform, 35*4882a593Smuzhiyun see <file:Documentation/arm/ixp4xx.rst>. 36*4882a593Smuzhiyun 37*4882a593Smuzhiyunconfig MACH_LOFT 38*4882a593Smuzhiyun bool "Loft" 39*4882a593Smuzhiyun depends on MACH_AVILA 40*4882a593Smuzhiyun help 41*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support the Giant 42*4882a593Smuzhiyun Shoulder Inc Loft board (a minor variation on the standard 43*4882a593Smuzhiyun Gateworks Avila Network Platform). 44*4882a593Smuzhiyun 45*4882a593Smuzhiyunconfig ARCH_ADI_COYOTE 46*4882a593Smuzhiyun bool "Coyote" 47*4882a593Smuzhiyun select FORCE_PCI 48*4882a593Smuzhiyun help 49*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support the ADI 50*4882a593Smuzhiyun Engineering Coyote Gateway Reference Platform. For more 51*4882a593Smuzhiyun information on this platform, see <file:Documentation/arm/ixp4xx.rst>. 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunconfig MACH_GATEWAY7001 54*4882a593Smuzhiyun bool "Gateway 7001" 55*4882a593Smuzhiyun select FORCE_PCI 56*4882a593Smuzhiyun help 57*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Gateway's 58*4882a593Smuzhiyun 7001 Access Point. For more information on this platform, 59*4882a593Smuzhiyun see http://openwrt.org 60*4882a593Smuzhiyun 61*4882a593Smuzhiyunconfig MACH_WG302V2 62*4882a593Smuzhiyun bool "Netgear WG302 v2 / WAG302 v2" 63*4882a593Smuzhiyun select FORCE_PCI 64*4882a593Smuzhiyun help 65*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Netgear's 66*4882a593Smuzhiyun WG302 v2 or WAG302 v2 Access Points. For more information 67*4882a593Smuzhiyun on this platform, see http://openwrt.org 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunconfig ARCH_IXDP425 70*4882a593Smuzhiyun bool "IXDP425" 71*4882a593Smuzhiyun help 72*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Intel's 73*4882a593Smuzhiyun IXDP425 Development Platform (Also known as Richfield). 74*4882a593Smuzhiyun For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>. 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunconfig MACH_IXDPG425 77*4882a593Smuzhiyun bool "IXDPG425" 78*4882a593Smuzhiyun help 79*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Intel's 80*4882a593Smuzhiyun IXDPG425 Development Platform (Also known as Montajade). 81*4882a593Smuzhiyun For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>. 82*4882a593Smuzhiyun 83*4882a593Smuzhiyunconfig MACH_IXDP465 84*4882a593Smuzhiyun bool "IXDP465" 85*4882a593Smuzhiyun help 86*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Intel's 87*4882a593Smuzhiyun IXDP465 Development Platform (Also known as BMP). 88*4882a593Smuzhiyun For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>. 89*4882a593Smuzhiyun 90*4882a593Smuzhiyunconfig MACH_GORAMO_MLR 91*4882a593Smuzhiyun bool "GORAMO Multi Link Router" 92*4882a593Smuzhiyun help 93*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support GORAMO 94*4882a593Smuzhiyun MultiLink router. 95*4882a593Smuzhiyun 96*4882a593Smuzhiyunconfig MACH_KIXRP435 97*4882a593Smuzhiyun bool "KIXRP435" 98*4882a593Smuzhiyun help 99*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Intel's 100*4882a593Smuzhiyun KIXRP435 Reference Platform. 101*4882a593Smuzhiyun For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>. 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun# 104*4882a593Smuzhiyun# IXCDP1100 is the exact same HW as IXDP425, but with a different machine 105*4882a593Smuzhiyun# number from the bootloader due to marketing monkeys, so we just enable it 106*4882a593Smuzhiyun# by default if IXDP425 is enabled. 107*4882a593Smuzhiyun# 108*4882a593Smuzhiyunconfig ARCH_IXCDP1100 109*4882a593Smuzhiyun bool 110*4882a593Smuzhiyun depends on ARCH_IXDP425 111*4882a593Smuzhiyun default y 112*4882a593Smuzhiyun 113*4882a593Smuzhiyunconfig ARCH_PRPMC1100 114*4882a593Smuzhiyun bool "PrPMC1100" 115*4882a593Smuzhiyun help 116*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support the Motorola 117*4882a593Smuzhiyun PrPCM1100 Processor Mezanine Module. For more information on 118*4882a593Smuzhiyun this platform, see <file:Documentation/arm/ixp4xx.rst>. 119*4882a593Smuzhiyun 120*4882a593Smuzhiyunconfig MACH_NAS100D 121*4882a593Smuzhiyun bool 122*4882a593Smuzhiyun prompt "NAS100D" 123*4882a593Smuzhiyun select FORCE_PCI 124*4882a593Smuzhiyun help 125*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Iomega's 126*4882a593Smuzhiyun NAS 100d device. For more information on this platform, 127*4882a593Smuzhiyun see http://www.nslu2-linux.org/wiki/NAS100d/HomePage 128*4882a593Smuzhiyun 129*4882a593Smuzhiyunconfig MACH_DSMG600 130*4882a593Smuzhiyun bool 131*4882a593Smuzhiyun prompt "D-Link DSM-G600 RevA" 132*4882a593Smuzhiyun select FORCE_PCI 133*4882a593Smuzhiyun help 134*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support D-Link's 135*4882a593Smuzhiyun DSM-G600 RevA device. For more information on this platform, 136*4882a593Smuzhiyun see http://www.nslu2-linux.org/wiki/DSMG600/HomePage 137*4882a593Smuzhiyun 138*4882a593Smuzhiyunconfig ARCH_IXDP4XX 139*4882a593Smuzhiyun bool 140*4882a593Smuzhiyun depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435 141*4882a593Smuzhiyun default y 142*4882a593Smuzhiyun 143*4882a593Smuzhiyunconfig MACH_FSG 144*4882a593Smuzhiyun bool 145*4882a593Smuzhiyun prompt "Freecom FSG-3" 146*4882a593Smuzhiyun select FORCE_PCI 147*4882a593Smuzhiyun help 148*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Freecom's 149*4882a593Smuzhiyun FSG-3 device. For more information on this platform, 150*4882a593Smuzhiyun see http://www.nslu2-linux.org/wiki/FSG3/HomePage 151*4882a593Smuzhiyun 152*4882a593Smuzhiyunconfig MACH_ARCOM_VULCAN 153*4882a593Smuzhiyun bool 154*4882a593Smuzhiyun prompt "Arcom/Eurotech Vulcan" 155*4882a593Smuzhiyun select FORCE_PCI 156*4882a593Smuzhiyun help 157*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support Arcom's 158*4882a593Smuzhiyun Vulcan board. 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun# 161*4882a593Smuzhiyun# Certain registers and IRQs are only enabled if supporting IXP465 CPUs 162*4882a593Smuzhiyun# 163*4882a593Smuzhiyunconfig CPU_IXP46X 164*4882a593Smuzhiyun bool 165*4882a593Smuzhiyun depends on MACH_IXDP465 166*4882a593Smuzhiyun default y 167*4882a593Smuzhiyun 168*4882a593Smuzhiyunconfig CPU_IXP43X 169*4882a593Smuzhiyun bool 170*4882a593Smuzhiyun depends on MACH_KIXRP435 171*4882a593Smuzhiyun default y 172*4882a593Smuzhiyun 173*4882a593Smuzhiyunconfig MACH_GTWX5715 174*4882a593Smuzhiyun bool "Gemtek WX5715 (Linksys WRV54G)" 175*4882a593Smuzhiyun depends on ARCH_IXP4XX 176*4882a593Smuzhiyun select FORCE_PCI 177*4882a593Smuzhiyun help 178*4882a593Smuzhiyun This board is currently inside the Linksys WRV54G Gateways. 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun IXP425 - 266mhz 181*4882a593Smuzhiyun 32mb SDRAM 182*4882a593Smuzhiyun 8mb Flash 183*4882a593Smuzhiyun miniPCI slot 0 does not have a card connector soldered to the board 184*4882a593Smuzhiyun miniPCI slot 1 has an ISL3880 802.11g card (Prism54) 185*4882a593Smuzhiyun npe0 is connected to a Kendin KS8995M Switch (4 ports) 186*4882a593Smuzhiyun npe1 is the "wan" port 187*4882a593Smuzhiyun "Console" UART is available on J11 as console 188*4882a593Smuzhiyun "High Speed" UART is n/c (as far as I can tell) 189*4882a593Smuzhiyun 20 Pin ARM/Xscale JTAG interface on J2 190*4882a593Smuzhiyun 191*4882a593Smuzhiyunconfig MACH_DEVIXP 192*4882a593Smuzhiyun bool "Omicron DEVIXP" 193*4882a593Smuzhiyun help 194*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support the DEVIXP 195*4882a593Smuzhiyun board from OMICRON electronics GmbH. 196*4882a593Smuzhiyun 197*4882a593Smuzhiyunconfig MACH_MICCPT 198*4882a593Smuzhiyun bool "Omicron MICCPT" 199*4882a593Smuzhiyun select FORCE_PCI 200*4882a593Smuzhiyun help 201*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support the MICCPT 202*4882a593Smuzhiyun board from OMICRON electronics GmbH. 203*4882a593Smuzhiyun 204*4882a593Smuzhiyunconfig MACH_MIC256 205*4882a593Smuzhiyun bool "Omicron MIC256" 206*4882a593Smuzhiyun help 207*4882a593Smuzhiyun Say 'Y' here if you want your kernel to support the MIC256 208*4882a593Smuzhiyun board from OMICRON electronics GmbH. 209*4882a593Smuzhiyun 210*4882a593Smuzhiyuncomment "IXP4xx Options" 211*4882a593Smuzhiyun 212*4882a593Smuzhiyunconfig IXP4XX_INDIRECT_PCI 213*4882a593Smuzhiyun bool "Use indirect PCI memory access" 214*4882a593Smuzhiyun depends on PCI 215*4882a593Smuzhiyun help 216*4882a593Smuzhiyun IXP4xx provides two methods of accessing PCI memory space: 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun 1) A direct mapped window from 0x48000000 to 0x4BFFFFFF (64MB). 219*4882a593Smuzhiyun To access PCI via this space, we simply ioremap() the BAR 220*4882a593Smuzhiyun into the kernel and we can use the standard read[bwl]/write[bwl] 221*4882a593Smuzhiyun macros. This is the preferred method due to speed but it 222*4882a593Smuzhiyun limits the system to just 64MB of PCI memory. This can be 223*4882a593Smuzhiyun problematic if using video cards and other memory-heavy devices. 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun 2) If > 64MB of memory space is required, the IXP4xx can be 226*4882a593Smuzhiyun configured to use indirect registers to access the whole PCI 227*4882a593Smuzhiyun memory space. This currently allows for up to 1 GB (0x10000000 228*4882a593Smuzhiyun to 0x4FFFFFFF) of memory on the bus. The disadvantage of this 229*4882a593Smuzhiyun is that every PCI access requires three local register accesses 230*4882a593Smuzhiyun plus a spinlock, but in some cases the performance hit is 231*4882a593Smuzhiyun acceptable. In addition, you cannot mmap() PCI devices in this 232*4882a593Smuzhiyun case due to the indirect nature of the PCI window. 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun By default, the direct method is used. Choose this option if you 235*4882a593Smuzhiyun need to use the indirect method instead. If you don't know 236*4882a593Smuzhiyun what you need, leave this option unselected. 237*4882a593Smuzhiyun 238*4882a593Smuzhiyunendmenu 239*4882a593Smuzhiyun 240*4882a593Smuzhiyunendif 241