Patchwork [U-Boot,2/3] Makefile: Add target for combined u-boot.img & spl/u-boot.bin

login
register
mail settings
Submitter Stefan Roese
Date Feb. 22, 2013, 10:36 a.m.
Message ID <1361529411-13095-2-git-send-email-sr@denx.de>
Download mbox | patch
Permalink /patch/222509/
State Awaiting Upstream
Delegated to: Stefan Roese
Headers show

Comments

Stefan Roese - Feb. 22, 2013, 10:36 a.m.
This new make target "u-boot-img-spl-at-end.bin" consists of the
the real, full-blown U-Boot image and the U-Boot SPL binary
directly attached to it. The full-blown U-Boot image has the
mkimage header included, with its load-address and entry-point.

This will be used by the upcoming lwmon5 PPC440EPx derivate board
port.

Signed-off-by: Stefan Roese <sr@denx.de>
---
 Makefile  | 12 ++++++++++++
 config.mk |  4 ++++
 2 files changed, 16 insertions(+)
Stefan Roese - April 22, 2013, 8:19 a.m.
On 22.02.2013 11:36, Stefan Roese wrote:
> This new make target "u-boot-img-spl-at-end.bin" consists of the
> the real, full-blown U-Boot image and the U-Boot SPL binary
> directly attached to it. The full-blown U-Boot image has the
> mkimage header included, with its load-address and entry-point.
> 
> This will be used by the upcoming lwmon5 PPC440EPx derivate board
> port.
> 
> Signed-off-by: Stefan Roese <sr@denx.de>

Applied to u-boot-ppc4xx/master.

Thanks,
Stefan

Patch

diff --git a/Makefile b/Makefile
index 3305e8c..42bd96a 100644
--- a/Makefile
+++ b/Makefile
@@ -548,6 +548,18 @@  endif
 $(obj)u-boot-img.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
 		cat $(obj)spl/u-boot-spl.bin $(obj)u-boot.img > $@
 
+# PPC4xx needs the SPL at the end of the image, since the reset vector
+# is located at 0xfffffffc. So we can't use the "u-boot-img.bin" target
+# and need to introduce a new build target with the full blown U-Boot
+# at the start padded up to the start of the SPL image. And then concat
+# the SPL image to the end.
+$(obj)u-boot-img-spl-at-end.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
+		tr "\000" "\377" < /dev/zero | dd ibs=1 count=$(CONFIG_UBOOT_PAD_TO) \
+			of=$(obj)u-boot-pad.img 2>/dev/null
+		dd if=$(obj)u-boot.img of=$(obj)u-boot-pad.img \
+			conv=notrunc 2>/dev/null
+		cat $(obj)u-boot-pad.img $(obj)spl/u-boot-spl.bin > $@
+
 ifeq ($(CONFIG_SANDBOX),y)
 GEN_UBOOT = \
 		cd $(LNDIR) && $(CC) $(SYMS) -T $(obj)u-boot.lds \
diff --git a/config.mk b/config.mk
index b7cd481..c73f510 100644
--- a/config.mk
+++ b/config.mk
@@ -217,6 +217,10 @@  ifneq ($(CONFIG_SPL_PAD_TO),)
 CPPFLAGS += -DCONFIG_SPL_PAD_TO=$(CONFIG_SPL_PAD_TO)
 endif
 
+ifneq ($(CONFIG_UBOOT_PAD_TO),)
+CPPFLAGS += -DCONFIG_UBOOT_PAD_TO=$(CONFIG_UBOOT_PAD_TO)
+endif
+
 ifeq ($(CONFIG_SPL_BUILD),y)
 CPPFLAGS += -DCONFIG_SPL_BUILD
 endif