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.

helloworld_evm6678

Hi,

I am trying to run the EVMC6678 helloworld UDP loop back example project. I could not get the example to work.

Two consecutive runs of the example gave me the following error on console. Can you tell me what is going wrong here?

Thanks,

Arun

IcePick_D: GEL Output: Setup_Memory_Map...
IcePick_D: GEL Output: Setup_Memory_Map... Done.
C66xx_0: GEL Output: Setup_Memory_Map...
C66xx_0: GEL Output: Setup_Memory_Map... Done.
IcePick_D: GEL Output:
Connecting Target...
IcePick_D: GEL: Error while executing OnTargetConnect(): identifier not found: DNUM.
C66xx_0: GEL Output:
Connecting Target...
C66xx_0: GEL Output: DSP core #0
C66xx_0: GEL Output: No initialization performed since bootmode = 0x00000005
C66xx_0: GEL Output: You can manually initialize with GlobalDefaultSetup
C66xx_0: GEL Output: Invalidate All Cache...
C66xx_0: GEL Output: Invalidate All Cache... Done.
C66xx_0: GEL Output: DSP Reset CPU...
C66xx_0: GEL Output: DSP Reset CPU... Done.
C66xx_0: GEL Output: Disable all EDMA3 interrupts and events.
[C66xx_0]
[C66xx_0] TCP/IP Stack 'Hello World!' Application
[C66xx_0]
[C66xx_0] QMSS successfully initialized
[C66xx_0] CPPI successfully initialized
[C66xx_0] PASS successfully initialized
[C66xx_0] Ethernet subsystem successfully initialized
[C66xx_0] eventId : 48 and vectId : 7
[C66xx_0] Registration of the EMAC Successful, waiting for link up ..
[C66xx_0] Service Status: DHCPC    : Enabled  :          : 000
[C66xx_0] Service Status: DHCPC    : Enabled  : Running  : 000







IcePick_D: GEL Output: Setup_Memory_Map...
IcePick_D: GEL Output: Setup_Memory_Map... Done.
C66xx_0: GEL Output: Setup_Memory_Map...
C66xx_0: GEL Output: Setup_Memory_Map... Done.
IcePick_D: GEL Output:
Connecting Target...
IcePick_D: GEL: Error while executing OnTargetConnect(): identifier not found: DNUM.
C66xx_0: GEL Output:
Connecting Target...
C66xx_0: GEL Output: DSP core #0
C66xx_0: GEL Output: No initialization performed since bootmode = 0x00000005
C66xx_0: GEL Output: You can manually initialize with GlobalDefaultSetup
C66xx_0: GEL Output: Invalidate All Cache...
C66xx_0: GEL Output: Invalidate All Cache... Done.
C66xx_0: GEL Output: DSP Reset CPU...
C66xx_0: GEL Output: DSP Reset CPU... Done.
C66xx_0: GEL Output: Disable all EDMA3 interrupts and events.
[C66xx_0]
[C66xx_0] TCP/IP Stack 'Hello World!' Application
[C66xx_0]
[C66xx_0] QMSS successfully initialized
[C66xx_0] CPPI successfully initialized
[C66xx_0] PASS successfully initialized
[C66xx_0] Ethernet subsystem successfully initialized
[C66xx_0] eventId : 48 and vectId : 7
[C66xx_0] Timeout waiting for reply from PA to Pa_addMac command
[C66xx_0] Add_MACAddress failed
[C66xx_0] Error: Unable to register the EMAC
[C66xx_0] NIMUIOCTL Failed with error code: -22
[C66xx_0] Service Status: DHCPC    : Failed   :          : 000

  • Did you ran the global default setup in the gel file and tried.

     

    Thanks,

    Arun.

  • Arun,

     

    I just changed the GEL file to use the global default setup. It is still the same issue. Do you any other suggestion?

     

    Thanks,

    Arun

  • Hi

    This looks like a PA initialization failure - is there a known fix for this? Is there documentation on PA use and setup on the 66x cores?

    [C66xx_0]

    [C66xx_0] TCP/IP Stack 'Hello World!' Application

    [C66xx_0]

    [C66xx_0] QMSS successfully initialized

    [C66xx_0] CPPI successfully initialized

    [C66xx_0] PASS successfully initialized

    [C66xx_0] Ethernet subsystem successfully initialized

    [C66xx_0] eventId : 48 and vectId : 7

    [C66xx_0] Timeout waiting for reply from PA to Pa_addMac command

    [C66xx_0] Add_MACAddress failed

    [C66xx_0] Error: Unable to register the EMAC

    [C66xx_0] NIMUIOCTL Failed with error code: -22

    [C66xx_0] Service Status: DHCPC : Failed : : 000

    Thanks

     

  • There was a new beta2 release whihc doesn't have this issue. can you try that. If I rememebr correctly, this was something to due with the cache issue. Please try the new reelase and let me know if this presists.

     

    Thanks,

    Arun.

  • I have the same problem. I tried installing the new beta of the MCSDK (beta1_update1) but the problem persists.

     

    Thanks,

    Yishay

  • I'm having a similar problem. The program does not fully boot this is with beta1_update1. Has there been any resolution?

    Thanks,

    Ryan

  • This is still broken in Beta 2 of the MCSDK.  It seems to be related to the pll flag set to one in the EVM_init() function if that is turned off the program works but only at 100MHz!  With the flag turned on the program seems to crash in the CorePllcHwSetup () in ecvm6678.c.  Sometimes it get into one of its function calls and crashes other times it stops in an if statement or one of the while(loopCount--) nop loops.   Using the debugger to step through the program when it crashed in the loopCount loops the loopCount variable never decremented.

    We're currently trying to evaluate ethernet (UDP) performance as we plan to use this part in a new design.  It is imperative we get this program running at full speed.

  • I was able to get the program to run with the pll turned on by changing the following:

    Add call to Gloval Defaulr Setup in file evmc6678I.gel

     if (DEVSTAT & 0x0000000E)

      {

    GEL_TextOut("No initialization performed since bootmode = %x \n",,,,,(DEVSTAT >> 1 ) & 0xF);

            GEL_TextOut("You can manually initialize with GlobalDefaultSetup\n");

             Global_Default_Setup(); // <- added global default setup call to evmc6678I.gel 

    }

    Comment out all code in EVM_init() located in hellowWorld.c but leave the function there effectively it is now an empty function 

    void EVM_init()

    {

    }

    This seems like a major hack to get this code to work but at least it now seems run at full speed.

  • Ryan,

    If you are using CCS to load your program, be sure you set the boot mode dip switches to the no-boot mode (refer to the technical reference manual or user's guide)

    1. Run the gel to initialize the DDR/PLL (for C6678 EVM, PLL is 1000MHz, and DDR 1333Mbps rate)

    2. You can turn off the ddr/pll flag when calling platform_init() in the EVM_init, since they have already been initialized by the GEL (refer to the HUA demo). I don't think it does any harm even if you turn on the ddr/pll flag to initialize them twice.

     

    Regards,

    Hao.

  • Hao,

    Your suggestions worked.  I put the code back to its original state and as long as the POST did not run the example code loaded correctly.

    Thank you,

    Ryan

  • hi,i encounter the same problem, Error:unable to register the EMAC.

    i use the gel to initialize the DDR/PLL and comment the EVM_Init function, but this error always come.

    how to solve this problem? thank you very much.