123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- ################################################################################
- #
- # uboot-tools
- #
- ################################################################################
- UBOOT_TOOLS_VERSION = 2021.07
- 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_PRODUCT = u-boot
- UBOOT_TOOLS_INSTALL_STAGING = YES
- # u-boot 2020.01+ needs make 4.0+
- UBOOT_TOOLS_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY)
- HOST_UBOOT_TOOLS_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY)
- define UBOOT_TOOLS_CONFIGURE_CMDS
- mkdir -p $(@D)/include/config
- touch $(@D)/include/config/auto.conf
- mkdir -p $(@D)/include/generated
- touch $(@D)/include/generated/autoconf.h
- mkdir -p $(@D)/include/asm
- touch $(@D)/include/asm/linkage.h
- endef
- UBOOT_TOOLS_MAKE_OPTS = CROSS_COMPILE="$(TARGET_CROSS)" \
- CFLAGS="$(TARGET_CFLAGS)" \
- LDFLAGS="$(TARGET_LDFLAGS)" \
- HOSTCFLAGS="$(HOST_CFLAGS)" \
- STRIP=$(TARGET_STRIP)
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT),y)
- UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT=y CONFIG_MKIMAGE_DTC_PATH=dtc
- UBOOT_TOOLS_DEPENDENCIES += dtc
- endif
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT),y)
- UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT_SIGNATURE=y CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000
- UBOOT_TOOLS_DEPENDENCIES += openssl host-pkgconf
- endif
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKEFICAPSULE),y)
- UBOOT_TOOLS_MAKE_OPTS += CONFIG_EFI_HAVE_CAPSULE_SUPPORT=y
- endif
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN),y)
- define UBOOT_TOOLS_INSTALL_FIT_CHECK_SIGN
- $(INSTALL) -m 0755 -D $(@D)/tools/fit_check_sign $(TARGET_DIR)/usr/bin/fit_check_sign
- endef
- endif
- define UBOOT_TOOLS_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_MAKE) -C $(@D) $(UBOOT_TOOLS_MAKE_OPTS) \
- CROSS_BUILD_TOOLS=y tools-only
- $(TARGET_MAKE_ENV) $(BR2_MAKE) -C $(@D) $(UBOOT_TOOLS_MAKE_OPTS) \
- envtools no-dot-config-targets=envtools
- endef
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE),y)
- define UBOOT_TOOLS_INSTALL_MKIMAGE
- $(INSTALL) -m 0755 -D $(@D)/tools/mkimage $(TARGET_DIR)/usr/bin/mkimage
- endef
- endif
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKEFICAPSULE),y)
- define UBOOT_TOOLS_INSTALL_MKEFICAPSULE
- $(INSTALL) -m 0755 -D $(@D)/tools/mkeficapsule $(TARGET_DIR)/usr/bin/mkeficapsule
- endef
- endif
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE),y)
- define UBOOT_TOOLS_INSTALL_MKENVIMAGE
- $(INSTALL) -m 0755 -D $(@D)/tools/mkenvimage $(TARGET_DIR)/usr/bin/mkenvimage
- endef
- endif
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FWPRINTENV),y)
- define UBOOT_TOOLS_INSTALL_FWPRINTENV
- $(INSTALL) -m 0755 -D $(@D)/tools/env/fw_printenv $(TARGET_DIR)/usr/sbin/fw_printenv
- ln -sf fw_printenv $(TARGET_DIR)/usr/sbin/fw_setenv
- endef
- endif
- ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_DUMPIMAGE),y)
- define UBOOT_TOOLS_INSTALL_DUMPIMAGE
- $(INSTALL) -m 0755 -D $(@D)/tools/dumpimage $(TARGET_DIR)/usr/sbin/dumpimage
- endef
- endif
- define UBOOT_TOOLS_INSTALL_STAGING_CMDS
- $(INSTALL) -D -m 0755 $(@D)/tools/env/lib.a $(STAGING_DIR)/usr/lib/libubootenv.a
- $(INSTALL) -D -m 0644 $(@D)/tools/env/fw_env.h $(STAGING_DIR)/usr/include/fw_env.h
- endef
- define UBOOT_TOOLS_INSTALL_TARGET_CMDS
- $(UBOOT_TOOLS_INSTALL_MKIMAGE)
- $(UBOOT_TOOLS_INSTALL_MKEFICAPSULE)
- $(UBOOT_TOOLS_INSTALL_MKENVIMAGE)
- $(UBOOT_TOOLS_INSTALL_FWPRINTENV)
- $(UBOOT_TOOLS_INSTALL_DUMPIMAGE)
- $(UBOOT_TOOLS_INSTALL_FIT_CHECK_SIGN)
- endef
- # host-uboot-tools
- define HOST_UBOOT_TOOLS_CONFIGURE_CMDS
- mkdir -p $(@D)/include/config
- touch $(@D)/include/config/auto.conf
- mkdir -p $(@D)/include/generated
- touch $(@D)/include/generated/autoconf.h
- mkdir -p $(@D)/include/asm
- touch $(@D)/include/asm/linkage.h
- endef
- HOST_UBOOT_TOOLS_MAKE_OPTS = HOSTCC="$(HOSTCC)" \
- HOSTCFLAGS="$(HOST_CFLAGS)" \
- HOSTLDFLAGS="$(HOST_LDFLAGS)" \
- CONFIG_EFI_HAVE_CAPSULE_SUPPORT=y
- ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT),y)
- HOST_UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT=y CONFIG_MKIMAGE_DTC_PATH=dtc
- HOST_UBOOT_TOOLS_DEPENDENCIES += host-dtc
- endif
- ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT),y)
- HOST_UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT_SIGNATURE=y CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000
- HOST_UBOOT_TOOLS_DEPENDENCIES += host-openssl
- endif
- ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE),y)
- UBOOT_TOOLS_GENERATE_ENV_FILE = $(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE))
- # If BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE is left empty, we
- # will use the default environment provided in the U-Boot build
- # directory as boot-env-defaults.txt, which requires having uboot as a
- # dependency.
- # If BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE is not empty, is
- # might be referring to a file within the U-Boot source tree, so we
- # also need to have uboot as a dependency.
- ifeq ($(BR2_TARGET_UBOOT),y)
- HOST_UBOOT_TOOLS_DEPENDENCIES += uboot
- # Handle the case where BR2_PACKAGE_HOST_UBOOT_TOOLS_ENVIMAGE_SOURCE
- # is left empty, use the default U-Boot environment.
- ifeq ($(UBOOT_TOOLS_GENERATE_ENV_FILE),)
- 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
- endif # UBOOT_TOOLS_GENERATE_ENV_FILE
- endif # BR2_TARGET_UBOOT
- 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 not available, ENVIMAGE_SOURCE must be provided by user,
- # otherwise it 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
- define HOST_UBOOT_TOOLS_GENERATE_ENVIMAGE
- $(HOST_UBOOT_TOOLS_GENERATE_ENV_DEFAULTS)
- cat $(UBOOT_TOOLS_GENERATE_ENV_FILE) | \
- $(@D)/tools/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 $(@D)/tools/uboot-env.bin \
- -
- endef
- define HOST_UBOOT_TOOLS_INSTALL_ENVIMAGE
- $(INSTALL) -m 0755 -D $(@D)/tools/uboot-env.bin $(BINARIES_DIR)/uboot-env.bin
- endef
- 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
- define HOST_UBOOT_TOOLS_GENERATE_BOOT_SCRIPT
- $(@D)/tools/mkimage -C none -A $(MKIMAGE_ARCH) -T script \
- -d $(call qstrip,$(BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE)) \
- $(@D)/tools/boot.scr
- endef
- define HOST_UBOOT_TOOLS_INSTALL_BOOT_SCRIPT
- $(INSTALL) -m 0755 -D $(@D)/tools/boot.scr $(BINARIES_DIR)/boot.scr
- endef
- endif #BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT
- define HOST_UBOOT_TOOLS_BUILD_CMDS
- $(BR2_MAKE1) -C $(@D) $(HOST_UBOOT_TOOLS_MAKE_OPTS) tools-only
- $(HOST_UBOOT_TOOLS_GENERATE_ENVIMAGE)
- $(HOST_UBOOT_TOOLS_GENERATE_BOOT_SCRIPT)
- endef
- define HOST_UBOOT_TOOLS_INSTALL_CMDS
- $(INSTALL) -m 0755 -D $(@D)/tools/mkimage $(HOST_DIR)/bin/mkimage
- $(INSTALL) -m 0755 -D $(@D)/tools/mkeficapsule $(HOST_DIR)/bin/mkeficapsule
- $(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_INSTALL_ENVIMAGE)
- $(HOST_UBOOT_TOOLS_INSTALL_BOOT_SCRIPT)
- endef
- $(eval $(generic-package))
- $(eval $(host-generic-package))
- # Convenience variables for other mk files that make use of mkimage
- MKIMAGE = $(HOST_DIR)/bin/mkimage
- # mkimage supports alpha arc arm arm64 blackfin ia64 invalid m68k microblaze mips mips64 nds32 nios2 or1k powerpc riscv s390 sandbox sh sparc sparc64 x86 x86_64 xtensa
- # NORMALIZED_ARCH can be arm64 arc arm blackfin m68k microblaze mips nios2 powerpc sh sparc i386 x86_64 xtensa
- # For i386, we need to convert
- # For openrisc, we need to convert
- # For others, we'll just keep NORMALIZED_ARCH
- ifeq ($(NORMALIZED_ARCH),i386)
- MKIMAGE_ARCH = x86
- else ifeq ($(NORMALIZED_ARCH),openrisc)
- MKIMAGE_ARCH = or1k
- else
- MKIMAGE_ARCH = $(NORMALIZED_ARCH)
- endif
|