1# SPDX-License-Identifier: GPL-2.0
2comment "Machine Types"
3
4if M68KCLASSIC
5
6config AMIGA
7	bool "Amiga support"
8	depends on MMU
9	select MMU_MOTOROLA if MMU
10	select LEGACY_TIMER_TICK
11	help
12	  This option enables support for the Amiga series of computers. If
13	  you plan to use this kernel on an Amiga, say Y here and browse the
14	  material available in <file:Documentation/m68k>; otherwise say N.
15
16config ATARI
17	bool "Atari support"
18	depends on MMU
19	select MMU_MOTOROLA if MMU
20	select HAVE_ARCH_NVRAM_OPS
21	select LEGACY_TIMER_TICK
22	help
23	  This option enables support for the 68000-based Atari series of
24	  computers (including the TT, Falcon and Medusa). If you plan to use
25	  this kernel on an Atari, say Y here and browse the material
26	  available in <file:Documentation/m68k>; otherwise say N.
27
28config ATARI_KBD_CORE
29	bool
30
31config MAC
32	bool "Macintosh support"
33	depends on MMU
34	select MMU_MOTOROLA if MMU
35	select HAVE_ARCH_NVRAM_OPS
36	select HAVE_PATA_PLATFORM
37	select LEGACY_TIMER_TICK
38	help
39	  This option enables support for the Apple Macintosh series of
40	  computers. If you plan to use this kernel on a Mac, say Y here and
41	  browse the documentation available at <http://www.mac.linux-m68k.org/>;
42	  otherwise say N.
43
44config APOLLO
45	bool "Apollo support"
46	depends on MMU
47	select MMU_MOTOROLA if MMU
48	select LEGACY_TIMER_TICK
49	help
50	  Say Y here if you want to run Linux on an MC680x0-based Apollo
51	  Domain workstation such as the DN3500.
52
53config VME
54	bool "VME (Motorola and BVM) support"
55	depends on MMU
56	select MMU_MOTOROLA if MMU
57	help
58	  Say Y here if you want to build a kernel for a 680x0 based VME
59	  board.  Boards currently supported include Motorola boards MVME147,
60	  MVME162, MVME166, MVME167, MVME172, and MVME177.  BVME4000 and
61	  BVME6000 boards from BVM Ltd are also supported.
62
63config MVME147
64	bool "MVME147 support"
65	depends on MMU
66	depends on VME
67	select LEGACY_TIMER_TICK
68	help
69	  Say Y to include support for early Motorola VME boards.  This will
70	  build a kernel which can run on MVME147 single-board computers.  If
71	  you select this option you will have to select the appropriate
72	  drivers for SCSI, Ethernet and serial ports later on.
73
74config MVME16x
75	bool "MVME162, 166 and 167 support"
76	depends on MMU
77	depends on VME
78	select LEGACY_TIMER_TICK
79	help
80	  Say Y to include support for Motorola VME boards.  This will build a
81	  kernel which can run on MVME162, MVME166, MVME167, MVME172, and
82	  MVME177 boards.  If you select this option you will have to select
83	  the appropriate drivers for SCSI, Ethernet and serial ports later
84	  on.
85
86config BVME6000
87	bool "BVME4000 and BVME6000 support"
88	depends on MMU
89	depends on VME
90	select LEGACY_TIMER_TICK
91	help
92	  Say Y to include support for VME boards from BVM Ltd.  This will
93	  build a kernel which can run on BVME4000 and BVME6000 boards.  If
94	  you select this option you will have to select the appropriate
95	  drivers for SCSI, Ethernet and serial ports later on.
96
97config HP300
98	bool "HP9000/300 and HP9000/400 support"
99	depends on MMU
100	select MMU_MOTOROLA if MMU
101	select LEGACY_TIMER_TICK
102	help
103	  This option enables support for the HP9000/300 and HP9000/400 series
104	  of workstations. Support for these machines is still somewhat
105	  experimental. If you plan to try to use the kernel on such a machine
106	  say Y here.
107	  Everybody else says N.
108
109config SUN3X
110	bool "Sun3x support"
111	depends on MMU
112	select LEGACY_TIMER_TICK
113	select MMU_MOTOROLA if MMU
114	select M68030
115	help
116	  This option enables support for the Sun 3x series of workstations.
117	  Be warned that this support is very experimental.
118	  Note that Sun 3x kernels are not compatible with Sun 3 hardware.
119	  General Linux information on the Sun 3x series (now discontinued)
120	  is at <http://www.angelfire.com/ca2/tech68k/sun3.html>.
121
122	  If you don't want to compile a kernel for a Sun 3x, say N.
123
124config Q40
125	bool "Q40/Q60 support"
126	depends on MMU
127	select MMU_MOTOROLA if MMU
128	select LEGACY_TIMER_TICK
129	help
130	  The Q40 is a Motorola 68040-based successor to the Sinclair QL
131	  manufactured in Germany.  There is an official Q40 home page at
132	  <http://www.q40.de/>.  This option enables support for the Q40 and
133	  Q60. Select your CPU below.  For 68LC060 don't forget to enable FPU
134	  emulation.
135
136config SUN3
137	bool "Sun3 support"
138	depends on MMU
139	depends on !MMU_MOTOROLA
140	select MMU_SUN3 if MMU
141	select LEGACY_TIMER_TICK
142	select NO_DMA
143	select M68020
144	help
145	  This option enables support for the Sun 3 series of workstations
146	  (3/50, 3/60, 3/1xx, 3/2xx systems). Enabling this option requires
147	  that all other hardware types must be disabled, as Sun 3 kernels
148	  are incompatible with all other m68k targets (including Sun 3x!).
149
150	  If you don't want to compile a kernel exclusively for a Sun 3, say N.
151
152config PILOT
153	bool
154
155config PILOT3
156	bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support"
157	depends on !MMU
158	select M68328
159	select PILOT
160	help
161	  Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII.
162
163config XCOPILOT_BUGS
164	bool "(X)Copilot support"
165	depends on PILOT3
166	help
167	  Support the bugs of Xcopilot.
168
169config UCSIMM
170	bool "uCsimm module support"
171	depends on !MMU
172	select M68EZ328
173	help
174	  Support for the Arcturus Networks uCsimm module.
175
176config UCDIMM
177	bool "uDsimm module support"
178	depends on !MMU
179	select M68VZ328
180	help
181	  Support for the Arcturus Networks uDsimm module.
182
183config DRAGEN2
184	bool "DragenEngine II board support"
185	depends on !MMU
186	select M68VZ328
187	help
188	  Support for the DragenEngine II board.
189
190config DIRECT_IO_ACCESS
191	bool "Allow user to access IO directly"
192	depends on (UCSIMM || UCDIMM || DRAGEN2)
193	help
194	  Disable the CPU internal registers protection in user mode,
195	  to allow a user application to read/write them.
196
197config INIT_LCD
198	bool "Initialize LCD"
199	depends on (UCSIMM || UCDIMM || DRAGEN2)
200	help
201	  Initialize the LCD controller of the 68x328 processor.
202
203config MEMORY_RESERVE
204	int "Memory reservation (MiB)"
205	depends on (UCSIMM || UCDIMM)
206	help
207	  Reserve certain memory regions on 68x328 based boards.
208
209endif # M68KCLASSIC
210
211config ARN5206
212	bool "Arnewsh 5206 board support"
213	depends on M5206
214	help
215	  Support for the Arnewsh 5206 board.
216
217config M5206eC3
218	bool "Motorola M5206eC3 board support"
219	depends on M5206e
220	help
221	  Support for the Motorola M5206eC3 board.
222
223config ELITE
224	bool "Motorola M5206eLITE board support"
225	depends on M5206e
226	help
227	  Support for the Motorola M5206eLITE board.
228
229config M5235EVB
230	bool "Freescale M5235EVB support"
231	depends on M523x
232	help
233	  Support for the Freescale M5235EVB board.
234
235config M5249C3
236	bool "Motorola M5249C3 board support"
237	depends on M5249
238	help
239	  Support for the Motorola M5249C3 board.
240
241config M5272C3
242	bool "Motorola M5272C3 board support"
243	depends on M5272
244	help
245	  Support for the Motorola M5272C3 board.
246
247config WILDFIRE
248	bool "Intec Automation Inc. WildFire board support"
249	depends on M528x
250	help
251	  Support for the Intec Automation Inc. WildFire.
252
253config WILDFIREMOD
254	bool "Intec Automation Inc. WildFire module support"
255	depends on M528x
256	help
257	  Support for the Intec Automation Inc. WildFire module.
258
259config ARN5307
260	bool "Arnewsh 5307 board support"
261	depends on M5307
262	help
263	  Support for the Arnewsh 5307 board.
264
265config M5307C3
266	bool "Motorola M5307C3 board support"
267	depends on M5307
268	help
269	  Support for the Motorola M5307C3 board.
270
271config SECUREEDGEMP3
272	bool "SnapGear SecureEdge/MP3 platform support"
273	depends on M5307
274	help
275	  Support for the SnapGear SecureEdge/MP3 platform.
276
277config M5407C3
278	bool "Motorola M5407C3 board support"
279	depends on M5407
280	help
281	  Support for the Motorola M5407C3 board.
282
283config AMCORE
284	bool "Sysam AMCORE board support"
285	depends on M5307
286	help
287	  Support for the Sysam AMCORE open-hardware generic board.
288
289config STMARK2
290	bool "Sysam stmark2 board support"
291	depends on M5441x
292	help
293	  Support for the Sysam stmark2 open-hardware generic board.
294
295config FIREBEE
296	bool "FireBee board support"
297	depends on M547x
298	help
299	  Support for the FireBee ColdFire 5475 based board.
300
301config CLEOPATRA
302	bool "Feith CLEOPATRA board support"
303	depends on (M5307 || M5407)
304	help
305	  Support for the Feith Cleopatra boards.
306
307config CANCam
308	bool "Feith CANCam board support"
309	depends on M5272
310	help
311	  Support for the Feith CANCam board.
312
313config SCALES
314	bool "Feith SCALES board support"
315	depends on M5272
316	help
317	  Support for the Feith SCALES board.
318
319config NETtel
320	bool "SecureEdge/NETtel board support"
321	depends on (M5206e || M5272 || M5307)
322	help
323	  Support for the SnapGear NETtel/SecureEdge/SnapGear boards.
324
325config MOD5272
326	bool "Netburner MOD-5272 board support"
327	depends on M5272
328	help
329	  Support for the Netburner MOD-5272 board.
330
331if !MMU || COLDFIRE
332
333comment "Machine Options"
334
335config UBOOT
336	bool "Support for U-Boot command line parameters"
337	help
338	  If you say Y here kernel will try to collect command
339	  line parameters from the initial u-boot stack.
340
341config 4KSTACKS
342	bool "Use 4Kb for kernel stacks instead of 8Kb"
343	default y
344	help
345	  If you say Y here the kernel will use a 4Kb stacksize for the
346	  kernel stack attached to each process/thread. This facilitates
347	  running more threads on a system and also reduces the pressure
348	  on the VM subsystem for higher order allocations.
349
350comment "RAM configuration"
351
352config RAMBASE
353	hex "Address of the base of RAM"
354	default "0"
355	help
356	  Define the address that RAM starts at. On many platforms this is
357	  0, the base of the address space. And this is the default. Some
358	  platforms choose to setup their RAM at other addresses within the
359	  processor address space.
360
361config RAMSIZE
362	hex "Size of RAM (in bytes), or 0 for automatic"
363	default "0x400000"
364	help
365	  Define the size of the system RAM. If you select 0 then the
366	  kernel will try to probe the RAM size at runtime. This is not
367	  supported on all CPU types.
368
369config VECTORBASE
370	hex "Address of the base of system vectors"
371	default "0"
372	help
373	  Define the address of the system vectors. Commonly this is
374	  put at the start of RAM, but it doesn't have to be. On ColdFire
375	  platforms this address is programmed into the VBR register, thus
376	  actually setting the address to use.
377
378config MBAR
379	hex "Address of the MBAR (internal peripherals)"
380	default "0x10000000"
381	depends on HAVE_MBAR
382	help
383	  Define the address of the internal system peripherals. This value
384	  is set in the processors MBAR register. This is generally setup by
385	  the boot loader, and will not be written by the kernel. By far most
386	  ColdFire boards use the default 0x10000000 value, so if unsure then
387	  use this.
388
389config IPSBAR
390	hex "Address of the IPSBAR (internal peripherals)"
391	default "0x40000000"
392	depends on HAVE_IPSBAR
393	help
394	  Define the address of the internal system peripherals. This value
395	  is set in the processors IPSBAR register. This is generally setup by
396	  the boot loader, and will not be written by the kernel. By far most
397	  ColdFire boards use the default 0x40000000 value, so if unsure then
398	  use this.
399
400config KERNELBASE
401	hex "Address of the base of kernel code"
402	default "0x400"
403	help
404	  Typically on m68k systems the kernel will not start at the base
405	  of RAM, but usually some small offset from it. Define the start
406	  address of the kernel here. The most common setup will have the
407	  processor vectors at the base of RAM and then the start of the
408	  kernel. On some platforms some RAM is reserved for boot loaders
409	  and the kernel starts after that. The 0x400 default was based on
410	  a system with the RAM based at address 0, and leaving enough room
411	  for the theoretical maximum number of 256 vectors.
412
413comment "ROM configuration"
414
415config ROM
416	bool "Specify ROM linker regions"
417	help
418	  Define a ROM region for the linker script. This creates a kernel
419	  that can be stored in flash, with possibly the text, and data
420	  regions being copied out to RAM at startup.
421
422config ROMBASE
423	hex "Address of the base of ROM device"
424	default "0"
425	depends on ROM
426	help
427	  Define the address that the ROM region starts at. Some platforms
428	  use this to set their chip select region accordingly for the boot
429	  device.
430
431config ROMVEC
432	hex "Address of the base of the ROM vectors"
433	default "0"
434	depends on ROM
435	help
436	  This is almost always the same as the base of the ROM. Since on all
437	  68000 type variants the vectors are at the base of the boot device
438	  on system startup.
439
440config ROMSTART
441	hex "Address of the base of system image in ROM"
442	default "0x400"
443	depends on ROM
444	help
445	  Define the start address of the system image in ROM. Commonly this
446	  is strait after the ROM vectors.
447
448config ROMSIZE
449	hex "Size of the ROM device"
450	default "0x100000"
451	depends on ROM
452	help
453	  Size of the ROM device. On some platforms this is used to setup
454	  the chip select that controls the boot ROM device.
455
456choice
457	prompt "Kernel executes from"
458	help
459	  Choose the memory type that the kernel will be running in.
460
461config RAMKERNEL
462	bool "RAM"
463	help
464	  The kernel will be resident in RAM when running.
465
466config ROMKERNEL
467	bool "ROM"
468	depends on ROM
469	help
470	  The kernel will be resident in FLASH/ROM when running. This is
471	  often referred to as Execute-in-Place (XIP), since the kernel
472	  code executes from the position it is stored in the FLASH/ROM.
473
474endchoice
475
476endif
477