IMX53 booting from NAND Flash

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX53 booting from NAND Flash

1,460 Views
jomeke
Contributor II

Hi all,

I developed a custum board with the IMX53 cpu, the board can boot from µSD card or from NAND Flash.

The board has DDR3 ram (4*MT41J256M16) and NAND flash (2*29F16G08).

All the boards (10 pieces) are booting from µSD card but some boards doesn't want to boot from NAND Flash.

All the boards who doesn't want to boot from NAND, if we boot them from µSD card and under UBOOT or Linux we can do everthing with the NAND fash chips without any problem (testing - reading - writing).

If we try to boot from NAND and it doesn't work, the IXM537 comes in the Serial Downloader, there we can read at address 0x53DF0004 (SRC_SBMR register) and see that the Boot Config bits are all OK.

I tried also to give a manual POR_B reset signal to the IMX when the power is stable but that doesn't help.


Has anyone an idee where to look for ?

Has anyone more information about the internal Bootloader program from the IMX53 ?

All help is welcome

Johan

Labels (1)
0 Kudos
2 Replies

740 Views
DougMartens
Contributor II

What exact NAND part are you using?  What is the page and oob size?  Have you correctly set the following parameters;

1. Page and oob,

2. ECC

3. Address Cycles,

4. interleaving,.

....

Please provide all the settings and I will try to help you.

0 Kudos

740 Views
TheAdmiral
NXP Employee
NXP Employee

Looks like I am the first one to reply to your question. I am probably not best to tell you how the bootloader works. Basically, it is pre-loaded ROM code that has a number of options you can select prior to boot, that will load drivers specifically for the boot device you want to use, so that the booting device can read its next set of instructions to continue with the boot up sequence. There is a specific address that the booting device will go to looking for code, so if that is not right, your boot will definately fail.

It sounds like you have done most of the basic troubleshooting. I would say that your problem may fall into one of three catagories:

1) The NAND Flash routine did not work correctly (which would include the start address of the boot code not being at the correct address). I would reformat NAND and reflash boards that didn't work and see if any of them responded. If none of them do, this is probably not the problem.

2) I would try to reverify that boot pin settings are made correctly, manually. Hold the processor in reset and look at the voltage on each boot pin and verify that it is correct, and not in some mid-position, held there by something you did not expect. (It might change after the boot procedure.

3) The last thing is that maybe one of the timing/nand values selected may not be the correct one. For example, NAND address cycle.  Try selecting a different (larger?) number. This seems like the most plausible explaination for why some boards are working and others are not.

 

One other thing you can do is to boot from an SD slot with code that says nothing other than go boot from NAND. Then, if you get failures, you can start adding small changes to the SD code changine parameters until you find the one that is causing you problems. Should be rather simple code, but I don't have an example in front of me to give to you.

 

Cheers,

 

Mark

0 Kudos