mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
xilinx: Move bootmode detection to separate function
Create special function for reading bootmode on Versal and ZynqMP. Zynq is using specific function (without mask) already. Future patches will be calling this function from different location too. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
a29511eeca
commit
51f6c52e6b
2 changed files with 35 additions and 16 deletions
|
@ -82,9 +82,23 @@ int board_early_init_r(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
u32 reg = 0;
|
||||
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) {
|
||||
|
|
|
@ -552,9 +552,26 @@ static int set_fdtfile(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static u8 zynqmp_get_bootmode(void)
|
||||
{
|
||||
u8 bootmode;
|
||||
u32 reg = 0;
|
||||
int ret;
|
||||
|
||||
ret = zynqmp_mmio_read((ulong)&crlapb_base->boot_mode, ®);
|
||||
if (ret)
|
||||
return -EINVAL;
|
||||
|
||||
if (reg >> BOOT_MODE_ALT_SHIFT)
|
||||
reg >>= BOOT_MODE_ALT_SHIFT;
|
||||
|
||||
bootmode = reg & BOOT_MODES_MASK;
|
||||
|
||||
return bootmode;
|
||||
}
|
||||
|
||||
int board_late_init(void)
|
||||
{
|
||||
u32 reg = 0;
|
||||
u8 bootmode;
|
||||
struct udevice *dev;
|
||||
int bootseq = -1;
|
||||
|
@ -578,14 +595,7 @@ int board_late_init(void)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = zynqmp_mmio_read((ulong)&crlapb_base->boot_mode, ®);
|
||||
if (ret)
|
||||
return -EINVAL;
|
||||
|
||||
if (reg >> BOOT_MODE_ALT_SHIFT)
|
||||
reg >>= BOOT_MODE_ALT_SHIFT;
|
||||
|
||||
bootmode = reg & BOOT_MODES_MASK;
|
||||
bootmode = zynqmp_get_bootmode();
|
||||
|
||||
puts("Bootmode: ");
|
||||
switch (bootmode) {
|
||||
|
|
Loading…
Reference in a new issue