Data relocation when using LOAD_L2=STANDALONE
#5
(06-29-2020, 12:25 PM)bluewww Wrote: The range from 0x1A00_0000 to 0x1A00_2000 is mapped to the boot rom.
https://github.com/pulp-platform/pulpiss...asheet.pdf

You can't put in anything outside that range, It will be invisible or just not work.

If I take a look at the linker (link.ld) inside the boot code repo I can see that there are two memory regions available for allocation.
First one is ROM with origin 0x1A000000 and second one is L2 with origin 0x1C000000.
This is in line with the memory map from the datasheet you linked.
Also the SECTIONS show that the linker already puts data into L2, not only in ROM.

Code:
    .heapl2ram :
    {
       *(.ram)
       *(.heapl2ram)
    } > L2

    .stack :
    {
       . = ALIGN(4);
      stack = . + 1024;
    } > L2



I have to admit that I'm not sure what kind of data is moved to L2 as the data inside the pri0 bank (0x1c00'0000 to 0x1c00'8000) seems to be randomly distributed with gaps between the entries. The data inside the pri1 bank (0x1c00'8000 to 0x1c01'0000) on the other hand is coherent without any gaps between data.
There are also a few entries starting at 0x1c01'0000. Could you please go into detail a bit more when you say that it's not possible to put anything outside the range of the boot rom (0x1a000000 to 0x1a002000)? Maybe I'm totally missing something but to me it seems like it is possible and it's already being done.


Thank you.
Reply


Messages In This Thread
RE: Data relocation when using LOAD_L2=STANDALONE - by LPLA - 06-29-2020, 02:20 PM

Forum Jump: