diff options
Diffstat (limited to 'arch/arm/mach-zynqmp')
-rw-r--r-- | arch/arm/mach-zynqmp/include/mach/hardware.h | 4 | ||||
-rwxr-xr-x | arch/arm/mach-zynqmp/mkimage_fit_atf.sh | 23 | ||||
-rw-r--r-- | arch/arm/mach-zynqmp/spl.c | 11 |
3 files changed, 23 insertions, 15 deletions
diff --git a/arch/arm/mach-zynqmp/include/mach/hardware.h b/arch/arm/mach-zynqmp/include/mach/hardware.h index fd361c5ce8..a0acfa2ff1 100644 --- a/arch/arm/mach-zynqmp/include/mach/hardware.h +++ b/arch/arm/mach-zynqmp/include/mach/hardware.h @@ -128,7 +128,9 @@ struct apu_regs { #define ZYNQMP_SILICON_VER_SHIFT 12 struct csu_regs { - u32 reserved0[17]; + u32 reserved0[4]; + u32 multi_boot; + u32 reserved1[12]; u32 version; }; diff --git a/arch/arm/mach-zynqmp/mkimage_fit_atf.sh b/arch/arm/mach-zynqmp/mkimage_fit_atf.sh index 1e770ba111..92e31849f8 100755 --- a/arch/arm/mach-zynqmp/mkimage_fit_atf.sh +++ b/arch/arm/mach-zynqmp/mkimage_fit_atf.sh @@ -29,11 +29,8 @@ else fi if [ ! -f $BL31 ]; then - echo "WARNING: BL31 file $BL31 NOT found, resulting binary is non-functional" >&2 + echo "WARNING: BL31 file $BL31 NOT found, U-Boot will run in EL3" >&2 BL31=/dev/null - # But U-Boot proper could be loaded in EL3 by specifying - # firmware = "uboot"; - # instead of "atf" in config node fi cat << __HEADER_EOF @@ -58,6 +55,10 @@ cat << __HEADER_EOF algo = "md5"; }; }; +__HEADER_EOF + +if [ -f $BL31 ]; then +cat << __ATF atf { description = "ARM Trusted Firmware"; data = /incbin/("$BL31"); @@ -71,7 +72,8 @@ cat << __HEADER_EOF algo = "md5"; }; }; -__HEADER_EOF +__ATF +fi DEFAULT=1 cnt=1 @@ -106,6 +108,15 @@ __CONF_HEADER_EOF cnt=1 for dtname in $DT do +if [ ! -f $BL31 ]; then +cat << __CONF_SECTION1_EOF + config_$cnt { + description = "$(basename $dtname .dtb)"; + firmware = "uboot"; + fdt = "fdt_$cnt"; + }; +__CONF_SECTION1_EOF +else cat << __CONF_SECTION1_EOF config_$cnt { description = "$(basename $dtname .dtb)"; @@ -114,6 +125,8 @@ cat << __CONF_SECTION1_EOF fdt = "fdt_$cnt"; }; __CONF_SECTION1_EOF +fi + cnt=$((cnt+1)) done diff --git a/arch/arm/mach-zynqmp/spl.c b/arch/arm/mach-zynqmp/spl.c index 896657f51c..68df0a79c4 100644 --- a/arch/arm/mach-zynqmp/spl.c +++ b/arch/arm/mach-zynqmp/spl.c @@ -6,7 +6,6 @@ */ #include <common.h> -#include <debug_uart.h> #include <init.h> #include <spl.h> @@ -20,14 +19,6 @@ void board_init_f(ulong dummy) { board_early_init_f(); board_early_init_r(); - -#ifdef CONFIG_DEBUG_UART - /* Uart debug for sure */ - debug_uart_init(); - puts("Debug uart enabled\n"); /* or printch() */ -#endif - /* Delay is required for clocks to be propagated */ - udelay(1000000); } static void ps_mode_reset(ulong mode) @@ -66,6 +57,8 @@ void board_boot_order(u32 *spl_boot_list) spl_boot_list[1] = BOOT_DEVICE_MMC2; if (spl_boot_list[0] == BOOT_DEVICE_MMC2) spl_boot_list[1] = BOOT_DEVICE_MMC1; + + spl_boot_list[2] = BOOT_DEVICE_RAM; } u32 spl_boot_device(void) |