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.

SRIO booting example not working

Hi all

I am using C6670 EVM in SRIO boot mode and m trying to boot one DSP from other using SRIO interface.

i have tried the example given in the MCSDK but i am not able to boot the DSP.

the problem is m not getting the prints of booting on the tera term as given in  the example.

please suggest wat colud be the reason.

Thanks

  • hi

    the link between the 2 DSPs is established and I am getting the prints in CCS console about the DDR init and BOOT CODE transfer through SRIO successful.

    but how can i check that it has been transferered succesfully as m not getting the prints from booting DSP on tera term.

    please suggest.

    thanks

  • The C6670 EVM (TMDXEVM6670L) only has one DSP on it.  Are you using two boards, are is this a different board all together?

    Best Regards,
    Chad

  • yes i am using two c6670 boards (TMDXEVM6670L).

    thanks and regards

    Amandeep singh 

  • Have you tried connecting to the 2nd board (the board that is booting over SRIO that you are waiting on dumps via UART) via CCS and checking it's status after boot?

    What are the dip switch setting for the 2nd board? 

  • dip switch settings for both the boards are same and its according to the SRIO boot mode.

    no i havent ckhd the status of the 2nd board. what status shd i chk for?? prints on console or some memory location..??

     

     

  • 1 more thng i want to confirm..

    should i need to connect all the 4 ports or 1 port is enough for the successful booting..? As the example is in the 1x mode so i am connecting one port only,is it ok.?

  • Couple of things.

    1. You are getting the port OK in the port you are connect, right?

    2. What mode you are using. DIO or messaging.

    3. If you are using the messaging, then you need to convert the code in the boot table and then you need send that boot table to the other DSP.

    4. I am not sure what you mean by saying that  the DSP prints in CCS. is it the host DSP code that prints?

    5. One way to check if the code has been loaded and worked, is to write to any address through the application in the booted DSP and connect the DSP after the boot to verify if the address value is correct.

    6. Also check if the port ok register is set correct in the DSP that is booted.

    Thanks,

    Arun.

  • I'd start by using CCS to look at the internal memory space where the image should be loaded and see if it's there or not.  Is code supposed to be loaded to DDR in this boot code?  If so has DDR been configured?

    Best Regards,

    Chad

  • Hi

    1. Yes I am getting the port ok on the connected port.
    2. I am using the DIO mode
    3. The whole procedure which I am carrying out is as follows:

    I have made the dip switch setting of both the modes to boot from SRIO boot mode.

     

    Then connected the booting EVM to the PC’s serial port using RS-232 cable, and connected the JTAG emulator on the Host EVM.

     

    Then power on both the EVM’s.

     

    Then opened the tera term, set the baud rate to 115200bps,data 8-bit,parity none, stop 1-bit,and flow control none.

     

    Then connected the Host EVM using CCSv5,loaded and run srioboot_example_evm6670l.out from MCSDK examples.

     

    Then CCS console displays the following messages from Host EVM:

    [C66xx_0] SRIO Boot Host Example Version 01.00.00.01

    [C66xx_0]

    [C66xx_0] Transfer DDR init code via SRIO successfully

    [C66xx_0] Transfer boot code via SRIO successfully.

    Which is the expected result.(uptill this point there s no error)

     

    Then the tera term should also display the following from the booting EVM:

     

    But I am not getting these prints from booting EVM on the tera term.

    And i will check the memory space after connecting it to CCS and will update you on that soon.

    Thanks and Regards

  • Hi

    1. Yes I am getting the port ok on the connected port.
    2. I am using the DIO mode
    3. The whole procedure which I am carrying out is as follows:

    I have made the dip switch setting of both the modes to boot from SRIO boot mode.

     

    Then connected the booting EVM to the PC’s serial port using RS-232 cable, and connected the JTAG emulator on the Host EVM.

     

    Then power on both the EVM’s.

     

    Then opened the tera term, set the baud rate to 115200bps,data 8-bit,parity none, stop 1-bit,and flow control none.

     

    Then connected the Host EVM using CCSv5,loaded and run srioboot_example_evm6670l.out from MCSDK examples.

     

    Then CCS console displays the following messages from Host EVM:

    [C66xx_0] SRIO Boot Host Example Version 01.00.00.01

    [C66xx_0]

    [C66xx_0] Transfer DDR init code via SRIO successfully

    [C66xx_0] Transfer boot code via SRIO successfully.

    Which is the expected result.(uptill this point there s no error)

     

    Then the tera term should also display the following from the booting EVM:

    • SRIO Boot Hello World Example Version 01.00.00.01
    • Booting Hello World image on core 0 from SRIO ...
    • Booting Hello World image on core 1 from Core 0 ...
    • Booting Hello World image on core 2 from Core 0 ...
    • Booting Hello World image on core 3 from Core 0 ...

    But I am not getting these prints from booting EVM on the tera term.

    And i will check the memory space after connecting it to CCS and will update you on that soon.

    Thanks and Regards

  • Amandeep,

    I'll check into this, I ran the example too and did not see the tera term output, however, I really didn't expect that there would be any since the SRIO booting EVM wouldn't have enabled the UART in the SRIO boot mode from the ROM.  I'll ask and let you know.

    Regards,

    Travis

  • Amandeep,

    Ok, after a little more digging I did get it to work.  First thing to mention is that the UART is enabled in the actual code that is being booted.  You can see this if you look at:

    \tools\boot_loader\examples\srio\srioboot_helloworld\src\srioboot_helloworld.c

    After seeing this, I tried the exact same proceedure as outlined in the readme, except, I used Hyperterminal instead of Tera Term.  It seemed to work fine every time with Hyperterminal.  I then went back to Tera Term and it worked there too.  Not sure why it didn't work earlier, can't reproduce that now, but it may have someting to do with another thing I noticed.  Sometimes I noticed on my setup that the boards were stuck in an errored state before trying to send and image.  When you connect via CCS to the device sending the boot image, before you even load the srioboot_example, check 0x0290B158 and look at bits 16 and 8.  If either is set, you must clear these states before running the program to send the boot image.  This is done easily through CCS be looking at 0x0291B0E0 through the memory browser window, then highlighting the contents of this register (which will be 0x00000000) and typing in 0x2003F044 and hitting enter.  After doing this the bits 16 and 18 in the errort_stat register should be cleared.  You can now run the srioboot_example program and it should work.

    Regards,

    Travis

  • The other thing to check is 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.

    Regards,

    Travis

  • Hi Travis,

    Thanks for the suggestions, it worked.

    i got the prints..:)

    regards

    Amandeep Singh