瀏覽代碼

u-boot: tools in target (mkimage, fw_printenv and fw_setenv)

Peter Korsgaard 17 年之前
父節點
當前提交
5cc50fcb68
共有 2 個文件被更改,包括 35 次插入2 次删除
  1. 12 0
      target/u-boot/Config.in
  2. 23 2
      target/u-boot/Makefile.in

+ 12 - 0
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.

+ 23 - 2
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)