Part Number: TDA4VM
Hello I am trying to get 3 separate SGMII Phys working on SerDes4. in PSDK 7.0. To start I am only trying to get a single phy working. After updating board_serdes_cgf.c to use SerDes4:
serdesLane0EnableParams.serdesInstance = (CSL_SerdesInstance) 4;
serdesLane0EnableParams.baseAddr = CSL_SERDES_10G0_BASE;
The application crashes a few lines later in CSL_serdesPorReset()
void CSL_serdesPorReset(uint32_t baseAddr) //modified for sierra wiz
{
CpswAppUtils_print("In %s %s\n",__FILE__,__FUNCTION__);//this one
CSL_FINSR(*(volatile uint32_t *)(uintptr_t)(baseAddr + 0x404),31,31, 0x1);
CSL_serdesCycleDelay(1000);
CSL_FINSR(*(volatile uint32_t *)(uintptr_t)(baseAddr + 0x404),31,31, 0x0);
}
Questions:
1. Has SGMII on Serdes4 been tested with this software?
2. The register that is being accessed above (0x50500000 + 0x404) is not in the TRM. I cannot find it for the other SerDes either. Is there any documentation of these registers? Any idea what needs to be done to avoid this crash? Perhaps something needs to be clocked or powered on?
3. The Phys that I am integrating with are 1 lane SGMII (1rx,1tx). How do I set this parameter? Do I use 3 and then adjust the mask for each phy?
serdesLane0EnableParams.numLanes = 0x2;
serdesLane0EnableParams.laneMask = 0x3;
Thanks,
Ben