[openwrt/openwrt] bcm4908: build bootfs image per-SoC

LEDE Commits lede-commits at lists.infradead.org
Fri Sep 2 03:45:35 PDT 2022


rmilecki pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/cc9c72529cdae95d03afdc6a52b9a24f6dedca90

commit cc9c72529cdae95d03afdc6a52b9a24f6dedca90
Author: Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Wed Jul 20 13:47:05 2022 +0200

    bcm4908: build bootfs image per-SoC
    
    In theory we could have just 1 bootfs image for all devices as each
    device has its own entry in the "configurations" node. It doesn't work
    well with default configuration though.
    
    If something goes wrong U-Boot SPL can be interrupted (by pressing A) to
    enter its minimalistic menu. It allows ignoring boardid. In such case
    bootfs default configuration is used.
    
    For above reason each SoC family (BCM4908, BCM4912) should have its own
    bootfs built. It allows each of them to have working default
    configuration.
    
    Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
    (cherry picked from commit 6ae2f7ff4737ec8dbec026fc6c02f7d1850b521c)
---
 target/linux/bcm4908/image/Makefile                | 19 ++++----
 target/linux/bcm4908/image/bootfs-bcm4908.its      | 48 +++++++++++++++++++++
 target/linux/bcm4908/image/bootfs-bcm4912.its      | 34 +++++++++++++++
 .../image/{bootfs-generic.its => bootfs.itsi}      | 50 ----------------------
 4 files changed, 92 insertions(+), 59 deletions(-)

diff --git a/target/linux/bcm4908/image/Makefile b/target/linux/bcm4908/image/Makefile
index ba7cdc3ae7..aba4d377f8 100644
--- a/target/linux/bcm4908/image/Makefile
+++ b/target/linux/bcm4908/image/Makefile
@@ -5,19 +5,20 @@ include $(INCLUDE_DIR)/image.mk
 
 DEVICE_VARS += ASUS_PRODUCTID ASUS_BUILD_NO ASUS_FW_REV ASUS_EXT_NO
 DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION
-DEVICE_VARS += PKGTB_ITS
+DEVICE_VARS += SOC
 
 define Image/Prepare
-	cp bootfs-generic.its $(KDIR)/
-	sed -i "s=\$$$${images_dir}=$(STAGING_DIR_IMAGE)=" $(KDIR)/bootfs-generic.its
-	sed -i "s=\$$$${dts_dir}=$(DTS_DIR)=" $(KDIR)/bootfs-generic.its
+	cp bootfs*.its* $(KDIR)/
+	sed -i "s=\$$$${images_dir}=$(STAGING_DIR_IMAGE)=" $(KDIR)/bootfs*.its*
+	sed -i "s=\$$$${dts_dir}=$(DTS_DIR)=" $(KDIR)/bootfs*.its*
 endef
 
 define Build/bootfs
 	cat $@ | $(STAGING_DIR_HOST)/bin/lzma e -eos -si -so > $@.tmp
 	mv $@.tmp $@
-	sed -i "s=\$${kernel}=$@=" $(KDIR)/bootfs-generic.its
-	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/bootfs-generic.its $(KDIR)/bootfs-generic.itb
+	sed -i "s=\$${kernel}=$@=" $(KDIR)/bootfs*.its*
+	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/bootfs-bcm4908.its $(KDIR)/bootfs-bcm4908.itb
+	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/bootfs-bcm4912.its $(KDIR)/bootfs-bcm4912.itb
 endef
 
 define Build/bcm4908asus
@@ -54,8 +55,8 @@ endef
 
 define Build/pkgtb
 	mv $@ $@.rootfs
-	cp $(PKGTB_ITS) $@.its
-	sed -i "s=\$${bootfs}=$(KDIR)/bootfs-generic.itb=" $@.its
+	cp pkgtb-$(SOC).its $@.its
+	sed -i "s=\$${bootfs}=$(KDIR)/bootfs-$(SOC).itb=" $@.its
 	sed -i "s=\$${rootfs}=$@.rootfs=" $@.its
 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@
 endef
@@ -129,7 +130,7 @@ endef
 define Device/netgear_raxe500
   DEVICE_MODEL := RAXE500
   $(Device/netgear)
-  PKGTB_ITS := pkgtb-bcm4908.its
+  SOC := bcm4908
   NETGEAR_BOARD_ID := U12H449T00_NETGEAR
 endef
 # TARGET_DEVICES += netgear_raxe500
diff --git a/target/linux/bcm4908/image/bootfs-bcm4908.its b/target/linux/bcm4908/image/bootfs-bcm4908.its
new file mode 100644
index 0000000000..d5ac21fd6a
--- /dev/null
+++ b/target/linux/bcm4908/image/bootfs-bcm4908.its
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/include/ "bootfs.itsi"
+
+/ {
+	images {
+		uboot {
+			data = /incbin/("${images_dir}/u-boot/u-boot-bcm4908.bin");
+		};
+
+		fdt_uboot {
+			data = /incbin/("${images_dir}/u-boot/u-boot-bcm4908.dtb");
+		};
+
+		fdt_uboot_RAX220 {
+			description = "dtb";
+			data = /incbin/("${images_dir}/u-boot/RAX220.dtb");
+			type = "flat_dt";
+			compression = "none";
+
+			hash-1 {
+				algo = "sha256";
+			};
+		};
+
+		fdt_linux_RAX220 {
+			description = "dtb";
+			data = /incbin/("${dts_dir}/broadcom/bcm4908/bcm4908-netgear-raxe500.dtb");
+			arch = "arm64";
+			type = "flat_dt";
+			compression = "none";
+		};
+	};
+
+	configurations {
+		conf_ub_RAX220 {
+			description = "RAX220";
+			fdt = "fdt_uboot_RAX220";
+			loadables = "atf", "uboot";
+		};
+
+		conf_lx_RAX220 {
+			description = "BRCM 63xxx linux";
+			kernel = "kernel";
+			fdt = "fdt_linux_RAX220";
+		};
+	};
+};
diff --git a/target/linux/bcm4908/image/bootfs-bcm4912.its b/target/linux/bcm4908/image/bootfs-bcm4912.its
new file mode 100644
index 0000000000..6f4548956c
--- /dev/null
+++ b/target/linux/bcm4908/image/bootfs-bcm4912.its
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/include/ "bootfs.itsi"
+
+/ {
+	images {
+		uboot {
+			data = /incbin/("${images_dir}/u-boot/u-boot-bcm4912.bin");
+		};
+
+		fdt_uboot {
+			data = /incbin/("${images_dir}/u-boot/u-boot-bcm4912.dtb");
+		};
+
+		fdt_GTAX6000 {
+			description = "dtb";
+			data = /incbin/("${images_dir}/u-boot/GTAX6000.dtb");
+			type = "flat_dt";
+			compression = "none";
+
+			hash-1 {
+				algo = "sha256";
+			};
+		};
+	};
+
+	configurations {
+		conf_ub_GTAX6000 {
+			description = "GTAX6000";
+			fdt = "fdt_GTAX6000";
+			loadables = "atf", "uboot";
+		};
+	};
+};
diff --git a/target/linux/bcm4908/image/bootfs-generic.its b/target/linux/bcm4908/image/bootfs.itsi
similarity index 52%
rename from target/linux/bcm4908/image/bootfs-generic.its
rename to target/linux/bcm4908/image/bootfs.itsi
index d32e094eb5..ceaaf10b2b 100644
--- a/target/linux/bcm4908/image/bootfs-generic.its
+++ b/target/linux/bcm4908/image/bootfs.itsi
@@ -24,7 +24,6 @@
 
 		uboot {
 			description = "U-Boot";
-			data = /incbin/("${images_dir}/u-boot/u-boot-nodtb.bin");
 			os = "U-Boot";
 			arch = "arm64";
 			compression = "none";
@@ -53,7 +52,6 @@
 
 		fdt_uboot {
 			description = "dtb";
-			data = /incbin/("${images_dir}/u-boot/u-boot.dtb");
 			type = "flat_dt";
 			compression = "none";
 
@@ -61,36 +59,6 @@
 				algo = "sha256";
 			};
 		};
-
-		fdt_GTAX6000 {
-			description = "dtb";
-			data = /incbin/("${images_dir}/u-boot/GTAX6000.dtb");
-			type = "flat_dt";
-			compression = "none";
-
-			hash-1 {
-				algo = "sha256";
-			};
-		};
-
-		fdt_uboot_RAX220 {
-			description = "dtb";
-			data = /incbin/("${images_dir}/u-boot/RAX220.dtb");
-			type = "flat_dt";
-			compression = "none";
-
-			hash-1 {
-				algo = "sha256";
-			};
-		};
-
-		fdt_linux_RAX220 {
-			description = "dtb";
-			data = /incbin/("${dts_dir}/broadcom/bcm4908/bcm4908-netgear-raxe500.dtb");
-			arch = "arm64";
-			type = "flat_dt";
-			compression = "none";
-		};
 	};
 
 	configurations {
@@ -101,23 +69,5 @@
 			fdt = "fdt_uboot";
 			loadables = "atf", "uboot";
 		};
-
-		conf_ub_GTAX6000 {
-			description = "GTAX6000";
-			fdt = "fdt_GTAX6000";
-			loadables = "atf", "uboot";
-		};
-
-		conf_ub_RAX220 {
-			description = "RAX220";
-			fdt = "fdt_uboot_RAX220";
-			loadables = "atf", "uboot";
-		};
-
-		conf_lx_RAX220 {
-			description = "BRCM 63xxx linux";
-			kernel = "kernel";
-			fdt = "fdt_linux_RAX220";
-		};
 	};
 };




More information about the lede-commits mailing list