arch: m68k: Add QEMU specific RAMBAR workaround
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Thu, 23 Mar 2023 00:20:41 +0000 (01:20 +0100)
committerAngelo Dureghello <angelo@kernel-space.org>
Sat, 15 Apr 2023 19:36:07 +0000 (21:36 +0200)
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>
arch/m68k/Kconfig
arch/m68k/cpu/mcf52x2/start.S

index 32759cd..1911563 100644 (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
index d48d019..51d2e23 100644 (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