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.

C6657 boot from SPI

I am working on bringing up a custom C6657 board which I need to boot from SPI NOR Flash.  Please can some one please confirm that I can boot directly from SPI and how I create the bootable image to burn into the SPI Flash.

I desperately need to get this running ASAP.  Thanks.

  • Hi Jim,

    SPI boot should take the same boot table format. The user guide should have the format details.

    Thanks,

    arun.

  • Arun,

     

    Thanks, but cold you plese give me some details of how to generate the bootable image for a SPI NOR Flash such as the one on the 6657 EVM?  The more I search, the more confusing it gets.  I think I need to run Hex6x (with appropriate options) and possibly some other utilities to generate the image?  My 6657 is strapped little endian.

    Based on some other posts that I have read, it appears the EVM actually boots the IBL from I2C which then boots from SPI.  Is this correct?  I wish to boot directly from SPI Flash using RBL.

    Any help would be greatly appreciated, thanks.

  • Hi Jim,

    In the MCSDK we have a sample to create the SPIROM file that you need to load in the NOR flash. Check the MAKEFILE in mcsdk_2_01_00_03\tools\boot_loader\ibl\src\make.

    Thanks,

    Arun.

  • Arun,

    Please excuse my lack of knowledge on this process, but what you have pointed me to is a series of nested makefiles for probably 30 different targets.   I am not sure how to get what I need from this.  I was hoping for a few simple lines to perform the conversion from my .out file to the file I will burn in SPI flash?

     

    I appreciate your patience, can you please give me a simple example of how to do this?

  • Arun,

     

    To further clarify, I am trying to boot directly from SPI, no IBL in I2C.  I think the example you pointed me to does not do this?

     

    I desperately need to get this working as we have a critical demo coming up.  Please any help you can give to boot the C6657 directly from SPI.

     

    Thanks.

     

    Jim

  • Hi Jim,

    in short this is what you have to do.

    •For getting the boot table
    –Hex6x (available in CGT)
    –Need a rmd file to provide details to hex6x
    –The output file is in the boot table format
    –If the EVM is set in little endian convert the boot table to big endian mode using bconvert64x utilities (available in MCSDK)
    •Convert to a I2C format use b2i2c (available in MCSDK)
    •Append the boot parameter table to the boot table
    –romparse (Available in MCSDK)
    –romparse uses a map file to get the boot parameter tables.
    Hex 6x is in code gen tools. and b2i2c and bconvert64x.exe and romparse are in the following folder in MCSDK.
    mcsdk_2_01_00_03\tools\boot_loader\ibl\src\util
    The sample rmd file is in the ibl folder(same place the makefile is)
    Hope this helps.
    Thanks,
    Arun.
  • Arun,

    OK, I think I am getting closer but still have questions:

    I build my little endian application to get simpleBoot.out (and simpleBoot.map) I then run the following .bat file to do as you have indicated.  The contents of my.rmd are shown below.  My questions are

    1) Is -le the proper switch for bconvert64x?

    2) What is the proper invocation of romparse? What are the input and out files from this?

    The only mapfile I have is simpleBoot.map from the origional application build.

    3) After romparse, do I have a file I can burn into SPI using norwriter?

    My phone number is (585)278-5986 if it is possible to just call and discuss.  Thanks.

    // jt.bat

    c:\ti\ccsv5\tools\compiler\c6000_7.4.1\bin\hex6x my.rmd
    c:\ti\mcsdk_2_01_01_04\tools\boot_loader\ibl\src\util\bconvert\bconvert64x -le simpleBoot.btbl simpleBoot.bc.btbl
    c:\ti\mcsdk_2_01_01_04\tools\boot_loader\ibl\src\util\btoccs\b2i2c simpleBoot.bc.btbl simpleboot.i2c
    c:\ti\mcsdk_2_01_01_04\tools\boot_loader\ibl\src\util\btoccs\b2ccs simpleBoot.i2c simpleboot.ccs
    c:\ti\mcsdk_2_01_01_04\tools\boot_loader\ibl\src\util\romparse\romparse -fill 0xff -rom_base 0 ???

    // my.rmd

    simpleBoot.out
    -a
    -boot
    -e _c_int00

    ROMS
    {
        ROM1:  org = 0x0400, length = 0x20000, memwidth = 32, romwidth = 32
        files = { simpleBoot.btbl }

    }

  • Hi Jim,

    Your rmd files looks fine.

    1) Is -le the proper switch for bconvert64x?

    <AVM> Yes

    2) What is the proper invocation of romparse? What are the input and out files from this?

    The only mapfile I have is simpleBoot.map from the origional application build.

    <AVM> Attaching a sample map and batch file for reference.

    set PATH=C:\CCS_5_1_08020\ccsv5\tools\compiler\c6000\bin;%PATH%
    set PATH=C:\cygwin\bin;%PATH%
    hex6x simple.rmd
    b2i2c simple.btbl simple.btbl.i2c
    b2ccs simple.btbl.i2c simple.i2c.ccs
    romparse nysh.spi.map
    byteswapccs i2crom.ccs spirom_le.dat
    http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/639/4382.nysh.spi.map

    3) After romparse, do I have a file I can burn into SPI using norwriter?

  • Arun,

    Thanks for the map file, very helpful.  I do not seem to have the byteswapccs utility anywhere in my directory structure.  Where can I get this?

    Thanks

  • Arun,

    Please, I am still in need of the byteswapccs utility.  Where can I get this?

    Thanks

  • Arun,

    I am also trying to create an SPI Boot image.  Where is the byteswapccs utility?

    Thanks

  • Arun,

    You failed to answer question 3) about romparse!  After applying romparse (and byteswapccs) is the result ready to be burned into SPI using norwriter or some other method?

    Thanks

  • HI All,

    Check this link for the byteswapcc.c file.

    Thanks,

    Arun.

  • Hello Arun,

    I also have an own board an want to boot from SPI Nor Flash without using an I²C EEPROM. My board is set to little endian. So far it did not work.

    Where can I find an example that works for my board and that I can download with the norwriter to test it?

    The documentation is somehow confusing for me. Please send me a simple example that I can try.

    Thank you very much,

    Michael.