[U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
Dalon L Westergreen
dalon.westergreen at linux.intel.com
Thu Sep 6 21:26:01 UTC 2018
On Thu, 2018-09-06 at 15:41 +0200, Marek Vasut wrote:
> On 09/06/2018 03:39 PM, Dalon L Westergreen wrote:
>
> On Thu, 2018-09-06 at 12:09 +0200, Marek Vasut wrote:
>
> On 09/06/2018 05:02 AM, Dalon Westergreen wrote:
> Stratix10 requires a hex image of the spl for boot. The hex
> image is added to the FPGA configuration image and loaded to
> the processor memory by the configuration engine.
>
> v2:
> -> add CONFIG_OF_EMBED to include dtb in elf
> -> generate hex from elf source
>
> Signed-off-by: Dalon Westergreen <dwesterg at gmail.com <mailto:dwesterg at 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_defconfig
> index 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=y
>
> Why is this needed ? And where did the objcopy hack go ? What is the
> explanation here ?
>
> You suggested the use of CONFIG_OF_EMBED as an alternative to using the
> u-boot-spl-dtb.bin for objcopy.
> The intent is to ensure that the spl elf has the dtb included, and then
> a simple objcopy to elf to hex is fine.
> You no longer need the --change-address as the elf indicates the correct
> start address, unlike the binary.
>
> And that's fine with your usecase ? Fine be me then ...
>
>
>
> diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
> index 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
>
> CONFIG_SPL_TARGET "u-boot-spl.hex" can replace this addition I think ?
This doesnt actually work as CONFIG_SPL_TARGET doesnt appear to be an SPL
target, but rather a
target for creating combined u-boot + spl images at the top level. Adding
ALL-$(CONFIG_SPL_TARGET) += $(obj)/$(SPL_BIN).hex
in Makefile.spl and
CONFIG_SPL_TARGET="u-boot-spl.hex"
in the socfpga_stratix10_config
results in a build failure with no target for u-boot-spl.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)
> +
>
> This is generic, separate patch please.
>
> LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL)
>
>
> Will do
>
> Thanks
>
>
More information about the U-Boot
mailing list