This would seem to be a pretty common thing to do, but for some reason it wasn't described anywhere that I could find...

If you want to be able to update your kernel or uboot image in NAND (I'm using a DM355 platform, but this should work for others) *while* your system is running and without the use of a JTAG device, these are the commands that I use to do this:

/usr/sbin/flash_eraseall -j /dev/mtd2
/usr/sbin/nandwrite -p /dev/mtd2 uImage

This example updates the kernel. It is assumed that /dev/mtd2 is your NAND kernel partition. Uboot would be /dev/mtd0.

Also if you see any bad blocks during the erase operation you'll need to make sure they don't occur in the middle of your kernel code. It seems that the bootloader doesn't understand bad blocks and will NOT skip them. So you need to have a contiguous set of good blocks for your kernel.

I've been able to save some bad boards in the past by moving the kernel away from the bad block area and changing the uboot 'nboot' command to match that offset.

Enjoy,

Steve

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to