0100f67c46
The ROM region configuration settings used on some nommu m68k systems (historically mostly 68328 (Dragonball) CPUs) default to an address of 0. That can easily clash with default RAM address settings which also default to 0. Of course that is invalid and those ranges overlap, but if you make no value selection that is what you end up with. Those default values produce a valid configuration but will fail compilation like this: m68k-linux-ld: section .rodata VMA [0000000000001000,0000000000262227] overlaps section .text VMA [0000000000000400,0000000000455e7f] Looking at the platforms that use the ROM region configuration settings it is clear that we can choose much better defaults than 0. By far the most common ROM region settings are these: CONFIG_ROMVEC=0x10c10000 CONFIG_ROMSTART=0x10c10400 So lets make these the default values. It is still possible to configure overlapping ROM and RAM regions, but at least the default selections are now valid. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202305301407.z33zOjcG-lkp@intel.com/ Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
480 lines
13 KiB
Plaintext
480 lines
13 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
comment "Machine Types"
|
|
|
|
if M68KCLASSIC
|
|
|
|
config AMIGA
|
|
bool "Amiga support"
|
|
depends on MMU
|
|
select MMU_MOTOROLA if MMU
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
This option enables support for the Amiga series of computers. If
|
|
you plan to use this kernel on an Amiga, say Y here and browse the
|
|
material available in <file:Documentation/arch/m68k>; otherwise say N.
|
|
|
|
config ATARI
|
|
bool "Atari support"
|
|
depends on MMU
|
|
select MMU_MOTOROLA if MMU
|
|
select HAVE_ARCH_NVRAM_OPS
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
This option enables support for the 68000-based Atari series of
|
|
computers (including the TT, Falcon and Medusa). If you plan to use
|
|
this kernel on an Atari, say Y here and browse the material
|
|
available in <file:Documentation/arch/m68k>; otherwise say N.
|
|
|
|
config ATARI_KBD_CORE
|
|
bool
|
|
|
|
config MAC
|
|
bool "Macintosh support"
|
|
depends on MMU
|
|
select MMU_MOTOROLA if MMU
|
|
select HAVE_ARCH_NVRAM_OPS
|
|
select HAVE_PATA_PLATFORM
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
This option enables support for the Apple Macintosh series of
|
|
computers. If you plan to use this kernel on a Mac, say Y here and
|
|
browse the documentation available at <http://www.mac.linux-m68k.org/>;
|
|
otherwise say N.
|
|
|
|
config APOLLO
|
|
bool "Apollo support"
|
|
depends on MMU
|
|
select MMU_MOTOROLA if MMU
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
Say Y here if you want to run Linux on an MC680x0-based Apollo
|
|
Domain workstation such as the DN3500.
|
|
|
|
config VME
|
|
bool "VME (Motorola and BVM) support"
|
|
depends on MMU
|
|
select MMU_MOTOROLA if MMU
|
|
help
|
|
Say Y here if you want to build a kernel for a 680x0 based VME
|
|
board. Boards currently supported include Motorola boards MVME147,
|
|
MVME162, MVME166, MVME167, MVME172, and MVME177. BVME4000 and
|
|
BVME6000 boards from BVM Ltd are also supported.
|
|
|
|
config MVME147
|
|
bool "MVME147 support"
|
|
depends on MMU
|
|
depends on VME
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
Say Y to include support for early Motorola VME boards. This will
|
|
build a kernel which can run on MVME147 single-board computers. If
|
|
you select this option you will have to select the appropriate
|
|
drivers for SCSI, Ethernet and serial ports later on.
|
|
|
|
config MVME16x
|
|
bool "MVME162, 166 and 167 support"
|
|
depends on MMU
|
|
depends on VME
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
Say Y to include support for Motorola VME boards. This will build a
|
|
kernel which can run on MVME162, MVME166, MVME167, MVME172, and
|
|
MVME177 boards. If you select this option you will have to select
|
|
the appropriate drivers for SCSI, Ethernet and serial ports later
|
|
on.
|
|
|
|
config BVME6000
|
|
bool "BVME4000 and BVME6000 support"
|
|
depends on MMU
|
|
depends on VME
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
Say Y to include support for VME boards from BVM Ltd. This will
|
|
build a kernel which can run on BVME4000 and BVME6000 boards. If
|
|
you select this option you will have to select the appropriate
|
|
drivers for SCSI, Ethernet and serial ports later on.
|
|
|
|
config HP300
|
|
bool "HP9000/300 and HP9000/400 support"
|
|
depends on MMU
|
|
select MMU_MOTOROLA if MMU
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
This option enables support for the HP9000/300 and HP9000/400 series
|
|
of workstations. Support for these machines is still somewhat
|
|
experimental. If you plan to try to use the kernel on such a machine
|
|
say Y here.
|
|
Everybody else says N.
|
|
|
|
config SUN3X
|
|
bool "Sun3x support"
|
|
depends on MMU
|
|
select LEGACY_TIMER_TICK
|
|
select MMU_MOTOROLA if MMU
|
|
select M68030
|
|
help
|
|
This option enables support for the Sun 3x series of workstations.
|
|
Be warned that this support is very experimental.
|
|
Note that Sun 3x kernels are not compatible with Sun 3 hardware.
|
|
General Linux information on the Sun 3x series (now discontinued)
|
|
is at <http://www.angelfire.com/ca2/tech68k/sun3.html>.
|
|
|
|
If you don't want to compile a kernel for a Sun 3x, say N.
|
|
|
|
config Q40
|
|
bool "Q40/Q60 support"
|
|
depends on MMU
|
|
select MMU_MOTOROLA if MMU
|
|
select LEGACY_TIMER_TICK
|
|
help
|
|
The Q40 is a Motorola 68040-based successor to the Sinclair QL
|
|
manufactured in Germany. There is an official Q40 home page at
|
|
<http://www.q40.de/>. This option enables support for the Q40 and
|
|
Q60. Select your CPU below. For 68LC060 don't forget to enable FPU
|
|
emulation.
|
|
|
|
config SUN3
|
|
bool "Sun3 support"
|
|
depends on MMU
|
|
depends on !MMU_MOTOROLA
|
|
select MMU_SUN3 if MMU
|
|
select LEGACY_TIMER_TICK
|
|
select NO_DMA
|
|
select M68020
|
|
help
|
|
This option enables support for the Sun 3 series of workstations
|
|
(3/50, 3/60, 3/1xx, 3/2xx systems). Enabling this option requires
|
|
that all other hardware types must be disabled, as Sun 3 kernels
|
|
are incompatible with all other m68k targets (including Sun 3x!).
|
|
|
|
If you don't want to compile a kernel exclusively for a Sun 3, say N.
|
|
|
|
config VIRT
|
|
bool "Virtual M68k Machine support"
|
|
depends on MMU
|
|
select GENERIC_CLOCKEVENTS
|
|
select GOLDFISH
|
|
select GOLDFISH_TIMER
|
|
select GOLDFISH_TTY
|
|
select M68040
|
|
select MMU_MOTOROLA if MMU
|
|
select RTC_CLASS
|
|
select RTC_DRV_GOLDFISH
|
|
select TTY
|
|
select VIRTIO_MENU
|
|
select VIRTIO_MMIO
|
|
help
|
|
This options enable a pure virtual machine based on m68k,
|
|
VIRTIO MMIO devices and GOLDFISH interfaces (TTY, RTC, PIC).
|
|
|
|
config PILOT
|
|
bool
|
|
|
|
config PILOT3
|
|
bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support"
|
|
depends on !MMU
|
|
select M68328
|
|
select PILOT
|
|
help
|
|
Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII.
|
|
|
|
config XCOPILOT_BUGS
|
|
bool "(X)Copilot support"
|
|
depends on PILOT3
|
|
help
|
|
Support the bugs of Xcopilot.
|
|
|
|
config UCSIMM
|
|
bool "uCsimm module support"
|
|
depends on !MMU
|
|
select M68EZ328
|
|
help
|
|
Support for the Arcturus Networks uCsimm module.
|
|
|
|
config UCDIMM
|
|
bool "uCdimm module support"
|
|
depends on !MMU
|
|
select M68VZ328
|
|
help
|
|
Support for the Arcturus Networks uCdimm module.
|
|
|
|
config DRAGEN2
|
|
bool "DragonEngine II board support"
|
|
depends on !MMU
|
|
select M68VZ328
|
|
help
|
|
Support for the DragonEngine II board.
|
|
|
|
config DIRECT_IO_ACCESS
|
|
bool "Allow user to access IO directly"
|
|
depends on (UCSIMM || UCDIMM || DRAGEN2)
|
|
help
|
|
Disable the CPU internal registers protection in user mode,
|
|
to allow a user application to read/write them.
|
|
|
|
config INIT_LCD
|
|
bool "Initialize LCD"
|
|
depends on (UCSIMM || UCDIMM || DRAGEN2)
|
|
help
|
|
Initialize the LCD controller of the 68x328 processor.
|
|
|
|
config MEMORY_RESERVE
|
|
int "Memory reservation (MiB)"
|
|
depends on (UCSIMM || UCDIMM)
|
|
default 0
|
|
help
|
|
Reserve certain memory regions on 68x328 based boards.
|
|
|
|
endif # M68KCLASSIC
|
|
|
|
config ARN5206
|
|
bool "Arnewsh 5206 board support"
|
|
depends on M5206
|
|
help
|
|
Support for the Arnewsh 5206 board.
|
|
|
|
config M5206eC3
|
|
bool "Motorola M5206eC3 board support"
|
|
depends on M5206e
|
|
help
|
|
Support for the Motorola M5206eC3 board.
|
|
|
|
config ELITE
|
|
bool "Motorola M5206eLITE board support"
|
|
depends on M5206e
|
|
help
|
|
Support for the Motorola M5206eLITE board.
|
|
|
|
config M5235EVB
|
|
bool "Freescale M5235EVB support"
|
|
depends on M523x
|
|
help
|
|
Support for the Freescale M5235EVB board.
|
|
|
|
config M5249C3
|
|
bool "Motorola M5249C3 board support"
|
|
depends on M5249
|
|
help
|
|
Support for the Motorola M5249C3 board.
|
|
|
|
config M5272C3
|
|
bool "Motorola M5272C3 board support"
|
|
depends on M5272
|
|
help
|
|
Support for the Motorola M5272C3 board.
|
|
|
|
config WILDFIRE
|
|
bool "Intec Automation Inc. WildFire board support"
|
|
depends on M528x
|
|
help
|
|
Support for the Intec Automation Inc. WildFire.
|
|
|
|
config WILDFIREMOD
|
|
bool "Intec Automation Inc. WildFire module support"
|
|
depends on M528x
|
|
help
|
|
Support for the Intec Automation Inc. WildFire module.
|
|
|
|
config ARN5307
|
|
bool "Arnewsh 5307 board support"
|
|
depends on M5307
|
|
help
|
|
Support for the Arnewsh 5307 board.
|
|
|
|
config M5307C3
|
|
bool "Motorola M5307C3 board support"
|
|
depends on M5307
|
|
help
|
|
Support for the Motorola M5307C3 board.
|
|
|
|
config SECUREEDGEMP3
|
|
bool "SnapGear SecureEdge/MP3 platform support"
|
|
depends on M5307
|
|
help
|
|
Support for the SnapGear SecureEdge/MP3 platform.
|
|
|
|
config M5407C3
|
|
bool "Motorola M5407C3 board support"
|
|
depends on M5407
|
|
help
|
|
Support for the Motorola M5407C3 board.
|
|
|
|
config AMCORE
|
|
bool "Sysam AMCORE board support"
|
|
depends on M5307
|
|
help
|
|
Support for the Sysam AMCORE open-hardware generic board.
|
|
|
|
config STMARK2
|
|
bool "Sysam stmark2 board support"
|
|
depends on M5441x
|
|
help
|
|
Support for the Sysam stmark2 open-hardware generic board.
|
|
|
|
config FIREBEE
|
|
bool "FireBee board support"
|
|
depends on M547x
|
|
help
|
|
Support for the FireBee ColdFire 5475 based board.
|
|
|
|
config CLEOPATRA
|
|
bool "Feith CLEOPATRA board support"
|
|
depends on (M5307 || M5407)
|
|
help
|
|
Support for the Feith Cleopatra boards.
|
|
|
|
config CANCam
|
|
bool "Feith CANCam board support"
|
|
depends on M5272
|
|
help
|
|
Support for the Feith CANCam board.
|
|
|
|
config SCALES
|
|
bool "Feith SCALES board support"
|
|
depends on M5272
|
|
help
|
|
Support for the Feith SCALES board.
|
|
|
|
config NETtel
|
|
bool "SecureEdge/NETtel board support"
|
|
depends on (M5206e || M5272 || M5307)
|
|
help
|
|
Support for the SnapGear NETtel/SecureEdge/SnapGear boards.
|
|
|
|
config MOD5272
|
|
bool "Netburner MOD-5272 board support"
|
|
depends on M5272
|
|
help
|
|
Support for the Netburner MOD-5272 board.
|
|
|
|
if !MMU || COLDFIRE
|
|
|
|
comment "Machine Options"
|
|
|
|
config UBOOT
|
|
bool "Support for U-Boot command line parameters"
|
|
depends on COLDFIRE
|
|
help
|
|
If you say Y here kernel will try to collect command
|
|
line parameters from the initial u-boot stack.
|
|
|
|
config 4KSTACKS
|
|
bool "Use 4Kb for kernel stacks instead of 8Kb"
|
|
default y
|
|
help
|
|
If you say Y here the kernel will use a 4Kb stacksize for the
|
|
kernel stack attached to each process/thread. This facilitates
|
|
running more threads on a system and also reduces the pressure
|
|
on the VM subsystem for higher order allocations.
|
|
|
|
comment "RAM configuration"
|
|
|
|
config RAMBASE
|
|
hex "Address of the base of RAM"
|
|
default "0"
|
|
help
|
|
Define the address that RAM starts at. On many platforms this is
|
|
0, the base of the address space. And this is the default. Some
|
|
platforms choose to setup their RAM at other addresses within the
|
|
processor address space.
|
|
|
|
config RAMSIZE
|
|
hex "Size of RAM (in bytes), or 0 for automatic"
|
|
default "0x400000"
|
|
help
|
|
Define the size of the system RAM. If you select 0 then the
|
|
kernel will try to probe the RAM size at runtime. This is not
|
|
supported on all CPU types.
|
|
|
|
config VECTORBASE
|
|
hex "Address of the base of system vectors"
|
|
default "0"
|
|
help
|
|
Define the address of the system vectors. Commonly this is
|
|
put at the start of RAM, but it doesn't have to be. On ColdFire
|
|
platforms this address is programmed into the VBR register, thus
|
|
actually setting the address to use.
|
|
|
|
config MBAR
|
|
hex "Address of the MBAR (internal peripherals)"
|
|
default "0x10000000"
|
|
depends on HAVE_MBAR
|
|
help
|
|
Define the address of the internal system peripherals. This value
|
|
is set in the processors MBAR register. This is generally setup by
|
|
the boot loader, and will not be written by the kernel. By far most
|
|
ColdFire boards use the default 0x10000000 value, so if unsure then
|
|
use this.
|
|
|
|
config IPSBAR
|
|
hex "Address of the IPSBAR (internal peripherals)"
|
|
default "0x40000000"
|
|
depends on HAVE_IPSBAR
|
|
help
|
|
Define the address of the internal system peripherals. This value
|
|
is set in the processors IPSBAR register. This is generally setup by
|
|
the boot loader, and will not be written by the kernel. By far most
|
|
ColdFire boards use the default 0x40000000 value, so if unsure then
|
|
use this.
|
|
|
|
config KERNELBASE
|
|
hex "Address of the base of kernel code"
|
|
default "0x400"
|
|
help
|
|
Typically on m68k systems the kernel will not start at the base
|
|
of RAM, but usually some small offset from it. Define the start
|
|
address of the kernel here. The most common setup will have the
|
|
processor vectors at the base of RAM and then the start of the
|
|
kernel. On some platforms some RAM is reserved for boot loaders
|
|
and the kernel starts after that. The 0x400 default was based on
|
|
a system with the RAM based at address 0, and leaving enough room
|
|
for the theoretical maximum number of 256 vectors.
|
|
|
|
comment "ROM configuration"
|
|
|
|
config ROM
|
|
bool "Specify ROM linker regions"
|
|
help
|
|
Define a ROM region for the linker script. This creates a kernel
|
|
that can be stored in flash, with possibly the text, and data
|
|
regions being copied out to RAM at startup.
|
|
|
|
config ROMVEC
|
|
hex "Address of the base of the ROM vectors"
|
|
default "0x10c10000"
|
|
depends on ROM
|
|
help
|
|
This is almost always the same as the base of the ROM. Since on all
|
|
68000 type variants the vectors are at the base of the boot device
|
|
on system startup.
|
|
|
|
config ROMSTART
|
|
hex "Address of the base of system image in ROM"
|
|
default "0x10c10400"
|
|
depends on ROM
|
|
help
|
|
Define the start address of the system image in ROM. Commonly this
|
|
is strait after the ROM vectors.
|
|
|
|
choice
|
|
prompt "Kernel executes from"
|
|
help
|
|
Choose the memory type that the kernel will be running in.
|
|
|
|
config RAMKERNEL
|
|
bool "RAM"
|
|
help
|
|
The kernel will be resident in RAM when running.
|
|
|
|
config ROMKERNEL
|
|
bool "ROM"
|
|
depends on ROM
|
|
help
|
|
The kernel will be resident in FLASH/ROM when running. This is
|
|
often referred to as Execute-in-Place (XIP), since the kernel
|
|
code executes from the position it is stored in the FLASH/ROM.
|
|
|
|
endchoice
|
|
|
|
endif # !MMU || COLDFIRE
|