diff options
-rw-r--r-- | board/xilinx/versal/board.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c index d05220f96ff..cff810e02ad 100644 --- a/board/xilinx/versal/board.c +++ b/board/xilinx/versal/board.c @@ -36,8 +36,29 @@ static xilinx_desc versalpl = { }; #endif +static u8 versal_get_bootmode(void) +{ + u8 bootmode; + u32 reg = 0; + + reg = readl(&crp_base->boot_mode_usr); + + if (reg >> BOOT_MODE_ALT_SHIFT) + reg >>= BOOT_MODE_ALT_SHIFT; + + bootmode = reg & BOOT_MODES_MASK; + + return bootmode; +} + static u32 versal_multi_boot(void) { + u8 bootmode = versal_get_bootmode(); + + /* Mostly workaround for QEMU CI pipeline */ + if (bootmode == JTAG_MODE) + return 0; + return readl(0xF1110004); } @@ -120,21 +141,6 @@ unsigned long do_go_exec(ulong (*entry)(int, char * const []), int argc, return ret; } -static u8 versal_get_bootmode(void) -{ - u8 bootmode; - u32 reg = 0; - - reg = readl(&crp_base->boot_mode_usr); - - if (reg >> BOOT_MODE_ALT_SHIFT) - reg >>= BOOT_MODE_ALT_SHIFT; - - bootmode = reg & BOOT_MODES_MASK; - - return bootmode; -} - static int boot_targets_setup(void) { u8 bootmode; |