[PATCH] mtd: rawnand: add support for Toshiba TC58NVG0S3HTA00 NAND flash

Christian Lamparter christian.lamparter at isd.uni-stuttgart.de
Sun Jun 5 08:31:33 PDT 2022


Hi,

On 20/04/2022 12:40, Andreas Böhler wrote:
> The Toshiba TC58NVG0S3HTA00 is detected with 64 byte OOB while the flash
> has 128 bytes OOB. This adds a static NAND ID entry to correct this.
>
> Tested on FRITZ!Box 7530 flashed with OpenWrt.
>
> Signed-off-by: Andreas Böhler <dev at aboehler.at>
> ---
> --- a/drivers/mtd/nand/raw/nand_ids.c
> +++ b/drivers/mtd/nand/raw/nand_ids.c
> @@ -29,6 +29,9 @@ struct nand_flash_dev nand_flash_ids[] = {
> [...]
> +	{"TC58NVG0S3HTA00 1G 3.3V 8-bit",
> +		{ .id = {0x98, 0xf1, 0x80, 0x15} },
> +		  SZ_2K, SZ_128, SZ_128K, 0, 4, 128, NAND_ECC_INFO(8, SZ_512), },

@Minquel, there is more to this patch than it meets the eye.

It turned out this "4-byte" ID might have been an honest mistake.
We have this documented in the OpenWrt Github issue #9962 [0] titled:
"Fritzbox memory chip misdetection since 0bc794a6 (master and 22.03)"
(some parts of this are also in the openwrt forum. But there's a link to
the thread in the github issue).

Regrettably, I do think that Andreas chip might have been a
counterfeit or damaged (that should have ended up in the
garbage bin instead of his router).

His chips reports just the first four bytes of the chip ID:
"98 f1 80 15 00 00 00 00". But according to Koxias/Toshiba's datasheet [1],
there should have been at least another 5th non-zero byte in the ID.
(I found a linux-mtd post [2] with the same chip and the OP reports:
"0x98 0xf1 0x80 0x15 0x72 0x16 0x08 0x00" for the full ID).

What to do in this situation? Because the patch as is is causing boot failures
for devices with other Kioxia/Toshiba chips. This is because they also
match the first four bytes but have different OOB sizes (64, instead of 128).

Andreas has proposed the following: update the id_len to 8, this will help
fix the boot failures with other chips like the TC58BVG0S3HTA00, since it
has different values for the chip-id after the 4th byte.|
|

|{"TC58NVG0S3HTA00 1G 3.3V 8-bit", { .id = {0x98, 0xf1, 0x80, 0x15} }, SZ_2K, SZ_128, SZ_128K, 0, 8, 128, NAND_ECC_INFO(8, SZ_512), },|

||Reverting would be an option, but if this is a counterfeit situation then
similar "chips" could end up in other devices and we are just unlucky
ones that are the first to report it :-( .
||

|Regards, Christian|


[0] <https://github.com/openwrt/openwrt/issues/9962>
[1] <https://media.digikey.com/pdf/Data%20Sheets/Toshiba%20PDFs/KIOXIA_TC58NVG0S3HTA00_Rev2.00_E191001C.pdf> page 35
[2] <https://linux-mtd.infradead.narkive.com/8DRxas2M/patch-mtd-nand-detect-oob-size-for-toshiba-24nm-raw-slc>







More information about the linux-mtd mailing list