summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/u-boot/Config.in12
-rw-r--r--target/u-boot/Makefile.in25
2 files changed, 35 insertions, 2 deletions
diff --git a/target/u-boot/Config.in b/target/u-boot/Config.in
index 66ebaf50a..a01457a47 100644
--- a/target/u-boot/Config.in
+++ b/target/u-boot/Config.in
@@ -70,3 +70,15 @@ config BR2_TARGET_UBOOT_SILENT
help
If the option has been enabled, the output can be
silenced by setting the environment variable "silent".
+
+config BR2_TARGET_UBOOT_TOOL_MKIMAGE
+ bool "mkimage tool in target"
+ depends on BR2_TARGET_UBOOT
+ help
+ Install mkimage tool in target.
+
+config BR2_TARGET_UBOOT_TOOL_ENV
+ bool "fw_printenv tool in target"
+ depends on BR2_TARGET_UBOOT
+ help
+ Install fw_printenv / fw_setenv tools in target.
diff --git a/target/u-boot/Makefile.in b/target/u-boot/Makefile.in
index 7b7bf1352..c6abe6ec2 100644
--- a/target/u-boot/Makefile.in
+++ b/target/u-boot/Makefile.in
@@ -20,6 +20,15 @@ else
U_BOOT_INC_CONF_FILE:=$(U_BOOT_DIR)/include/config.h
endif
+U_BOOT_TARGET_TOOLS:=
+ifeq ($(strip $(BR2_TARGET_UBOOT_TOOL_MKIMAGE)),y)
+U_BOOT_TARGET_TOOLS+=$(TARGET_DIR)/usr/bin/mkimage
+endif
+ifeq ($(strip $(BR2_TARGET_UBOOT_TOOL_ENV)),y)
+U_BOOT_TARGET_TOOLS+=$(TARGET_DIR)/usr/sbin/fw_printenv
+endif
+
+
# Define a helper function
define insert_define
@echo "#ifdef $(strip $(1))" >> $(U_BOOT_INC_CONF_FILE)
@@ -113,11 +122,23 @@ $(BINARIES_DIR)/$(U_BOOT_BIN): $(U_BOOT_DIR)/$(U_BOOT_BIN)
cp -dpf $(U_BOOT_DIR)/$(U_BOOT_BIN) $(BINARIES_DIR)
cp -dpf $(U_BOOT_DIR)/tools/$(U_BOOT_TOOLS_BIN) $(STAGING_DIR)/usr/bin/
-u-boot: gcc $(BINARIES_DIR)/$(U_BOOT_BIN)
+$(TARGET_DIR)/usr/bin/mkimage: $(U_BOOT_DIR)/$(U_BOOT_BIN)
+ $(TARGET_CC) -I$(U_BOOT_DIR)/include -DUSE_HOSTCC -o $@ \
+ $(U_BOOT_DIR)/tools/mkimage.c $(U_BOOT_DIR)/tools/crc32.c
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
+
+$(TARGET_DIR)/usr/sbin/fw_printenv: $(U_BOOT_DIR)/$(U_BOOT_BIN)
+ $(TARGET_CC) -I$(U_BOOT_DIR)/include -I$(LINUX_HEADERS_DIR)/include \
+ -DUSE_HOSTCC -o $@ \
+ $(U_BOOT_DIR)/tools/env/*.c $(U_BOOT_DIR)/tools/crc32.c
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
+ ln -s fw_printenv $(TARGET_DIR)/usr/sbin/fw_setenv
+
+u-boot: gcc $(BINARIES_DIR)/$(U_BOOT_BIN) $(U_BOOT_TARGET_TOOLS)
u-boot-clean:
-$(MAKE) -C $(U_BOOT_DIR) clean
- rm -f $(STAGING_DIR)/usr/bin/$(U_BOOT_TOOLS_BIN)
+ rm -f $(STAGING_DIR)/usr/bin/$(U_BOOT_TOOLS_BIN) $(U_BOOT_TARGET_TOOLS)
u-boot-dirclean:
rm -rf $(U_BOOT_DIR)