Hi,
I have an custom board using OMAP L138 with NAND and I want to upgrade u-boot from u-boot or from Linux.
The partitions are:
0x0000000-0x0040000 : "params" 400000x0040000-0x0200000 : "bootloader" 1C0000
The params partition is divided in half, first part to u-boot environment variables and the second for ubl.
The bootloader contains u-boot but have more data that I don't know what is ?
After know the bootloader partition the idea is to used nand tools to save the new binary.
Thanks
I suggest you read up on U-Boot here http://www.denx.de/wiki/U-Boot/Documentation and play around with the various commands.
In particular you will want to know about setting and examining flash partitions and memory areas, programming flash, downloading into RAM using TFTP, the U-boot environment variables.
The work flow you want consists of
1) download the required code into RAM using TFTP or the console serial port
2) unprotect (on some devices) and erase the correct Flash area
3) program the flash area using the code from RAM
4) verify the flash data against the RAM
5) re-protect the flash
In a deeper search with google I have found some posts [0] [1] that point me some direction.
The problem that I am facing now is to have a u-boot with extra info to UBL be possible to load the u-boot.
Even using the mitydsp file [2] to generate the u-boot, ubl can't load it.
The ubl prints this errors:
Booting OMAP L138 Rev 2.1 Boot Loader Version: 1.0 (Nov 15 2011 - 14:35:18) Flashtype: NAND Starting NAND Copy... Check magicnum, 0xBCFE4B77, in block 0x00000006 ==? 0x55424CBB. Check magicnum, 0xBCFC5B77, in block 0x00000007 ==? 0x55424CBB. Check magicnum, 0xBCFE5B77, in block 0x00000008 ==? 0x55424CBB. Check magicnum, 0xBCFE5B77, in block 0x00000009 ==? 0x55424CBB. Check magicnum, 0xBCFE4B77, in block 0x0000000A ==? 0x55424CBB. Check magicnum, 0xFCBE5B77, in block 0x0000000B ==? 0x55424CBB. Check magicnum, 0xBCBE5B77, in block 0x0000000C ==? 0x55424CBB. Check magicnum, 0xACFE5B77, in block 0x0000000D ==? 0x55424CBB. Check magicnum, 0xBCFE4B77, in block 0x0000000E ==? 0x55424CBB. Check magicnum, 0xBDFE4B75, in block 0x0000000F ==? 0x55424CBB. DEVICE_NAND_ECC_correct: 0x0000015B. .... No valid boot image found! NAND Boot failed. Aborting...
Don't know if I am using the bad address or I need to had more info to u-boot.
Thanks.
[0] - http://e2e.ti.com/support/embedded/linux/f/354/t/113987.aspx [1] - http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/160898.aspx [2] - http://support.criticallink.com/gitweb/?p=u-boot-mitydspl138.git;a=blob;f=tools/genublimg.c;h=08f617f7465470970f8440b1bff88c843d29c154;hb=HEAD
why dont you use flasher tool from here http://sourceforge.net/projects/dvflashutils/files/OMAP-L138/v2.40/ ?
This contains the latest UBL.
Thx,
--Prabhakar Lad
I saw more results if you Google with "Check magicnum in block ==? 0x55424CBB"
Check magicnum in block ==? 0x55424CBB
Prabhakar Lad Hi, why dont you use flasher tool from here http://sourceforge.net/projects/dvflashutils/files/OMAP-L138/v2.40/ ? This contains the latest UBL. Thx, --Prabhakar Lad
The version 2_30 works for me and the priority now is for upgrade u-boot from u-boot.
I think that my problem is the way I have to build the u-boot file to save to nand.
I think that have narrowed the problem due to two cases:
1. problem on calculate the EEC when loading u-boot2. structure of data that needs to be saved to ubl be able to load u-boot
I have two versions of u-boot that calculate the EEC from different ways, one is compatible with linux (version A) way the other don't (version B).
If I update the ubl with version A everything works Ok, with version B I can't update the board don't work.
How UBL make the ECC calc ?