All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.