Belkin RT3200/Linksys E8450 WiFi AX discussion

The crashlog shows that the first read from the mtdblock2 device (for parsing potential sub-partitions) fails. This is odd and fails even with the partition parser removed: In that case the device boots, UBI and everything works, but

root@OpenWrt:/# hexdump -C /dev/mtdblock2
[  293.744528] blk_update_request: I/O error, dev mtdblock2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0
[  293.755393] blk_update_request: I/O error, dev mtdblock2, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 0
[  293.766235] blk_update_request: I/O error, dev mtdblock2, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 0
[  293.777152] blk_update_request: I/O error, dev mtdblock2, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[  293.788144] blk_update_request: I/O error, dev mtdblock2, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  293.798571] Buffer I/O error on dev mtdblock2, logical block 0, async page read
hexdump: /dev/mtdblock2: I/O error

It does work for all other mtdblock devices, only mtdblock2 ie. 0x0000001c0000-0x0000002c0000 : "factory" fails on read operations on the mtdblock device, reading the mtd device itself works.
Also reading all other mtd and mtdblock devices works without problems. First I thought locking might be the issue as mtd2 is used as nvmem device for reading mac addresses and wifi eeprom. However, even reading mtdblock3 which is used by UBI works.

In order to make the build usable again, I fixed error handling in the FIT partition parser to error out in case of page read faults. So now you still get a lot of read errors, but in the end everything seems to work:

3 Likes