x86/efistub: Avoid placing the kernel below LOAD_PHYSICAL_ADDR
[platform/kernel/linux-starfive.git] / arch / m68k / Kconfig.machine
1 # SPDX-License-Identifier: GPL-2.0
2 comment "Machine Types"
3
4 if M68KCLASSIC
5
6 config 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/arch/m68k>; otherwise say N.
15
16 config 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/arch/m68k>; otherwise say N.
27
28 config ATARI_KBD_CORE
29         bool
30
31 config 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
44 config 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
53 config 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
63 config 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
74 config 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
86 config 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
97 config 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
109 config 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
124 config 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
136 config 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
152 config VIRT
153         bool "Virtual M68k Machine support"
154         depends on MMU
155         select GENERIC_CLOCKEVENTS
156         select GOLDFISH
157         select GOLDFISH_TIMER
158         select GOLDFISH_TTY
159         select M68040
160         select MMU_MOTOROLA if MMU
161         select RTC_CLASS
162         select RTC_DRV_GOLDFISH
163         select TTY
164         select VIRTIO_MENU
165         select VIRTIO_MMIO
166         help
167           This options enable a pure virtual machine based on m68k,
168           VIRTIO MMIO devices and GOLDFISH interfaces (TTY, RTC, PIC).
169
170 config PILOT
171         bool
172
173 config PILOT3
174         bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support"
175         depends on !MMU
176         select M68328
177         select PILOT
178         help
179           Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII.
180
181 config XCOPILOT_BUGS
182         bool "(X)Copilot support"
183         depends on PILOT3
184         help
185           Support the bugs of Xcopilot.
186
187 config UCSIMM
188         bool "uCsimm module support"
189         depends on !MMU
190         select M68EZ328
191         help
192           Support for the Arcturus Networks uCsimm module.
193
194 config UCDIMM
195         bool "uCdimm module support"
196         depends on !MMU
197         select M68VZ328
198         help
199           Support for the Arcturus Networks uCdimm module.
200
201 config DRAGEN2
202         bool "DragonEngine II board support"
203         depends on !MMU
204         select M68VZ328
205         help
206           Support for the DragonEngine II board.
207
208 config DIRECT_IO_ACCESS
209         bool "Allow user to access IO directly"
210         depends on (UCSIMM || UCDIMM || DRAGEN2)
211         help
212           Disable the CPU internal registers protection in user mode,
213           to allow a user application to read/write them.
214
215 config INIT_LCD
216         bool "Initialize LCD"
217         depends on (UCSIMM || UCDIMM || DRAGEN2)
218         help
219           Initialize the LCD controller of the 68x328 processor.
220
221 config MEMORY_RESERVE
222         int "Memory reservation (MiB)"
223         depends on (UCSIMM || UCDIMM)
224         default 0
225         help
226           Reserve certain memory regions on 68x328 based boards.
227
228 endif # M68KCLASSIC
229
230 config ARN5206
231         bool "Arnewsh 5206 board support"
232         depends on M5206
233         help
234           Support for the Arnewsh 5206 board.
235
236 config M5206eC3
237         bool "Motorola M5206eC3 board support"
238         depends on M5206e
239         help
240           Support for the Motorola M5206eC3 board.
241
242 config ELITE
243         bool "Motorola M5206eLITE board support"
244         depends on M5206e
245         help
246           Support for the Motorola M5206eLITE board.
247
248 config M5235EVB
249         bool "Freescale M5235EVB support"
250         depends on M523x
251         help
252           Support for the Freescale M5235EVB board.
253
254 config M5249C3
255         bool "Motorola M5249C3 board support"
256         depends on M5249
257         help
258           Support for the Motorola M5249C3 board.
259
260 config M5272C3
261         bool "Motorola M5272C3 board support"
262         depends on M5272
263         help
264           Support for the Motorola M5272C3 board.
265
266 config WILDFIRE
267         bool "Intec Automation Inc. WildFire board support"
268         depends on M528x
269         help
270           Support for the Intec Automation Inc. WildFire.
271
272 config WILDFIREMOD
273         bool "Intec Automation Inc. WildFire module support"
274         depends on M528x
275         help
276           Support for the Intec Automation Inc. WildFire module.
277
278 config ARN5307
279         bool "Arnewsh 5307 board support"
280         depends on M5307
281         help
282           Support for the Arnewsh 5307 board.
283
284 config M5307C3
285         bool "Motorola M5307C3 board support"
286         depends on M5307
287         help
288           Support for the Motorola M5307C3 board.
289
290 config SECUREEDGEMP3
291         bool "SnapGear SecureEdge/MP3 platform support"
292         depends on M5307
293         help
294           Support for the SnapGear SecureEdge/MP3 platform.
295
296 config M5407C3
297         bool "Motorola M5407C3 board support"
298         depends on M5407
299         help
300           Support for the Motorola M5407C3 board.
301
302 config AMCORE
303         bool "Sysam AMCORE board support"
304         depends on M5307
305         help
306           Support for the Sysam AMCORE open-hardware generic board.
307
308 config STMARK2
309         bool "Sysam stmark2 board support"
310         depends on M5441x
311         help
312           Support for the Sysam stmark2 open-hardware generic board.
313
314 config FIREBEE
315         bool "FireBee board support"
316         depends on M547x
317         help
318           Support for the FireBee ColdFire 5475 based board.
319
320 config CLEOPATRA
321         bool "Feith CLEOPATRA board support"
322         depends on (M5307 || M5407)
323         help
324           Support for the Feith Cleopatra boards.
325
326 config CANCam
327         bool "Feith CANCam board support"
328         depends on M5272
329         help
330           Support for the Feith CANCam board.
331
332 config SCALES
333         bool "Feith SCALES board support"
334         depends on M5272
335         help
336           Support for the Feith SCALES board.
337
338 config NETtel
339         bool "SecureEdge/NETtel board support"
340         depends on (M5206e || M5272 || M5307)
341         help
342           Support for the SnapGear NETtel/SecureEdge/SnapGear boards.
343
344 config MOD5272
345         bool "Netburner MOD-5272 board support"
346         depends on M5272
347         help
348           Support for the Netburner MOD-5272 board.
349
350 if !MMU || COLDFIRE
351
352 comment "Machine Options"
353
354 config UBOOT
355         bool "Support for U-Boot command line parameters"
356         depends on COLDFIRE
357         help
358           If you say Y here kernel will try to collect command
359           line parameters from the initial u-boot stack.
360
361 config 4KSTACKS
362         bool "Use 4Kb for kernel stacks instead of 8Kb"
363         default y
364         help
365           If you say Y here the kernel will use a 4Kb stacksize for the
366           kernel stack attached to each process/thread. This facilitates
367           running more threads on a system and also reduces the pressure
368           on the VM subsystem for higher order allocations.
369
370 comment "RAM configuration"
371
372 config RAMBASE
373         hex "Address of the base of RAM"
374         default "0"
375         help
376           Define the address that RAM starts at. On many platforms this is
377           0, the base of the address space. And this is the default. Some
378           platforms choose to setup their RAM at other addresses within the
379           processor address space.
380
381 config RAMSIZE
382         hex "Size of RAM (in bytes), or 0 for automatic"
383         default "0x400000"
384         help
385           Define the size of the system RAM. If you select 0 then the
386           kernel will try to probe the RAM size at runtime. This is not
387           supported on all CPU types.
388
389 config VECTORBASE
390         hex "Address of the base of system vectors"
391         default "0"
392         help
393           Define the address of the system vectors. Commonly this is
394           put at the start of RAM, but it doesn't have to be. On ColdFire
395           platforms this address is programmed into the VBR register, thus
396           actually setting the address to use.
397
398 config MBAR
399         hex "Address of the MBAR (internal peripherals)"
400         default "0x10000000"
401         depends on HAVE_MBAR
402         help
403           Define the address of the internal system peripherals. This value
404           is set in the processors MBAR register. This is generally setup by
405           the boot loader, and will not be written by the kernel. By far most
406           ColdFire boards use the default 0x10000000 value, so if unsure then
407           use this.
408
409 config IPSBAR
410         hex "Address of the IPSBAR (internal peripherals)"
411         default "0x40000000"
412         depends on HAVE_IPSBAR
413         help
414           Define the address of the internal system peripherals. This value
415           is set in the processors IPSBAR register. This is generally setup by
416           the boot loader, and will not be written by the kernel. By far most
417           ColdFire boards use the default 0x40000000 value, so if unsure then
418           use this.
419
420 config KERNELBASE
421         hex "Address of the base of kernel code"
422         default "0x400"
423         help
424           Typically on m68k systems the kernel will not start at the base
425           of RAM, but usually some small offset from it. Define the start
426           address of the kernel here. The most common setup will have the
427           processor vectors at the base of RAM and then the start of the
428           kernel. On some platforms some RAM is reserved for boot loaders
429           and the kernel starts after that. The 0x400 default was based on
430           a system with the RAM based at address 0, and leaving enough room
431           for the theoretical maximum number of 256 vectors.
432
433 comment "ROM configuration"
434
435 config ROM
436         bool "Specify ROM linker regions"
437         help
438           Define a ROM region for the linker script. This creates a kernel
439           that can be stored in flash, with possibly the text, and data
440           regions being copied out to RAM at startup.
441
442 config ROMVEC
443         hex "Address of the base of the ROM vectors"
444         default "0"
445         depends on ROM
446         help
447           This is almost always the same as the base of the ROM. Since on all
448           68000 type variants the vectors are at the base of the boot device
449           on system startup.
450
451 config ROMSTART
452         hex "Address of the base of system image in ROM"
453         default "0x400"
454         depends on ROM
455         help
456           Define the start address of the system image in ROM. Commonly this
457           is strait after the ROM vectors.
458
459 choice
460         prompt "Kernel executes from"
461         help
462           Choose the memory type that the kernel will be running in.
463
464 config RAMKERNEL
465         bool "RAM"
466         help
467           The kernel will be resident in RAM when running.
468
469 config ROMKERNEL
470         bool "ROM"
471         depends on ROM
472         help
473           The kernel will be resident in FLASH/ROM when running. This is
474           often referred to as Execute-in-Place (XIP), since the kernel
475           code executes from the position it is stored in the FLASH/ROM.
476
477 endchoice
478
479 endif # !MMU || COLDFIRE