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.

AM2634: Sitara AM2634 Starting cores without booltoader

Part Number: AM2634

Tool/software:

Hi 

When I try to start multiple cores without bootloader, I have always a error. For example after the core 1 is started after core 0, then the core 1 is always in data exception handle.

What is a proper way to start multiple cores for sitara AM2634 without any bootloader?

Thank you 

  • Hello Panda,

    Without seeing the error in detail, the description sounds like the device may be getting configured for Lockstep mode. Can you share the Gel file you are using to configure Core 0?

    In general without a boot loader in dev boot mode, you'd use Gel files to initialize each core.

    Best Regards,

    Ralph Jacobi

  • Hello Ralph

    Thank you for your answer. I 'll try to formulate in other way:

    At the moment we have one image and load it twice, so the core 1 and 0  are ready from enter point to the main.

    But we want start the core 1 from core 0 directly. 

    In Aurix architecture there is the ability ,that the core 0 is like a master core. After the core 0 is started, the core 0 can start all other cores.

    My question is how can we start the core 1 from core 0 with one image one load?

    thank you

  • Hello Panda,

    The IPC should be able to handle configuring Core 1 from Core 0, what's not really clear is what the exact use case is here in terms of what you are looking to achieve.

    Starting cores without a boot loader certainly is doable but now we are talking image loading too - is this all for development purposes or do you want a situation where your final end application loads multiple cores without a bootloader involved?

    Best Regards,

    Ralph Jacobi

  • we want that core 0 is loaded by the bootloader and then core 0 starts core 1 which executes the same image, as core 0. The application is written for multicore. 

    If we would have multicore image which is loaded by BL and started on core 0 it would be under 1 MB. Then when core 0 starts, it would activate core 1 to execute the same image.

    we have already modified startup script etc. for multicore

    Each core gets different stack assigned etc.

  • we want that core 0 is loaded by the bootloader and then core 0 starts core 1 which executes the same image, as core 0. The application is written for multicore. 

    If we would have multicore image which is loaded by BL and started on core 0 it would be under 1 MB. Then when core 0 starts, it would activate core 1 to execute the same image.

    we have already modified startup script etc. for multicore

    Each core gets different stack assigned etc.

    set(MULTI_CORE_IMAGE_PARAMS ${BOOTIMAGE_CORE_ID_r5fss0-0} ${RPRC_IMAGE} ${BOOTIMAGE_CORE_ID_r5fss0-1} ${RPRC_IMAGE})set(MULTI_CORE_IMAGE_PARAMS ${BOOTIMAGE_CORE_ID_r5fss0-0} ${RPRC_IMAGE} ${BOOTIMAGE_CORE_ID_r5fss0-1} ${RPRC_IMAGE})

    this is how we create APPIMAGE now. You see the same image RPRC_IMAGE is used for both cores. This results in double image.

    If we manage to start core 1 from the core 1, we would create APPIMAGE like this: set(MULTI_CORE_IMAGE_PARAMS ${BOOTIMAGE_CORE_ID_r5fss0-0} ${RPRC_IMAGE}) and this would reduce the size of APPIMAGE by factor 2.

  • Hi,

    Apologies for the delayed response on this. Please correct me if I understand your requirements correctly:

    1. Core0 is unhalted and loaded by RBL (No Other cores to be unhalted now)

    2. Core1 is unhalted by Core0 and Core0 only loads binary to Core1.

    3. Core0 / Core1 binaries are same and hence you are looking for optimizing the APP image creation as its a copy for other image ?

    If yes I will check further and  see if this is possible to do in this flow and how this could be done.

    Best Regards, Shiv