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: Bootloader Interface

Part Number: AM2634


Regarding bootloader interface besides UART and QSPI, does AM263x MCU support bootloading through CAN bus or Ethernet? For example if there is a MCU in the system trying to send updated binary image to the other MCU and there is only a CAN bus bridging two MCU units , how would this process be done efficiently? Assume both MCU are AM2634 or similar ones. 

  • Hi Liao,

    AM263x MCU supports boot via QSPI, SD/MMC. In case of serial boot, it supports UART interface only. For AM263x MCU, CAN bus or Ethernet interfaces are not supported for boot via ROM. 

    Can you please explain your requirement in detail so we can find a way to work around ?

  • Hi Wenkai,

    As Aakash mentioned, the ROM bootloader does not support boot from CAN or Ethernet directly. The ROM bootloader will load a Secondary Bootloader (SBL) from UART or QSPI (sbl_uart or sbl_qspi). The SBL will then load the user application (appImage) from UART or QSPI. You can certainly modify the sbl_uart or sbl_qspi to enable the user application bootloading from CAN or Ethernet.

    Please refer to AM263x MCU+ SDK: Understanding the bootflow and bootloaders (ti.com) for details.

    Best regards,

    Ming  

  • Hi Ming and Aakash,

    Sorry for late response - I just got back from my vacation. What we try to do is: during firmware upgrade, one module sends binary image to other modules via CAN bus. The MCU on each module could be ideally AM263x or different one. I understand AM263x booting process and curious how the binary is bootloaded via CAN bus by modifying sbl_uart or sbl_qspi? Can you please elaborate more about it?

  • Hi Wenkai,

    If you look into the sbl_uart, you will find the how the SBL use the UART communication to get the AppImage from the UART host (Windows PC) byte by byte, then copy the AppImage into he memory section by section. In order to implement the sbl_can, all you need to do is to modify the sbl_uart to use the CAN interface to get the AppImage instead of using UART.

    For how to get data from CAN interface. Please refer to the MCAN example in AM263x MCU+ SDK: MCAN (ti.com) 

    Best regards,

    Ming

  • Hi Ming,

    The sbl_uart and sbl_qspi you mentioned in your response, are they the example code provided with sdk package?

    Ideally we need both CAN and QSPI in our case:

    1) when there is an update, image can be received via CAN and flashed into flash memory via QSPI.

    2) when there is no update, image can be bootloaded via QSPI from flash memory.

    Is that something can be implemented in SBL?

    Thanks,

    Wenkai

  • I also wonder where I can find the source code of sbl_qspi.release.tiimage which is in {SDK_INSTALL_PATH}\tools\boot\sbl_prebuilt\am263x-lp?

  • Hi Wenkai,

    You can find the project location at this path : {SDK_INSTALL_PATH}\examples\drivers\boot\sbl_qspi\am263x-lp\r5fss0-0_nortos

    Regards,
    Aakash

  • Hi Wenkai,

    Yes, it can be implemented via SBL but this is not something which TI delivers OOB or is planning to deliver anytime.
    Though logically speaking it can be implemented but this implementation must be done by the customer.