Hi,
I'm working with OMAP-L138 and AM1808.
I need an area of RAM that survives warm reset. My idea was to use the On-Chip RAM at 0x80000000 but I discovered UBL uses this memory. So looking at ubl.cmd I see several things that start at 0x80000000. Not 100% understanding how each of these were used, I simply tried to move everything that started at 0x80000000 to 0x80000010 as in the following:
/*IRAMStart = 0x80000000;*/
/*bth - we are reserving the first 4 long words for bootcount */
IRAMStart = 0x80000010;
/*IRAMSize = 0x00020000;*/
IRAMSize = 0x0001FFF0;
DDRStart = 0xc0000000;
DDRSize = 0x02000000;
/*DRAMStart = 0x80000000;*/
DRAMStart = 0x80000010;
/*_DRAMSize = 0x00020000;*/
_DRAMSize = 0x0001FFF0;
STACKStart = IRAMStart + IRAMSize;
_NAND_EMIFStart = 0x62000000;
_NOR_EMIFStart = 0x60000000;
MEMORY
{
/* ARM_INTERNAL_RAM (RWXI): origin = 0x80000000 length = 0x00010000 */
ARM_INTERNAL_RAM (RWXI): origin = 0x80000010 length = 0x0000FFF0
SDRAM (RWXI): org=0xc0000000 length = 0x02000000
}
SECTIONS
{
/* .boot: load = 0x80000000 */
.boot: load = 0x80000010
.text: load > ARM_INTERNAL_RAM
.data: load > ARM_INTERNAL_RAM
.bss: load > ARM_INTERNAL_RAM
}
.. but I still have a problem. When UBL starts u-boot, I can write a value to say 0x80000000 and then type 'reset' on the u-boot command line and the value I wrote is gone. I've read in the data sheet that the contents of internal memory are retained on warm boot.
Any idea what the problem could be? Am I going down the wrong road by modifying the ubl.cmd file the way I have?
Thanks!
Regards,
Brian