]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
firmware-utils: bcm4908img: convert into a package
authorRafał Miłecki <rafal@milecki.pl>
Thu, 1 Apr 2021 15:06:47 +0000 (17:06 +0200)
committerRafał Miłecki <rafal@milecki.pl>
Thu, 8 Apr 2021 08:50:59 +0000 (10:50 +0200)
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@milecki.pl>
package/utils/bcm4908img/Makefile [new file with mode: 0644]
package/utils/bcm4908img/src/Makefile [new file with mode: 0644]
package/utils/bcm4908img/src/bcm4908img.c [moved from tools/firmware-utils/src/bcm4908img.c with 100% similarity]
target/linux/bcm4908/Makefile
tools/firmware-utils/Makefile

diff --git a/package/utils/bcm4908img/Makefile b/package/utils/bcm4908img/Makefile
new file mode 100644 (file)
index 0000000..108fe60
--- /dev/null
@@ -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@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 (file)
index 0000000..72f8e30
--- /dev/null
@@ -0,0 +1,7 @@
+all: bcm4908img
+
+bcm4908img:
+       $(CC) $(CFLAGS) -o $@ bcm4908img.c -Wall
+
+clean:
+       rm -f bcm4908img
index 5bee66fe2b429d403a297663f061dc7d892943d6..4edd0ccfa853f2ebc08958a61d130ae276030cee 100644 (file)
@@ -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))
index e4a31b6fd00972fdfd0d2aa02006cb6205aab3eb..28f8f0555a55eee70db53e16ab7c2fe091899ad6 100644 (file)
@@ -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)