aboutsummaryrefslogtreecommitdiff
path: root/package/uboot-tools/uboot-tools.mk
diff options
context:
space:
mode:
Diffstat (limited to 'package/uboot-tools/uboot-tools.mk')
-rw-r--r--package/uboot-tools/uboot-tools.mk53
1 files changed, 53 insertions, 0 deletions
diff --git a/package/uboot-tools/uboot-tools.mk b/package/uboot-tools/uboot-tools.mk
index a06c25998f..3a8e21ec9b 100644
--- a/package/uboot-tools/uboot-tools.mk
+++ b/package/uboot-tools/uboot-tools.mk
@@ -9,6 +9,8 @@ UBOOT_TOOLS_SOURCE = u-boot-$(UBOOT_TOOLS_VERSION).tar.bz2
UBOOT_TOOLS_SITE = ftp://ftp.denx.de/pub/u-boot
UBOOT_TOOLS_LICENSE = GPL-2.0+
UBOOT_TOOLS_LICENSE_FILES = Licenses/gpl-2.0.txt
+UBOOT_TOOLS_CPE_ID_VENDOR = denx
+UBOOT_TOOLS_CPE_ID_NAME = u-boot
UBOOT_TOOLS_INSTALL_STAGING = YES
# u-boot 2020.01+ needs make 4.0+
@@ -110,10 +112,61 @@ define HOST_UBOOT_TOOLS_BUILD_CMDS
$(BR2_MAKE1) -C $(@D) $(HOST_UBOOT_TOOLS_MAKE_OPTS) tools-only
endef
+ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE),y)
+
+UBOOT_TOOLS_GENERATE_ENV_FILE = $(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE))
+ifeq ($(UBOOT_TOOLS_GENERATE_ENV_FILE):$(BR2_TARGET_UBOOT),:y)
+UBOOT_TOOLS_GENERATE_ENV_FILE = $(@D)/boot-env-defaults.txt
+define HOST_UBOOT_TOOLS_GENERATE_ENV_DEFAULTS
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ $(UBOOT_SRCDIR)/scripts/get_default_envs.sh \
+ $(UBOOT_SRCDIR) \
+ > $(UBOOT_TOOLS_GENERATE_ENV_FILE)
+endef
+HOST_UBOOT_TOOLS_DEPENDENCIES += uboot
+endif
+
+define HOST_UBOOT_TOOLS_GENERATE_ENV_IMAGE
+ $(HOST_UBOOT_TOOLS_GENERATE_ENV_DEFAULTS)
+ $(HOST_DIR)/bin/mkenvimage -s $(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE) \
+ $(if $(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_REDUNDANT),-r) \
+ $(if $(filter "BIG",$(BR2_ENDIAN)),-b) \
+ -o $(BINARIES_DIR)/uboot-env.bin \
+ $(UBOOT_TOOLS_GENERATE_ENV_FILE)
+endef
+
+ifeq ($(BR_BUILDING),y)
+ifeq ($(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE)),)
+$(error Please provide U-Boot environment size (BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SIZE setting))
+endif
+# If U-Boot is available, ENVIMAGE_SOURCE is optional because the default can
+# be taken from U-Boot.
+ifeq ($(BR2_TARGET_UBOOT),)
+ifeq ($(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE),)
+$(error Please provide U-Boot environment file BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE setting))
+endif
+endif #BR2_TARGET_UBOOT
+endif #BR_BUILDING
+
+endif #BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE
+
+ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT),y)
+ifeq ($(BR_BUILDING),y)
+ifeq ($(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE)),)
+$(error Please define a source file for U-Boot boot script (BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE setting))
+endif
+endif #BR_BUILDING
+endif #BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT
+
define HOST_UBOOT_TOOLS_INSTALL_CMDS
$(INSTALL) -m 0755 -D $(@D)/tools/mkimage $(HOST_DIR)/bin/mkimage
$(INSTALL) -m 0755 -D $(@D)/tools/mkenvimage $(HOST_DIR)/bin/mkenvimage
$(INSTALL) -m 0755 -D $(@D)/tools/dumpimage $(HOST_DIR)/bin/dumpimage
+ $(HOST_UBOOT_TOOLS_GENERATE_ENV_IMAGE)
+ $(if $(BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT),
+ $(MKIMAGE) -C none -A $(MKIMAGE_ARCH) -T script \
+ -d $(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE)) \
+ $(BINARIES_DIR)/boot.scr)
endef
$(eval $(generic-package))