Message ID | 20190927182757.24084-1-dalon.westergreen@linux.intel.com |
---|---|
State | Deferred |
Headers | show |
Series | [U-Boot,RESEND,v3,1/2] Makefile: Add target to generate hex output for combined spl and dtb | expand |
On Fri, Sep 27, 2019 at 11:27:56AM -0700, Dalon Westergreen wrote: > From: Dalon Westergreen <dalon.westergreen@intel.com> > > Stratix10 requires a hex image of the spl plus spl devicetree offset to > the Stratix10 onchip memory located at SPL_TEXT_BASE. This patch adds > a target to generate a hex file from the u-boot-spl binary including the > dtb offset at SPL_TEST_BASE. > > Objcopy is used to convert the $(SPL_BIN).bin, which includes the spl > dtb, to a hex file. the --change-address option is used to offset the > hex to SPL_TEXT_BASE as objcopy on the spl binary will not result in > a hex file appropriately offset at SPL_TEXT_BASE. > > Signed-off-by: Dalon Westergreen <dalon.westergreen@intel.com> > > --- > Changes in v3: > -> Cleanup commit message and better describe the problem being > resolved > -> Remove extraneous hunk > -> use SPL_BIN instead of u-boot-spl > Changes in v2: > -> Move spl hex file generation to SPL Makefile > -> Create hexfile from $(SPL_BIN).bin which will include the dtb > ifneq(build_dtb,) > --- > Makefile | 8 +++----- > scripts/Makefile.spl | 7 +++++++ > 2 files changed, 10 insertions(+), 5 deletions(-) > > diff --git a/Makefile b/Makefile > index 1d9ade948b..0bc9d1589f 100644 > --- a/Makefile > +++ b/Makefile > @@ -1152,11 +1152,6 @@ OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \ > $(if $(CONFIG_X86_16BIT_INIT),-R .start16 -R .resetvec) \ > $(if $(CONFIG_MPC85XX_HAVE_RESET_VECTOR),-R .bootpg -R .resetvec) > > -OBJCOPYFLAGS_u-boot-spl.hex = $(OBJCOPYFLAGS_u-boot.hex) > - > -spl/u-boot-spl.hex: spl/u-boot-spl FORCE > - $(call if_changed,objcopy) > - > binary_size_check: u-boot-nodtb.bin FORCE > @file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \ > map_size=$(shell cat u-boot.map | \ > @@ -1756,6 +1751,9 @@ spl/u-boot-spl.bin: spl/u-boot-spl > @: > $(SPL_SIZE_CHECK) > > +spl/u-boot-spl.hex: spl/u-boot-spl > + @: > + > spl/u-boot-spl: tools prepare \ > $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb) \ > $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_TPL_OF_PLATDATA),dts/dt.dtb) > diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl > index 7af6b120b6..551002194e 100644 > --- a/scripts/Makefile.spl > +++ b/scripts/Makefile.spl > @@ -216,6 +216,8 @@ ifneq ($(CONFIG_TARGET_SOCFPGA_GEN5)$(CONFIG_TARGET_SOCFPGA_ARRIA10),) > ALL-y += $(obj)/$(SPL_BIN).sfp > endif > > +ALL-$(CONFIG_TARGET_SOCFPGA_STRATIX10) += $(obj)/$(SPL_BIN).hex > + > ifdef CONFIG_ARCH_SUNXI > ALL-y += $(obj)/sunxi-spl.bin > > @@ -363,6 +365,11 @@ endif > $(obj)/$(SPL_BIN).sfp: $(obj)/$(SPL_BIN).bin FORCE > $(call if_changed,mkimage) > > +OBJCOPYFLAGS_$(SPL_BIN).hex := -I binary -O ihex --change-address=$(CONFIG_SPL_TEXT_BASE) > + > +$(obj)/$(SPL_BIN).hex: $(obj)/$(SPL_BIN).bin FORCE > + $(call if_changed,objcopy) > + > quiet_cmd_mksunxiboot = MKSUNXI $@ > cmd_mksunxiboot = $(objtree)/tools/mksunxiboot \ > --default-dt $(CONFIG_DEFAULT_DEVICE_TREE) $< $@ SoCFPGA folks? This has been posted a few times, is this OK for the next release? Thanks
Am 27.09.2019 um 20:27 schrieb Dalon Westergreen: > From: Dalon Westergreen <dalon.westergreen@intel.com> > > Stratix10 requires a hex image of the spl plus spl devicetree offset to > the Stratix10 onchip memory located at SPL_TEXT_BASE. This patch adds > a target to generate a hex file from the u-boot-spl binary including the > dtb offset at SPL_TEST_BASE. > > Objcopy is used to convert the $(SPL_BIN).bin, which includes the spl > dtb, to a hex file. the --change-address option is used to offset the > hex to SPL_TEXT_BASE as objcopy on the spl binary will not result in > a hex file appropriately offset at SPL_TEXT_BASE. > > Signed-off-by: Dalon Westergreen <dalon.westergreen@intel.com> > > --- > Changes in v3: > -> Cleanup commit message and better describe the problem being > resolved > -> Remove extraneous hunk > -> use SPL_BIN instead of u-boot-spl > Changes in v2: > -> Move spl hex file generation to SPL Makefile > -> Create hexfile from $(SPL_BIN).bin which will include the dtb > ifneq(build_dtb,) > --- > Makefile | 8 +++----- > scripts/Makefile.spl | 7 +++++++ > 2 files changed, 10 insertions(+), 5 deletions(-) > > diff --git a/Makefile b/Makefile > index 1d9ade948b..0bc9d1589f 100644 > --- a/Makefile > +++ b/Makefile > @@ -1152,11 +1152,6 @@ OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \ > $(if $(CONFIG_X86_16BIT_INIT),-R .start16 -R .resetvec) \ > $(if $(CONFIG_MPC85XX_HAVE_RESET_VECTOR),-R .bootpg -R .resetvec) > > -OBJCOPYFLAGS_u-boot-spl.hex = $(OBJCOPYFLAGS_u-boot.hex) > - > -spl/u-boot-spl.hex: spl/u-boot-spl FORCE > - $(call if_changed,objcopy) > - > binary_size_check: u-boot-nodtb.bin FORCE > @file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \ > map_size=$(shell cat u-boot.map | \ > @@ -1756,6 +1751,9 @@ spl/u-boot-spl.bin: spl/u-boot-spl > @: > $(SPL_SIZE_CHECK) > > +spl/u-boot-spl.hex: spl/u-boot-spl > + @: > + > spl/u-boot-spl: tools prepare \ > $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb) \ > $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_TPL_OF_PLATDATA),dts/dt.dtb) > diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl > index 7af6b120b6..551002194e 100644 > --- a/scripts/Makefile.spl > +++ b/scripts/Makefile.spl > @@ -216,6 +216,8 @@ ifneq ($(CONFIG_TARGET_SOCFPGA_GEN5)$(CONFIG_TARGET_SOCFPGA_ARRIA10),) > ALL-y += $(obj)/$(SPL_BIN).sfp > endif > > +ALL-$(CONFIG_TARGET_SOCFPGA_STRATIX10) += $(obj)/$(SPL_BIN).hex > + > ifdef CONFIG_ARCH_SUNXI > ALL-y += $(obj)/sunxi-spl.bin > > @@ -363,6 +365,11 @@ endif > $(obj)/$(SPL_BIN).sfp: $(obj)/$(SPL_BIN).bin FORCE > $(call if_changed,mkimage) > > +OBJCOPYFLAGS_$(SPL_BIN).hex := -I binary -O ihex --change-address=$(CONFIG_SPL_TEXT_BASE) > + > +$(obj)/$(SPL_BIN).hex: $(obj)/$(SPL_BIN).bin FORCE > + $(call if_changed,objcopy) > + While I like the idea of this patch, and I *think* that this is what an SPL hex should look like for all platforms, I'm not 100% sure that globally changing the rule and objcopy flags for u-boot-spl.hex is OK for all architectures? Let's try to apply this at the start of next merge window, then we'll hopefully see if this does break any board. Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Regards, Simon > quiet_cmd_mksunxiboot = MKSUNXI $@ > cmd_mksunxiboot = $(objtree)/tools/mksunxiboot \ > --default-dt $(CONFIG_DEFAULT_DEVICE_TREE) $< $@ >
On Sat, 2019-10-05 at 21:40 +0200, Simon Goldschmidt wrote: > Am 27.09.2019 um 20:27 schrieb Dalon Westergreen: > > From: Dalon Westergreen <dalon.westergreen@intel.com> > > Stratix10 requires a hex image of the spl plus spl devicetree offset tothe > > Stratix10 onchip memory located at SPL_TEXT_BASE. This patch addsa target > > to generate a hex file from the u-boot-spl binary including thedtb offset at > > SPL_TEST_BASE. > > Objcopy is used to convert the $(SPL_BIN).bin, which includes the spldtb, to > > a hex file. the --change-address option is used to offset thehex to > > SPL_TEXT_BASE as objcopy on the spl binary will not result ina hex file > > appropriately offset at SPL_TEXT_BASE. > > Signed-off-by: Dalon Westergreen <dalon.westergreen@intel.com> > > ---Changes in v3: -> Cleanup commit message and better describe the problem > > being resolved -> Remove extraneous hunk -> use SPL_BIN instead of u- > > boot-splChanges in v2: -> Move spl hex file generation to SPL Makefile -> > > Create hexfile from $(SPL_BIN).bin which will include the > > dtb ifneq(build_dtb,)--- Makefile | 8 +++-- > > --- scripts/Makefile.spl | 7 +++++++ 2 files changed, 10 insertions(+), 5 > > deletions(-) > > diff --git a/Makefile b/Makefileindex 1d9ade948b..0bc9d1589f 100644--- > > a/Makefile+++ b/Makefile@@ -1152,11 +1152,6 @@ OBJCOPYFLAGS_u-boot-nodtb.bin > > := -O binary \ $(if $(CONFIG_X86_16BIT_INIT),-R .start16 -R > > .resetvec) \ $(if $(CONFIG_MPC85XX_HAVE_RESET_VECTOR),-R > > .bootpg -R .resetvec) -OBJCOPYFLAGS_u-boot-spl.hex = $(OBJCOPYFLAGS_u- > > boot.hex)--spl/u-boot-spl.hex: spl/u-boot-spl FORCE- $(call > > if_changed,objcopy)- binary_size_check: u-boot-nodtb.bin FORCE @file_si > > ze=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \ map_size > > =$(shell cat u-boot.map | \@@ -1756,6 +1751,9 @@ spl/u-boot-spl.bin: spl/u- > > boot-spl @: $(SPL_SIZE_CHECK) +spl/u-boot-spl.hex: spl/u-boot- > > spl+ @:+ spl/u-boot-spl: tools prepare \ $(if > > $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb) > > \ $(if > > $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_TPL_OF_PLATDATA),dts/dt.dtb) > > diff --git a/scripts/Makefile.spl b/scripts/Makefile.splindex > > 7af6b120b6..551002194e 100644--- a/scripts/Makefile.spl+++ > > b/scripts/Makefile.spl@@ -216,6 +216,8 @@ ifneq > > ($(CONFIG_TARGET_SOCFPGA_GEN5)$(CONFIG_TARGET_SOCFPGA_ARRIA10),) ALL-y > > += $(obj)/$(SPL_BIN).sfp endif +ALL-$(CONFIG_TARGET_SOCFPGA_STRATIX10) += > > $(obj)/$(SPL_BIN).hex+ ifdef CONFIG_ARCH_SUNXI ALL-y += $(obj)/sunxi- > > spl.bin @@ -363,6 +365,11 @@ endif $(obj)/$(SPL_BIN).sfp: > > $(obj)/$(SPL_BIN).bin FORCE $(call > > if_changed,mkimage) +OBJCOPYFLAGS_$(SPL_BIN).hex := -I binary -O ihex -- > > change-address=$(CONFIG_SPL_TEXT_BASE)++$(obj)/$(SPL_BIN).hex: > > $(obj)/$(SPL_BIN).bin FORCE+ $(call if_changed,objcopy)+ > > While I like the idea of this patch, and I *think* that this is what an SPL > hex should look like for all platforms, I'm not 100% sure that globally > changing the rule and objcopy flags for u-boot-spl.hex is OK for all > architectures? > Let's try to apply this at the start of next merge window, then we'll > hopefully see if this does break any board. > Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> > Regards,Simon sounds good, i dont believe there are other boards with SPL hex as atarget, at least none that i found. --dalon > > quiet_cmd_mksunxiboot = MKSUNXI $@ cmd_mksunxiboot = > > $(objtree)/tools/mksunxiboot \ --default-dt > > $(CONFIG_DEFAULT_DEVICE_TREE) $< $@
On Wed, Oct 9, 2019 at 2:57 PM Dalon L Westergreen <dalon.westergreen@linux.intel.com> wrote: > > On Sat, 2019-10-05 at 21:40 +0200, Simon Goldschmidt wrote: > > Am 27.09.2019 um 20:27 schrieb Dalon Westergreen: > > From: Dalon Westergreen < > > dalon.westergreen@intel.com > > > > > > Stratix10 requires a hex image of the spl plus spl devicetree offset to > > the Stratix10 onchip memory located at SPL_TEXT_BASE. This patch adds > > a target to generate a hex file from the u-boot-spl binary including the > > dtb offset at SPL_TEST_BASE. > > > Objcopy is used to convert the $(SPL_BIN).bin, which includes the spl > > dtb, to a hex file. the --change-address option is used to offset the > > hex to SPL_TEXT_BASE as objcopy on the spl binary will not result in > > a hex file appropriately offset at SPL_TEXT_BASE. > > > Signed-off-by: Dalon Westergreen < > > dalon.westergreen@intel.com > > > > > > --- > > Changes in v3: > > -> Cleanup commit message and better describe the problem being > > resolved > > -> Remove extraneous hunk > > -> use SPL_BIN instead of u-boot-spl > > Changes in v2: > > -> Move spl hex file generation to SPL Makefile > > -> Create hexfile from $(SPL_BIN).bin which will include the dtb > > ifneq(build_dtb,) > > --- > > Makefile | 8 +++----- > > scripts/Makefile.spl | 7 +++++++ > > 2 files changed, 10 insertions(+), 5 deletions(-) > > > diff --git a/Makefile b/Makefile > > index 1d9ade948b..0bc9d1589f 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -1152,11 +1152,6 @@ OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \ > > $(if $(CONFIG_X86_16BIT_INIT),-R .start16 -R .resetvec) \ > > $(if $(CONFIG_MPC85XX_HAVE_RESET_VECTOR),-R .bootpg -R .resetvec) > > > > -OBJCOPYFLAGS_u-boot-spl.hex = $(OBJCOPYFLAGS_u-boot.hex) > > - > > -spl/u-boot-spl.hex: spl/u-boot-spl FORCE > > - $(call if_changed,objcopy) > > - > > binary_size_check: u-boot-nodtb.bin FORCE > > @file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \ > > map_size=$(shell cat u-boot.map | \ > > @@ -1756,6 +1751,9 @@ spl/u-boot-spl.bin: spl/u-boot-spl > > @: > > $(SPL_SIZE_CHECK) > > > > +spl/u-boot-spl.hex: spl/u-boot-spl > > + @: > > + > > spl/u-boot-spl: tools prepare \ > > $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb) \ > > $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_TPL_OF_PLATDATA),dts/dt.dtb) > > diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl > > index 7af6b120b6..551002194e 100644 > > --- a/scripts/Makefile.spl > > +++ b/scripts/Makefile.spl > > @@ -216,6 +216,8 @@ ifneq ($(CONFIG_TARGET_SOCFPGA_GEN5)$(CONFIG_TARGET_SOCFPGA_ARRIA10),) > > ALL-y += $(obj)/$(SPL_BIN).sfp > > endif > > > > +ALL-$(CONFIG_TARGET_SOCFPGA_STRATIX10) += $(obj)/$(SPL_BIN).hex > > + > > ifdef CONFIG_ARCH_SUNXI > > ALL-y += $(obj)/sunxi-spl.bin > > > > @@ -363,6 +365,11 @@ endif > > $(obj)/$(SPL_BIN).sfp: $(obj)/$(SPL_BIN).bin FORCE > > $(call if_changed,mkimage) > > > > +OBJCOPYFLAGS_$(SPL_BIN).hex := -I binary -O ihex --change-address=$(CONFIG_SPL_TEXT_BASE) > > + > > +$(obj)/$(SPL_BIN).hex: $(obj)/$(SPL_BIN).bin FORCE > > + $(call if_changed,objcopy) > > + > > > While I like the idea of this patch, and I *think* that this is what an > > SPL hex should look like for all platforms, I'm not 100% sure that > > globally changing the rule and objcopy flags for u-boot-spl.hex is OK > > for all architectures? > > > Let's try to apply this at the start of next merge window, then we'll > > hopefully see if this does break any board. > > > Reviewed-by: Simon Goldschmidt < > > simon.k.r.goldschmidt@gmail.com > > > > > > Regards, > > Simon > > > sounds good, i dont believe there are other boards with SPL hex as a > > target, at least none that i found. Even better. Sadly, the Quartus gen5 tools require the HEX to be at offset 0 to create a 'boot-from-FPGA' image, but since that one is easy enough to create without Makefile help, I think this patch is still ok. Regards, Simon > > > --dalon > > > quiet_cmd_mksunxiboot = MKSUNXI $@ > > cmd_mksunxiboot = $(objtree)/tools/mksunxiboot \ > > --default-dt $(CONFIG_DEFAULT_DEVICE_TREE) $< $@ > > >
diff --git a/Makefile b/Makefile index 1d9ade948b..0bc9d1589f 100644 --- a/Makefile +++ b/Makefile @@ -1152,11 +1152,6 @@ OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \ $(if $(CONFIG_X86_16BIT_INIT),-R .start16 -R .resetvec) \ $(if $(CONFIG_MPC85XX_HAVE_RESET_VECTOR),-R .bootpg -R .resetvec) -OBJCOPYFLAGS_u-boot-spl.hex = $(OBJCOPYFLAGS_u-boot.hex) - -spl/u-boot-spl.hex: spl/u-boot-spl FORCE - $(call if_changed,objcopy) - binary_size_check: u-boot-nodtb.bin FORCE @file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \ map_size=$(shell cat u-boot.map | \ @@ -1756,6 +1751,9 @@ spl/u-boot-spl.bin: spl/u-boot-spl @: $(SPL_SIZE_CHECK) +spl/u-boot-spl.hex: spl/u-boot-spl + @: + spl/u-boot-spl: tools prepare \ $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb) \ $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_TPL_OF_PLATDATA),dts/dt.dtb) diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 7af6b120b6..551002194e 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -216,6 +216,8 @@ ifneq ($(CONFIG_TARGET_SOCFPGA_GEN5)$(CONFIG_TARGET_SOCFPGA_ARRIA10),) ALL-y += $(obj)/$(SPL_BIN).sfp endif +ALL-$(CONFIG_TARGET_SOCFPGA_STRATIX10) += $(obj)/$(SPL_BIN).hex + ifdef CONFIG_ARCH_SUNXI ALL-y += $(obj)/sunxi-spl.bin @@ -363,6 +365,11 @@ endif $(obj)/$(SPL_BIN).sfp: $(obj)/$(SPL_BIN).bin FORCE $(call if_changed,mkimage) +OBJCOPYFLAGS_$(SPL_BIN).hex := -I binary -O ihex --change-address=$(CONFIG_SPL_TEXT_BASE) + +$(obj)/$(SPL_BIN).hex: $(obj)/$(SPL_BIN).bin FORCE + $(call if_changed,objcopy) + quiet_cmd_mksunxiboot = MKSUNXI $@ cmd_mksunxiboot = $(objtree)/tools/mksunxiboot \ --default-dt $(CONFIG_DEFAULT_DEVICE_TREE) $< $@