[U-Boot] [PATCH] mtd: nand: mxs: Add support for multiple NAND chips

Stefan Roese sr at denx.de
Tue Dec 9 08:20:51 CET 2014


On 08.12.2014 23:53, Scott Wood wrote:
>>>>>>> => nand device
>>>>>>>
>>>>>>> Device 0: 2x nand0, sector size 128 KiB
>>>>>>>
>>>>>>>    Page size      2048 b
>>>>>>>    OOB size         64 b
>>>>>>>    Erase size   131072 b
>>>>>>
>>>>>> Shouldn't you see "Device 0" and "Device 1" ?
>>>>>
>>>>> The "2x" indicates that there are two identical chips being treated as
>>>>> a single device (chip->numchips).
>>>>
>>>> Is that correct ? What if I have two different NAND chips on this
>>>> controller?
>>>
>>> Then they need to be represented as separate NAND devices, rather than
>>> multiple chips on one device.
>>
>> Gee, I wouldn't have though of that, really ;-)
>
> Well, you asked a vague question...
>
>> So is this patch correct or not ?
>
> In all its details?  I don't know, as I'm not familiar with the
> hardware.  With regards to the question about non-identical devices,
> this patch doesn't add support for that.  So it's a question of what the
> requirements are, and whether it's being used in the right
> circumstances.  If you have non-identical NAND chips, make sure
> CONFIG_SYS_NAND_MAX_CHIPS is 1.

Correct. Using CONFIG_SYS_NAND_MAX_CHIPS support identical chips. This 
is exactly what I need in my case. And is also needed for NAND devices 
that have multiple NAND chips embedded on one die. You then need this 
possibility to support multiple chips. Otherwise not the whole device 
can be accessed.

> A better question might be, does this approach make sense, versus
> implementing support for multiple devices?  What does Linux support?

Linux does it exactly in the same way:

[    1.089439] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xdc
[    1.095864] nand: Micron MT29F4G08ABADAH4
[    1.099896] nand: 512MiB, SLC, page size: 2048, OOB size: 64
[    1.105871] nand: 2 chips detected
...

And exposes those 2 chips as one NAND device. By using this patch we 
also use the same MTD partitioning in U-Boot and Linux (mtdparts 
environment).

I hope now all is clear.

Thanks,
Stefan



More information about the U-Boot mailing list