uboot: install multiple spl images
authorJason Abele <jason@nextthing.co>
Tue, 5 Jul 2016 11:17:25 +0000 (13:17 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 5 Jul 2016 15:30:12 +0000 (17:30 +0200)
For some platforms, there are multiple generated spl images.  Extend
BR2_TARGET_UBOOT_SPL_NAME to allow these multiple images to be installed
after uboot build completes.

For example, the NextThingCo C.H.I.P. uses two binaries from uboot,
spl/sunxi-spl.bin and spl/sunxi-spl-with-ecc.bin.

Signed-off-by: Jason Abele <jason@nextthing.co>
[Maxime:
 - Add foreach loop for general case and mkpimage
 - Use firstword for zynq case]
Signe-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
boot/uboot/Config.in
boot/uboot/uboot.mk

index 9ffbb5145c0f7c3f62f2e15f9f40e7bc2d984085..a468548b23cd8b6b6d2e7e71427253334906464b 100644 (file)
@@ -313,7 +313,7 @@ config BR2_TARGET_UBOOT_SPL_NAME
        default "spl/u-boot-spl.bin"
        depends on BR2_TARGET_UBOOT_SPL
        help
-         This is the name of the SPL binary, generated during
+         A space-separated list of SPL binaries, generated during
          u-boot build. For most platform it is spl/u-boot-spl.bin
          but not always. It is MLO on OMAP for example.
 
index 4e6863dc27fc13b1ea2455b90cb191fe45fea00b..065bdf96966ef8d4d6e216f02773d6f29d11f410 100644 (file)
@@ -170,7 +170,10 @@ define UBOOT_INSTALL_IMAGES_CMDS
        $(if $(BR2_TARGET_UBOOT_FORMAT_NAND),
                cp -dpf $(@D)/$(UBOOT_MAKE_TARGET) $(BINARIES_DIR))
        $(if $(BR2_TARGET_UBOOT_SPL),
-               cp -dpf $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) $(BINARIES_DIR)/)
+               $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)), \
+                       cp -dpf $(@D)/$(f) $(BINARIES_DIR)/
+               )
+       )
        $(if $(BR2_TARGET_UBOOT_ENVIMAGE),
                cat $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) | \
                        $(HOST_DIR)/usr/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \
@@ -198,8 +201,9 @@ endif
 
 ifeq ($(BR2_TARGET_UBOOT_ZYNQ_IMAGE),y)
 define UBOOT_GENERATE_ZYNQ_IMAGE
-       $(HOST_DIR)/usr/bin/python2 $(HOST_DIR)/usr/bin/zynq-boot-bin.py \
-               -u $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))     \
+       $(HOST_DIR)/usr/bin/python2 \
+               $(HOST_DIR)/usr/bin/zynq-boot-bin.py \
+               -u $(@D)/$(firstword $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) \
                -o $(BINARIES_DIR)/BOOT.BIN
 endef
 UBOOT_DEPENDENCIES += host-zynq-boot-bin
@@ -208,8 +212,11 @@ endif
 
 ifeq ($(BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC),y)
 define UBOOT_CRC_ALTERA_SOCFPGA_IMAGE
-       $(HOST_DIR)/usr/bin/mkpimage -o $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))).crc \
-               $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))
+       $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)), \
+               $(HOST_DIR)/usr/bin/mkpimage \
+                       -o $(BINARIES_DIR)/$(notdir $(call qstrip,$(f))).crc \
+                       $(@D)/$(call qstrip,$(f))
+       )
 endef
 UBOOT_DEPENDENCIES += host-mkpimage
 UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_ALTERA_SOCFPGA_IMAGE