From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Fri, 7 Sep 2018 20:17:41 +0200 Subject: [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image In-Reply-To: References: <20180906030235.8186-1-dwesterg@gmail.com> <20180906030235.8186-2-dwesterg@gmail.com> <7e5967ae-c6a7-1a28-1a8c-578462e2a165@denx.de> <0e8d97e619b941cf32b0da03a726cdf865505c82.camel@linux.intel.com> <661d622b7f5685fd0673fa2b87e961c531a1654f.camel@linux.intel.com> <7208f309-3519-fc89-8dc1-8e2358322da3@denx.de> <14dc50a3-fea1-6f7b-b8a3-6df1ffba8113@denx.de> <22e293e70174f7b9b0716fbd5e6c6d5fa7d04a3b.camel@linux.intel.com> <68716eac-e01c-49e8-7d58-4ce772f57af9@denx.de> Message-ID: <281f3811-ad77-bcef-eb4a-832b428aa8cd@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 09/07/2018 08:02 PM, Westergreen, Dalon wrote: > 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 > >> > >>> > >> > >>>>> >> --- >> 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 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 u-boot]$ >> >> >> or >> >> >> [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. Sure, please do. -- Best regards, Marek Vasut