From 333b7209ed486f5a9cba2b9727edd6170fdace70 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Wed, 15 Jul 2015 02:53:45 +0200 Subject: [PATCH] Makefile: Add target for building bootable SPL image for SoCFPGA Add build target for generating boot partition images recognised by the SoCFPGA BootROM. The SoCFPGA BootROM expects four copies of the u-boot-spl-dtb.sfp at the beginning of boot partition. Those are u-boot-spl-dtb.bin augmented by a header with which the BootROM can work. The u-boot-dtb.img uImage is appended to this to produce a full boot partition image, the u-boot-with-spl-dtb.sfp . This is the name of the final target. Signed-off-by: Marek Vasut --- Makefile | 12 ++++++++++++ scripts/Makefile.spl | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/Makefile b/Makefile index 469c770487..ad51e60ca1 100644 --- a/Makefile +++ b/Makefile @@ -1020,6 +1020,15 @@ u-boot-nand.gph: u-boot.bin FORCE $(call if_changed,mkimage) @dd if=/dev/zero bs=8 count=1 2>/dev/null >> $@ +ifneq ($(CONFIG_ARCH_SOCFPGA),) +quiet_cmd_socboot = SOCBOOT $@ +cmd_socboot = cat spl/u-boot-spl-dtb.sfp spl/u-boot-spl-dtb.sfp \ + spl/u-boot-spl-dtb.sfp spl/u-boot-spl-dtb.sfp \ + u-boot-dtb.img > $@ || rm -f $@ +u-boot-with-spl-dtb.sfp: spl/u-boot-spl-dtb.sfp u-boot-dtb.img FORCE + $(call if_changed,socboot) +endif + # x86 uses a large ROM. We fill it with 0xff, put the 16-bit stuff (including # reset vector) at the top, Intel ME descriptor at the bottom, and U-Boot in # the middle. @@ -1298,6 +1307,9 @@ spl/u-boot-spl: tools prepare $(if $(CONFIG_OF_SEPARATE),dts/dt.dtb) spl/sunxi-spl.bin: spl/u-boot-spl @: +spl/u-boot-spl-dtb.sfp: spl/u-boot-spl + @: + tpl/u-boot-tpl.bin: tools prepare $(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 4879d0a919..239ee48816 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -163,6 +163,10 @@ ifdef CONFIG_SAMSUNG ALL-y += $(obj)/$(BOARD)-spl.bin endif +ifdef CONFIG_ARCH_SOCFPGA +ALL-y += $(obj)/$(SPL_BIN)-dtb.sfp +endif + ifdef CONFIG_SUNXI ALL-y += $(obj)/sunxi-spl.bin endif @@ -231,6 +235,12 @@ ifneq ($(CONFIG_SPL_TEXT_BASE),) LDFLAGS_$(SPL_BIN) += -Ttext $(CONFIG_SPL_TEXT_BASE) endif +ifdef CONFIG_ARCH_SOCFPGA +MKIMAGEFLAGS_$(SPL_BIN)-dtb.sfp = -T socfpgaimage +$(obj)/$(SPL_BIN)-dtb.sfp: $(obj)/$(SPL_BIN)-dtb.bin FORCE + $(call if_changed,mkimage) +endif + ifdef CONFIG_SUNXI quiet_cmd_mksunxiboot = MKSUNXI $@ cmd_mksunxiboot = $(objtree)/tools/mksunxiboot $< $@ -- 2.39.2