[openwrt/openwrt] firmware-utils: bcm4908img: convert into a package

LEDE Commits lede-commits at lists.infradead.org
Thu Apr 8 09:52:05 BST 2021


rmilecki pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/9b4fc4cae9fa0cd0cd9060e1c9d33320c3249ced

commit 9b4fc4cae9fa0cd0cd9060e1c9d33320c3249ced
Author: Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Thu Apr 1 17:06:47 2021 +0200

    firmware-utils: bcm4908img: convert into a package
    
    bcm4908img is a tool managing BCM4908 platform images. It's used for
    creating them as well as checking, modifying and extracting data from.
    
    It's required by both: host (for building firmware images) and target
    (for sysupgrade purposes). Make it a host/target package.
    
    Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
 package/utils/bcm4908img/Makefile                  | 52 ++++++++++++++++++++++
 package/utils/bcm4908img/src/Makefile              |  7 +++
 .../utils/bcm4908img}/src/bcm4908img.c             |  0
 target/linux/bcm4908/Makefile                      |  4 +-
 tools/firmware-utils/Makefile                      |  1 -
 5 files changed, 62 insertions(+), 2 deletions(-)

diff --git a/package/utils/bcm4908img/Makefile b/package/utils/bcm4908img/Makefile
new file mode 100644
index 0000000000..108fe600e5
--- /dev/null
+++ b/package/utils/bcm4908img/Makefile
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bcm4908img
+PKG_RELEASE:=1
+
+PKG_BUILD_DEPENDS := bcm4908img/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+
+define Package/bcm4908img
+  SECTION:=utils
+  CATEGORY:=Base system
+  TITLE:=Utility handling BCM4908 images
+  MAINTAINER:=Rafał Miłecki <rafal at milecki.pl>
+  DEPENDS:=@TARGET_bcm4908
+endef
+
+define Package/bcm4908img/description
+  CFE bootloader for BCM4908 uses custom image format. It consists of:
+  1. Optional cferom image
+  2. bootfs JFFS2 partition (cferam, kernel, DTB and optional helper files)
+  3. padding
+  4. rootfs simply appended to the bootfs + padding
+  5. tail with checksum and basic device info
+
+  This util allows creating, modifying and extracting from BCM4908 images.
+endef
+
+define Host/Prepare
+  $(CP) ./src/* $(HOST_BUILD_DIR)
+endef
+
+define Build/Compile
+	$(MAKE) -C $(PKG_BUILD_DIR) \
+		CC="$(TARGET_CC)" \
+		CFLAGS="$(TARGET_CFLAGS) -Wall"
+endef
+
+define Package/bcm4908img/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/bcm4908img $(1)/usr/bin/
+endef
+
+define Host/Install
+	$(INSTALL_BIN) $(HOST_BUILD_DIR)/bcm4908img $(STAGING_DIR_HOST)/bin/
+endef
+
+$(eval $(call BuildPackage,bcm4908img))
+$(eval $(call HostBuild))
diff --git a/package/utils/bcm4908img/src/Makefile b/package/utils/bcm4908img/src/Makefile
new file mode 100644
index 0000000000..72f8e30d68
--- /dev/null
+++ b/package/utils/bcm4908img/src/Makefile
@@ -0,0 +1,7 @@
+all: bcm4908img
+
+bcm4908img:
+	$(CC) $(CFLAGS) -o $@ bcm4908img.c -Wall
+
+clean:
+	rm -f bcm4908img
diff --git a/tools/firmware-utils/src/bcm4908img.c b/package/utils/bcm4908img/src/bcm4908img.c
similarity index 100%
rename from tools/firmware-utils/src/bcm4908img.c
rename to package/utils/bcm4908img/src/bcm4908img.c
diff --git a/target/linux/bcm4908/Makefile b/target/linux/bcm4908/Makefile
index 5bee66fe2b..4edd0ccfa8 100644
--- a/target/linux/bcm4908/Makefile
+++ b/target/linux/bcm4908/Makefile
@@ -20,6 +20,8 @@ include $(INCLUDE_DIR)/target.mk
 
 KERNELNAME:=Image dtbs
 
-DEFAULT_PACKAGES += kmod-usb-ohci kmod-usb2 kmod-usb3
+DEFAULT_PACKAGES += \
+	bcm4908img \
+	kmod-usb-ohci kmod-usb2 kmod-usb3
 
 $(eval $(call BuildTarget))
diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile
index e4a31b6fd0..28f8f0555a 100644
--- a/tools/firmware-utils/Makefile
+++ b/tools/firmware-utils/Makefile
@@ -28,7 +28,6 @@ define Host/Compile
 	$(call cc,addpattern)
 	$(call cc,asustrx)
 	$(call cc,bcm4908asus,-Wall)
-	$(call cc,bcm4908img,-Wall)
 	$(call cc,bcm4908kernel,-Wall)
 	$(call cc,buffalo-enc buffalo-lib,-Wall)
 	$(call cc,buffalo-tag buffalo-lib,-Wall)



More information about the lede-commits mailing list