瀏覽代碼

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 <[email protected]>
Rafał Miłecki 3 年之前
父節點
當前提交
6ae2f7ff47

+ 10 - 9
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 += ASUS_PRODUCTID ASUS_BUILD_NO ASUS_FW_REV ASUS_EXT_NO
 DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION
 DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION
-DEVICE_VARS += PKGTB_ITS
+DEVICE_VARS += SOC
 
 
 define Image/Prepare
 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
 endef
 
 
 define Build/bootfs
 define Build/bootfs
 	cat $@ | $(STAGING_DIR_HOST)/bin/lzma e -eos -si -so > [email protected]
 	cat $@ | $(STAGING_DIR_HOST)/bin/lzma e -eos -si -so > [email protected]
 	mv [email protected] $@
 	mv [email protected] $@
-	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
 endef
 
 
 define Build/bcm4908asus
 define Build/bcm4908asus
@@ -54,8 +55,8 @@ endef
 
 
 define Build/pkgtb
 define Build/pkgtb
 	mv $@ [email protected]
 	mv $@ [email protected]
-	cp $(PKGTB_ITS) [email protected]
-	sed -i "s=\$${bootfs}=$(KDIR)/bootfs-generic.itb=" [email protected]
+	cp pkgtb-$(SOC).its [email protected]
+	sed -i "s=\$${bootfs}=$(KDIR)/bootfs-$(SOC).itb=" [email protected]
 	sed -i "s=\$${rootfs}[email protected]=" [email protected]
 	sed -i "s=\$${rootfs}[email protected]=" [email protected]
 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f [email protected] $@
 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f [email protected] $@
 endef
 endef
@@ -129,7 +130,7 @@ endef
 define Device/netgear_raxe500
 define Device/netgear_raxe500
   DEVICE_MODEL := RAXE500
   DEVICE_MODEL := RAXE500
   $(Device/netgear)
   $(Device/netgear)
-  PKGTB_ITS := pkgtb-bcm4908.its
+  SOC := bcm4908
   NETGEAR_BOARD_ID := U12H449T00_NETGEAR
   NETGEAR_BOARD_ID := U12H449T00_NETGEAR
 endef
 endef
 # TARGET_DEVICES += netgear_raxe500
 # TARGET_DEVICES += netgear_raxe500

+ 48 - 0
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-nodtb.bin");
+		};
+
+		fdt_uboot {
+			data = /incbin/("${images_dir}/u-boot/u-boot.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";
+		};
+	};
+};

+ 34 - 0
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-nodtb.bin");
+		};
+
+		fdt_uboot {
+			data = /incbin/("${images_dir}/u-boot/u-boot.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";
+		};
+	};
+};

+ 0 - 50
target/linux/bcm4908/image/bootfs-generic.its → target/linux/bcm4908/image/bootfs.itsi

@@ -24,7 +24,6 @@
 
 
 		uboot {
 		uboot {
 			description = "U-Boot";
 			description = "U-Boot";
-			data = /incbin/("${images_dir}/u-boot/u-boot-nodtb.bin");
 			os = "U-Boot";
 			os = "U-Boot";
 			arch = "arm64";
 			arch = "arm64";
 			compression = "none";
 			compression = "none";
@@ -53,7 +52,6 @@
 
 
 		fdt_uboot {
 		fdt_uboot {
 			description = "dtb";
 			description = "dtb";
-			data = /incbin/("${images_dir}/u-boot/u-boot.dtb");
 			type = "flat_dt";
 			type = "flat_dt";
 			compression = "none";
 			compression = "none";
 
 
@@ -61,36 +59,6 @@
 				algo = "sha256";
 				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 {
 	configurations {
@@ -101,23 +69,5 @@
 			fdt = "fdt_uboot";
 			fdt = "fdt_uboot";
 			loadables = "atf", "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";
-		};
 	};
 	};
 };
 };