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.

CC3200 Fast boot mode (SDK v1.2.0)

Other Parts Discussed in Thread: UNIFLASH

Hi,

I've found a feature called "FAST BOOT" in the recently released SDK, and it might be a very interesting opportunity to decrease the 2-stage OTA boot time by not starting NWP twice.

As far as I got it right, the "magic" is described in example/application_bootloader/filesystem.h -- there are macros (fs_Open, fs_Read, fs_GetFileInfo, fs_Close) that point to the specific functions in ROM. I link image using bootmgr_fastboot.ld and load via gdb. The problem is that, for example, fs_Open expects certain values in regions like 0x20001200, and can even crash (HARD FAULT), because it treats some data in these SRAM regions as pointers. I stepped through the disassembled ROM and figured out how to "fix" that with

memset((void *)0x20001208, 0, 4);

but now I get -11 (not found) errors on any file I try to open. Please shed some light on the proper environment that these functions expect.

I also tried flashing my image into /sys/mcutst.bin (without relocator) and boot -- no success.

  • Hi Oleg,


    Please follow steps using flashing:

    1. Revert back to original code
    2. Edit ota_update_os.ld file and save it
    from
    SRAM (rwx) : ORIGIN = 0x20004000, LENGTH = 0x00030000
    to
    SRAM (rwx) : ORIGIN = 0x20008000, LENGTH = 0x00030000
    3. Edit Makefile and save it
    1. Add CFLAGS+=-DFAST_BOOT
    2. edit below line
    from
    ${BINDIR}/ota_update_os.axf: ${ROOT}/simplelink_extlib/flc/${COMPILER}/${BINDIR}/flc.a
    to
    ${BINDIR}/ota_update_os.axf: ${ROOT}/simplelink_extlib/flc/${COMPILER}/exe_fastboot/flc.a
    4. Edit otaconfig.h and save it
    1. Add you app key - OTA_SERVER_REST_HDR_VAL
    2. Change OTA_VENDOR_STRING value to
    Vid01_Pid00_Ver01
    3. Change APP_VER_MAJOR to 1
    #define APP_VER_MAJOR 1
    5. compile ota application
    6. Upload bin to dropbox at "Vid01_Pid00_Ver0005"
    7. Again edit otaconfig.h and save it
    1.Change OTA_VENDOR_STRING value to
    Vid01_Pid00_Ver00
    3. Change APP_VER_MAJOR to 0
    #define APP_VER_MAJOR 0
    8. Compile ota application
    9. Open uniflash
    10. Format device
    11. Program service pack
    12. Select ota application as "/sys/mcuimg.bin" and uncheck "Rollback" box and check Erase, Update, Verify box
    13. Add new File and rename it to "/sys/mcutst.bin"
    14. Select <sdk-path>example\application_bootloader\ewarm\Release_Fastboot\Exe\application_bootloader.bin as "/sys/mcutst.bin" and uncheck "Rollback" box and check Erase, Update, Verify box
    15. program device
    16. Remove SOP 2 and reset device
    17. Once connected to internet enable AP and get current time, press SW3


    if it still not update application in fastboot please share console log by enabling debugs print. To enable debug print please follow below steps:
    1. Edit ota\gcc\Makefile and CFLAGS+=-DDEBUG_PRINT
    2. recompile ota library and follow above steps


    Regards,
    Aashish
  • Hi Aashish,

    Thank you for the verbose answer. It worked!

    I'll try to figure out what was the root cause of the failure and post here.

    BR,

    Oleg

  • Hi Oleg,

    Any update on this topic? Did you find case of issue?

    Regards,
    Jan
  • Hi Jan,

    Sorry for late response. I've marked this question as "resolved" because of Aashish's instructions on how to use this feature. I develop FW for a commercial product, so I've needed to evaluate the possible outcome of this feature, and eventually considered it to be too raw and not well documented for the production use.

    As it appears to me (not sure though), the problem with hard faults was due to the use of GDB -- perhaps, some initialization code needs to run from the very early ROM and initialize certain magic regions.

    I see you were more persistent than me in a different thread, so I'm attaching a link here: https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/p/527474/1925585

    BR,

    Oleg