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