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.

66AK2H14: boot monitor is always required for booting app from u-boot ?

Part Number: 66AK2H14
Other Parts Discussed in Thread: SYSBIOS

Hello,

I'm just trying to boot my sysbios app on my K2H setup (Cortex-A15 MPCore Core0) from u-boot.
My u-boot is u-boot-2016.05+gitAUTOINC+6c5519b6fc-g6c5519b6fc, which was delivered from the latest version of ProcSDK (Release 03.02.00).

So what i did is :
- create sysbios app.out and convert it to a binary by using objcopy utility. It is delivered from gcc-arm-none-eabi-4_9-2015q3 (bundled in CCSv6.1.3).
- setup server ip and ip address and etc... on u-boot environments for tftp booting the above created bin file.
- load the bin to 0x80000000 by tftp. Please note my app's entry point (_c_int00) is exactly placed on 0x80000000.
- And lastly, go 0x80000000

As a result, my app did not boot correctly. When I connect CCS, it looked the core was getting stuck at unknown area (maybe, ROM ?).

But when I loaded and run the bootmonitor before going 0x80000000, my app always works correctly.
Please see the following new sequence.

- create sysbios app binary by using objcopy utility. It is delivered from gcc-arm-none-eabi-4_9-2015q3.
- setup server ip and ip address env values and etc... on u-boot for tftp booting the above created bin file.
- load bootmonitor to 0x87000000 (It is unused memory space by my app) by tftp and run it.
- load the bin to 0x80000000 by tftp. Please note my app's entry point (_c_int00) is exactly placed on 0x80000000.
- And lastly, go 0x80000000
===> My app works correctly.

So my question is whether or not bootmonitor is always required to boot app from u-boot on K2H (Cortex-A15 MPCore).
I found the following link, but It seemed it did not load bootmonitor for booting...

Best Regards,
Naoki

  • Hi Naoki,

    I've forwarded this to the software experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Please look at the boot Monitor function on Keystone II devices in the graphic provided here:
    processors.wiki.ti.com/.../MCSDK_UG_Chapter_Exploring

    U-boot and Linux run in non secure privilege mode so both the Kernel and the Uboot code make SMC calls to setup the A15 cores. Hence I believe the boot monitor is always required for Linux boot up on Keystone II devices.

    Regards,
    Rahul

  • I'm not asking about linux booting, but sys/bios. I also tried baremetal code booting and that worked correctly. My sysbios app does not boot without boot monitor. Also, the link is for MCSDK. I'm using ProcSDK. Could you please suggest the place for ProcSDK ?

    Best Regards,
    Naoki

  • Hi, Naoki,

    The example link in your earlier post is to run u-boot standalone application which is run off MSMC. To run any application in DDR, the ARM requires other configuration which u-boot doesn't/can't do, such as L2 latency, CP15 for basic A15 functionality, etc. All these configuration requires to be in secure priviledge mode which u-boot is not in. So, u-boot will need to make a SMC call to be in secure priviledge mode to configure them. In Keystone-2, this section of code in secure priviledge mode was separated out of u-boot to be an entity iteself and is called boot monitor.

    Hope this clarifies your confusion.

    Rex
  • Hello Rex,

    Thanks for your reply. Ok you say if booting app uses DDR3, the bootmonitor will be required to do some initialization... so now I'm wondering why my app worked when booting from CCS/Jtag... What do you think of this ? Is GEL file doing something for these special initialization ? Also do you have any recommended secondary bootloader for non-linux application in K2H ? I JUST found there was SBL for K2H!
    processors.wiki.ti.com/.../L
    Maybe, this is more preferred way for booting non-linux app.

    Best Regards,
    Naoki
  • Hello,

    I have an additional question -- In linux use case, boot monitor is loaded on MSMC RAM(in case of K2H, 0x0C5F000~). And kernel uses it during kernel booting. I wanted to confirm whether the boot monitor area should be preserved permanently even after booting linux kernel ? For example, can we override it by CMEM buffer in run time ?

    Best Regards,
    Naoki
  • HI, Naoki,

    Boot monitor space in MSMC is not needed after kernel comes up, but need to be sure not to conflict with other components' usage of MSMC.

    Rex
  • Hello Rex,

    Ok understand. Thanks for your answer. For sysbios app booting with bios, I will not recommend it for our customers. I will go with sbl option. I will check if sbl works or not some other time. I close the thread.

    Best Regards,
    Naoki