summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2015-07-15 02:53:45 +0200
committerMarek Vasut <marex@denx.de>2015-08-08 14:14:10 +0200
commit333b7209ed486f5a9cba2b9727edd6170fdace70 (patch)
treeca19c38738a0401778dfa11ad26b72cbe3bf743d
parent55b4312b905a64e33e518bd5f99193196fcdc500 (diff)
downloadtalos-obmc-uboot-333b7209ed486f5a9cba2b9727edd6170fdace70.tar.gz
talos-obmc-uboot-333b7209ed486f5a9cba2b9727edd6170fdace70.zip
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 <marex@denx.de>
-rw-r--r--Makefile12
-rw-r--r--scripts/Makefile.spl10
2 files changed, 22 insertions, 0 deletions
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 $< $@
OpenPOWER on IntegriCloud