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.

EMAC boot of C6474EVM



Hi,all

    We want to implement the I2C Customized  EMAC boot mode of C6474, but it cann't be descibedclearly in the bootloader user guide sprug24. i have several questiones:

    1) when does the host side begin to seed the boottable to the C6474?  do TI have the host side utils or relavant sampe code?  

     2) how to configure the EMAC boot parameter and where to put into EP2ROM?

     3) are there some effictive methods to debug when i test the EMAC boot process?

B.R.

Jason

  • Hi Jason,

    Jason wong said:

    Hi,all

        We want to implement the I2C Customized  EMAC boot mode of C6474, but it cann't be descibedclearly in the bootloader user guide sprug24. i have several questiones:

        1) when does the host side begin to seed the boottable to the C6474?  do TI have the host side utils or relavant sampe code?  

    - as for my understanding, the device will send an "ethernet ready" frame, in form of a BOOTP packet.

    When the host receives this, it means it can start the transmission. However it needs to be ready before since it seems that the packet is not retransmitted. This is how the host is signaled from the DSP

     


    Jason wong said:
    2) how to configure the EMAC boot parameter and where to put into EP2ROM?


    - there are no specific host tools available with the application note. But I believe the format for the boot table will be the one generated by the hex6x utility provided with the code generation tools.

    This is described in detail in chapter 11 of the assembly language toolsd user guide, spru186. Basically you have the entry point at the top (usually _c_int00), then the initialized sections with the size, the load address, the data, and at the end a zero value for terminating the table

    This is also described in section 3.1.2 of the bootloader user guide itself.

    fyi there is an app note spra 999a - Creating a Second-Level Bootloader for FLASH Bootloading on TMS320C6000 Platform With Code Composer Studio.

    Note that it is related to older generation of DSPs (so the boot modes discussed will likely not apply to your case) but the principle of creating the boot table from the .out file is similar, and is discussed in the document as well. There is also companion code to look at, for complementing what is discussed in the assembly book and the bootloader user guide, with some examples


    - an alternative to extract the initialized sections from the .out file, and have them as initialized c files to be included, would be to refer to the following application note:
    spraa64 - Using OFD Utility to Create a DSP Boot Image   which comes also with perl scripts that will perform this process. This in case you don't want to use an application image on the host, but rather embed the DSP application image directly in a C/C++ application in the source code of the host

    - in the evm sw installation CDs from Spectrum Digital, after you install them there is a \firmware\booteeprom project which you can use to write to the I2C memory

     

    Jason wong said:
    3) are there some effictive methods to debug when i test the EMAC boot process?

    in this case it will be hard since you cannot follow the rom bootloader routines, as you would have to follow assembly (the source code is not delivered).

    But the information given in the spec should be enough to construct the proper packet so that the bootloader accepts them

     

    Generally speaking, the advise is to start with a very simple application that includes just a while(1) loop, which maybe writes one internal location of the DSP memory, so that you can check with the emulator that the value is being written

    Of course having CCS opened and connected should allow you to verify if the download process has been successful, and I guess also check the downloaded sections packet after packet

    On the network side, I would recommend a sniffer at least like wiresharc so that you can check what is passing on the network and verify the data chunks being sent. However make sure that the open source tool is configured to log the packets you are sending.

    Make also sure you use a good cable supporting Gbit ethernet  (would recommend cat5e or better)

     

    Hope this helps

     

     

  • Hi Jason,

    Have you been able to boot  EVMC6474 through EMAC?

    Thanks,

    Maroun