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.

C6457 configuration to boot from FLASH or Etherrnet

 

We would like to set up a C6457 on a board that allows us to boot from either the FLASH connected to the EMIF, or Ethernet. Based on how we connect our system to the outside world, we will want to have either method available at all times.  Is there a way to configure the DSP that allows us to boot from either method any time we want?  How do we tie mode pins, set up or interfaces, etc to allow this flexibility?

Also, related, on a new board that has never been powered-up before, how do you suggest we boot the DSP, get our program into the FLASH? We would like to use blank FLASH on the board, and at first time power-up, run a bootloader/FLASHprogramming utility to bring data into the DSP via ethernet, then use it to program the FLASH via EMIF. Can this be done? What are your recommendations.

 

Thank you,

 

Bryan Busacco.

  • Yes this is possible.  I would also ask is this a one-time setup?  Meaning how you connect to the outside world or do you need to change it on the fly?  If on the fly, i'll respond to your response.

    Yes, C6457 does support EMIF and Etherne Bootmode among other options.  First, from the main www.ti.com/C6457 page: http://focus.ti.com/docs/prod/folders/print/tms320c6457.html, download latest data sheet: http://www.ti.com/lit/gpn/tms320c6457 and near the bottom, also download the 'C6457 Bootloader Users Guide': http://www.ti.com/litv/pdf/spruec6d.

    You would make the bootmode pins user configurable.  Usually this is done on EVMs using multi-position dipswitch.  So, in the data sheet, goto page 21, section 2.4 where it explains the boot options.  Table 2-3 shows boot options.  Top of page 22, shows that chosen bootmode is selected via 'BOOTMODE[3:0] external pins.  These are 'shared pins w/ GIO.  So, goto page 35, table 2-6, where it identifies that GPIO[4:1] = BOOTMODE[3:0].  These are the pins you make user configurable via external dip switch.  As mentioned above, if you need this to be user configurable on the fly, then you need to design provisions for some device, exteranl micro or fpga/cpld to accept command to change those bootmode pins.  So, in this case, it will be pins from the 'controlling' device instead of DipSwitch.  NOTE:  The Bootloader Users Guide goes into more details about each different bootmode.  Definitely go through this and the data sheet before you complete schematics and plan your options.  NOTE: Another guide you should go through is the 'C6457 HW DesignGuide': http://focus.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=spraav7b&fileType=pdf.

    Your second paragraph looks like Ethernet Boot as the first pass.  It would download your User Bootloader which has the FlashWriter as part of it, then it would run and ask Ethernet to download or xfer the full DSP binaries and place them into the runtime locations. 

    I HAVE TO CHECK THESE STATMENTS for the C6457 as i'm not familiar with the EVM.  
    The first time you bootup, as you state, there is nothing in Flash.  How do you program it?  I will check, but similar process wrt setting bootmode pins.  You would choose 'No Boot' via BOOTMODE[3:0].  This allows CCS to connect via JTAG.  Then you will use a TI provided FlashWriter utility, which could be a GUI based Flash Loader w/ no CCS involvment or a DSP executable you'd download via CCS to the DSP and run it, it then uses SDIO to prompt you for FLASH binary, base addres, etc. 

     

  • Bryan,

    C6457 can boot from EMIF or Ethernet. For EMIFA boot, the FLASH has to be of NOR type so the DSP can read directly (there's no built-in NAND controller) and connected to CE3. If this boot mode is selected, C6457 will branch to code starting at 0xB0000000 address. For Ethernet boot, you need to follow the protocol required by the internal ROM bootloader described in SPRUEC6D.

    Boot modes are hardware selected via the BOOTMODE pins[3-0]. Their values are read after reset goes inactive. All available bootmodes for C6457 are documented in Chapter 2 of the C6457 Data Manual (SPRS582), available on the TI web site.

    To debug a new board, use Code Composer Studio IDE and a JTAG emulator to connect to the DSP. A "Getting Started Guide" is available on the TI Wiki at http://processors.wiki.ti.com/index.php/CCSv4_Getting_Started_Guide

     

     

  • I guess we both replied at the same time but Marc has more info. If this answers your question please mark with "Verify Answer".

  • Hi Bryan,

    These questions are a little too generic for me to go into specifics, but I can certainly provide some ideas based on what I would do with a blank slate.

    Bryan Busacco said:
    We would like to set up a C6457 on a board that allows us to boot from either the FLASH connected to the EMIF, or Ethernet. Based on how we connect our system to the outside world, we will want to have either method available at all times.  Is there a way to configure the DSP that allows us to boot from either method any time we want?  How do we tie mode pins, set up or interfaces, etc to allow this flexibility?
    The boot pins allow you to tell the DSP how to boot when it wakes up and releases from reset. What I do not know is how this decision is made, and whether or not this decision maker can change the voltage level of these pins dynamically?

    For example, a human can flip DIP switches to change the boot pins from EMIF boot to EMAC boot. This is what we do with our EVM and DSK boards. Additionally, some sort of smart device (a micro, a host, etc.) can do so as well.

    However this is done, the BOOT[3:0] pins need to be toggle between EMIFA boot mode (0101b) and one of the three EMAC boot modes (0110b, 0111b, or 1000b). Once the DSP is released from RESET it will poll these pins and configure the appropriate interface before starting up the boot process.

    Bryan Busacco said:
    Also, related, on a new board that has never been powered-up before, how do you suggest we boot the DSP, get our program into the FLASH? We would like to use blank FLASH on the board, and at first time power-up, run a bootloader/FLASHprogramming utility to bring data into the DSP via ethernet, then use it to program the FLASH via EMIF. Can this be done? What are your reccommendations.
    This is a difficult question to answer because I do not know enough about these boards. I do believe this can be done, but just to reiterate I am not sure if my blank-slate thoughts will apply to your specific hardware.

    On a brand new board with nothing loaded in any memory the DSP will be unable to perform any boot-up on its own. It will require some sort of aid from the outside world to boot. In this case, the Ethernet host will provide a small Flash-writing routine as well as the image to be written into Flash.

    When the Ethernet host completes sending the Flash-writing routine and the Flash image the routine can then burn the Flash and signal that it has completed. At this point you can either boot from Flash or boot from EMAC with the actual application.

    Does this satisfy your questions? Again I hope my blank-slate approach is still generic enough to help with your specific case, but if you have follow-up questions please let us know.

  • Looks like I missed the window as well... :)

  • It turns out that there is not a Flash Writer utility that supports the 6457 DSP.  TI is offering two new eval kits for this DSP. Does either offer an already written utility?  Or, is there one out there somewhere? I'm looking to save time by not having to write one.

     

    Thanks, Bryan.

  • Bryan,

    There will be a flash writer program for the new low cost C6457 EVM (http://focus.ti.com/docs/toolsw/folders/print/tmdsevm6457l.html).  This flash writer will be provided and supported by eInfochips, similarly to the C6472EVM package release they have today.  You can download their SDK here: http://www.einfochips.com/TI/EVMC6472_SDK_Setup_4_0.exe and look at the supplied evm6472_nand_passthrough.c file for reference.  It may be tweeked for the C6457, but you'll get the general idea.  The NAND flash is hooked to the DSP through the FPGA (which is just a passthrough).

    Regards,

    Travis