Просмотр исходного кода

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 <[email protected]>
Rafał Miłecki 4 лет назад
Родитель
Сommit
9b4fc4cae9

+ 52 - 0
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 <[email protected]>
+  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))

+ 7 - 0
package/utils/bcm4908img/src/Makefile

@@ -0,0 +1,7 @@
+all: bcm4908img
+
+bcm4908img:
+	$(CC) $(CFLAGS) -o $@ bcm4908img.c -Wall
+
+clean:
+	rm -f bcm4908img

+ 0 - 0
tools/firmware-utils/src/bcm4908img.c → package/utils/bcm4908img/src/bcm4908img.c


+ 3 - 1
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))

+ 0 - 1
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)