[PATCH V2] bcm4908: build flashable & bootable firmware images

Rafał Miłecki zajec5 at gmail.com
Mon Jan 18 03:37:22 EST 2021


From: Rafał Miłecki <rafal at milecki.pl>

BCM4908 bootloader requires firmware with JFFS2 image containing:
1. cferam.000
2. 94908.dtb
3. vmlinux.lz
4. device custom files

cferam.000 can be obtained from the bcm63xx-cfe repository. It requires
specifying directory path that is defined using COMPATIBLE variable.

For convenience directories with device custom files are named the same
way.

Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
V2: Use SUPPORTED_DEVICES
---
 target/linux/bcm4908/image/Makefile             | 17 +++++++++++++++++
 .../image/asus,gt-ac5300/rom/etc/image_ident    |  2 ++
 .../image/asus,gt-ac5300/rom/etc/image_version  |  1 +
 .../image/netgear,r8000p/etc/image_ident        |  4 ++++
 .../image/netgear,r8000p/etc/image_version      |  1 +
 5 files changed, 25 insertions(+)
 create mode 100644 target/linux/bcm4908/image/asus,gt-ac5300/rom/etc/image_ident
 create mode 100644 target/linux/bcm4908/image/asus,gt-ac5300/rom/etc/image_version
 create mode 100644 target/linux/bcm4908/image/netgear,r8000p/etc/image_ident
 create mode 100644 target/linux/bcm4908/image/netgear,r8000p/etc/image_version

diff --git a/target/linux/bcm4908/image/Makefile b/target/linux/bcm4908/image/Makefile
index f5db38915d..03af253381 100644
--- a/target/linux/bcm4908/image/Makefile
+++ b/target/linux/bcm4908/image/Makefile
@@ -13,6 +13,19 @@ define Build/bcm4908kernel
 	mv $@.new $@
 endef
 
+define Build/bcm4908img
+	rm -fr $@-bootfs
+	mkdir -p $@-bootfs
+	cp -r $(firstword $(SUPPORTED_DEVICES))/* $@-bootfs/
+	touch $@-bootfs/1-dummy
+	cp $(DTS_DIR)/$(firstword $(DEVICE_DTS)).dtb $@-bootfs/94908.dtb
+	cp $(KDIR)/bcm63xx-cfe/$(firstword $(SUPPORTED_DEVICES))/cferam.000 $@-bootfs/
+	cp $(IMAGE_KERNEL) $@-bootfs/vmlinux.lz
+
+	$(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad --little-endian --squash-uids -v -e 128KiB -o $@-bootfs.jffs2 -d $@-bootfs -m none -n
+	$(STAGING_DIR_HOST)/bin/bcm4908img create $@ -f $@-bootfs.jffs2
+endef
+
 define Device/Default
   KERNEL := kernel-bin | bcm4908lzma | bcm4908kernel
   KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
@@ -29,7 +42,9 @@ define Device/asus_gt-ac5300
   DEVICE_VENDOR := Asus
   DEVICE_MODEL := GT-AC5300
   DEVICE_DTS := broadcom/bcm4908/bcm4908-asus-gt-ac5300
+  SUPPORTED_DEVICES := asus,gt-ac5300
   IMAGES := bin
+  IMAGE/bin := bcm4908img
 endef
 TARGET_DEVICES += asus_gt-ac5300
 
@@ -37,7 +52,9 @@ define Device/netgear_r8000p
   DEVICE_VENDOR := Netgear
   DEVICE_MODEL := R8000P
   DEVICE_DTS := broadcom/bcm4908/bcm4906-netgear-r8000p
+  SUPPORTED_DEVICES := netgear,r8000p
   IMAGES := bin
+  IMAGE/bin := bcm4908img
 endef
 TARGET_DEVICES += netgear_r8000p
 
diff --git a/target/linux/bcm4908/image/asus,gt-ac5300/rom/etc/image_ident b/target/linux/bcm4908/image/asus,gt-ac5300/rom/etc/image_ident
new file mode 100644
index 0000000000..9e73fe74a7
--- /dev/null
+++ b/target/linux/bcm4908/image/asus,gt-ac5300/rom/etc/image_ident
@@ -0,0 +1,2 @@
+@(#) $imageversion: HND1731918 $
+@(#) $imageversion: HND1731918 $
diff --git a/target/linux/bcm4908/image/asus,gt-ac5300/rom/etc/image_version b/target/linux/bcm4908/image/asus,gt-ac5300/rom/etc/image_version
new file mode 100644
index 0000000000..fd67746f78
--- /dev/null
+++ b/target/linux/bcm4908/image/asus,gt-ac5300/rom/etc/image_version
@@ -0,0 +1 @@
+HND1731918
diff --git a/target/linux/bcm4908/image/netgear,r8000p/etc/image_ident b/target/linux/bcm4908/image/netgear,r8000p/etc/image_ident
new file mode 100644
index 0000000000..15cb69d1af
--- /dev/null
+++ b/target/linux/bcm4908/image/netgear,r8000p/etc/image_ident
@@ -0,0 +1,4 @@
+@(#) $imageversion: 5024HNDrc11R8000P2602103 $
+@(#) $imageversion: 5024HNDrc11R8000P2602103 $
+@(#) $changelist: Changelist: REL_502HND04rc11_BISON04T_REL_7_14_170_34Revision:   765096 $
+@(#) $changelist: Changelist: REL_502HND04rc11_BISON04T_REL_7_14_170_34Revision:   765096 $
diff --git a/target/linux/bcm4908/image/netgear,r8000p/etc/image_version b/target/linux/bcm4908/image/netgear,r8000p/etc/image_version
new file mode 100644
index 0000000000..f469dfed31
--- /dev/null
+++ b/target/linux/bcm4908/image/netgear,r8000p/etc/image_version
@@ -0,0 +1 @@
+5024HNDrc11R8000P2602103
-- 
2.26.2




More information about the openwrt-devel mailing list