[U-Boot] [PATCH 4/9] Nand mxc_nand add v1.1 controller support

John Rigby
2010-01-13T16:50:08Z

Fabio,

Thanks for the input but there is a problem with your suggestion. The
kernel driver is in error. I don't believe the driver as is will even
work on i.MX25. The register layout is wrong. I can't go into all
the details here but two quick examples I found are:

The ECC_STATUS on i.MX25 (v1.1) is in two registers at offsets 0x1e0e
and 0x1e10. The driver in the kernel only looks at the result for the
first 512 byte block in the first register and ignores the rest.

The next problem is the SPAS (Spare Area Size) Register. It is not
initialized in the kernel driver and the default is not correct.

I'm sure there are many other issues.

My understanding is that there really are 4 versions of the nfc ip 1,
1.1, 2 and 2.1. The kernel driver is over simplifying the issue.

John

On Wed, Jan 13, 2010 at 8:10 AM, Fabio Estevam <fabioestevam@yahoo.com> wrote:
> Hi John,
>
> --- On Wed, 1/13/10, John Rigby <jcrigby@gmail.com> wrote:
>
>> From: John Rigby <jcrigby@gmail.com>
>> Subject: [U-Boot] [PATCH 4/9] Nand mxc_nand add v1.1 controller support
>> To: u-boot at lists.denx.de
>> Cc: "John Rigby" <jcrigby@gmail.com>
>> Date: Wednesday, January 13, 2010, 2:43 AM
>> Add support for version 1.1 of the
>> nfc nand flash
>> controller which is on the i.mx25 soc.
>>
>> Use CONFIG_NAND_MXC_V1 and CONFIG_NAND_MXC_V1_1 to
>> differentiate between the two supported versions.
>
> In order to avoid confusion and to use the same naming convention in the kernel for the NAND controller versions on the i.MX family: can you use V1 and V2 (instead of V1_1)?
>
> Check http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/mtd/nand/mxc_nand.c;h=45dec5770da0b93ea560bc812b482d7e34951a56;hb=master
>
> #define nfc_is_v21() ? ? ? ? ? ?(cpu_is_mx25() || cpu_is_mx35())
> #define nfc_is_v1() ? ? ? ? ? ? (cpu_is_mx31() || cpu_is_mx27())
>
> Thanks,
>
> Fabio Estevam
>
>
>
>
>