[U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
Westergreen, Dalon
dalon.westergreen at intel.com
Fri Sep 7 18:02:38 UTC 2018
On Fri, 2018-09-07 at 19:36 +0200, Marek Vasut wrote:
> On 09/07/2018 06:40 PM, Dalon L Westergreen wrote:
> On Fri, 2018-09-07 at 18:25 +0200, Marek Vasut wrote:
> On 09/07/2018 06:15 PM, Dalon L Westergreen wrote:
> On Thu, 2018-09-06 at 23:56 +0200, Marek Vasut wrote:
> On 09/06/2018 11:26 PM, Dalon L Westergreen wrote:
> 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> <mailto:dwesterg at gmail.com <mailto:dwesterg at gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg at gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg at gmail.com>>> <mailto:dwesterg at gmail.com <mailto:dwesterg at gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg at gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg at gmail.com> <mailto: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
>
> I mean, just define CONFIG_SPL_TARGET and it should generate the
> matching file automatically. See the README, it explains this macro.
>
> I still get:
>
> make: *** No rule to make target 'u-boot-spl.hex', needed by 'all'. Stop.
>
>
> When i look at all of the other defined CONFIG_SPL_TARGET, for example
>
> I guess you did add the u-boot-spl.hex target already ?
>
> [dwesterg at dwesterg-mobl <mailto:dwesterg at dwesterg-mobl> u-boot]$ grep -R u-boot-with-spl.bin *
>
> ...
>
> ...
>
> include/configs/uniphier.h:#define CONFIG_SPL_TARGET "u-boot-with-spl.bin"
>
> Makefile:OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \
>
> Makefile:u-boot-with-spl.bin: spl/u-boot-spl.bin $(SPL_PAYLOAD) FORCE
>
> Makefile:u-boot.ubl: u-boot-with-spl.bin FORCE
>
> [dwesterg at dwesterg-mobl <mailto:dwesterg at dwesterg-mobl> u-boot]$
>
>
> or
>
>
> [dwesterg at dwesterg-mobl <mailto:dwesterg at dwesterg-mobl> u-boot]$ grep -R u-boot-with-nand-spl.imx *
>
> arch/arm/mach-imx/Makefile:u-boot-with-nand-spl.imx: spl/u-boot-nand-spl.imx u-boot.uim FORCE
>
> include/configs/m53evk.h:#define CONFIG_SPL_TARGET "u-boot-with-nand-spl.imx"
>
> Makefile:u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL u-boot.bin FORCE
>
>
> you find the corresponding target in the makefile. There is no target for u-boot-spl.hex,
>
> furthermore the CONFIG_SPL_TARGET seems to combine spl with uboot to create a combined image.
>
>
> ifdef CONFIG_TPL
>
> SPL_PAYLOAD := tpl/u-boot-with-tpl.bin
>
> else
>
> SPL_PAYLOAD := u-boot.bin
>
> endif
>
>
> OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \
>
> --pad-to=$(CONFIG_SPL_PAD_TO)
>
> u-boot-with-spl.bin: spl/u-boot-spl.bin $(SPL_PAYLOAD) FORCE
>
> $(call if_changed,pad_cat)
>
>
> So I can add a simple u-boot-spl.hex target, but all of the other CONFIG_SPL_TARGET
>
> i see combine spl and u-boot.
>
> Try this:
>
> include/configs/ls1046a_common.h:#define CONFIG_SPL_TARGET
> "spl/u-boot-spl.pbl"
>
> True, but i would still need to add an spl/u-boot-spl.hex target in the main Makefile.
>
> What is the benefit of doing this over just adding the hex target in Makefile.spl?
>
> My whole point was that I'd like this:
> +ALL-$(CONFIG_TARGET_SOCFPGA_STRATIX10) += $(obj)/$(SPL_BIN).hex
> to go away.
>
> If you need to add a target to a Makefile, that's fine of course.
>
Should i move the sfp generation stuff while I am at it? use CONFIG_SPL_TARGET
in the gen5 /Arria10 devices as well? I think it would clean things up.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3282 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180907/aa974e91/attachment.bin>
More information about the U-Boot
mailing list