I'm trying to do the NAND flash I2C example as depicted in the following file :
C:\Program Files\Texas Instruments\mcsdk_2_00_05_17\tools\boot_loader\examples\i2c\nand\docs\README.txt: NAND boot over I2C example
The steps to built and run the example succeed :
NAND Boot Over I2C Example Version 01.00.00.00
Booting Hello World image from NAND flash via IBL over I2C 0x51 ...IBL: PLL and DDR Initialization Complete
I passed the steps to program the EEPROM and the NAND
Unfortunately, the result of the boot is not the "Hello world" I expected !!!
IBL Result code 00
IBL: Booting from NAND
Linux version 2.6.34-evmc6678.el-20110504 (a0868495@gtcs13.gt.design.ti.com) (gcc version 4.5.1 (Sourcery G++ Lite 4.5-109) ) #1 Wed May 4 11:14:47 EDT 2011
Designed for the EVMC6678 board, Texas Instruments.
CPU0: C66x rev 0x0, 1.2 volts, 1000MHz
Initializing kernel
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
Kernel command line: console=ttyS0,115200 initrd=0x80400000,0x300000 ip=dhcp rw
PID hash table entries: 2048 (order: 1, 8192 bytes)
..............
IP-Config: Auto-configuration of network failed.
Freeing unused kernel memory: 140K freed
starting pid 17, tty '': '/etc/rc.sysinit'
Starting system...
Mounting proc filesystem: done.
Mounting other filesystems: done.
Starting mdev
Setting hostname localhost: done.
Bringing up loopback interface: done.
Starting inetd: done.
eth0 Link encap:Ethernet HWaddr 90:D7:EB:95:49:2B
BROADCAST ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:7080 (6.9 KiB)
Interrupt:48
System started.
starting pid 54, tty '/dev/console': '/bin/sh'
/ #
It seems that the instructions given in the README.txt file, changing "tools\boot_loader\ibl\src\make\bin\i2cConfig.gel" to ibl_BOOT_FORMAT_ELF
doesn't take effect.
I read the following topic on forum : http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/113883.aspx
=> I identify a Configure IBL step that is not depicted in the readme.txt file :
Configure IBL
Terminate previous debug session (load IBL session)
Power-down EVM
Power-up EVM
Boot pins still set to little endian "No Boot"
Launch the EVM6678 target configuration
Load the evm6678l.gel file that accompanied the CCSv5.02 patch
Wait for memory map setup to complete
Connect to Core 0
Wait for GEL initialization sequence to finish
Load Core 0 with <MCSDK_beta2>\tools\boot_loader\ibl\src\util\i2cConfig\i2cparam_c661x_le.out
Load GEL file <MCSDK_beta2>\tools\boot_loader\ibl\src\util\i2cConfig\i2cConfig.gel
Run the i2cparam_c661x_le.out program
Run the EVM c6678 IBL -> setConfig_c6678_main GEL script
Press "Enter"
===Program states that the I2C table write completed
Is it necessary ?
If yes, how to load a gel file with CCV5 : only when associated with core on target configuration ?
Other question : Where "tools\boot_loader\ibl\src\make\bin\i2cConfig.gel" is it taken into account ? by the make evm_c6678_i2c CTRL or somewhere else ?
Any other idea to solve my problem ?