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

Miquel Raynal miquel.raynal at bootlin.com
Mon Jun 6 06:59:19 PDT 2022


Hi Christian,

christian.lamparter at isd.uni-stuttgart.de wrote on Sun, 5 Jun 2022
17:31:33 +0200:

> 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).

That's bad luck...

> 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 :-( .

Do you have a way to probe the amount of affected devices among the
community or perhaps by talking to the vendor?

Reverting seems the safest option here, not knowing how many devices
have these damaged/counterfeit chips. If it is just a couple and only on
Fritzboxes, as suggested in the Github issue this patch could be
carried through OpenWRT and that would seem more future proof IMHO.

The second solution (enlarging the ID length) might work, but feels
dirty, that's why I would go for reverting this immediately (I will
send it through fixes), so that the support for this chip might just
disappear "silently". Then we have another release to decide whether
it is appropriate to use the 8-byte ID hack in the mainline kernel.

Can you please send a patch?

> ||
> 
> |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>


Thanks,
Miquèl



More information about the linux-mtd mailing list