ETHFW-607: j7200_evm: Bypass SerDes config for Eth if already configured
authorMisael Lopez Cruz <misael.lopez@ti.com>
Fri, 12 Feb 2021 03:14:33 +0000 (21:14 -0600)
committerAnkur <ankurbaranwal@ti.com>
Fri, 12 Feb 2021 23:44:15 +0000 (17:44 -0600)
Don't configure SerDes if it has already been configured, i.e. by
u-boot. This enables EthFw to transparently work in Linux boot and
CCS boot.

In Linux boot, u-boot will configure SerDes (i.e. for PCIe and Ethernet
sharing) and at a later point load EthFw, EthFw will not attempt to
reconfigure SerDes.

In CCS boot, EthFw will configure SerDes.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
packages/ti/board/src/j7200_evm/board_serdes_cfg.c

index 53ccac2dbfe2988ca8ee30315a039839ad812dc4..cb28820b7d4caebe83f2ea0cf7b560eb5d2a7742 100644 (file)
@@ -82,6 +82,7 @@ static Board_STATUS Board_serdesInitParams(CSL_SerdesLaneEnableParams *laneParam
 \r
 static Board_STATUS Board_serdesCfgEthernet(uint32_t phyType)\r
 {\r
+    CSL_SerdesStatus status;\r
     CSL_SerdesResult result;\r
     CSL_SerdesLaneEnableStatus laneRetVal = CSL_SERDES_LANE_ENABLE_NO_ERR;\r
     CSL_SerdesLaneEnableParams serdesLane0EnableParams  = {0};\r
@@ -90,6 +91,13 @@ static Board_STATUS Board_serdesCfgEthernet(uint32_t phyType)
 \r
     Board_serdesInitParams(&serdesLane0EnableParams, phyType);\r
 \r
+    /* Bail out early if SERDES is already configured */\r
+    status = CSL_serdesConfigStatus(serdesLane0EnableParams.baseAddr);\r
+    if (status == 1U)\r
+    {\r
+        return BOARD_SOK;\r
+    }\r
+\r
     CSL_serdesPorReset(serdesLane0EnableParams.baseAddr);\r
 \r
     /* Select the IP type, IP instance num, Serdes Lane Number */\r