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.

[FAQ] TMS320C6678: How to flash the IBL ( Intermediate Boot loader ) into EEPROM and how to flash the application binary into NOR? How to boot the IBL + Application binary?

Part Number: TMS320C6678

Hi

How to flash the IBL ( Intermediate Boot loader ) into EEPROM and how to flash the application binary into NOR?

How to boot the IBL + Application binary? on C6678 EVM using CCS 9.3

  • How to flash the IBL ( Intermediate Boot loader ) into EEPROM and how to flash the application binary into NOR?

    How to boot the IBL + Application binary? on C6657 EVM using CCS 9.3

    Pre-requisite 

    1. Install processor_sdk_rtos_c667x_6_03_00_106 from http://software-dl.ti.com/processor-sdk-rtos/esd/C667x/latest/index_FDS.html
    2. Install CCS 9.3 from 3.0.00012 | TI.com
    3. Choose the installation directory as C:\ti

    Step1: -- Building IBL     ( If you are using TI-C6678 EVM, you can skip this step and use the pre-built binary which comes along with processor SDK 6.3)

    1. Build the IBL by following this link :- https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1048641/faq-processor-sdk-c665x-ibl-build-steps-on-linux-ubuntu-processor-family-c665x ( Set the environment variables appropriately for C6678: “source setupenvLnx.sh” Build the image : “make evm_c6678_i2c ENDIAN=little I2C_BUS_ADDR=0x51” )
    2. After building the IBL, "i2crom_0x51_c6678_le.bin", IBL-binary will be generated at C:\ti\pdk_c667x_2_0_16\packages\ti\boot\ibl\src\make\bin

    Step2: -- Flashing IBL

    1. Set the DIP switch into "NO-BOOT" mode. "SW3,SW4,SW5 and SW6"

        SW3(off, on, on, on),

        SW4(on, on, on, on),

        SW5(on, on, on, on),

        SW6(on, on, on, on)

    1. Modify the eepromwriter_input.txt located at "C:\ti\pdk_c667x_2_0_16\packages\ti\boot\writer\eeprom\evmc6578l\bin"

    file_name = i2crom.bin
    bus_addr = 0x51
    start_addr = 0
    swap_data = 0

    1. Flashing steps as follows ( Flashing IBL into EEPROM using EEPROM writer)
    2. Set your C6678EVM to NO BOOT. Power on, launch target configuration in CCS, and connect to Core 0. Be sure the GEL file is used and DDR is initialized.
    3. Copy the IBLbinary you want to flash to "C:\ti\pdk_c667x_2_0_16\packages\ti\boot\writer\eeprom\evmc6678l\bin" directory.
    4. Rename the binary you copied in the previous step to “i2crom.bin”.
    5. In CCS, select Core 0 and open the Memory Browser. In the Memory Browser window, right click and select “Load Memory”
    6. Load your "i2crom.bin" to 0x0C000000. Do so by selecting i2crom.bin file and select the file type as binary. click Next, and input 0x0C000000 as Start Address
    7. Load C:\ti\pdk_c667x_2_0_16\packages\ti\boot\writer\eeprom\evmc6678l\bin\eepromwriter_evm6678l.out
    8. Run Core 0. This will program the flash memory.

    If it succeeds, the console will print “EEPROM programming completed successfully” like below.

    Step 3 -  Booting IBL:

    1. Change the DIP switch settings into NOR boot

        SW3(off, off, on, off),

        SW4(on, on, on, on),

        SW5(on, on, on, off),

        SW6(on, on, on, on)

    1. Open hyper terminal or Tera term/Putty and Connect the UART
    2. Observe the IBL booting with version either as 1.0.0.15 or 1.0.017

    Step 4 - Flashing app

    1. The sample binary taken for this demonstration is UART_BasicExample_C6678_c66xTestProject.
    2. Located at C:\ti\pdk_c667x_2_0_16\packages\MyExampleProjects\UART_BasicExample_C6678_c66xTestProject
    3. Build and create the app binary using CCS 9.3
    4. App binary, UART_BasicExample_C6678_c66xTestProject.out will be located at  "C:\ti\pdk_c667x_2_0_16\packages\MyExampleProjects\UART_BasicExample_C6678_c66xTestProject\Debug\"
    5. Flashing app binary into NOR-memory using NOR-writer.
    6. Set your EVM to NO BOOT. Power on, launch target configuration in CCS, and connect to Core 0. Be sure the GEL file is used and DDR is initialized.
    7. Copy the UART-app binary you want to flash to "C:\ti\pdk_c667x_2_0_16\packages\ti\boot\writer\nor\evmc6678l\bin" directory.
    8. Rename the binary you copied in the previous step to “app.bin”.
    9. In CCS, select Core 0 and open the Memory Browser
    10. In the Memory Browser window, right click and select “Load Memory”
    11. Load your app.bin to 0x80000000. Do so by selecting app.bin for the file, click Next, and input 0x80000000 for Start Address (Type-size selected should be 32-bit)
    12. Load C:\ti\pdk_c667x_2_0_16\packages\ti\boot\writer\nor\evmc6657l\bin\norwriter_evm6678l.out
    13. Run Core 0. This will program the flash memory.

    If it succeeds, the console will print “NOR programming completed successfully”

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    [C66xx_0] NOR Writer Utility Version 01.00.00.04
    Flashing sector 0 (0 bytes of 3014656)
    Flashing sector 1 (65536 bytes of 3014656)
    Flashing sector 2 (131072 bytes of 3014656)
    Flashing sector 3 (196608 bytes of 3014656)
    Flashing sector 4 (262144 bytes of 3014656)
    Flashing sector 5 (327680 bytes of 3014656)
    Flashing sector 6 (393216 bytes of 3014656)
    Flashing sector 7 (458752 bytes of 3014656)
    Flashing sector 8 (524288 bytes of 3014656)
    Flashing sector 9 (589824 bytes of 3014656)
    Flashing sector 10 (655360 bytes of 3014656)
    Flashing sector 11 (720896 bytes of 3014656)
    Flashing sector 12 (786432 bytes of 3014656)
    Flashing sector 13 (851968 bytes of 3014656)
    Flashing sector 14 (917504 bytes of 3014656)
    Flashing sector 15 (983040 bytes of 3014656)
    Flashing sector 16 (1048576 bytes of 3014656)
    Flashing sector 17 (1114112 bytes of 3014656)
    Flashing sector 18 (1179648 bytes of 3014656)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    The step4 is given in the video materials below. Follow the videos sequentially

    Step 5 - Booting IBL + app binary

    1. Change the DIP switch settings into NOR boot

       SW3(off, off, on, off),

        SW4(on, on, on, on),

        SW5(on, on, on, off),

        SW6(on, on, on, on)

    1. Open hyper terminal or putty and Connect the UART
    2. Observe the IBL booting with version, 1.0.0.15 or 1.0.017
    3. Observe the IBL jumps to the UART app.

    Regards

    Shankari G