summaryrefslogtreecommitdiff
path: root/arch/arm/mach-zynqmp
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-zynqmp')
-rw-r--r--arch/arm/mach-zynqmp/include/mach/hardware.h4
-rwxr-xr-xarch/arm/mach-zynqmp/mkimage_fit_atf.sh23
-rw-r--r--arch/arm/mach-zynqmp/spl.c11
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)