
On Thu, 2018-09-06 at 07:51 +0200, Simon Goldschmidt wrote:
On Thu, Sep 6, 2018 at 5:04 AM Dalon Westergreen dwesterg@gmail.com wrote:
Stratix10 requires a hex image of the spl for boot. The heximage is added to the FPGA configuration image and loaded tothe processor memory by the configuration engine. Although not running a Stratix10, I also need a hex image for spl toboot unconfigured CycloneV devices.However, for this, it is enough to objcopy u- boot.spl.sfp to hex andadd the resulting file to the FPGA configuration image. Quartus does complain about the format a bit, but it does work. Isthis different for Stratix10?
The difference is that in stratix10 the SDM loads the spl image into the HPS onchip ram. The SPL image is actually a part of the fpga configuration image. The tool that adds the image to the fpga configuration image validates its address span, so using objcopy on the binary requires a --change- address. Since the file is always needed for stratix10, it seems prudent to generate it as part of the build.
Simon
v2: -> add CONFIG_OF_EMBED to include dtb in elf -> generate hex from elf source Signed-off-by: Dalon Westergreen dwesterg@gmail.com--- configs/socfpga_stratix10_defconfig | 1 + scripts/Makefile.spl | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/configs/socfpga_stratix10_defconfig b/configs/socfpga_stratix10_defconfigindex dceadff439..17cc732cbe 100644--- a/configs/socfpga_stratix10_defconfig+++ b/configs/socfpga_stratix10_defconfig@@ -56,3 +56,4 @@ CONFIG_DM_USB=y CONFIG_USB_DWC2=y CONFIG_USB_STORAGE=y CONFIG_USE_TINY_PRINTF=y+CONFIG_OF_EMBED=ydiff --git a/scripts/Makefile.spl b/scripts/Makefile.splindex 76d08fd92b..b09bd40b2a 100644--- a/scripts/Makefile.spl+++ b/scripts/Makefile.spl@@ -190,6 +190,7 @@ endif ifdef CONFIG_ARCH_SOCFPGA ALL-$(CONFIG_TARGET_SOCFPGA_GEN5) += $(obj)/$(SPL_BIN).sfp ALL-$(CONFIG_TARGET_SOCFPGA_ARRIA10) += $(obj)/$(SPL_BIN).sfp+ALL-$(CONFIG_TARGET_SOCFPGA_STRATIX10) += $(obj)/$(SPL_BIN).hex endif ifdef CONFIG_ARCH_SUNXI@@ -299,6 +300,11 @@ OBJCOPYFLAGS_u-boot-x86-16bit- spl.bin := -O binary -j .start16 -j .resetvec $(obj)/u-boot-x86-16bit-spl.bin: $(obj)/u-boot-spl FORCE $(call if_changed,objcopy) +OBJCOPYFLAGS_$(SPL_BIN).hex = -O ihex++$(obj)/$(SPL_BIN).hex: $(obj)/$(SPL_BIN) FORCE+ $(call if_changed,objcopy)+ LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL) # Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.--2.17.1 _______________________________________________U-Boot mailing listU- Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot_______________________________________... mailing listU-Boot@lists.denx.dehttps://lists.denx.de/listinfo/u-boot