ARM64: zynqmp: Force certain bootmode for SPL
ZynqMP provides an option to overwrite bootmode setting which can change SPL behavior. For example: boot SPL via JTAG and then SPL loads images from SD. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
275bd6d11f
commit
7f491d7b30
|
@ -47,5 +47,53 @@ config ZYNQMP_USB
|
|||
config SYS_MALLOC_F_LEN
|
||||
default 0x600
|
||||
|
||||
config SPL_ZYNQMP_ALT_BOOTMODE_ENABLED
|
||||
bool "Overwrite SPL bootmode"
|
||||
depends on SPL
|
||||
help
|
||||
Overwrite bootmode selected via boot mode pins to tell SPL what should
|
||||
be the next boot device.
|
||||
|
||||
config SPL_ZYNQMP_ALT_BOOTMODE
|
||||
hex
|
||||
default 0x0 if JTAG_MODE
|
||||
default 0x1 if QSPI_MODE_24BIT
|
||||
default 0x2 if QSPI_MODE_32BIT
|
||||
default 0x3 if SD_MODE
|
||||
default 0x4 if NAND_MODE
|
||||
default 0x5 if SD_MODE1
|
||||
default 0x6 if EMMC_MODE
|
||||
default 0x7 if USB_MODE
|
||||
|
||||
choice
|
||||
prompt "Boot mode"
|
||||
depends on ZYNQMP_ALT_BOOTMODE_ENABLED
|
||||
default JTAG
|
||||
|
||||
config JTAG_MODE
|
||||
bool "JTAG_MODE"
|
||||
|
||||
config QSPI_MODE_24BIT
|
||||
bool "QSPI_MODE_24BIT"
|
||||
|
||||
config QSPI_MODE_32BIT
|
||||
bool "QSPI_MODE_32BIT"
|
||||
|
||||
config SD_MODE
|
||||
bool "SD_MODE"
|
||||
|
||||
config SD_MODE1
|
||||
bool "SD_MODE1"
|
||||
|
||||
config NAND_MODE
|
||||
bool "NAND_MODE"
|
||||
|
||||
config EMMC_MODE
|
||||
bool "EMMC_MODE"
|
||||
|
||||
config USB_MODE
|
||||
bool "USB"
|
||||
|
||||
endchoice
|
||||
|
||||
endif
|
||||
|
|
|
@ -48,6 +48,13 @@ u32 spl_boot_device(void)
|
|||
u32 reg = 0;
|
||||
u8 bootmode;
|
||||
|
||||
#if defined(CONFIG_SPL_ZYNQMP_ALT_BOOTMODE_ENABLED)
|
||||
/* Change default boot mode at run-time */
|
||||
writel(BOOT_MODE_USE_ALT |
|
||||
CONFIG_SPL_ZYNQMP_ALT_BOOTMODE << BOOT_MODE_ALT_SHIFT,
|
||||
&crlapb_base->boot_mode);
|
||||
#endif
|
||||
|
||||
reg = readl(&crlapb_base->boot_mode);
|
||||
bootmode = reg & BOOT_MODES_MASK;
|
||||
|
||||
|
|
|
@ -70,6 +70,8 @@ struct iou_scntr_secure {
|
|||
#define NAND_MODE 0x00000004
|
||||
#define EMMC_MODE 0x00000006
|
||||
#define JTAG_MODE 0x00000000
|
||||
#define BOOT_MODE_USE_ALT 0x100
|
||||
#define BOOT_MODE_ALT_SHIFT 12
|
||||
|
||||
#define ZYNQMP_IOU_SLCR_BASEADDR 0xFF180000
|
||||
|
||||
|
|
Loading…
Reference in New Issue