aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/spl/Kconfig3
-rw-r--r--common/spl/spl_fit.c17
2 files changed, 14 insertions, 6 deletions
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 2352fc9d6d..cb85ee415c 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -107,7 +107,7 @@ config SPL_PAD_TO
config SPL_HAS_BSS_LINKER_SECTION
depends on SPL_FRAMEWORK
bool "Use a specific address for the BSS via the linker script"
- default y if ARCH_SUNXI || ARCH_MX6 || ARCH_OMAP2PLUS || MIPS || RISCV
+ default y if ARCH_SUNXI || ARCH_MX6 || ARCH_OMAP2PLUS || MIPS || RISCV || ARCH_ZYNQMP
config SPL_BSS_START_ADDR
hex "Link address for the BSS within the SPL binary"
@@ -118,6 +118,7 @@ config SPL_BSS_START_ADDR
default 0x81f80000 if ARCH_SUNXI && MACH_SUNIV
default 0x4ff80000 if ARCH_SUNXI && !(MACH_SUN9I || MACH_SUNIV)
default 0x2ff80000 if ARCH_SUNXI && MACH_SUN9I
+ default 0x1000 if ARCH_ZYNQMP
choice
prompt "Enforce SPL BSS limit"
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index 1bbf824684..a35be52965 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -581,18 +581,25 @@ static int spl_fit_upload_fpga(struct spl_fit_info *ctx, int node,
{
const char *compatible;
int ret;
+ int devnum = 0;
+ int flags = 0;
debug("FPGA bitstream at: %x, size: %x\n",
(u32)fpga_image->load_addr, fpga_image->size);
compatible = fdt_getprop(ctx->fit, node, "compatible", NULL);
- if (!compatible)
+ if (!compatible) {
warn_deprecated("'fpga' image without 'compatible' property");
- else if (strcmp(compatible, "u-boot,fpga-legacy"))
- printf("Ignoring compatible = %s property\n", compatible);
+ } else {
+ if (CONFIG_IS_ENABLED(FPGA_LOAD_SECURE))
+ flags = fpga_compatible2flag(devnum, compatible);
+ if (strcmp(compatible, "u-boot,fpga-legacy"))
+ debug("Ignoring compatible = %s property\n",
+ compatible);
+ }
- ret = fpga_load(0, (void *)fpga_image->load_addr, fpga_image->size,
- BIT_FULL);
+ ret = fpga_load(devnum, (void *)fpga_image->load_addr,
+ fpga_image->size, BIT_FULL, flags);
if (ret) {
printf("%s: Cannot load the image to the FPGA\n", __func__);
return ret;