From 8d8b37d3af2bdccf0a37d2017d876bfc6ce42552 Mon Sep 17 00:00:00 2001 From: Chukun Pan Date: Fri, 20 Oct 2023 23:18:21 +0800 Subject: [PATCH 1/1] mtd: rawnand: add support for TH58NYG3S0HBAI4 NAND flash The Toshiba TH58NYG3S0HBAI4 is detected with 128 byte OOB while the flash has 256 bytes OOB. Since it is not an ONFI compliant NAND, the model name cannot be read from anywhere, add a static NAND ID entry to correct this. However, the NAND ID of this flash is inconsistent with the datasheet. The actual NAND ID is only 4 ID bytes, the last ID byte is missing. Datasheet available at (the ID table is on page 50): https://europe.kioxia.com/content/dam/kioxia/newidr/productinfo/datasheet/201910/DST_TH58NYG3S0HBAI4-TDE_EN_31565.pdf Datasheet NAND ID: {0x98, 0xa3, 0x91, 0x26, 0x76} Actual NAND ID: {0x98, 0xa3, 0x91, 0x26} It seems that this flash may be counterfeit, but another Toshiba flash also has the same problem. Maybe the driver has a bug, or some Toshiba nand flash is like this. Anyway, add a static NAND ID entry with only 4 ID bytes as a hack to make sure it works. Tested on Arcadyan AW1000 flashed with OpenWrt. Signed-off-by: Chukun Pan --- drivers/mtd/nand/raw/nand_ids.c | 3 +++ 1 file changed, 3 insertions(+) --- a/drivers/mtd/nand/raw/nand_ids.c +++ b/drivers/mtd/nand/raw/nand_ids.c @@ -58,6 +58,9 @@ struct nand_flash_dev nand_flash_ids[] = { .id = {0xad, 0xde, 0x14, 0xa7, 0x42, 0x4a} }, SZ_16K, SZ_8K, SZ_4M, NAND_NEED_SCRAMBLING, 6, 1664, NAND_ECC_INFO(40, SZ_1K) }, + {"TH58NYG3S0HBAI4 8G 1.8V 8-bit", /* Last ID bytes missing */ + { .id = {0x98, 0xa3, 0x91, 0x26} }, + SZ_4K, SZ_1K, SZ_256K, 0, 4, 256, NAND_ECC_INFO(8, SZ_512) }, {"TH58NVG2S3HBAI4 4G 3.3V 8-bit", { .id = {0x98, 0xdc, 0x91, 0x15, 0x76} }, SZ_2K, SZ_512, SZ_128K, 0, 5, 128, NAND_ECC_INFO(8, SZ_512) },