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.

AM2434: QSPI Bootloader

Part Number: AM2434
Other Parts Discussed in Thread: UNIFLASH

Hi all,

I'm new to bootloader concept, correct me if I'm wrong.

1. In Developer Guide, it is given that,

         In the MCU+SDK, the bootflow takes place mainly in two steps after you power ON the device

  • ROM boot, in which the ROM bootloader boots a secondary bootloader or an SBL
  • SBL boot in which the secondary bootloader boots the application.

         Depending on which boot mode is selected, the RBL will load the secondary bootloader or SBL from a boot media (OSPI flash, SD card or via UART).

2. During SoC initialization, we are flashing default_sbl_null.cfg with uniflash

Open a command prompt and run the below command to flash the SOC initialization binary to the LP.

  cd ${SDK_INSTALL_PATH}/tools/boot
  python uart_uniflash.py -p COM<x> --cfg=sbl_prebuilt/am243x-lp/default_sbl_null.cfg

Now my question is does the external QSPI Flash is used during firmware flash or not.
Based on my assumption, the flow may be Firmware from USB -> ROM -> SBL ->(QSPI Flash) -> MSRAM (Code Execution).

In CCS, FLASH board driver is not configured in example.syscfg for many projects imported from SDK and configured for some projects.
Does it means that the bootloader is not using external QSPI flash memory in it's flow.

And also if I tried to initialize SoC with default_sbl_ospi.cfg, I'm getting errors

C:\ti\mcu_plus_sdk_am243x_09_00_00_35\tools\boot>python uart_uniflash.py -p COM23 --cfg=sbl_prebuilt/am243x-lp/default_sbl_ospi.cfg

Parsing config file ...
Parsing config file ... ERROR. 1 error(s).

[ERROR] Parsing error found on line 30 of sbl_prebuilt/am243x-lp/default_sbl_ospi.cfg
[ERROR] File not found !!!

Line 30 of sefault_sbl_ospi.cfg has

--file=../../examples/drivers/ipc/ipc_notify_echo/am243x-lp/system_freertos_nortos/ipc_notify_echo_system.release.appimage_xip --operation=flash-xip

In the above location there is no file named ipc_notify_echo_system.release.appimage_xip  

I also checked whether the LP runs the code, if the LP is powered off after flash or in release or debug mode, it is not running after powered ON. 

I want to know whether the QSPI flash memory is used while booting or not. And also I want to store some other data in QSPI flash memory, how to access the memory for both and use it.

Thank you.

  • Hi ,

    There are 2 scenarios - Booting of a device and Flashing of a device.

    In case of flashing, the sbl_uart_uniflash or sbl_ub_dfu_uniflash will flash the SBL and Application Images into the flash. In this case, the flow is -

    • UART Boot ModeROM uses UART --> SBL Uniflash (also uses UART to get SBL NULL or SBL OSPI and the Application images) flashes into the external flash.
    • USB Boot Mode ROM uses USB --> SBL Uniflash (also uses USB to get SBL NULL or SBL OSPI and the Application images) flashes into the external flash.

    Now, if you check SBL OSPI, you will see flash configurations for initialization at max speed to fetch the application from external flash to boot.

    In case of SBL NULL, you will only find device initializations. There are no application load operations done in that example. The application loads are done via CCS (Debugger) for faster development flow.

    Regarding the XIP application issue, you can choose to comment the same line if you don't have any code "executing from external flash".

    I hope this helps.

    Best Regards,
    Aakash