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.

Run application from NAND flash

Hello !

I'm using EVM6678 and mcsdk_2_00_05_17. I try to program my simple application to NAND. This application must read simbols from UART and send them back to PC. But when I completed all things to program my application and restart EVM6678 board, I see that my application is not running from NAND. COM-Port terminal program gets following:

IBL: PLL and DDR Initialization Complete
IBL Result code 00
IBL: Booting from NAND
IBL: Booting from NAND
IBL: Booting from NAND
IBL: Booting from NAND

..... - many times....

My steps were:

Dip switches: SW3 (off, on, on, on), SW4 (on, on, on, on), SW5(on, on, on, off) - I2C in Master mode ! And SW6 (on, on, on, on).

1. I program i2crom_0x51_c6678_le.bin from \tools\boot_loader\ibl\src\make\bin\ to the EEPROM at I2C BUS address 0x51 using EEPROM Writer CCS project following README.txt from the EEPROM writer project. In the eepromwriter_input.txt file I type:

file_name  = app.bin           /* i2crom_0x51_c6678_le.bin was renamed to app.bin
bus_addr   = 0x51
start_addr = 0
swap_data  = 0

At the end I get message: "EEPROM programming completed successfully"

2. In setConfig_c66xx_main() of tools\boot_loader\ibl\src\make\bin\i2cConfig.gel, I replaced
          ibl.bootModes[1].u.nandBoot.bootFormat        = ibl_BOOT_FORMAT_BBLOB;
      with
          ibl.bootModes[1].u.nandBoot.bootFormat        = ibl_BOOT_FORMAT_ELF;

3. I re-programed the boot configuration table folowing instructions from evmc6678-instructions.txt taken from older mcsdk_2_00_00_09 because I didn't found so detailed instructions about the subject in newer mcsdk_2_00_05_17:

a) I run i2cparam_0x51_c6678_le_0x500.out program from \tools\boot_loader\ibl\src\make\bin.

b) Then I loaded corrected (see p.2 above) GEL-file i2cConfig.gel and run script "EVM c6678 IBL -> setConfig_c6678_main".

c) After press "ENTER" in CCS console the program wrote boot parameter table to EEPROM, and I saw the message "I2c table write complete".

4. After that I programmed my simple application to NAND using nandwriter project from \tools\writer\nand\evmc6678l following README.txt file in the project:

a) I generated .bin file from my .out program with tiobj2bin.bat utility: " tiobj2bin.bat  app.out  app.bin  ofd6x.exe  hex6x.exe  mkhex4bin.exe". as a result, I got app.bin file (~95 kB) from app.out file (~530 kB).

b) File nandwriter_input.txt was used with default parameters.

c) Program writer\nand\evmc66xxl\bin\nandwriter_evm66xxl.out was loaded to CCS.

d) I loaded my app.bin to memory from address 0x80000000. Type-size was selected as 32-bits.

e) Then nandwriter program was started and binary data was written to NAND flash. At the end I saw message "NAND programming completed successfully" in CCS console.

Then I set dip sweetchers: SW3 (off, off, on, off), SW4 (on, off, on, on), SW5 (on, on, on, off) and SW6 (on, on, on, on).

All steps are OK, but my application does not work from NAND after restart EVM6678 board. Anyone can tell my where is my error ?

  • Probably, we solved the problem.

    As I wrote in section 4a, app.bin file was prepared from app.out file using tiobj2bin.bat utility.  Then we burned app.bin to NAND flash, but out application didn't start from NAND. Then we tried to burn NOR Flash doing the same things as it was described in my previous post, but ignoring section 2, because no need to change i2cConfig.gel for NOR write process. And also we didn't get result. However, when we simply renamed our app.out file to app.bin and burned it to NOR, this application started correctly from NOR flash !

    But now I'd like to do SPI booting of all the 8 cores of the C6678 using the MAD utilities. I read discussions in threads:

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/217002.aspx

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/224763.aspx

    and a few others. Also I read the document http://processors.wiki.ti.com/index.php/MAD_Utils_User_Guide.

    Then I tried to do .bin file using maptool.py : python "E:\Program Files\Texas Instruments\mcsdk_2_00_05_17\tools\boot_loader\mad-utils\map-tool\maptool.py" config-files\maptoolCfg_evmc6678l_bypass_prelink.json bypass-prelink .

    Files .json were prepared similar as in http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/217002.aspx.

    As a result we get c6678-le.bin file and burned it to NOR flash using norwriter CCS project. However our application doesn't work again.

    So, I have some questions.

    1) May be the problem is due to wrong configuration of IBL ? We have done it for NOR SPI booting as it described in sections 1 and 3 (without section 2) of my previous post.

    2) How to write .bin image which was prepared with MAD utilities ? We tried to use norwriter CCS project following section 4 b) - e). Is it right ?

    Any ideas ?