[U-Boot] How to start U-Boot for i.MX31 NAND out of RedBoot (out of RAM)

Thomas Dörfler Thomas.Doerfler at embedded-brains.de
Thu Jul 23 19:01:12 CEST 2009


Hi,

maybe this is too off-topic, but maybe it helps:

I am currently proting U-Boot to a MPC512x design (with NAND boot).
AFAIK the NFC is similar on MPX512x and iMX.31,

The MPC512x nand flash driver, that is now available in U-Boot seems to
maintain the ECC by software. I could use it to read/write the NAND.

But: The ECC stored is incompatible to the ECC that is optionally
calculated by the NFC HW. When after a reset, the NFC HW extracts the
first sector from NAND, it detects an unrecoverable ECC error and avoid
to let it execute.

For my MPC512x, I currently went back to my private, hacked driver
(which uses HW ECC). I willt ry to adapt the mpc512x_nfc driver to
support HW ECC, at least as an option. The problem is, that if the way
to store ECC is changed on only part of the SW environment (e.g. only in
U-Boot, but not in Linux), some strange effects may come up :-)

So: Maybe you have the same problem on iMX.31?

wkr,
Thomas.


Magnus Lilja wrote:
> Hi
> 
> 2009/7/23 Ulrich Gerster <gersteru at dhbw-loerrach.de>:
>>> Not sure that I understand what "every program assumes..." means.
>> I try to explain my problem in more detail. I had a working u-boot programed
>> in NAND-Flash. Then I wanted to update it. I used the nand write command and
>> wrote a the new image in the NAND-Flash. When I then restarted the Board U-Boot
>> wasn't responding. Then I loaded RedBoot to RAM using a BDI. But when I was trying
>> to access NAND-Flash with RedBoot (factive nand) RedBoot was freezing. The only
>> chance I had was to clear the the NAND and the OOB. After I did that I was able to
>> access the NAND-Flash with RedBoot. After that I programed the same u-boot image
>> in the NAND-Flash using the RedBoot fis write command.
>> The result was a working u-boot.
> 
> Seems like nand_spl and redboot are compatible with each other but not
> the U-boot mxc_nand-driver.
> 
> Have you compared the data in the flash before and after using U-boot
> to update it?
> 
>>> But my guess is that the OOB layout may be different in
>>> nand_spl/nand_boot_fsl_nfc.c compared to drivers/mtd/nand/mxc_nd.c so
>>> the nand_spl may interpret the OOB information that mxc_nd.c has
>>> written in a different way.
>> Ok. So I should compare this. Which function does take care for that?
> 
> Don't remember, look for "bad block" or OOB-layout.
> 
>>> This is especially true for large page NAND since the i.MX31 controller uses
>>> a non-standard layout, for small page NAND there should be no problem
>>> (although I don't know if nand_spl has been tested on small page nand yet).
>> So now it is tested. I'm using small page nand with (512 + 16 spare) Bytes.
>> Do you think it is a problem of the nand_spl or the nand driver?
> 
> Hmm, my first guess would be a problem with nand_spl.
> 
> /Magnus
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


-- 

--------------------------------------------
Embedded Brains GmbH
Thomas Doerfler        Obere Lagerstrasse 30
D-82178 Puchheim       Germany
email: Thomas.Doerfler at embedded-brains.de
Phone: +49-89-18908079-2
Fax:   +49-89-18908079-9


More information about the U-Boot mailing list