Hi,
I'm trying to access the QSPI flash on my TE0820 under Linux. It's marked RW193, so it should be a Micron MT25QU512ABB8E12-0SIT.
However, the Linux kernel (Xilinix 5.10) does not recognize it:
...
[ 2.608219] spi-nor spi0.0: unrecognized JEDEC id bytes: 10 5d 90 08 22 00
[ 2.608244] spi-nor: probe of spi0.0 failed with error -2
...
According to
https://wiki.trenz-electronic.de/display/PD/PCN-20190110a+TE0820-03-*+SPI+Flash+and+eMMC+Change
there was a BOM change:
#1 Change SPI Flash from N25Q512A11G1240E to MT25QU512ABB8E12-0SIT
Type: BOM change
Reason: N25Q512A11G1240E became obsolete.
Impact: None. Both have same JEDEC ID BB20h and manufacturer ID 20h.
So, I'm puzzled why I'm getting a totally different JEDEC ID. Is that a known problem?
When copying the chip definition for BB20h in the kernel to the ID above the kernel can probe the QSPI chip:
...
[ 2.605194] spi-nor spi0.0: trying to lock already unlocked area
[ 2.605200] spi-nor spi0.0: mt25qu512b (131072 Kbytes)
...
And /dev/mtd0 is available:
root@zynqmp-zu2cg-1i:~# cat /proc/mtd
dev: size erasesize name
mtd0: 08000000 00020000 "spi0.0"
But erasing it with ubiformat fails with:
root@zynqmp-zu2cg-1i:~# ubiformat /dev/mtd0
ubiformat: mtd0 (nor), size 134217728 bytes (128.0 MiB), 1024 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 1 bytes
libscan: scanning eraseblock 0 -- 0 % complete libmtd: error!: cannot read 64 bytes from mtd0 (eraseblock 0, offset 0)
error 110 (Connection timed out)
ubiformat: error!: failed to scan mtd0 (/dev/mtd0)
I can't understand why the JEDEC ID is so completely different, nor why the erase fails. Anybody got a clue?
Thanks in advance,
Uli