Intellectual 460 points

Replies: 3

Views: 56



I am running the QSPI_BasicExample_idkAM437x_armExampleProject on a Sitara AM437x IDK. I am using SDK version

We are planning to create a custom board derived from the AM437x IDK and as a first action we would like to implement a UART boot process. I am currently trying to simulate the UART boot on the IDK, which is not natively possible on the IDK due to the SYSBOOT pin selection on the board.

The processor SDK RTOS Software Developer’s Guide indicated a workaround how to put the Sitara on the IDK into UART boot mode (see chapter “ Booting Via UART”):

1)      I first write the value 0x19 to the last byte of the memory address 0x44e10040.

2)      Afterwards I press the “Warm Reset” button on the IDK.

Now the Sitara is in UART boot mode since the processor prints out the letter C on the UART.

As a next stage I have to send the SBL (secondary boot loader) to the Sitara via XMODEM protocol. The problem is, that I just find the boot-loaders for the EVM board but not for the IDK:

And I also find no option to build this SBL in the Processor SDK RTOS Software Developer’s Guide:

Nevertheless, I tried to perform the UART download on the IDK with the following EVM SBL:

C:\ti\pdk_am437x_1_0_17\packages\ti\starterware\binary\bootloader\bin\am43xx-evm\gcc\ bootloader_boot_uart_a9host_debug

Afterwards I downloaded a self-compiled example binary:

What I see is:

The application does not seem to run at the end of the download process, but when I flash the application software with JTAG I see:

Is it possible that the SBL is wrong for that IDK? Or why is the application not started?

3 Replies

  • Hi Inno,

    Once you had the SBL and the application binary, what were the exact steps that you took to boot over UART?



  • In reply to Dillon Frank:

    Hi Dillon,

    I will give you a step by step instruction.

    First of all connect a serial terminal program (I use Tera Term as suggested by TI) with the settings 115200 8-N-1.

    As I wrote above, with the IDK it is not possible to boot over UART except with a nice workaround explained inside the Processor SDK Software Developer's Guide.

    This is what I did:

    Step 1: Connect to the target


    Step 2: Open the memory browser

    Step 3: Enter address 0x44E10040 in the memory browser

    Step 4: Modify the last significant byte of that address to be 0x19

    Step 5: Press "Warm Reset" button on the IDK

    Step 6: Now you see the UART boot-loader being active in Tera Term

    Step 7: Send first SBL and afterwards the application image via "Tera Term"


    As you know from my other posts, I am currently working on the QSPI NOR Flash example project QSPI_BasicExample_idkAM437x_armExampleProject and therefore I simply downloaded this example, since I have it compiled on my hard disk... 


  • In reply to inno:

    Hi Dillon,

    The initial problem that I mentioned in this post is, that I am missing the secondary boot-loader (SBL) binaries for the AM437x Industrial Development Kit (IDK). Specifically the UART boot-loader, but in general I see no folder called "idkAM437x" that holds the SBL.

    I was wondering if there is something else missing to support the IDK. So I decided to search for the MLO file (for supporting a boot process from SD card) inside the whole SDK. But the only MLO file I found was inside a folder of the EVM (also here I am missing a folder "idkAM437x"or "that holds equivalent files):

    Afterwards I read a bit about the process how to prepare the QSPI flash in a way, that booting from QSPI is possible. I understood that you need to use the SD-card and place 3 files on that card called "boot", "app" and "config". Afterwards you need to load and run a certain pre-compiled CCS binary, which programs the QSPI flash via the SD card interface and the 3 files located on that card in a way, that upon a following power-cycle a QSPI boot is being performed. Also here I found only the CCS binaries, which supports the EVM (so again no folder "idkAM437x" or "am43xx-idk"):


    It seems that the SDK support for the Industrial Development Kit in terms of tools for booting is totally missing. Can you please look also on your side?