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.

Linux: U-boot load address for MLO

Guru 20755 points


Tool/software: Linux

Hello,

I am trying to load a standalone program from MLO running from nand flash.

By default MLO load address in code is 0x80008000 , and U-boot from git starts successfully with it.

I first needed to run a standalone which output is expected to loaded into 0x80000000 (uc/os) , so I changed the load address from 0x80008000  to 0x80000000 and the application started OK.

Then I just checked if u-boot can also run with the same MLO (which load into 0x80000000 ), and surprisingly it started without issues.

Can anyone explain this  ?

Thank you,

Ran 

  • Hi Ranchu,

    Since MLO copies the uboot or any code into known location in RAM like 0x80008000(or 0x80000000), MLO can also make sure the execution jumps to this location. As long as location is valid and as long as there are no overlaping reserved region(like arguments being passed to uboot from MLO). since if there is reserved region, it would corrupt this region, it should work.

  • Hi Dwarakesh,

    I forgot to mention that I didn't make any change in u-boot.bin after changing the MLO load address to 0x80000000.
    So what I don't yet understand:
    Wwhy with one application (uc/os) it should matter that the address shall be 0x80000000, and the other application (u-boot) doesn't matter if it is 0x80000000 or 0x80008000 (same bin file gets started in both!)

    Thank you!
    Ran
  • Hi Ranchu,

    From where uboot is loaded is not required for uboot to know, unless some memory region is hardcoded in it for its usage and that memory region overlaps with the uboot loaded address. Which may not be the case.