commit 3589cd69e41f327b0e9047db8d18d2ea1b2b4ae9
parent 0916003146ec1082e9d4a97c8a6d0150af384154
Author: Broadcom SDK Release <sdk.releases@broadcom.com>
Date: Mon, 27 Jan 2020 14:27:58 -0800
SDK-183541: Suggested WAR for TH3-5475 is to Force PFC XON from MAC to MMU wh...
Devices: 56980_A0,56980_B0
Module: MMU
Symptom:
When traffic is flowing, shutting down the egress port is throwing
WAIT_EBCTM_EMPTY error
Suggested WAR for TH3-5475 is to Force PFC XON from MAC to MMU when
setting MAC.RX_EN to 0 as part of port down sequence
Diffstat:
1 file changed, 17 insertions(+), 0 deletions(-)
diff --git a/sdk-6.5.16/src/bcm/esw/portctrl.c b/sdk-6.5.16/src/bcm/esw/portctrl.c
@@ -6696,6 +6696,7 @@ bcmi_esw_portctrl_mac_rx_down(int unit, int nport, bcm_port_t *port)
int i;
bcm_port_t lport;
portctrl_pport_t pport;
+ portmod_pfc_control_t pfc_control;
for (i = 0; i < nport; i++) {
lport = port[i];
@@ -6725,6 +6726,22 @@ bcmi_esw_portctrl_mac_rx_down(int unit, int nport, bcm_port_t *port)
BCM_IF_ERROR_RETURN
(portmod_port_mac_reset_set(unit, pport, 0));
}
+
+ /* WAR for SDK-183541/TH3-5475*/
+ if (SOC_IS_TOMAHAWK3(unit)) {
+ if (soc_feature(unit, soc_feature_priority_flow_control)) {
+ /* Toggle Force PFC XON */
+ BCM_IF_ERROR_RETURN
+ (portmod_port_pfc_control_get(unit, pport, &pfc_control));
+ pfc_control.force_xon = 1;
+ BCM_IF_ERROR_RETURN
+ (portmod_port_pfc_control_set(unit, pport, &pfc_control));
+ pfc_control.force_xon = 0;
+ BCM_IF_ERROR_RETURN
+ (portmod_port_pfc_control_set(unit, pport, &pfc_control));
+ }
+ }
+
}
return BCM_E_NONE;
#else /* PORTMOD_SUPPORT */