ramips: add NMBM support for ipTIME AX2004M
authorSungbo Eo <mans0n@gorani.run>
Sun, 17 Dec 2023 16:06:21 +0000 (01:06 +0900)
committerSungbo Eo <mans0n@gorani.run>
Sun, 10 Mar 2024 07:32:14 +0000 (16:32 +0900)
AX2004M uses NMBM on its NAND flash, but it was not enabled in DTS as the
device support [1] had been added before NMBM feature in mtk_bmt driver [2].
Let's enable it now.

With this change, there is a low possibility of boot failure after
sysupgrade from older versions. As AX2004M already has gone through
two stable releases in the meantime, it would be safe to warn users
by bumping DEVICE_COMPAT_VERSION.

[1] 37753f34ac68 ("ramips: add support for ipTIME AX2004M")
[2] 06382d1af7b2 ("kernel: add support for mediatek NMBM flash mapping support")

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
target/linux/ramips/dts/mt7621_iptime_ax2004m.dts
target/linux/ramips/image/mt7621.mk
target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version

index 51be0d4939155503bde0e04a5bb851c61ec57fe7..7237bf822f46a948e47bca8985b3f731b8225f02 100644 (file)
 &nand {
        status = "okay";
 
+       mediatek,nmbm;
+       mediatek,bmt-max-ratio = <1>;
+       mediatek,bmt-max-reserved-blocks = <64>;
+       mediatek,bmt-remap-range = <0x000000 0x580000>;
+
        partitions {
                compatible = "fixed-partitions";
                #address-cells = <1>;
                                reg = <0x400000 0x7280000>;
                        };
                };
+
+               /* last 8 MiB is reserved for NMBM bad block table */
        };
 };
 
index ab1b829ba0086cb9fc9ca8cbbf3cbc14735034d6..7b7266b73ed1166f5755b8f76b226f38f2930c0b 100644 (file)
@@ -1461,6 +1461,10 @@ define Device/iptime_ax2004m
   DEVICE_VENDOR := ipTIME
   DEVICE_MODEL := AX2004M
   DEVICE_PACKAGES := kmod-mt7915-firmware kmod-usb3 -uboot-envtools
+  DEVICE_COMPAT_VERSION := 2.0
+  DEVICE_COMPAT_MESSAGE := NMBM has been newly enabled, and its flash block \
+       mapping might be incompatible with existing installation. \
+       New installation via recovery mode is recommended.
 endef
 TARGET_DEVICES += iptime_ax2004m
 
index 45bef9385bdd6d0cdf066c57ba087af92c13e8c6..c510dfd81a26476e7e55486864b34228927c215f 100644 (file)
@@ -8,6 +8,9 @@
 board_config_update
 
 case "$(board_name)" in
+       iptime,ax2004m)
+               ucidef_set_compat_version "2.0"
+               ;;
        *)
                ucidef_set_compat_version "1.1"
                ;;