This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Trying to modify UBL memory map to reserve first 16bytes of internal RAM at 0x80000000

Other Parts Discussed in Thread: OMAP-L138, AM1808

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

  • Hi,

    Just an update.  A colleague with quite a bit of CCS experience suspected that I needed to create a "memory hole" in the MEMORY or SECTION directive.  I've downloaded the SPNU118K and am trying to figure out how to do that now. 

    We did play with writing data to other memory addresses inside the On-Chip RAM and the contents were retained over software reset and warm reset (RESET line).  Looks like I just have to figure out how to properly create a hole at the start of On-Chip RAM.

    Regards,

    Brian