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.

Unable to verify Ethernet boot process completion

Other Parts Discussed in Thread: TMS320C6678, SYSBIOS

Hi,

Actually I am trying the Ethernet boot mode for EVM 6678 (TMS320C6678). After sending the boot image to the board from my PC using utilities provided by TI, I am getting error "Destination port: discard" at Wireshark. Some sites suggest that this error can be ignored (since we have disabled the IP Checksum offload functionality in Wireshark).

The main task is to verify that the booting process is complete or not. For this, I am trying to configure UART and get some prints on the serial terminal.

Can anyone suggest some other way to do this. Is it possible to send the boot image using ethernet and then debug using CCS??

Steps followed:

1. Initially static IP is allocated to EVM.

2. Changes dip switch setting to Ethernet boot configuration.

3. After receiving the BOOTP packets from the EVM, send the autoload image using the "pcsendpkt.exe" utility.

I am using the example code provided in the TI package dvd in folder Shannon_EMAC_boot_phyllis

Now problem is how to verify that boot procedure is completed or not.

Thanks

Anurag

  • Anurag,

    For the UART, you want to make sure the jumpers on the booting board are set correctly to enable the UART output.  I think by default the jumpers are set to use USB instead of UART.  The best way to test this is to set the boot pins to run POST on the EVM, and make sure you can see the UART output there first.  If you can see the UART output on the screen from POST, the jumpers are correct for this SRIO boot example too.

    Best Regards,

    Chad

  • Hi Anurag,

    did you add the ARP entry before you use pcsendpkt? If it works, then you should see udp packets sent from the host to the evm. if you are not seeing it, then the data is not transfered. After transfer, you can connect through ccs and see if the program counter jumped and executed your code.

    Thanks,

    Arun.

  • Hello Chad,

    Thanks for the suggestion. I have done this POST test and was able to see output on the hyper terminal. That means jumper configuration is correct but still we are not able to verify the boot process.

    Please suggest some other way to verify the booting process completion. Is it possible we send image through ethernet booting method and verify the booting completion process by running CCS?

    Thanks 

    Anurag

  • Hello Arun,

    Thanks for the reply. As you mentioned in your comments " you can connect through ccs and see if the program counter jumped and executed your code", can you suggest how to proceed for this in CCS?

    I have added ARP entry but in wireshark I am seeing packet discard message as mentioned in my 1st post.

    Thanks 

    Anurag

  • Hi Anurag,

    to verify the booting completion process, you could call platform_led at the beginning of your program. For example:

    platform_led(0, PLATFORM_LED_ON, PLATFORM_USER_LED_CLASS);

    should turn on LED 0 when your program starts. In that case, you will know that the booting process has succeeded.

    Alejandro

  • Anurag,

    You'd probably want something in your code confirm that it's completed, either by printing a message out the UART or as Alejandro has suggested using something like the platform_led function to turn on an LED.

    Best Regards,
    Chad

  • Hello Chad,

    Thanks for the reply.

    Following are the steps I followed to verify the booting process:

    1. After sending image to EVM 6678 board using the pcsend*.exe utility, connect to target using the ccs.

    2. Verify that image address (refer *.map file of each core) for each core is present at the boot magic address of each core.

    3. Check value at address 0x0262013c, if value at this address is '1', it means boot procedure is completed.

    4. Once this is verified, check values at L2 memory location. (In code put some specific values at L2 memory location), If value is present at L2 memory location this means ethernet booting process is completed.

    I have also verified the led glow test and UART print in platform test package.

    Thanks 

    Anurag

  • Hi Arun,

    can you please tell me how to add Arp entry. I know this post is dated long back, thogh bear with me because i am beginner to ccs

    regards,

    vamshi

  • I was in similar situation with C6670 EVM. I have created simple periodic SYSBIOS tread to toggle one of the LED's status using platform_led. WFM.

  • Hi Vamshi,

    In case you are still looking for a solution to add ARP entry, here is a way we have implemented eth boot-

    BOOT-P packet (broadcasted by TI DSP e.g. C6670) has a defined format which can be captured using a simple UDP Server program and we can further filter received packets to identify BOOT-P packet among them.

    Once BOOT-P packet is captured, we can extract the MAC Address of board and use "system" command to set ARP entry for this MAC address and any dummy ip address.

    e.g. system ( arp -s 192.168.0.254 DSP_MAC_ADDR );

    hope it is helpful

    Jitendra

  • Hi Anurag/Chad,

    I am working on Ethernet Boot on the same device. Can you please share the project (c file and prj file) which does an example Ethernet boot procedure!! This could highly save much of my time since I'm a beginner in it.

    Anurag, if possible could you share yours? That would be really grateful of you! ☺

     

    Thanks and Regards,

    Sud

  • Hi Sudarshan,

    The example ethernet boot project and procedure is available in MCSDK 2.0. 

    PATH:  ..\mcsdk_2_01_02_06\tools\boot_loader\examples\ethernet

    Thanks.

    MCSDK: http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html