I've been trying to get a working external loopback test program for the EVM6678 based on the loopback example included in the mcsdk. I've stripped down the loopback example to just run the blocking test and changed the link speed to 3.125Gbps to match my switch's configuration (CSL_BootCfgSetSRIOSERDESConfigPLL(0x229)).
This works fine as a loopback test, but changing the relevant lines in device_srio_loopback.c to configure the device to run in normal mode hasn't been enough to get the external loopback working. Specifcally I've changed the CSL_BootCfgSetSRIOSERDESTxConfig and CSL_BootCfgSetSRIOSERDESRxConfig calls for non-loopback operation, and changed the existing calls to CSL_SRIO_SetLoopbackMode to calls to CSL_SRIO_SetNormalMode.
The device initializes alright (makes it past the PortOk checks), and the producer thread passes, but the consumer thread hangs waiting for data. My switch is statically configured with the relevant IDs (0xbeef and 0x4560) routed to the port the card is on.
Am I missing anything here, or should this be enough for it to run?
- Chris