I'm working on a Linksys E8450 that I just opened the package. Unfortunately it's not able to boot to the OEM Linksys OS, so I haven't been able to run the OpenWRT installer. Looking at the boot log via UART, I see:
SQUASHFS error: xz decompression failed, data probably corrupt
Followed by an endless loop of stack dumps. I've tried booting to both the main and secondary boot options in the UBoot menu, and both result in similar boot failures.
I was also trying to make a full dump of the nand chip before installing OpenWRT, using this process (the OEM Uboot is very restrictive so this is the only option):
# Zero the memory area
MT7622> mw.b $loadaddr 0x00 0x8001000
# Read nand into memory
MT7622> nand read $loadaddr 0x0 0x8000000
# Dump memory to log file captured by terminal program
MT7622> md.b $loadaddr 0x8000000
I'm able to convert the dumped log back into a binary with post-processing scripts, and have done this before with other devices.
However, on this device I get these errors (which I don't understand) when reading the nand chip. I'm also not sure if it's actually completing the read, or if I can bypass this using read.raw:
MT7622> nand read $loadaddr 0x0 0x8000000
NAND read: device 0 whole chip
[mtk_snand_check_bch_error] ECC-U, PA=5564, S=3
NFI, flag byte: ff NFI, flag byte: ff NFI, This page is empty!
[mtk_nand_exec_read_page]mtk_snand_check_bch_error() FAIL!!!
[mtk_snand_check_bch_error] ECC-U, PA=12928, S=3
NFI, flag byte: ff NFI, flag byte: ff NFI, This page is empty!
[mtk_nand_exec_read_page]mtk_snand_check_bch_error() FAIL!!!
[mtk_snand_check_bch_error] ECC-U, PA=20202, S=3
NFI, flag byte: ff NFI, flag byte: ff NFI, This page is empty!
[mtk_nand_exec_read_page]mtk_snand_check_bch_error() FAIL!!!
[mtk_snand_check_bch_error] ECC-U, PA=21370, S=3
NFI, flag byte: ff NFI, flag byte: ff NFI, This page is empty!
[mtk_nand_exec_read_page]mtk_snand_check_bch_error() FAIL!!!
[mtk_snand_check_bch_error] ECC-U, PA=21935, S=3
NFI, flag byte: ff NFI, flag byte: ff NFI, This page is empty!
[mtk_nand_exec_read_page]mtk_snand_check_bch_error() FAIL!!!
NAND read from offset 0 failed -74
0 bytes read: ERROR
Both of these issues seem to point to corruption somewhere.
One thought I had was to extract the Factory partition and then manually install an OpenWRT image through mtk_uartboot
. The OEM bootlog shows this location for the Factory data:
0x0000001c0000-0x0000002c0000 : "Factory
So I ran a dump and converted it to binary (luckily it's not in the corrupted area):
# Read flash into RAM
MT7622> nand read $loadaddr 0x1c0000 0x100000
# Dump RAM to screen (save to log)
MT7622> md.b $loadaddr 0x100000
Comparing it to another device factory dump (mtd2), it seems to be correct as there are only minor differences between the files (MAC address, etc.).
I'm hoping to get some input on whether I'm going in the right direction, or do the above errors point to this device being already beyond repair? Or do you have some other ideas on how to recover it?