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@milecki.pl>
(cherry picked from commit 9b4fc4cae9)
This commit is contained in:
Rafał Miłecki 2021-04-01 17:06:47 +02:00
parent 7b3bde801b
commit 91e0865ff5
5 changed files with 62 additions and 2 deletions

View File

@ -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))

View File

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

View 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))

View 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)