From cc9c72529cdae95d03afdc6a52b9a24f6dedca90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Wed, 20 Jul 2022 13:47:05 +0200 Subject: bcm4908: build bootfs image per-SoC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 (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 +++++++ target/linux/bcm4908/image/bootfs-generic.its | 123 -------------------------- target/linux/bcm4908/image/bootfs.itsi | 73 +++++++++++++++ 5 files changed, 165 insertions(+), 132 deletions(-) create mode 100644 target/linux/bcm4908/image/bootfs-bcm4908.its create mode 100644 target/linux/bcm4908/image/bootfs-bcm4912.its delete mode 100644 target/linux/bcm4908/image/bootfs-generic.its create mode 100644 target/linux/bcm4908/image/bootfs.itsi 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-generic.its deleted file mode 100644 index d32e094eb5..0000000000 --- a/target/linux/bcm4908/image/bootfs-generic.its +++ /dev/null @@ -1,123 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT - -/dts-v1/; - -/ { - description = "OpenWrt bootfs image"; - #address-cells = <1>; - - images { - atf { - description = "ATF"; - data = /incbin/("${images_dir}/bl31.bin"); - type = "firmware"; - arch = "arm64"; - os = "arm-trusted-firmware"; - compression = "none"; - load = <0x4000>; - entry = <0x4000>; - - hash-1 { - algo = "sha256"; - }; - }; - - uboot { - description = "U-Boot"; - data = /incbin/("${images_dir}/u-boot/u-boot-nodtb.bin"); - os = "U-Boot"; - arch = "arm64"; - compression = "none"; - load = <0x1000000>; - entry = <0x1000000>; - - hash-1 { - algo = "sha256"; - }; - }; - - kernel { - description = "Linux kernel"; - data = /incbin/("${kernel}"); - type = "kernel"; - os = "linux"; - arch = "arm64"; - compression = "lzma"; - load = <0x80000>; - entry = <0x80000>; - - hash-1 { - algo = "sha256"; - }; - }; - - fdt_uboot { - description = "dtb"; - data = /incbin/("${images_dir}/u-boot/u-boot.dtb"); - type = "flat_dt"; - compression = "none"; - - hash-1 { - 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 { - default = "conf_uboot"; - - conf_uboot { - description = "BRCM 63xxx with uboot"; - 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"; - }; - }; -}; diff --git a/target/linux/bcm4908/image/bootfs.itsi b/target/linux/bcm4908/image/bootfs.itsi new file mode 100644 index 0000000000..ceaaf10b2b --- /dev/null +++ b/target/linux/bcm4908/image/bootfs.itsi @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +/ { + description = "OpenWrt bootfs image"; + #address-cells = <1>; + + images { + atf { + description = "ATF"; + data = /incbin/("${images_dir}/bl31.bin"); + type = "firmware"; + arch = "arm64"; + os = "arm-trusted-firmware"; + compression = "none"; + load = <0x4000>; + entry = <0x4000>; + + hash-1 { + algo = "sha256"; + }; + }; + + uboot { + description = "U-Boot"; + os = "U-Boot"; + arch = "arm64"; + compression = "none"; + load = <0x1000000>; + entry = <0x1000000>; + + hash-1 { + algo = "sha256"; + }; + }; + + kernel { + description = "Linux kernel"; + data = /incbin/("${kernel}"); + type = "kernel"; + os = "linux"; + arch = "arm64"; + compression = "lzma"; + load = <0x80000>; + entry = <0x80000>; + + hash-1 { + algo = "sha256"; + }; + }; + + fdt_uboot { + description = "dtb"; + type = "flat_dt"; + compression = "none"; + + hash-1 { + algo = "sha256"; + }; + }; + }; + + configurations { + default = "conf_uboot"; + + conf_uboot { + description = "BRCM 63xxx with uboot"; + fdt = "fdt_uboot"; + loadables = "atf", "uboot"; + }; + }; +}; -- cgit v1.2.3