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.

RTOS/PROCESSOR-SDK-AM335X: U-Boot as RTOS bootloader

Part Number: PROCESSOR-SDK-AM335X

Tool/software: TI-RTOS

Ok, this is kind of a cross-over question.

We develop in TI-RTOS and use the MLO/App boot procedure on BeagleBone Black for testing. Our SOM supplier does not provide a TI-RTOS MLO but does provide a working U-Boot source tree.

So to cross-pollenate the TI-RTOS to SOM we would like to boot with U-Boot, load a binary etc. and start it.

We've searched high and wide and attempted all suggestions on our bench BeagleBone Black with no success.

So, first question: Has anyone done this successfully? if so, hints would be appreciated.

We built the GPIOBlinkLED example and it works fine with a stock MLO load of the app file. Then we mkimage'd it and put the .bin and the mkimage'd file (with a .ub extension) on a microSD with U-Boot.

We've tried just FATLOADing the .bin file, adding a mkimage generator script to the post-build, etc.

We can load the bin, or load the image into memory, examine it, bootm (with autoboot off) the image, examine 0x80000000 etc. all LOOKS ok.

But then when we "go 0x80000000" it just goes off into lala land.

We've tried various versions of U-Boot including building the latest 2018.01 release.

We've tried relocating the base address to 0x81000000 in case of memory conflicts. All results the same.

Are we beating a dead horse? is this doable? are we just not holding our tongue right as we stand on our head and press the reset button?

Feedback appreciated!!

-Ed

  • Ed,

    It is bit unclear why you need to mix the MLO from RTOS to get into Uboot. Can you load uboot over JTAG or UART interface and then use Uboot commands to flash the boot media? We don`t recommend mixing RTOS bootloader with SPL and Uboot from Linux SDK as they have been designed to boot for a specific usecase. This is not something that we test so we don`t recommend this approach when bringing up software on a new platform.

    I will loop in the Uboot expert to comment on the issue but the general steps to bring up uboot. I am pointing you to some useful collateral for this purpose:
    training.ti.com/linux-board-porting-series-module-7-debugging-u-boot-jtag-ccs
    processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide

    Regards,
    Rahul
  • Rahull -

    Thanx for the input. I'm sorry if I confused. i'm not wanting to use MLO from TI-RTOS to load U-Boot. i'm just wanting to use U-Boot to load a TI-RTOS application.

    My problem is getting a clean U-Boot on a Beaglebone Black to load and execute either a binary image or one with a mkimage header added.

    my question is does ANYONE do this? if so, some up to date hints would be appreciated.

    I've tried all posts and blogs that I can find with no success. it could be that U-Boot or the startup asm file in TI-RTOS are assuming two different environments. Memory maps, user/system mode etc?

    I'm mainly trying to get confirmation that it is doable. I've spent a lot of time trying all solutions booting from a microSD. I'm preparing to attempt to debug U-Boot as it loads and starts the program to see if I can find anything.

    By background reason is that U-Boot sources come for many SOMs that don't bother to supply TI-RTOS bootloaders. Also having the scripting and utility functions around from U-Boot is helpful during development and deployment for alternate boot scenarios and copying thing to flash or mmc.

    If you or someone from the U-Boot team can confirm that it is supposed to work and a recommend procedure.

    -Ed

  • Ed,

    We currently don`t support loading RTOS application using uboot on this device. this probably can be achieved with some code modification as underlying functionality required is to load a contiguous binary from an offset in flash into DDR memory and then pass control to the application using its entry point in DDR but we have not done this tests as this is not the typical usecase with which we have designed the SDK software.

    Regards,
    Rahul
  • well, I asked if it was supposed to work and I guess that says it is not.

    there have been several posts over the years that led me to believe it was possible.

    if my debugging finds a way around this I will advise.

    Thanx anyway,

    -Ed