bcm4908: build flashable & bootable firmware images
authorRafał Miłecki <rafal@milecki.pl>
Wed, 20 Jan 2021 08:21:21 +0000 (09:21 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Thu, 21 Jan 2021 12:18:42 +0000 (13:18 +0100)
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.
device custom files are stored in images dir.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
target/linux/bcm4908/image/Makefile
target/linux/bcm4908/image/asus_gt-ac5300/rom/etc/image_ident [new file with mode: 0644]
target/linux/bcm4908/image/asus_gt-ac5300/rom/etc/image_version [new file with mode: 0644]
target/linux/bcm4908/image/netgear_r8000p/etc/image_ident [new file with mode: 0644]
target/linux/bcm4908/image/netgear_r8000p/etc/image_version [new file with mode: 0644]

index f5db38915de32a5d29c3de66a790345dfd945e34..afe88e6902c44c29b11ed4aa83d59a596ceb1014 100644 (file)
@@ -13,6 +13,19 @@ define Build/bcm4908kernel
        mv $@.new $@
 endef
 
+define Build/bcm4908img
+       rm -fr $@-bootfs
+       mkdir -p $@-bootfs
+       cp -r $(DEVICE_NAME)/* $@-bootfs/
+       touch $@-bootfs/1-dummy
+       cp $(DTS_DIR)/$(firstword $(DEVICE_DTS)).dtb $@-bootfs/94908.dtb
+       cp $(KDIR)/bcm63xx-cfe/$(subst _,$(comma),$(DEVICE_NAME))/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)
@@ -30,6 +43,7 @@ define Device/asus_gt-ac5300
   DEVICE_MODEL := GT-AC5300
   DEVICE_DTS := broadcom/bcm4908/bcm4908-asus-gt-ac5300
   IMAGES := bin
+  IMAGE/bin := bcm4908img
 endef
 TARGET_DEVICES += asus_gt-ac5300
 
@@ -38,6 +52,7 @@ define Device/netgear_r8000p
   DEVICE_MODEL := R8000P
   DEVICE_DTS := broadcom/bcm4908/bcm4906-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 (file)
index 0000000..9e73fe7
--- /dev/null
@@ -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 (file)
index 0000000..fd67746
--- /dev/null
@@ -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 (file)
index 0000000..15cb69d
--- /dev/null
@@ -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 (file)
index 0000000..f469dfe
--- /dev/null
@@ -0,0 +1 @@
+5024HNDrc11R8000P2602103