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.

Some inquiries about the Ethernet boot process of EVM6678

Hi guys,

I'm fresh to the ethernet and network related aspects, so when trying to go through the ethernet boot example in MCSDK, some problems come out.

1. According to the README of ethernet boot example, when completed the DIP switch settings to "ROM Ethernet boot mode" and power on the EVM, the EVM will transmits BOOTP packet at regular interval. But I'm failed at this step since Wireshark can not capture any packet from the EVM's MAC address after I finished the steps above. What maybe the reason?

2. The next step said "Add an ARP entry for the DSP MAC address", according to the Image_processing demo, I think this can be done through the CfgAddEntry function in runtime. But in the example, it's impossible to implement it in application since the IP allocation is prior to the loading of application. So how to achieve that? As it seems we must modify the RBL code to add this entry?

Allen

  • I have posted a similar query (about not receiving any BOOTP packets from the EVP6678L) and am still waiting for any response. Perhaps my observations can give you a clue.

    According to mcsdk_2_00_09_21\tools\boot_loader\examples\ethernet\docs\README.txt:

    The DIP switch setting for C6678 EVM is: SW3(pin1, pin2, pin3, pin4): off, on, off, on SW4(pin1, pin2, pin3, pin4): on, on, on, off SW5(pin1, pin2, pin3, pin4): on, on, off, off SW6(pin1, pin2, pin3, pin4): off, on, on, on 2. Once the DSP boots up, it transmits BOOTP packet at regular interval which will have the MAC ID of the DSP.

    With those switch settings, my host program on Windows XP detects NO BOOTP packets. However, it can load the DSP.

    If I change the switches to SW3: off,off,on,off SW4:on,on,on,on SW5: on,on,on,off SW6:on,on,on,on then I do see a BOOTP packet (about 8 seconds after reset), but then Ethernet loading fails.

  • HI All,

    The EVM actually uses a FPGA that jumps to run an IBL in EEPROM and executes the PLL fix that needs for correcting the errata and then jumps to the boot mode you set through the DIP switch. If you have removed or overwritten the IBL, you can never get to the boot you desired. Can you check if the IBL is loaded and correctly configured.

    Thanks,

    Arun.

  • Hi,

    I have similar problems on a brand new, fresh out-of-the-box, TMDSEVM6678L Rev. 3A (silicon rev 2.0).

    This new eval board does not appear to generate a bootP request when configured for Ethernet boot mode.  I tried various reasonable dip switch combinations.  I even tried the work-around that reliably works on our old TMDSEVM6678L Rev. 2 (silicon rev 1.0) eval board with the “advisory 8” PLL problem.  The new 2.0 silicon should eliminate the advisory 8 problem but I had to try…

    Maybe I’m doing something wrong, but I can swap in our old board with the same dip switch configuration and it works (provided I do my “advisory 8” work-around).

    Greg Reuter

  • L:ike Greg, my EVM is still in its out of the box condition. The "Getting Started" test still works.

  • Hi,

    I have been using Peter’s dip switch settings this morning and both old and new boards have been generating BOOTP requests without my “work-around”.  Our dip switch settings were the same except for SW4[toggle 4].  My procedure for cycling through various dip switch combinations was obviously flawed.

    However, there is still a problem with the new Rev 3A EVM, because it acts as Peter describes.  However, when I swap in the old Rev 1.0 EVM, it loads and runs my code just fine.

    Greg Reuter

  • Hi Greg/Peter,

    Can you guys try to do a program EVM and see after that setting the DIP switches to Ethernet boot gets you the BOOTP packets. The program_evm is available in MCSDK.

    Thanks,

    Arun

  • I have just tried this, but I didn't get far as the file ...scripting\bin\dss.bat is an empty file!

    Next?

  • Hi Peter,

    What version of CCS you have, I tried it in mine and have the DSS file which is about 3KB.

  • Peter,

    Also try to set the DIP switched to POST and see if the POST runs. if it is not, it is because you don't have the IBL set correctly. Also are you in big endian or little endian mode?

    Thanks,

    Arun.

  • Google SPRUGS4.pfd and try to follow the first link that appears.

    I mentioned earlier that the Getting Started tests work.

    I intend to use the processor in little-endian mode.

    All this is actually looking like it could be moot as I have just discovered that TI now REQUIRES users of this chip to use BIOS if they want to talk to the outside world.

    I quote from SRRUGS4: "To ease the task of programming the packet accelerator (PA) by abstracting many of the hardware details, a low level driver (LLD) software package has been generated for use with the PA. Included with the PA LLD are firmware images that must be loaded onto the PDSPs before using the PA. Due to interdependencies between the firmware and the PA LLD, all users must use the PA LLD." As far as I can tell, PA LLD depends on BIOS and TI provides no alternative way of accessing Ethernet, SRIO, ...

  • I have CCS  Version: 5.2.0.00069

  • PA LLD is NOT dependent on BIOS. If you have just one process, then you can live without of any OS. But if you have multiple threads (For ethernet traffic it is usually is) you need a scheduler. You are free to write your own or use BIOS from TI.

    Arun.

     

  • Hi Arun,

    I am trying to comply with your request, but am stuck getting a syntax at the command prompt, and don't know how to fix it.

    Greg

     

     

    Here are 3 lines I entered at the cmd prompt.  I get the syntax errors following the third line.

    set DSS_SCRIPT_DIR="C:\ti\ccsv5\ccs_base\scripting\bin"

    cd "C:\Program Files\Texas Instruments\mcsdk_2_00_08_20\tools\program_evm"

    %DSS_SCRIPT_DIR%\dss.bat program_evm.js TMDXEVM6678L-le

    Syntax error in command line
    Syntax: program_evm.js [tmdx|tmds]evm[c](<device>)l[x][e][-le|-be] [im
    ite]
        tmdx: TMDX type EVM
        tmds: TMDS type EVM
        c: Not used, for backward compatibility
        <device> is the board name e.g 6472,6678 etc
        l: Low cost EVM
        x: EVM supports encryption
        e: EVM uses 560 Mezzanine Emulator daughter card
        le: Little Endian
        be: Big Endian
        example: TMDXEVM6678L-le
        [images_to_write] OPTIONAL is a list of the images to be written
        example: eeprom50,nor
        If not specified all (eeprom50,eeprom51,nand,nor) will be written

  • Greg,

    This is interesting. I can run the code as such ad it works for me.

    C:\mcsdk2_0_7\mcsdk_2_00_07_19\tools\program_evm>%DSS_SCRIPT_DIR%\dss.bat progra
    m_evm.js TMDXEVM6678L-le
    board: evm6678l
    endian: Little
    emulation: onboard XDS100
    binaries: C:\mcsdk2_0_7\mcsdk_2_00_07_19\tools\program_evm/binaries/evm6678l/
    ccxml: C:\mcsdk2_0_7\mcsdk_2_00_07_19\tools\program_evm/configs/evm6678l/evm6678
    l.ccxml
    Terminate batch job (Y/N)?

    Where did you get 2_0_8. from 2_0_7 i thought we went straight to 2_0_9. I am using 2_0_7.

    Thanks,

    Arun.

  • Also tested with MCSDK2_0_8 version and still i can get this working.

    Thanks,

    Arun.

  • Hi Arun,

    TI has all BIOS-MCSDK 2.0.x revisions right here:  http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html

    I have WindowsXP.  What kind of Windows are you using?  Could that be my problem with the syntax error?

    Greg

     

  • No I tried in XP too. No problem there. What is your CCS version?

    Thansk,

    Arun.

  • Hi Arun,

    I am using CCS  5.2.0.00069.

    Greg

  • Seems like the dss.bat in CCS5_2_xx is not working. Do you have a 5.1 version ccs in your PC?

    Thanks,

    Arun.

  • We both seem to have the same version of CCS - yet my .bat file is not broken, it's empty!

    I do not have any other version of CCS5.

  • Hi Arun,

    OK, I had a smarter coworker look at this.  He looked at program_evm_userguide.pdf and identified some misleading information.  Compensating for it, he was able to make dss.bat execute without syntax errors.  He happend to be viewing dss.bat in Notepad++ as it ran and suddenly we saw dss.bat become an empty file.  We conclude that dss.bat must have deleted itself, so now I have a blank dss.bat file just like Peter.

    No, I do not have 5.1 on my PC.  My coworker archives every update of CCS that comes out, and he says I could uninstall then reinstall 5.1 to get the older dss.bat file.  I hesitate to do this because the CCS installs have become big procedures.  Is there another way I can get the file.  Do I just need the dss.bat file or do I need other stuff from 5.1 too?

    Just to make sure we're not going on a tangent, you do realize that both my boards were generating BOOTP requests, right?  I ask this because after we eventually get this board reflashed, you want me to check if it generates BOOTP.  I was afraid to ask earlier and appear ignorant, but I guess it doesn't matter any more.

    Greg

    p.s. My coworker noticed that CCSV5.2.1 just became available just moments ago.

  • Hi Arun,

    After reprogramming the EEPROM, the BOOTP packet is produced by EVM normally on my side.

    But I couldn't go through with your method of using program_evm utility, the command "dss.bat program_evm.js TMDXEVM6678le -le" only run to "C66xx_0: GEL Output: Global Default Setup... Done." but the following programming is not proceed. What maybe the reason?

    So I try to program the EEPROM by the means of mcsdk/tools/writer/eeprom and it works.

    Allen

  • And more, my second question in post, how to add the entry to allcoate an IP address for EVM before transfer the application into it?

    Thanks.

  • Hi Arun,

    Dss.bat appears to have done something good, even though it erased itself.  Now the new TMDSEVM6678L Rev. 3A boot-loads from Ethernet following a power cycle or full reset.  It still doesn't boot-load following warm reset, but I don't know if that's important.

    I ran some of the program_evm_userguide.pdf Section 4 Verification steps on the Rev. 3A and got the results included below.  The results appear "good" to me, but since I have been confused by this situation, I don't trust my interpretation.  Do they look correct to you?

    Greg

     


    TMDXEVM6678L POST Version 01.00.00.04
    ------------------------------------------
    SOC Information

    FPGA Version: 000D
    Board Serial Number: EPD0064975
    EFUSE MAC ID is: 40 5F C2 B9 3D 3B
    SA is disabled on this board.
    PLL Reset Type Status Register: 0x00000001
    Platform init return code: 0x00000000
    Additional Information:
       (0x02350014) :0BEF0000
       (0x02350624) :000215FF
       (0x02350678) :00831F24
       (0x0235063C) :00081800
       (0x02350640) :00091800
       (0x02350644) :000A1800
       (0x02350648) :000B1800
       (0x0235064C) :000C1800
       (0x02350650) :000D1800
       (0x02350654) :000E1800
       (0x02350658) :000F1800
       (0x0235065C) :00000009
       (0x02350660) :00831FEC
       (0x02350668) :00832000
       (0x02350670) :00832014
       (0x02620008) :0200700A
       (0x0262000c) :04010169
       (0x02620010) :00000000
       (0x02620014) :28B40021
       (0x02620018) :1009E02F
       (0x02620180) :0602F000
    ------------------------------------------

    Power On Self Test

    POST running in progress ...
    POST I2C EEPROM read test started!
    POST I2C EEPROM read test passed!
    POST SPI NOR read test started!
    POST SPI NOR read test passed!
    POST EMIF16 NAND read test started!
    POST EMIF16 NAND read test passed!
    POST EMAC loopback  test started!
    POST EMAC loopback  test passed!
    POST external memory test started!
    POST external memory test passed!
    POST done successfully!

    POST result: PASS
    IBL version: 1.0.0.13
    IBL: PLL and DDR Initialization Complete
    IBL Result code 00
    IBL: Booting from NOR
    Start BIOS 6
    QMSS successfully initialized
    CPPI successfully initialized
    PA successfully initialized
    HUA version 2.00.00.04
    Setting hostname to tidemo-064975
    MAC Address: 40-5F-C2-B9-3D-3B
    Configuring DHCP client
    PASS successfully initialized
    Ethernet subsystem successfully initialized
    Ethernet eventId : 48 and vectId (Interrupt) : 7
    Registration of the EMAC Successful, waiting for link up ..
    Service Status: DHCPC    : Enabled  :          : 000
    Service Status: THTTP    : Enabled  :          : 000
    Service Status: DHCPC    : Enabled  : Running  : 000
    Network Added: If-1:192.168.37.163
    Service Status: DHCPC    : Enabled  : Running  : 017

  • What do you suggest I do to resolve the problem of  ...scripting\bin\dss.bat being an empty file?

  • Hi Peter,

    I attached the original dss.bat you probably had, since it is the one that came with my coworkers CCS 5.2.0.    My dss.bat became empty when I executed it.  I don't know if executing dss.bat fixed my problem or if was something else I did, but afterward the Ethernet bootloading was working.  I apologize if this isn't helpful, but nobody else replied, so I thought I would try.

    Greg

    dss.zip
  • Thanks Greg.

    Looking through these forums it's clear that many posts are left unanswered.

    Peter

  • Greg Looks good. What you mean by warm reset. Are you doing cpu reset or pressing the reset button on the EVM?

    Thanks,

    Arun.

  • Peter,

    It seems like 5.2.0  has some scripting error. please upgrade to CCSv5.2.1 where this is fixed. 

    Thanks,

    Arun.

  • Hi All and Arun,

                 Sorry to getting into this discussion. I am stuck with same ethernet boot problem, but post-bootp packets. Kindly go through my post and let me know any possible direction to debug/solve this issue.

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

    Thanks

    RC Reddy

  • Hi Arun,

    I meant the RST_WARM1 button on the EVM.

    At the moment, my EVM is connected only to power and Ethernet.  Another coworker added some code on a piece of equipment we manufacture to act as a BOOTP server for 6678.

    Greg

  • reset_warm1 should trigger the ethernet boot process. Just to confirm, you pressing the green button in the middle of 3 green button.

    Thanks,

    Arun.

  • Hi Arun,

    After pressing RST_WARM1 (green button in middle)
       TMDSEVM6678L Rev. 1.0    generates BOOTP requests but doesn't run *
       TMDSEVM6678L Rev. 3A     generates BOOTP requests and runs

    After pressing RSR_FULL1 (green button next to RJ45)
       TMDSEVM6678L Rev. 1.0    generates BOOTP requests and runs
       TMDSEVM6678L Rev. 3A     generates BOOTP requests and runs

    * I can tell if each core is running because each generates a UDP compile version/date message for my compile.  So when I say it ran or not I really mean I saw those messages or not.  The cores also respond to some simple query messages.  Maybe you have a better way to test not running.  If I try to debug with the emulator, it takes over and does the bootloading over USB.

    Greg