[PATCH] mtd: nand_ids: Add device parameters for Toshiba's TC58NVG1S3ETAI0 NAND EEPROM
Gupta, Pekon
pekon at ti.com
Tue Jan 21 02:33:04 EST 2014
Hi Brian,
>From: Brian Norris [mailto:computersforpeace at gmail.com]
>>On Tue, Jan 07, 2014 at 11:04:43AM +0100, Stefan Roese wrote:
>> Toshiba's TC58NVG1S3ETAI0 is a single 3.3V 2 Gbit (2,214,592,512 bits) NAND
>> Electrically Erasable and Programmable Read-Only Memory (NAND E2PROM)
>> organized as (2048 + 64) bytes x 64 pages x 2048 blocks.
>>
>> Signed-off-by: Stefan Roese <sr at denx.de>
[...]
>> @@ -31,6 +31,9 @@ struct nand_flash_dev nand_flash_ids[] = {
>> * listed by full ID. We list them first so that we can easily identify
>> * the most specific match.
>> */
>> + {"TC58NVG1S3ETAI0 2G 3.3V 8-bit",
>> + { .id = {0x98, 0xda, 0x90, 0x15, 0x76, 0x00, 0x00, 0x00} },
>> + SZ_2K, SZ_256, SZ_128K, 0, 5, 64, NAND_ECC_INFO(1, SZ_512) },
>
>I have to NAK this in its current form, for two reasons:
>
>1) This is not a specific enough ID string. It conflicts with another
>NAND which was recently supported.
>
>2) This patch may not really be needed at all. The "full ID" listing is
>only for NAND which can't be detected via other means (e.g., ONFI, or
>traditional extended ID parsing). Is this NAND mis-detected in Linus'
>current tree? As I read the code, it should correctly identify this
>NAND's device size, page size, OOB size, etc.
>
>See this commit for reference:
>
>commit 60c6738245612df9499b340c15edf48b8f3e7981
>Author: Brian Norris <computersforpeace at gmail.com>
>Date: Tue Jun 25 13:17:59 2013 -0700
>
> mtd: nand: detect OOB size for Toshiba 24nm raw SLC
>
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=60c6738245612df9499b340c15edf48b8f3e7981
>
>It adds support for a class of Toshiba 24nm NAND, including this one:
>
> 24nm SLC 2Gbit TC58NVG1S3HTA00
> ID: 0x98 0xda 0x90 0x15 0x76 0x16 0x08 0x00
>
>Please reconcile your patch with the comments found there.
>
Yes, I think this is a different technology part..
because though the page-size = 2048B is same, but OOB-size = 64B.
However, with your OOB-size is detected as 128B.
Best part is the datasheet of this part does not mention anything about the 6th byte :-).
So, I think we can first read 6th-byte (using READID command), and figure out difference
between your part and this one, then based on it append the OOB-calculation to you patch. Ok ?
ID byte 5, bit[7]:
1 -> BENAND
0 -> raw SLC <<----- SLC NAND
ID byte 6, bits[2:0]: <<----- 6th byte has no mention in datasheet
100b -> 43nm
101b -> 32nm
110b -> 24nm
111b -> Reserved
But sincerely, why is Toshiba doing all this ?
It would hit them only, as their devices will lack support on mainline kernels and u-boots.
(Or their customers would have to carry custom patches all along).
I tried convincing Toshiba to get their parts ONFI compliant, but they were too reluctant.
with regards, pekon
More information about the linux-mtd
mailing list