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.

bootloader for booting sysbios image

Other Parts Discussed in Thread: SYSBIOS

Hi,

I am new to sysbios, and RTSC configuration so my apologies if some of my questions are little basic

I am developing a simple bootloader for ARM on DM8148 evm board.

My custom bootloader initializes nand, DDR3 and other components. once this bootloader comes up, it shall load the kernel image (a simple application in my case) from nand to DDR3. After that it shall jump to the _c_int location of the kernel image.

So my problem starts here...

If I build a simple application without any RTSC or sysbios components, my bootloader can load the image from nand to DDR3 and execute it.

but if I build a RTSC image (application code remaining exactly same as above), my bootloader jumps to _c_int00 location of the image. But nothing gets executed.

does RTSC image builds differently from a normal image (an application built by choosing empty project)? 

  • Hi Dushyant,

    Which versions of XDCtools and SYS/BIOS are you using?

    when you jump to c_init00, the software assumes the hardware registers are at the default values (e.g. the default hardware clock speed) and it assumes hardware interrupts are disabled.

    c_init00 performs RTSC platform initializations. Have you created a platform to reflect your memory mapping? See this wiki page on how to create a new platform.

  • hi Tom,

    My XDCTool version is 3.23.03.53

    when you jump to c_init00, the software assumes the hardware registers are at the default values (e.g. the default hardware clock speed) and it assumes hardware interrupts are disabled.

    Hardware interrupts are disabled.

    c_init00 performs RTSC platform initializations. Have you created a platform to reflect your memory mapping?

    Yes I had create a platform and created memory mapping for it.

    My Observation:

    At _c_int00, the first instruction that is executed is "MRC             P15, #0, R0, C1, C0, #2". At this stage I am in user mode

    Once this instruction gets executed the CPSR mode bits show b'11011, going into undefined state. the program counter to jumps to 0x20080.

    So I tried switching to privilege mode before executing the above instruction. I modified the CPSR register and executed this instruction. This time around the program went fine but only to again enter abort state through some other instruction inside sysbios image.

    The same program if I load it manually, works well. So I am sure there is nothing wrong with the image.

    Thanks

    Dushyant

  • Thanks Tom for the help.

    Issue was with the ARM mode. In my bootloader it was entering into user mode and from there on jumping to _c_int00 of my kernel.

    modified the permission of my boot.asm file and staying in supervisor mode solved the problem.

    Thanks again for the help