TX1806 NAND Problem

When I'm installing OpenWRT onto my H3C TX1806/TX1801 Plus(chssis says TX1806, Board says TX1801 Plus) router (CMCC Edition), I've encountered severe nand errors, as the following logs show. Due to the amount of bad blocks, I suspect it's not actual bad blocks, as these amount of bad block shouldn't allow the stock firmware to boot. So I suspect it's a write protection of some sort. I tried to format firmware partition, and many other try, none of them worked. I just want to know, if the nand is really bad, or it's a software problem.

Logs:
(Original Error)

=> setenv bootflag 0
=> saveenv
Saving Environment to NMBM...
Erasing on NMBM...
Block erasure failed at address 0x00080000
Block 4 [0x00080000] will be marked bad
Logic block 4 mapped to physical blcok 1022
Block erasure failed at address 0x07860000
Block 963 [0x07860000] will be marked bad
Block erasure failed at address 0x07880000
Block 964 [0x07880000] will be marked bad
Block erasure failed at address 0x078a0000
Block 965 [0x078a0000] will be marked bad
Block erasure failed at address 0x078c0000
Block 966 [0x078c0000] will be marked bad
Block erasure failed at address 0x078e0000
Block 967 [0x078e0000] will be marked bad
Block erasure failed at address 0x07900000
Block 968 [0x07900000] will be marked bad
Block erasure failed at address 0x07920000
Block 969 [0x07920000] will be marked bad
Block erasure failed at address 0x07940000
Block 970 [0x07940000] will be marked bad
Block erasure failed at address 0x07960000
Block 971 [0x07960000] will be marked bad
Block erasure failed at address 0x07980000
Block 972 [0x07980000] will be marked bad
Block erasure failed at address 0x079a0000
Block 973 [0x079a0000] will be marked bad
Block erasure failed at address 0x079c0000
Block 974 [0x079c0000] will be marked bad
Block erasure failed at address 0x079e0000
Block 975 [0x079e0000] will be marked bad
Block erasure failed at address 0x07a00000
Block 976 [0x07a00000] will be marked bad
Block erasure failed at address 0x07a20000
Block 977 [0x07a20000] will be marked bad
Block erasure failed at address 0x07a40000
Block 978 [0x07a40000] will be marked bad
Block erasure failed at address 0x07a60000
Block 979 [0x07a60000] will be marked bad
Block erasure failed at address 0x07a80000
Block 980 [0x07a80000] will be marked bad
Block erasure failed at address 0x07aa0000
Block 981 [0x07aa0000] will be marked bad
Block erasure failed at address 0x07ac0000
Block 982 [0x07ac0000] will be marked bad
Block erasure failed at address 0x07ae0000
Block 983 [0x07ae0000] will be marked bad
Block erasure failed at address 0x07b00000
Block 984 [0x07b00000] will be marked bad
Block erasure failed at address 0x07b20000
Block 985 [0x07b20000] will be marked bad
Block erasure failed at address 0x07b40000
Block 986 [0x07b40000] will be marked bad
Block erasure failed at address 0x07b60000
Block 987 [0x07b60000] will be marked bad
Block erasure failed at address 0x07b80000
Block 988 [0x07b80000] will be marked bad
Block erasure failed at address 0x07ba0000
Block 989 [0x07ba0000] will be marked bad
Block erasure failed at address 0x07bc0000
Block 990 [0x07bc0000] will be marked bad
Block erasure failed at address 0x07be0000
Block 991 [0x07be0000] will be marked bad
Block erasure failed at address 0x07c00000
Block 992 [0x07c00000] will be marked bad
Block erasure failed at address 0x07c20000
Block 993 [0x07c20000] will be marked bad
Block erasure failed at address 0x07c40000
Block 994 [0x07c40000] will be marked bad
Block erasure failed at address 0x07c60000
Block 995 [0x07c60000] will be marked bad
Block erasure failed at address 0x07c80000
Block 996 [0x07c80000] will be marked bad
Block erasure failed at address 0x07ca0000
Block 997 [0x07ca0000] will be marked bad
Block erasure failed at address 0x07cc0000
Block 998 [0x07cc0000] will be marked bad
Block erasure failed at address 0x07ce0000
Block 999 [0x07ce0000] will be marked bad
Block erasure failed at address 0x07d00000
Block 1000 [0x07d00000] will be marked bad
Block erasure failed at address 0x07d20000
Block 1001 [0x07d20000] will be marked bad
Block erasure failed at address 0x07d40000
Block 1002 [0x07d40000] will be marked bad
Block erasure failed at address 0x07d60000
Block 1003 [0x07d60000] will be marked bad
Block erasure failed at address 0x07d80000
Block 1004 [0x07d80000] will be marked bad
Block erasure failed at address 0x07da0000
Block 1005 [0x07da0000] will be marked bad
Block erasure failed at address 0x07dc0000
Block 1006 [0x07dc0000] will be marked bad
Block erasure failed at address 0x07de0000
Block 1007 [0x07de0000] will be marked bad
Block erasure failed at address 0x07e00000
Block 1008 [0x07e00000] will be marked bad
Block erasure failed at address 0x07e20000
Block 1009 [0x07e20000] will be marked bad
Block erasure failed at address 0x07e40000
Block 1010 [0x07e40000] will be marked bad
Block erasure failed at address 0x07e60000
Block 1011 [0x07e60000] will be marked bad
Block erasure failed at address 0x07e80000
Block 1012 [0x07e80000] will be marked bad
Block erasure failed at address 0x07ea0000
Block 1013 [0x07ea0000] will be marked bad
Block erasure failed at address 0x07ec0000
Block 1014 [0x07ec0000] will be marked bad
Block erasure failed at address 0x07ee0000
Block 1015 [0x07ee0000] will be marked bad
Block erasure failed at address 0x07f00000
Block 1016 [0x07f00000] will be marked bad
Block erasure failed at address 0x07f20000
Block 1017 [0x07f20000] will be marked bad
Block erasure failed at address 0x07f40000
Block 1018 [0x07f40000] will be marked bad
Block erasure failed at address 0x07f60000
Block 1019 [0x07f60000] will be marked bad
Block erasure failed at address 0x07f80000
Block 1020 [0x07f80000] will be marked bad
No room for backup table
Block erasure failed at address 0x07800000
Block 960 [0x07800000] will be marked bad
Block erasure failed at address 0x07820000
Block 961 [0x07820000] will be marked bad
Block erasure failed at address 0x07840000
Block 962 [0x07840000] will be marked bad
Unable to write at least one info table!
Please save your data before power off!
Failed to update info table
Block erasure failed at address 0x07fc0000
Block 1022 [0x07fc0000] will be marked bad
No spare unmapped blocks.
Failed (1)

Other Related Information:
(OpenWRT RamFS)

root@OpenWrt:~# dmesg | grep -i -E "nand|ubi|mtd"
[    0.586228] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    2.231467] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xf1
[    2.237848] nand: AMD/Spansion S34ML01G2
[    2.241823] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    2.249432] mt7621-nand 1e003000.nand: ECC strength adjusted to 4 bits
[    2.299323] 5 fixed-partitions partitions found on MTD device mt7621-nand
[    2.306496] Creating 5 MTD partitions on "mt7621-nand":
[    3.668785] 2 fixed-partitions partitions found on MTD device firmware
[    3.675425] Creating 2 MTD partitions on "firmware":
[    3.774439] 0x000000800000-0x000007600000 : "ubi"
[    6.695681] UBI error: no valid UBI magic found inside mtd6
[    9.420278] mtdblock: MTD device 'u-boot-env' is NAND, please consider using UBI block devices instead.
[   17.186907] mtdblock: MTD device 'u-boot-env' is NAND, please consider using UBI block devices instead.
[   17.797510] mtdblock: MTD device 'u-boot-env' is NAND, please consider using UBI block devices instead.
[   18.393356] mtdblock: MTD device 'u-boot-env' is NAND, please consider using UBI block devices instead.
root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "u-boot"
mtd1: 00080000 00020000 "u-boot-env"
mtd2: 00080000 00020000 "exp"
mtd3: 00080000 00020000 "factory"
mtd4: 07600000 00020000 "firmware"
mtd5: 00800000 00020000 "kernel"
mtd6: 06e00000 00020000 "ubi"
root@OpenWrt:~# dd if=/dev/mtd4 of=/dev/null bs=1M
118+0 records in
118+0 records out
root@OpenWrt:~# dd if=/dev/mtd4 of=/dev/null bs=1M
118+0 records in
118+0 records out
root@OpenWrt:~# ubinfo -a
UBI version:                    1
Count of UBI devices:           0
UBI control device major/minor: 10:256
root@OpenWrt:~# ubinfo --help
ubinfo version 2.2.1 - a tool to print UBI information.

Usage 1: ubinfo [-d <UBI device number>] [-n <volume ID> | -N <volume name>] [-a] [-h] [-V]
                [--vol_id=<volume ID> | --name <volume name>] [--devn <UBI device number>] [--all] [--help] [--version]
Usage 2: ubinfo <UBI device node file name> [-a] [-h] [-V] [--all] [--help] [--version]
Usage 3: ubinfo <UBI volume node file name> [-h] [-V] [--help] [--version]

Example 1: ubinfo - (no arguments) print general UBI information
Example 2: ubinfo -d 1 - print information about UBI device number 1
Example 3: ubinfo /dev/ubi0 -a - print information about all volumes of UBI
           device /dev/ubi0
Example 4: ubinfo /dev/ubi1_0 - print information about UBI volume /dev/ubi1_0
Example 5: ubinfo -a - print all information


-d, --devn=<UBI device number>  UBI device number to get information about
-n, --vol_id=<volume ID>        ID of UBI volume to print information about
-N, --name=<volume name>        name of UBI volume to print information about
-a, --all                       print information about all devices and volumes,
                                or about all volumes if the UBI device was
                                specified
-h, --help                      print help message
-V, --version                   print program version
root@OpenWrt:~# ubinfo -a
UBI version:                    1
Count of UBI devices:           0
UBI control device major/minor: 10:256
root@OpenWrt:~#

(UBoot)

=> nand bad

Device 0 bad blocks:
=> nand info

Device 0: nand0, sector size 128 KiB
  Page size       2048 b
  OOB size          64 b
  Erase size    131072 b
  subpagesize      512 b
  options     0x00010000
  bbt options 0x00008000
=>

(Original Firmware also have the same error)

Linux version 4.4.198 (renhaonan@ubuntu203-UIS-R390-G2) (gcc version 5.4.0 (LEDE GCC 5.4.0 unknown) ) #4 SMP Mon Apr 12 18:24:18 CST 2021
SoC Type: MediaTek MT7621 ver:1 eco:3
bootconsole [early0] enabled
CPU0 revision is: 0001992f (MIPS 1004Kc)
MIPS: machine is MediaTek MT7621 RFB (802.11ax, NAND with NMBM)
Determined physical RAM map:
 memory: 10000000 @ 00000000 (usable)
SetPVID: port:4 pvid:2
port:4 pvid:2,vlancap: max_port:7 maxvid:4095
acl_port:0, acl_en:1
write reg: 2004, value: ff0403
acl_port:1, acl_en:1
write reg: 2104, value: ff0403
acl_port:2, acl_en:1
write reg: 2204, value: ff0403
acl_port:3, acl_en:1
write reg: 2304, value: ff0403
acl_port:4, acl_en:1
write reg: 2404, value: ff0403
Value at 0x2000 (0x1e000610): 0x0
Written 0x18000; Readback 0x18000
nmbm nmbm: Unable to write at least one info table!
nmbm nmbm: Please save your data before power off!

(Try Formatting)

root@OpenWrt:~# ubiformat /dev/mtd6 -y
ubiformat: mtd6 (nand), size 115343360 bytes (110.0 MiB), 880 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 879 -- 100 % complete
ubiformat: 728 eraseblocks are supposedly empty
ubiformat: warning!: 152 of 880 eraseblocks contain non-UBI data
ubiformat: warning!: only 0 of 880 eraseblocks have valid erase counter
ubiformat: erase counter 0 will be used for all eraseblocks
ubiformat: note, arbitrary erase counter value may be specified using -e option
ubiformat: use erase counter 0 for all eraseblocks
ubiformat: formatting eraseblock 0 --  0 % complete  libmtd: error!: MEMERASE64 ioctl failed for eraseblock 0 (mtd6)
        error 5 (I/O error)

ubiformat: error!: failed to erase eraseblock 0
           error 5 (I/O error)
ubiformat: marking block 0 bad
libmtd: error!: MEMSETBADBLOCK ioctl failed for eraseblock 0 (mtd6)
        error 30 (Read-only file system)
root@OpenWrt:~#