summaryrefslogtreecommitdiff
path: root/board/xilinx/versal
diff options
context:
space:
mode:
Diffstat (limited to 'board/xilinx/versal')
-rw-r--r--board/xilinx/versal/board.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index 2900dfb44e..483e3ce2f7 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -82,9 +82,23 @@ int board_early_init_r(void)
return 0;
}
-int board_late_init(void)
+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;
+}
+
+int board_late_init(void)
+{
u8 bootmode;
struct udevice *dev;
int bootseq = -1;
@@ -99,12 +113,7 @@ int board_late_init(void)
return 0;
}
- reg = readl(&crp_base->boot_mode_usr);
-
- if (reg >> BOOT_MODE_ALT_SHIFT)
- reg >>= BOOT_MODE_ALT_SHIFT;
-
- bootmode = reg & BOOT_MODES_MASK;
+ bootmode = versal_get_bootmode();
puts("Bootmode: ");
switch (bootmode) {