diff --git a/package/boot/uboot-tools/uboot-envtools/files/airoha_an7583 b/package/boot/uboot-tools/uboot-envtools/files/airoha_an7583 index d691a71315a..f250afbbfe2 100644 --- a/package/boot/uboot-tools/uboot-envtools/files/airoha_an7583 +++ b/package/boot/uboot-tools/uboot-envtools/files/airoha_an7583 @@ -15,6 +15,9 @@ case "$board" in nokia,xg-040g-mf) ubootenv_add_mtd "u-boot-env" "0x1c000" "0x4000" "0x4000" ;; +nokia,xg-040g-mf-ubi) + ubootenv_add_ubi_default + ;; esac config_load ubootenv diff --git a/target/linux/airoha/an7583/base-files/etc/board.d/01_leds b/target/linux/airoha/an7583/base-files/etc/board.d/01_leds index 099d51bdbce..dbe380ec559 100644 --- a/target/linux/airoha/an7583/base-files/etc/board.d/01_leds +++ b/target/linux/airoha/an7583/base-files/etc/board.d/01_leds @@ -9,7 +9,8 @@ board_config_update board=$(board_name) case "$board" in -nokia,xg-040g-mf) +nokia,xg-040g-mf|\ +nokia,xg-040g-mf-ubi) ucidef_set_led_netdev "lan2" "lan2" "mt7530-0:0a:green:lan-2" "lan2" "link tx rx" ucidef_set_led_netdev "lan3" "lan3" "mt7530-0:0b:green:lan-3" "lan3" "link tx rx" ucidef_set_led_netdev "lan4" "lan4" "mt7530-0:0c:green:lan-4" "lan4" "link tx rx" diff --git a/target/linux/airoha/an7583/base-files/etc/board.d/02_network b/target/linux/airoha/an7583/base-files/etc/board.d/02_network index 482a18fbfcd..952e2ddc88c 100644 --- a/target/linux/airoha/an7583/base-files/etc/board.d/02_network +++ b/target/linux/airoha/an7583/base-files/etc/board.d/02_network @@ -14,7 +14,8 @@ an7583_setup_interfaces() airoha,an7583-evb) ucidef_set_interface_lan "lan1 lan2 lan3 lan4 eth1" ;; - nokia,xg-040g-mf) + nokia,xg-040g-mf|\ + nokia,xg-040g-mf-ubi) ucidef_set_interface_lan "lan1 lan2 lan3 lan4" ;; *) diff --git a/target/linux/airoha/an7583/base-files/lib/upgrade/platform.sh b/target/linux/airoha/an7583/base-files/lib/upgrade/platform.sh index a8557232c28..81744b21983 100644 --- a/target/linux/airoha/an7583/base-files/lib/upgrade/platform.sh +++ b/target/linux/airoha/an7583/base-files/lib/upgrade/platform.sh @@ -13,6 +13,10 @@ platform_check_image() { local board=$(board_name) case "$board" in + nokia,xg-040g-mf-ubi) + fit_check_image "$1" + return $? + ;; *) nand_do_platform_check "$board" "$1" return $? @@ -26,6 +30,9 @@ platform_do_upgrade() { local board=$(board_name) case "$board" in + nokia,xg-040g-mf-ubi) + fit_do_upgrade "$1" + ;; *) nand_do_upgrade "$1" ;; diff --git a/target/linux/airoha/dts/an7583-nokia_xg-040g-mf-ubi.dts b/target/linux/airoha/dts/an7583-nokia_xg-040g-mf-ubi.dts new file mode 100644 index 00000000000..57a40e9f15b --- /dev/null +++ b/target/linux/airoha/dts/an7583-nokia_xg-040g-mf-ubi.dts @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT + +#include "an7583-nokia_xg-040g-mf-common.dtsi" +#include "an758x-nokia_xg-040g-ubi-parts.dtsi" + +/ { + model = "Nokia XG-040G-MF (UBI)"; + compatible = "nokia,xg-040g-mf-ubi", "airoha,an7583", + "airoha,en7583"; +}; diff --git a/target/linux/airoha/image/an7583.mk b/target/linux/airoha/image/an7583.mk index d97debb6bc6..ce97984b981 100644 --- a/target/linux/airoha/image/an7583.mk +++ b/target/linux/airoha/image/an7583.mk @@ -47,22 +47,47 @@ define Device/airoha_an7583-evb-emmc endef TARGET_DEVICES += airoha_an7583-evb-emmc -define Device/nokia_xg-040g-mf +define Device/nokia_xg-040g-mf-common $(call Device/FitImageLzma) DEVICE_VENDOR := Nokia DEVICE_MODEL := XG-040G-MF - DEVICE_DTS := an7583-nokia_xg-040g-mf - DEVICE_DTS_CONFIG := config@1 BLOCKSIZE := 128k PAGESIZE := 2048 UBINIZE_OPTS := -E 5 + DEVICE_PACKAGES := kmod-phy-airoha-en8811h \ + kmod-regulator-userspace-consumer kmod-usb-ledtrig-usbport +endef + +define Device/nokia_xg-040g-mf + $(call Device/nokia_xg-040g-mf-common) + DEVICE_DTS := an7583-nokia_xg-040g-mf + DEVICE_DTS_CONFIG := config@1 IMAGE_SIZE := 131968k KERNEL_SIZE := 8192k IMAGES += factory-kernel.bin factory-rootfs.bin IMAGE/factory-kernel.bin := append-kernel IMAGE/factory-rootfs.bin := append-ubi | check-size IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata - DEVICE_PACKAGES := kmod-phy-airoha-en8811h kmod-regulator-userspace-consumer \ - kmod-usb-ledtrig-usbport endef TARGET_DEVICES += nokia_xg-040g-mf + +define Device/nokia_xg-040g-mf-ubi + $(call Device/nokia_xg-040g-mf-common) + DEVICE_VARIANT := (UBI) + DEVICE_DTS := an7583-nokia_xg-040g-mf-ubi + UBOOTENV_IN_UBI := 1 + KERNEL_IN_UBI := 1 + KERNEL := kernel-bin | gzip + KERNEL_INITRAMFS := kernel-bin | lzma | \ + fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 128k + KERNEL_INITRAMFS_SUFFIX := -recovery.itb + IMAGES := sysupgrade.itb + IMAGE/sysupgrade.itb := append-kernel | \ + fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | \ + append-metadata + DEVICE_PACKAGES += fitblk + ARTIFACT/bl31-uboot.fip := an7583-bl31-uboot nokia_xg-040g-mf + ARTIFACT/preloader.bin := an7583-preloader nokia_xg-040g-mf + ARTIFACTS := bl31-uboot.fip preloader.bin +endef +TARGET_DEVICES += nokia_xg-040g-mf-ubi