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.

[DRA829]Early CAN startup Linux on app task



Hi,Experts

We're exploring the Early CAN startup strategy to quickly startup MCU R5F cores,Then we need to start Linux in the task in the MCU. How should we start Linux?

I have read the CAN Response and Bootloader Demo in the help manual, and I have the following questions:

1.We use OSPI boot mode(we are using SDK7.00), the Steps to run can see boot Linux need three files, atf_optee. Appimage/tidtb_linux appimage/tikernelimage_linux appimage, I want to know we must have boot Linux need these files?

2.We want to try to start Uboot directly in app Task, and then have Uboot start Linux. Does that work?

Regards,

Xie

  • Hi,Experts

    I have some new questions as follows(we are using SDK7.0):

    1.According to the document description, we compiled the u-boot.img file in Linux, and then modified the constructappimageshlos.sh file according to the steps, and then ran the script on Linux, but it failed. The error message is as follows:

    Error messages:

    2.Then we found a line of code in the constructappimageshlos.sh script that called the out2rprc.exe file according to the error message. As shown in the figure below, why would the exe file be called in the Linux script? Is this error preventing me from generating atf_optee.appimage/tidtb_linux.appimage/tikernelimage_linux.appimage?

    3.I was looking at the index.html document in psdk_rtos_auto_j7_07_00_00_11 in mcusw/CAN Response and Bootloader Demo Application/Known Issues and found that SDK7.0 does not support MPU1_0 startup for some reasons (as shown in the figure below). How do we need to modify these configuration files? How to start MPU1_0 through R5?

    Can you tell us how to modify these Sciclient board_data config configurations so that we can use the Early Can startup scheme and start MPU1_0 in R5? Looking forward to your reply

    Regards,

    Xie

  • Hi,Experts

    I have some new questions as follows(we are using SDK7.0):

    1.According to the document description, we compiled the u-boot.img file in Linux, and then modified the constructappimageshlos.sh file according to the steps, and then ran the script on Linux, but it failed. The error message is as follows:

    Error messages:

    2.Then we found a line of code in the constructappimageshlos.sh script that called the out2rprc.exe file according to the error message. As shown in the figure below, why would the exe file be called in the Linux script? Is this error preventing me from generating atf_optee.appimage/tidtb_linux.appimage/tikernelimage_linux.appimage?

    3.I was looking at the index.html document in psdk_rtos_auto_j7_07_00_00_11 in mcusw/CAN Response and Bootloader Demo Application/Known Issues and found that SDK7.0 does not support MPU1_0 startup for some reasons (as shown in the figure below). How do we need to modify these configuration files? How to start MPU1_0 through R5?

    Can you tell us how to modify these Sciclient board_data config configurations so that we can use the Early Can startup scheme and start MPU1_0 in R5? Looking forward to your reply

    Regards,

    Xie

  • Sorry for the delay

    I am checking with the experts

    Regards

    Vineet

  • Hi Xie,

    See replies under TI>>

    1. We use OSPI boot mode(we are using SDK7.00), the Steps to run can see boot Linux need three files, atf_optee. Appimage/tidtb_linux appimage/tikernelimage_linux appimage, I want to know we must have boot Linux need these files?

    TI >> Yes, they are needed.

    2. We want to try to start Uboot directly in app Task, and then have Uboot start Linux. Does that work?

    TI >> Early CAN boot task does not support Uboot. Only way to use Uboot is via SPL (PSDKLA boot flow) which does not support early CAN boot loader.

    3. According to the document description, we compiled the u-boot.img file in Linux, and then modified the constructappimageshlos.sh file according to the steps, and then ran the script on Linux, but it failed. The error message is as follows:

    TI>> See above, u-boot is not supported in SBL bootflow and you need to set your paths correctly (See answer below)

    4. Then we found a line of code in the constructappimageshlos.sh script that called the out2rprc.exe file according to the error message. As shown in the figure below, why would the exe file be called in the Linux script? Is this error preventing me from generating atf_optee.appimage/tidtb_linux.appimage/tikernelimage_linux.appimage?

    TI >> No, out2rprc.exe is correct, it's not a windows binary. Maybe your path is incorrect, you can find it under pdk/packages/ti/boot/sbl/tools

    5. Can you tell us how to modify these Sciclient board_data config configurations so that we can use the Early Can startup scheme and start MPU1_0 in R5? Looking forward to your reply.

    TI>> I will see if there is a plan to fix this.

    Regards

    Vineet

  • Hi,Vineet

    As mentioned before, we can start Linux normally in SDK 6.02, and then we need to modify the memory partition of Nor Flash according to our own App, and encountered the following problems:

    1.First of all, our modified partition is:

    SBL.tiimage---->0x0

    Sysfw.bin---->0x40000

    app.appimage----->0xa0000

    atf_optee.appimage----->0x200000(Modified)

    tidtb_linux.appimage----->0x16c0000

    tikernelimage_linux.appimage------>0x6c0000

    2.Second, we also modified the address of the atf_optee.lds file, changing 0x70000000 to 0x80000000,

    3.Finally, we modified the corresponding place in the boot_core_defs.h file:

    OSPI_OFFSET_A72IMG1         0x200000U

    ATF_START_RAM_ADDR         0x80000000

    Unfortunately, we did not start linux, please help us analyze whether we still have work that has not been done well, and forgot to modify those places?
    Looking forward to your reply, thank you!

    Regards,

    Xie

  • Hi Xie,

    I am checking with the owner.

    Regards

    Vineet

  • Hi,Vineet

    I have realized to start linux through MCU R5F. Then we have a few other questions:

    1.When we enable cache and MPU, I found that when we copy data from nor flash to DDR, the data will be wrong and cause Linux to fail to start, and the disabled cache and MPU can start normally. How to solve this problem?

    2.According to the manual, we know that there is a problem of resource conflicts. We want to cut the Linux Device Tree. Can you provide us with a simplified version of the Device Tree list. You only need to make Linux run on the A72 core.

    Regards,

    Xie

  • Hi Xie,

    I checked with the team and booting Linux from PDK/MCUSW was never officially supported. The Linux boot worked because there were no resource conflicts in basic Linux bring-up, although some conflicts with certain peripherals existed. But that changed with subsequent SDK's.

    The upcoming SDK (7.1) will have official support for SBL booting Linux directly so you could wait for it. I don't think TI will be able to help with resolving resource conflicts or other issues in previous SDK's.

    Regarding the cache issue you can use the MPU settings for the DDR region that are in the MCUSW CAN boot app override settings: mcusw/mcuss_demos/boot_app_mcu_rtos/overrides/r5_mpu.xs  (region 6 there).

    Regarding minimal DT, you will be able to build one using the board config that will be provided in 7.1.

    Regards

    Vineet

  • Hi,Vineet

    Vineet Roy said:
    I checked with the team and booting Linux from PDK/MCUSW was never officially supported. So I am not sure what you had working, I don't think TI can officially support it.

    Regarding this issue, you can check mcusw/mcuss_demos/boot_app_mcu_rtos/ The demo inside is that you can start the Linux kernel in the MCU R5F0 APP.

    Vineet Roy said:
    Can you point me to the part of 6.02 documentation through which you were able to get Linux booting via SBL ?

    We want to use MCU R5F to boot A72 to start Linux through Uboot after our other functions are running

    Above, thank you

    Regards,

    Xie

  • Hi Xie,

    I enquired further. SDK 6.02 had basic Linux boot support with CAN boot App because there were no resource conflicts, however certain peripherals were not supported.

    With 6.2 and 7.0, as more peripherals were added, that support was broken. This resource conflict issue will be fixed in 7.1 as SBL will support Linux booting. I suggest that you wait for it if not urgent.

    Regards

    Vineet