arch: m68k: Add QEMU specific RAMBAR workaround

The QEMU emulation of m68k does not support RAMBAR accesses,
add Kconfig option which inhibits those accesses, so that
U-Boot can be started in m68k QEMU for CI testing purpopses
until QEMU emulation improves.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
This commit is contained in:
Marek Vasut 2023-03-23 01:20:41 +01:00 committed by Angelo Dureghello
parent 56c3aa9ab9
commit 94f9401812
2 changed files with 12 additions and 3 deletions

View File

@ -198,8 +198,17 @@ source "board/freescale/m5373evb/Kconfig"
source "board/sysam/amcore/Kconfig"
source "board/sysam/stmark2/Kconfig"
config M68K_QEMU
bool "Build with workarounds for incomplete QEMU emulation"
default n
help
QEMU 8.x currently does not implement RAMBAR accesses and
DMA timers. Enable this option for U-Boot CI purposes only
to skip the RAMBAR accesses.
config MCFTMR
bool "Use DMA timer"
default y
default y if !M68K_QEMU
default n if M68K_QEMU
endmenu

View File

@ -98,7 +98,7 @@ _start:
nop
move.w #0x2700,%sr
#if defined(CONFIG_M5208)
#if defined(CONFIG_M5208) && !defined(CONFIG_M68K_QEMU)
/* Initialize RAMBAR: locate SRAM and validate it */
move.l #(CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_CTRL), %d0
movec %d0, %RAMBAR1
@ -120,7 +120,7 @@ _start:
movec %d0, %RAMBAR0
#endif /* CONFIG_M5272 || CONFIG_M5249 || CONFIG_M5253 */
#if defined(CONFIG_M5282) || defined(CONFIG_M5271)
#if (defined(CONFIG_M5282) || defined(CONFIG_M5271)) && !defined(CONFIG_M68K_QEMU)
/* set MBAR address + valid flag */
move.l #(CFG_SYS_MBAR + 1), %d0
move.l %d0, 0x40000000