Recovering from NAND boot failed on a Leo DM36x using RidgeRun Linux SDK

From RidgeRun Developer Connection
Jump to: navigation, search

The problem

When starting a leopard board dm36x and it can't boot from NAND:

Starting NAND Copy...
Valid magicnum, 0xA1ACED66, found in block 0x00000019.
No valid boot image found!
NAND Boot failed.

The solution

1. Change the installation method to boot from an SD card. The example assumes you will deploy the firmware to an SD card in /dev/sdbX. Configure:

make config
Installer configuration -> 
  Firmware deployment mode -> 
    (X)Deploy all the firmware to an SD card
  [] Flash SD card image into loopback file instead of real SD
  (/dev/sdbX) SD device on linux host

And then install:

sudo umount /dev/sdbX
make install

2. Insert the SD card in your leopard board, set the switches to boot from SD (only switch 2 in On), and then power-up the board. Enter uboot and then exit your serial communication app.

*** Warning - booting from SD, using default environment
Net:   Ethernet PHY: GENERIC @ 0x00
Hit any key to stop autoboot:  0 

3. While your board is in uboot, change the installation mode agagin for an attached board:

make config
Installer configuration -> 
  Firmware deployment mode -> 
    (X) Attached board on communication port

4. Now you can recover your NAND boot by running:

make installrecovery

Note: On previous SDKs where 'installrecovery' is not supported, try:

make installbootloader
make install

5. You can now put the switches in your board back to boot from NAND (all 3 switches in Off), and ideally you would boot fine.

Loading from nand0, offset 0x400000
   Image Name:   "RR Linux Kernel"
   Created:      2013-05-09  19:46:41 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4256128 Bytes = 4.1 MiB
   Load Address: 80008000
   Entry Point:  80008000

See also

Flashing NAND using TI Flashing Utilities using RidgeRun SDK