[U-Boot] NAND on Davinci boards

Stefano Babic sbabic at denx.de
Wed Mar 16 13:01:22 CET 2011


On 03/16/2011 11:01 AM, Nick Thompson wrote:

Hi Nick,

> I'm using da830evm (OMAP-L137) with more or less up-to-date U-Boot, but
> quite old 2.6.18+ kernel from Montavista.
> 
>>
>> #define CONFIG_SYS_NAND_4BIT_HW_ECC_OOBFIRST
>> #define CONFIG_SYS_NAND_USE_FLASH_BBT
> 
> I don't have BBT enabled.

Thanks, I have tried to disable it. No improvement, I got always ECC errors.

> 
> Neither ;)
> 
> I think the U-Boot NAND driver for davinci has always been setup to be
> compatible with the TI & Montavista Kernels.

This is probably the problem. I cannot check the montavista sources (I
do not use them, but it seems that the old source.mvista.com went
offline), but if u-boot sticks to mvista kernel is surely not aligned to
the kernel mainline.

> What I'm not sure about is if
> those Kernels are compatible with mainline Linux and in particular the
> very latest mainline kernels. In fact I'm not sure if it is compatible with
> the very latest TI Kernels.

I think I can answer: no. I checked PSP_3.20 from Texas, and even on the
arago project. TI went from their 2.x version of PSP tools to 3.x from
mvista kernel to mainline kernel, and probably at that point u-boot and
kernel were not anymore compatible. I have not seen patches in
drivers/mtd/davinci_nand.c related to make it suitable for newer kernels.

> 
> Have you tried "nand dump" of a Linux programmed Kernel and compared it with
> "nand dump" of a U-Boot programmed Kernel?

I have tried now to get the first page (=2048 bytes) from both and I
have compared byte-per-byte. They are identical, inclusive the oob part.

> You would be able to see
> identical data in each case, but you will be able to compare the differences
> in the OOB. You only need to look at the first page to see if the OOB data
> or position of the OOB data differs.

No differences at all. For both, I get in the oob:

OOB:
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00

However, u-boot complain about it:

nand read kernel_addr_r 0 800

NAND read: device 0 offset 0x0, size 0x800
Getting too many errors
Getting too many errors
Getting too many errors
Getting too many errors
 2048 bytes read: OK


> 
> You errors all seem to be in the BBT handling. I don't use BBT here.

Rather it is not enough - already tried to disable, same errors. It
seems I can exclude errors by writing or reading raw data from the NAND.
It seems the problem is related to a different interpretation of ECC
results.

Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================


More information about the U-Boot mailing list