Do not put the u-boot images into the kernel build directory as this directory
might get removed after kernel updates while the u-boot packages InstallDev
recipe is not getting re-executed because it is still considered current,
leading to image build failures later on due to missing images.
To ensure that built bootloader images persist over kernel version updates in
the buildroot, put them into the new STAGING_DIR_IMAGE directory.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
define Build/InstallDev
- $(CP) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(KERNEL_BUILD_DIR)/$(BUILD_DEVICES)-u-boot-with-spl.bin
+ $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+ $(CP) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-u-boot-with-spl.bin
mkimage -C none -A arm -T script -d uEnv-$(UENV).txt \
- $(KERNEL_BUILD_DIR)/$(BUILD_DEVICES)-boot.scr
+ $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-boot.scr
endef
define Package/u-boot/install/default
rm -f $@.boot
mkfs.fat $@.boot -C $(FAT32_BLOCKS)
- mcopy -i $@.boot $(KDIR)/$(DEVICE_NAME)-boot.scr ::boot.scr
+ mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-boot.scr ::boot.scr
mcopy -i $@.boot $(DTS_DIR)/$(SUNXI_DTS).dtb ::dtb
mcopy -i $@.boot $(IMAGE_KERNEL) ::uImage
./gen_sunxi_sdcard_img.sh $@ \
$(IMAGE_ROOTFS) \
$(CONFIG_SUNXI_SD_BOOT_PARTSIZE) \
$(CONFIG_TARGET_ROOTFS_PARTSIZE) \
- $(KDIR)/$(DEVICE_NAME)-u-boot-with-spl.bin
+ $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-u-boot-with-spl.bin
rm -f $@.boot
endef