Hello,
We have a new TCIEVMK2LX development board using the 66AK2L06 SoC. We have successfully ran the IP based application as shown in the quick start guide, so we know the board and its Ethernet connection to our LAN is working properly.
We've downloaded the latest MCSDK (mcsdk_3_01_03_06). We are trying to run the Hello World example program which can be found here: C:\ti\mcsdk_bios_3_01_03_06\examples\ndk\helloWorld. We are booting the board with the dip switch set to 1111 for DSP No Boot mode which allows us to connect and run the DSP Cores via JTAG.
We are running on DSP Core 0 using the On Board XDS200 to load and execute the code. By default the program uses DHCP mode. If we load and run the code with the Ethernet cable plugged into Eth 0 (the lower port), we go no console output until we unplug the cable then we get the console log shown below.
[C66xx_0] QMSS successfully initialized
CPPI successfully initialized
PA successfully initialized
TCP/IP Stack 'Hello World!' Application
TCP/IP Stack 'Hello World!' Application
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: DHCPC : Enabled : Running : 000
If we then plug in the cable, nothing else happens. After some time we get the following output:
Service Status: DHCPC : Disabled : : 000
ti.sysbios.heaps.HeapMem: line 322: assertion failure: A_invalidFree: Invalid free
xdc.runtime.Error.raise: terminating execution
When the code is hung up waiting for us to unplug the cable, we have found it is stuck in the following while loop:
do
{
CSL_SGMII_getStatus(macPortNum, &sgmiiStatus);
} while (sgmiiStatus.bIsLinkUp != 1);
Which is in the function void Init_SGMII (uint32_t macPortNum) in the file "C:\ti\pdk_keystone2_3_01_03_06\packages\ti\platform\evmk2l\platform_lib\src\evmc66x_phy.c". I think it is odd that it is hung up thinking the link is down when the cable is connected, but when we remove the cable the getStatus thinks the link is up. Don't understand that at all.
We also changed the code (line 310 in helloWorld.c) to use the Static IP method. We get the following console output.
[C66xx_0] QMSS successfully initialized
CPPI successfully initialized
PA successfully initialized
TCP/IP Stack 'Hello World!' Application
TCP/IP Stack 'Hello World!' Application
PASS successfully initialized
Ethernet subsystem successfully initialized
Ethernet eventId : 48 and vectId (Interrupt) : 7
Registration of the EMAC Successful, waiting for link up ..
Network Added: If-1:169.254.106.21
We then plug in to a laptop with a compatible configured Ethernet port but the laptop never sees a connection, like the port is down.
I don't ever see any activity lights on the RJ-45 jack. There is a solid green LED on the Port 1 (upper left side), but nothing on the Port 0 (bottom). It is almost as if the port is not being fully enabled. I noticed the 66AK2L06 has an internal 5 port Ethernet switch. Is that causing the 66AK2L06 to see the link as up but the switch itself is not configured or turned on or something. Perhaps the Ethernet PHY 88E1512 is not configured or the BMC Reset is active.
We've tried several different boot modes and combinations of starting with no cable plugged in, cable plugged in, etc to no avail. Any help getting this demo working would be great as we will need to use the Ethernet connection for our end application and we planned to leverage this demo code for that setup.
Thanks.