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.

66AK2L06: Failed to Boot pre-built image delivered with Processor SDK using SBL

Part Number: 66AK2L06

I have a similar issue to this poster [POST] but I see no resolution.

I also have followed these instructions:

processors.wiki.ti.com/.../Processor_SDK_RTOS_Flashing_Bootable_Images

processors.wiki.ti.com/.../L

I have the K2L EVM board, trying to flash the SPI NOR for ARM core 0. I am able to flash using the spi_flash_writer, but then it won't boot. Or, at least I don't see any boot process on the terminal window.

I have used the default app image, leaving the config file as default values. I have also created my own binaries and edited the config file. In every case, I get a successful flash message (example pasted below) but no boot to the PDK SBL once I change the DIP switch setting to ARM SPI and power it on. No error messages, nothing at all on the terminal screen.

I'm using:

CCS 7.2
processor_sdk_rtos_k2l_4_00_00_04
pdk_k2l_4_0_6
What step am I missing?

*** PDK SPI Flash Writer ***
Opening SPI handle...
SPI handle opened!
Parsing config file and flashing content to SPI NOR...
Parsed config line, received parameters: filename = MLO, address = 0x0
Size of MLO is 0x67f0
Loading binary to memory ...
Finished loading binary to memory!
Flashed MLO to offset 0x0!
Read flash memory at 0x0, checking flashed content...
Verified flash data equal expected data!
Parsed config line, received parameters: filename = UARTsample.bin, address = 0x80000
Size of UARTsample.bin is 0x259d8
Loading binary to memory ...
Finished loading binary to memory!
Flashed UARTsample.bin to offset 0x80000!
Read flash memory at 0x80000, checking flashed content...
Verified flash data equal expected data!
Successfully flashed memory content!

  • Also - I found a troubleshooting guide (processors.wiki.ti.com/.../Processor_SDK_RTOS_Boot, but while I can find the entry point memory location via the MLO, it is unclear to me where to check for a matching memory location in this instruction:

    SBL and app Entry points
    If you don`t see your bootloader executing post boot, a good sanity check is for you to look at the map file for the bootloader and ensure that the entry point matches with the location in the TI or GPHeader in the boot image. this can be done by looking at the entry point in the MLO/_ti.bin/GPheader and ensure that it matches with the location of symbol Entry in the .out/map file for the bootloader.
  • Lisa,

    I'm very sorry for the lack of responsiveness on this thread. I'm trying to find someone with experience on this device to help out.

    I have a couple very high level comments/suggestions for debug:

    1. I believe that most of our RTOS applications output to the UART terminal, not the JTAG terminal. Have you checked on the UART for any kind of activity? (I could be mistaken on this since I haven't used this specific device, but it is probably worth a quick check.)

    2. If you connect with JTAG, what is the state of the processor? Can you see what code it's executing in the disassembly window? If you go to Run -> Program -> Load Symbols, then CCS will have the symbolic debug info to be able to show function names, etc. in the disassembly window.

    Hopefully I can get some additional comments from other TIers shortly.

    Best regards,
    Brad
  • Brad, Thanks for the response. This is still an open issue for us.

    In response to your questions:

    1) We have a UART terminal window open during the flashing of the SPI NOR, which shows:


    *** PDK SPI Flash Writer ***
    Opening SPI handle...
    SPI handle opened!
    Parsing config file and flashing content to SPI NOR...
    Parsed config line, received parameters: filename = MLO, address = 0x0
            Size of MLO is 0x67f0
            Loading binary to memory ...
            Finished loading binary to memory!
            Flashed MLO to offset 0x0!
            Read flash memory at 0x0, checking flashed content...
            Verified flash data equal expected data!
    Parsed config line, received parameters: filename = app, address = 0x80000
            Size of app is 0x227bc
            Loading binary to memory ...
            Finished loading binary to memory!
            Flashed app to offset 0x80000!
            Read flash memory at 0x80000, checking flashed content...
            Verified flash data equal expected data!
    Successfully flashed memory content!

    What the UART terminal window does not show is any activity whatsoever after the flash is complete, on booting to the ARM SPI. The screen is blank.

    2) The status of the processor after booting to ARM SPI is disconnected, and when I connect with the JTAG and manually launch the target configuration, connecting to my target arm0 core, the are no symbols defined.

  • I think that the problem actually is with the RTOS PDK Bootloader. I followed the directions here:
    http://processors.wiki.ti.com/index.php/Program_EVM_UG#Programming_the_bin_files

    My output after running the DSS.script, however, does not show full confirmation of being loaded.

    Per the documentation, I believe I should see something like this:

    Start loading nor.bin
    Start programming NOR
    2016_01_7_174332
    NOR Writer Utility Version 01.00.00.04
    
    Flashing sector 0 (0 bytes of 458752)
    Flashing sector 1 (65536 bytes of 458752)
    Flashing sector 2 (131072 bytes of 458752)
    Flashing sector 3 (196608 bytes of 458752)
    Flashing sector 4 (262144 bytes of 458752)
    Flashing sector 5 (327680 bytes of 458752)
    Flashing sector 6 (393216 bytes of 458752)
    Reading and verifying sector 0 (0 bytes of 458752)
    Reading and verifying sector 1 (65536 bytes of 458752)
    Reading and verifying sector 2 (131072 bytes of 458752)
    Reading and verifying sector 3 (196608 bytes of 458752)
    Reading and verifying sector 4 (262144 bytes of 458752)
    Reading and verifying sector 5 (327680 bytes of 458752)
    Reading and verifying sector 6 (393216 bytes of 458752)
    NOR programming completed successfully
    End programming NOR

    But while I'm not getting any errors, what I actually see is something like this:

    
    C66xx_0: GEL Output: Phys done
    Writer:../prebuilt-images/spi_flash_writer.out NOR:../prebuilt-images/MLO Start loading nor.bin Start programming NOR 2018_05_21_110718 End programming NOR


    Can you confirm that this is the root cause of my boot from flash problem?
    How can I resolve this?

  • Lisa,

    I've been discussing with the RTOS team and there is apparently an issue related to SPI boot.  They're working on a fix and I've requested that they post details here.  I'm sorry for the long wait, and I hope they will have a solution for you soon.

    Best regards,
    Brad

  • Lisa,

    What is the boot setting that you are using for SPI ARM boot?

    Attaching the MLO and GPIO test app files which should boot on K2L EVM. Can you please give a try with your board and share your observations. Use boot switch setting as '0010'

     

    k2l_evm_boot_images.zip

    - Pratap.

  • Pratap,

    To answer your question, I have been using the DIP switches set to 0010 to boot into ARM SPI, and 1111 to boot to DSP no-boot mode in order to run the SPI flash writer.

    I used the MLO and the app you provided, and the terminal window showed:

    *** PDK SPI Flash Writer ***

    Opening SPI handle...

    SPI handle opened!

    Parsing config file and flashing content to SPI NOR...

    Parsed config line, received parameters: filename = MLO, address = 0x0

            Size of MLO is 0x6dd8

            Loading binary to memory ...

            Finished loading binary to memory!

            Flashed MLO to offset 0x0!

            Read flash memory at 0x0, checking flashed content...

            Verified flash data equal expected data!

    Parsed config line, received parameters: filename = app, address = 0x80000

            Size of app is 0x1d8a0

            Loading binary to memory ...

            Finished loading binary to memory!

            Flashed app to offset 0x80000!

            Read flash memory at 0x80000, checking flashed content...

            Verified flash data equal expected data!

    Successfully flashed memory content!

    Then, with terminal still connected, I booted to ARM SPI – the terminal window now displays the following text:

    **** PDK SBL ****

    SBL Revision: 01.00.09.00 (Mar 23 2018 - 21:34:38)

    Begin parsing user application

    Jumping to user application...

     

     GPIO Led Blink Application

     

     All tests have passed

    I was also able to burn the UART Example project and run that as well. It appears that the MLO was the problem I was having!

    I now have two follow-up questions:

    1) Since I compiled that MLO from the pdk_k2l_4_0_6 package - can  you provide the source files you changes so that I can update the pdk package for my other CCS 7.2 build environments, so that I can recreate building the MLO you provided? Or - is there a more recent version of the pdk k2l package that you used to create this MLO?

     

    2) How can I debug the code binary code that I loaded to SPI Flash memory and run on the ARM core? When I attempt to connect to the ARM core, after booting to ARM SPI and seeing my program execute - if I attempt to debug with the USB cable, the application stops running and the ARM core shows "No symbols loaded".

  • Lisa,

    Thanks for the update. That confirms your setup is good.

    You can use the latest K2L package from below link. We recommend to use latest version of processor SDK unless you have some specific issues in migrating
    software-dl.ti.com/.../index_FDS.html

    Above package is verified with CCSv7.4. If you are specific about CCS version and don't want to migrate the whole package, you can clone latest SBL code from git://git.ti.com/keystone-rtos/sbl.git. Let us know in case you get into issues in building this code as you are using older processor SDK package and may get into some compatibility issues.

    Regarding the debugging of applications flashed onto SPI, usually the boot binaries are created without debug symbols. You need to manually load the symbols to see the program execution and debug. Refer the below link for more details.
    processors.wiki.ti.com/.../Debugging_Boot_Issues

    - Pratap.
  • Another note,

    Enabling NETCP PSC configurations inside PowerUpDomains() function (packages\ti\platform\evmk2l\platform_lib\src\evmc66x.c) is making the code to hang while booting from SPI flash. This is the reason for pre-built POST application failing to boot. If you are using this function or piece of code in your application, please disable for now. We are investigating the root cause and update you as soon as we have the solution.

    - Pratap.