Re: [PATCH V3 1/3] mtd: add new fields to nand_flash_dev{}

Huang Shijie
2013-03-04T05:57:37Z

于 2013年03月02日 22:21, Artem Bityutskiy 写道:
> On Sat, 2013-02-16 at 11:56 +0800, Huang Shijie wrote:
>> On Tue, Feb 12, 2013 at 11:47 PM, Artem Bityutskiy<dedekind1@gmail.com> wrote:
>>> On Mon, 2013-01-28 at 12:57 +0800, Huang Shijie wrote:
>>>> + {"SmartMedia 256MiB 3,3V", {0, 0x71}, 512, 256, 0x4000 },
>>>> + {"SmartMedia 256MiB 3,3V ROM", {0, 0x5b}, 512, 256, 0x4000,
>>>> NAND_ROM},
>>> Sorry for a possibly stupid question, but what does it buy you adding
>>> another "0" to all the entries? I see you add another table, which you
>>> look up if the "traditional" table does not work. Why you need to add
>>> these zeroes?
>> The zeros are for the maf_id.
>>
>> The dev_id is the second byte of the 8-byte id data.
> It does not really make me understand why we add these zeroes, they
> still look useless to me... Would you please be a little more verbose
> about your solution?
>
the 8bytes id data read out by the READ ID command is in the following
order:
byte 0(Maker id): such as 0x98 stands for Toshiba, 0xec stands for
Samsung.
byte 1(device id):
byte 2(used to store the chip number,cell type information):
byte 3(used to store the page size, block size information)
byte 4(used to store the Plane information).
........................

The current code uses the @id to store the device id(byte 1).
But if we use the 8 bytes id data as the keyword, and expand the @id
field to 8byte array,
the device id is the second byte now. All the added zeros are for the
Maker id.
For example,
{"SmartMedia 256MiB 3,3V", {0, 0x71}, 512, 256, 0x4000 },

We really do not use the zeros. All the zeros are added for avoiding the
misunderstanding.
If we do not add the zero, it will looks like:

{"SmartMedia 256MiB 3,3V", {0x71}, 512, 256, 0x4000 },

The device id (0x71) becomes the first byte of 8byte id array, people will treat the 0x71 as the Maker code.

thanks
Huang Shijie