• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C6000 Multicore DSP » Keystone Multicore Forum (C66, 66A, AM5) » BOOT from NAND FLASH with TMDXEVM6678L EVM
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Training Available
TI provides self-paced online training that introduces the primary components of the KeyStone II family of SoC devices.

  • KeyStone II SoC Overview >
  • KeyStone II Software Overview >
  • KeyStone II ARM Cortex-A15 Corepac Overview >
  • More Information >
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      A look back: Two years of Multicore Mix

      Posted 11 hours ago
      by Lauren Reed1
      A big thank you to everyone who participated in our contest last...
    • $core_v2_blog.Current.Name

      It’s our second anniversary, but you get the present!

      Posted 7 days ago
      by Lindsey Bare
      It’s hard to believe it’s already been two years...
    • $core_v2_blog.Current.Name

      Limited time offer: Save $100 on Keystone-based EVM!

      Posted 20 days ago
      by tscheck
      Have you been thinking about ordering a TI Keystone-based EVM...

    BOOT from NAND FLASH with TMDXEVM6678L EVM

    BOOT from NAND FLASH with TMDXEVM6678L EVM

    This question is answered
    GAUTHIER Jean-Michel
    Posted by GAUTHIER Jean-Michel
    on Jan 26 2012 06:24 AM
    Prodigy190 points


    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 ?

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Aravind Batni
      Posted by Aravind Batni
      on Jan 26 2012 09:34 AM
      Intellectual1240 points

      Hi,

      The gel file i2cConfig.gel is needed to change the IBL boot params table stored in EEPROM 0x51 address directory and it works along with i2cparam_c661x_le.out executable. The idea is param table can be changed to the settings as per the gel file settings by executing i2cparam_c661x_le.out program.

      You can refer to "Loading and Setting up the EVM with the Gel file" section of the BIOS MCSDK user guide which describes an example gel file to load on to the EVM . http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_Getting_Started_Guide#Use_JTAG_to_Load_the_Application . Similar method can be used to load the i2cConfig.gel file  located under "tools\boot_loader\ibl\src\make\bin\i2cConfig.gel".

      -Thanks,

      Aravind

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • GAUTHIER Jean-Michel
      Posted by GAUTHIER Jean-Michel
      on Feb 01 2012 09:42 AM
      Prodigy190 points

      Hi,

      finally, I have succeed more easily to change the configuration of the IBL by changing the /ibl/src/util/iblconfig/src/device.c file and compiling the IBL, flashing the EEPROM.
      => No need of the gel file, one less operation with CCV5.

      But I didn't succeed to boot from NAND the Hello world example.


      I have added traces with "uart_write_string (...)" calls on the iblmain.c and dload.c file:
      => I go to the iblBootElf(...) function from elfwrap.c
      => I go to the DLOAD_load(...) function from dload.c
      => but the (!dload_headers(fd, dyn_module)) returns FALSE.

      => I suppose that THE HELLO WORLD flashing in the NAND FLASH is not at the right place or not at the right format  ?
      I have followed the example : 
      - Copying the .out into app.bin.
      - loading the file on 0x80000000 DDR2 memory adresse.

      As the .map file of the Hello world example give the memory for the program to be 0x0082000 :


        OUTPUT FILE NAME:   <../bin/i2cnandboot_evm6678l.out>
        ENTRY POINT SYMBOL: "_c_int00"  address: 0086cda0


        MEMORY CONFIGURATION

           name            origin    length      used     unused   attr    fill
        ----------------------  --------  ---------  --------  --------  ----  --------
          L2SRAM                00820000   000e0000  000573b6  00088c4a  RW X
          L1PSRAM               00e00000   00007fff  00000000  00007fff  RW X
          L1DSRAM               00f00000   00007fff  00000000  00007fff  RW X
          MSMCSRAM              0c000000   00200000  00000000  00200000  RW X
          DDR3                  80000000   10000000  00000000  10000000  RW X


      , I put this value in the nand_writer_input.txt file :

       file_name  = app.bin
       start_addr = 8519680

      The Nand Writer help file refers to a start_addr 16384. What is the right value ?

      Does somebody really try this example with the EVM 6678 ?

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • GAUTHIER Jean-Michel
      Posted by GAUTHIER Jean-Michel
      on Feb 06 2012 01:58 AM
      Verified Answer
      Verified by GAUTHIER Jean-Michel
      Prodigy190 points

      Hi,

      After a rough effort to make a code composer project of the Boot program, I finally find the trouble : It was a confusion with the start adress in the nandwriter_input.txt.

      => The start adress must be 0x4000 (It is 0x000 for NOR  writer).

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Aravind Batni
      Posted by Aravind Batni
      on Feb 06 2012 08:30 AM
      Intellectual1240 points

      Hi,

      Good to hear that your problem is resolved.

      regarding the change of i2cparams there are multiple ways.

      1. change the device.c source file itself and rebuild IBL (like you did here, you need to have the IBL build environment).

      2. Use the i2cConfig.gel along with a DSP executable (Advantage is you don't need IBL build environment and the change happens in the target itself).

      3. We would be providing a configuration tool which would change the configuration parameters of the ibl image (either released/rebuilt). Later you can use the program_evm script to flash the image to eeprom 0x51. (Currently release 2.0.5 has an issue, where this tool is not prebuilt).

      -Aravind

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • GS Vinoth
      Posted by GS Vinoth
      on Aug 09 2012 09:46 AM
      Prodigy230 points

      Hello GAUTHIER Jean-Michel,

      I was trying to work the same in windows environment. I have provided the screen shot of the output here.

      My boot switch are 

      Switch   1   2   3   4   

      sw3      off off on off

      sw4       off off on on        (if i change this setting to  on off on on, as provided in the readme.txt, then no output).

      sw5       on on on off 

      sw6       on on on on

      Since you have already tried this and succeed, kindly provide me with some inputs. 

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use