* [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image
@ 2018-09-06 3:02 Dalon Westergreen
2018-09-06 3:02 ` [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image Dalon Westergreen
2018-09-06 10:08 ` [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image Marek Vasut
0 siblings, 2 replies; 19+ messages in thread
From: Dalon Westergreen @ 2018-09-06 3:02 UTC (permalink / raw)
To: u-boot
Only the Cyclone5/Arria5 and Arria10 devices require the sfp
formated image for booting. This path ensures that the file is
only generated for those devices.
Signed-off-by: Dalon Westergreen <dwesterg@gmail.com>
---
scripts/Makefile.spl | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index 252f13826d..76d08fd92b 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -188,7 +188,8 @@ ALL-y += $(obj)/$(BOARD)-spl.bin
endif
ifdef CONFIG_ARCH_SOCFPGA
-ALL-y += $(obj)/$(SPL_BIN).sfp
+ALL-$(CONFIG_TARGET_SOCFPGA_GEN5) += $(obj)/$(SPL_BIN).sfp
+ALL-$(CONFIG_TARGET_SOCFPGA_ARRIA10) += $(obj)/$(SPL_BIN).sfp
endif
ifdef CONFIG_ARCH_SUNXI
--
2.17.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 3:02 [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image Dalon Westergreen
@ 2018-09-06 3:02 ` Dalon Westergreen
2018-09-06 5:51 ` Simon Goldschmidt
2018-09-06 10:09 ` Marek Vasut
2018-09-06 10:08 ` [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image Marek Vasut
1 sibling, 2 replies; 19+ messages in thread
From: Dalon Westergreen @ 2018-09-06 3:02 UTC (permalink / raw)
To: u-boot
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@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
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
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
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 3:02 ` [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image Dalon Westergreen
@ 2018-09-06 5:51 ` Simon Goldschmidt
2018-09-06 13:49 ` Dalon L Westergreen
2018-09-06 10:09 ` Marek Vasut
1 sibling, 1 reply; 19+ messages in thread
From: Simon Goldschmidt @ 2018-09-06 5:51 UTC (permalink / raw)
To: u-boot
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 hex
> image is added to the FPGA configuration image and loaded to
> the processor memory by the configuration engine.
Although not running a Stratix10, I also need a hex image for spl to
boot unconfigured CycloneV devices.
However, for this, it is enough to objcopy u-boot.spl.sfp to hex and
add the resulting file to the FPGA configuration image.
Quartus does complain about the format a bit, but it does work. Is
this different for Stratix10?
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_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
> 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
> 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 list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image
2018-09-06 3:02 [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image Dalon Westergreen
2018-09-06 3:02 ` [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image Dalon Westergreen
@ 2018-09-06 10:08 ` Marek Vasut
2018-09-06 13:30 ` Dalon L Westergreen
1 sibling, 1 reply; 19+ messages in thread
From: Marek Vasut @ 2018-09-06 10:08 UTC (permalink / raw)
To: u-boot
On 09/06/2018 05:02 AM, Dalon Westergreen wrote:
> Only the Cyclone5/Arria5 and Arria10 devices require the sfp
> formated image for booting. This path ensures that the file is
> only generated for those devices.
>
> Signed-off-by: Dalon Westergreen <dwesterg@gmail.com>
> ---
> scripts/Makefile.spl | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
> index 252f13826d..76d08fd92b 100644
> --- a/scripts/Makefile.spl
> +++ b/scripts/Makefile.spl
> @@ -188,7 +188,8 @@ ALL-y += $(obj)/$(BOARD)-spl.bin
> endif
>
> ifdef CONFIG_ARCH_SOCFPGA
> -ALL-y += $(obj)/$(SPL_BIN).sfp
> +ALL-$(CONFIG_TARGET_SOCFPGA_GEN5) += $(obj)/$(SPL_BIN).sfp
> +ALL-$(CONFIG_TARGET_SOCFPGA_ARRIA10) += $(obj)/$(SPL_BIN).sfp
> endif
>
> ifdef CONFIG_ARCH_SUNXI
>
What about adding Kconfig option , something like
CONFIG_TARGET_SOCFPGA_SFP , using it above and enabling it on Gen5 and
A10 ? That way ,we won't have two entries with the same content.
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 3:02 ` [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image Dalon Westergreen
2018-09-06 5:51 ` Simon Goldschmidt
@ 2018-09-06 10:09 ` Marek Vasut
2018-09-06 13:39 ` Dalon L Westergreen
1 sibling, 1 reply; 19+ messages in thread
From: Marek Vasut @ 2018-09-06 10:09 UTC (permalink / raw)
To: u-boot
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@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 ?
> 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 ?
> 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)
>
> # Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image
2018-09-06 10:08 ` [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image Marek Vasut
@ 2018-09-06 13:30 ` Dalon L Westergreen
0 siblings, 0 replies; 19+ messages in thread
From: Dalon L Westergreen @ 2018-09-06 13:30 UTC (permalink / raw)
To: u-boot
On Thu, 2018-09-06 at 12:08 +0200, Marek Vasut wrote:
> On 09/06/2018 05:02 AM, Dalon Westergreen wrote:
>
> Only the Cyclone5/Arria5 and Arria10 devices require the sfp
> formated image for booting. This path ensures that the file is
> only generated for those devices.
>
> Signed-off-by: Dalon Westergreen <dwesterg@gmail.com>
> ---
> scripts/Makefile.spl | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
> index 252f13826d..76d08fd92b 100644
> --- a/scripts/Makefile.spl
> +++ b/scripts/Makefile.spl
> @@ -188,7 +188,8 @@ ALL-y += $(obj)/$(BOARD)-spl.bin
> endif
>
> ifdef CONFIG_ARCH_SOCFPGA
> -ALL-y += $(obj)/$(SPL_BIN).sfp
> +ALL-$(CONFIG_TARGET_SOCFPGA_GEN5) += $(obj)/$(SPL_BIN).sfp
> +ALL-$(CONFIG_TARGET_SOCFPGA_ARRIA10) += $(obj)/$(SPL_BIN).sfp
> endif
>
> ifdef CONFIG_ARCH_SUNXI
>
> What about adding Kconfig option , something like
> CONFIG_TARGET_SOCFPGA_SFP , using it above and enabling it on Gen5 and
> A10 ? That way ,we won't have two entries with the same content.
>
Good idea.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 10:09 ` Marek Vasut
@ 2018-09-06 13:39 ` Dalon L Westergreen
2018-09-06 13:41 ` Marek Vasut
0 siblings, 1 reply; 19+ messages in thread
From: Dalon L Westergreen @ 2018-09-06 13:39 UTC (permalink / raw)
To: u-boot
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 heximage is added to
> the FPGA configuration image and loaded tothe 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@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=y
> Why is this needed ? And where did the objcopy hack go ? What is
> theexplanation 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.
> diff --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
> CONFIG_SPL_TARGET "u-boot-spl.hex" can replace this addition I think ?
> 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
> # Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.
>
>
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 13:39 ` Dalon L Westergreen
@ 2018-09-06 13:41 ` Marek Vasut
2018-09-06 17:40 ` Dalon L Westergreen
2018-09-06 21:26 ` Dalon L Westergreen
0 siblings, 2 replies; 19+ messages in thread
From: Marek Vasut @ 2018-09-06 13:41 UTC (permalink / raw)
To: u-boot
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@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 ?
>>
>> 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
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 5:51 ` Simon Goldschmidt
@ 2018-09-06 13:49 ` Dalon L Westergreen
0 siblings, 0 replies; 19+ messages in thread
From: Dalon L Westergreen @ 2018-09-06 13:49 UTC (permalink / raw)
To: u-boot
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 at lists.denx.de
> https://lists.denx.de/listinfo/u-boot_______________________________________________U-Boot
> mailing listU-Boot at lists.denx.dehttps://lists.denx.de/listinfo/u-boot
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 13:41 ` Marek Vasut
@ 2018-09-06 17:40 ` Dalon L Westergreen
2018-09-06 18:16 ` Marek Vasut
2018-09-06 21:26 ` Dalon L Westergreen
1 sibling, 1 reply; 19+ messages in thread
From: Dalon L Westergreen @ 2018-09-06 17:40 UTC (permalink / raw)
To: u-boot
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 heximage is added to the FPGA configuration image
> and loaded tothe 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@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_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=y
> Why is this needed ? And where did the objcopy hack go ? What is
> theexplanation here ?
> You suggested the use of CONFIG_OF_EMBED as an alternative to using theu-boot-
> spl-dtb.bin for objcopy.The intent is to ensure that the spl elf has the dtb
> included, and thena simple objcopy to elf to hex is fine.You no longer need
> the --change-address as the elf indicates the correctstart address, unlike the
> binary.
> And that's fine with your usecase ? Fine be me then ...
Is it possible to apply CONFIG_OF_EMBED=y only to the SPL build?
> diff --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
> CONFIG_SPL_TARGET "u-boot-spl.hex" can replace this addition I think ?
> 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
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 17:40 ` Dalon L Westergreen
@ 2018-09-06 18:16 ` Marek Vasut
0 siblings, 0 replies; 19+ messages in thread
From: Marek Vasut @ 2018-09-06 18:16 UTC (permalink / raw)
To: u-boot
On 09/06/2018 07:40 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@gmail.com> <mailto:dwesterg at gmail.com <mailto: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_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 ...
>
> Is it possible to apply CONFIG_OF_EMBED=y only to the SPL build?
I think so, and if not, create CONFIG_SPL_OF_EMBED
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 13:41 ` Marek Vasut
2018-09-06 17:40 ` Dalon L Westergreen
@ 2018-09-06 21:26 ` Dalon L Westergreen
2018-09-06 21:56 ` Marek Vasut
1 sibling, 1 reply; 19+ messages in thread
From: Dalon L Westergreen @ 2018-09-06 21:26 UTC (permalink / raw)
To: u-boot
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@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
>
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 21:26 ` Dalon L Westergreen
@ 2018-09-06 21:56 ` Marek Vasut
2018-09-07 16:15 ` Dalon L Westergreen
0 siblings, 1 reply; 19+ messages in thread
From: Marek Vasut @ 2018-09-06 21:56 UTC (permalink / raw)
To: u-boot
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@gmail.com> <mailto:dwesterg at gmail.com <mailto: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_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.
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-06 21:56 ` Marek Vasut
@ 2018-09-07 16:15 ` Dalon L Westergreen
2018-09-07 16:25 ` Marek Vasut
0 siblings, 1 reply; 19+ messages in thread
From: Dalon L Westergreen @ 2018-09-07 16:15 UTC (permalink / raw)
To: u-boot
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 heximage is added to the FPGA configuration image and loaded tothe
> 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@gmail.com <mailto:
> dwesterg at gmail.com> <mailto:dwesterg at gmail.com <mailto: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=y
> Why is this needed ? And where did the objcopy hack go ? What is
> theexplanation here ?
> You suggested the use of CONFIG_OF_EMBED as an alternative to using theu-boot-
> spl-dtb.bin for objcopy.The intent is to ensure that the spl elf has the dtb
> included, and thena simple objcopy to elf to hex is fine.You no longer need
> the --change-address as the elf indicates the correctstart address, unlike the
> binary.
> And that's fine with your usecase ? Fine be me then ...
> diff --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
> 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 anSPL
> target, but rather atarget for creating combined u-boot + spl images at the
> top level. Adding
> ALL-$(CONFIG_SPL_TARGET) += $(obj)/$(SPL_BIN).hex
> in Makefile.spl andCONFIG_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 thematching 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
[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)
FORCEMakefile: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 FORCEinclude/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_TPLSPL_PAYLOAD := tpl/u-boot-with-tpl.binelseSPL_PAYLOAD := u-
boot.binendif
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_TARGETi see combine spl and u-boot.
--dalon
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-07 16:15 ` Dalon L Westergreen
@ 2018-09-07 16:25 ` Marek Vasut
2018-09-07 16:40 ` Dalon L Westergreen
0 siblings, 1 reply; 19+ messages in thread
From: Marek Vasut @ 2018-09-07 16:25 UTC (permalink / raw)
To: u-boot
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@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto: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_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@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@dwesterg-mobl> u-boot]$
>
>
> or
>
>
> [dwesterg at dwesterg-mobl <mailto:dwesterg@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"
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-07 16:25 ` Marek Vasut
@ 2018-09-07 16:40 ` Dalon L Westergreen
2018-09-07 17:36 ` Marek Vasut
0 siblings, 1 reply; 19+ messages in thread
From: Dalon L Westergreen @ 2018-09-07 16:40 UTC (permalink / raw)
To: u-boot
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@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto: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_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@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@dwesterg-mobl> u-boot]$
>
>
> or
>
>
> [dwesterg at dwesterg-mobl <mailto:dwesterg@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?
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-07 16:40 ` Dalon L Westergreen
@ 2018-09-07 17:36 ` Marek Vasut
2018-09-07 18:02 ` Westergreen, Dalon
0 siblings, 1 reply; 19+ messages in thread
From: Marek Vasut @ 2018-09-07 17:36 UTC (permalink / raw)
To: u-boot
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@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto: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_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@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@dwesterg-mobl> u-boot]$
>>
>>
>> or
>>
>>
>> [dwesterg at dwesterg-mobl <mailto:dwesterg@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.
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-07 17:36 ` Marek Vasut
@ 2018-09-07 18:02 ` Westergreen, Dalon
2018-09-07 18:17 ` Marek Vasut
0 siblings, 1 reply; 19+ messages in thread
From: Westergreen, Dalon @ 2018-09-07 18:02 UTC (permalink / raw)
To: u-boot
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@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto: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_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@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@dwesterg-mobl> u-boot]$
>
>
> or
>
>
> [dwesterg at dwesterg-mobl <mailto:dwesterg@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>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image
2018-09-07 18:02 ` Westergreen, Dalon
@ 2018-09-07 18:17 ` Marek Vasut
0 siblings, 0 replies; 19+ messages in thread
From: Marek Vasut @ 2018-09-07 18:17 UTC (permalink / raw)
To: u-boot
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 <dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>>>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com>> <mailto:dwesterg at gmail.com <mailto:dwesterg@gmail.com> <mailto:dwesterg at gmail.com <mailto: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_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@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@dwesterg-mobl> u-boot]$
>>
>>
>> or
>>
>>
>> [dwesterg at dwesterg-mobl <mailto:dwesterg@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
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2018-09-07 18:17 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-06 3:02 [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image Dalon Westergreen
2018-09-06 3:02 ` [U-Boot] [PATCH v2 2/2] spl: socfpga: stratix10: add hex file output for spl image Dalon Westergreen
2018-09-06 5:51 ` Simon Goldschmidt
2018-09-06 13:49 ` Dalon L Westergreen
2018-09-06 10:09 ` Marek Vasut
2018-09-06 13:39 ` Dalon L Westergreen
2018-09-06 13:41 ` Marek Vasut
2018-09-06 17:40 ` Dalon L Westergreen
2018-09-06 18:16 ` Marek Vasut
2018-09-06 21:26 ` Dalon L Westergreen
2018-09-06 21:56 ` Marek Vasut
2018-09-07 16:15 ` Dalon L Westergreen
2018-09-07 16:25 ` Marek Vasut
2018-09-07 16:40 ` Dalon L Westergreen
2018-09-07 17:36 ` Marek Vasut
2018-09-07 18:02 ` Westergreen, Dalon
2018-09-07 18:17 ` Marek Vasut
2018-09-06 10:08 ` [U-Boot] [PATCH v2 1/2] spl: socfpga: only gen5 devices and arria10 require sfp image Marek Vasut
2018-09-06 13:30 ` Dalon L Westergreen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.