SLUUDO2 September 2026 AM2611 , AM2612 , AM2612-Q1 , AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1 , AM263P2 , AM263P2-Q1 , AM263P4 , AM263P4-Q1
Frames submitted by the CPU DMA to the CPSW. txGoodFrames increments when a frame exits the host port into the ALE. The ALE then forwards the frame toward MAC port 1 where macPort.txGoodFrames is meant to match.
| Scenario | Nonzero Counter | Root Cause | Debug Method | Fix | Reference |
|---|---|---|---|---|
| hostPort.txGoodFrames = 0; application confirms frames were sent | N/A | The DMA TX ring is not draining; frames are stuck in ring. | Verify the return code of the EnetDma_submitTxPktQ() function. Check the TX confirmation callback is called. | DMA or Packet Flow Debug |
| hostPort.txGoodFrames non-zero; macPort.txGoodFrames = 0; no collision | hostPort.aleBlockDrop | The state of the host port (port 0) ALE is not FORWARD. | Issue CPSW_ALE_IOCTL_GET_PORT_STATE for port 0. | Set port 0 to FORWARD: CPSW_ALE_IOCTL_SET_PORT_STATE. |
| Host TX OK; MAC TX zero; no aleBlockDrop | hostPort.portMaskDrop | The ALE DA lookup excluded MAC port 1 from the egress portmask. | Inspect the DA entry portmask in the ALE table dump. | Re-add the DA entry pointing to MAC port 1: CPSW_ALE_IOCTL_ADD_UCAST. |
| Host TX OK; tagged frames not reaching wire | hostPort.aleVidIngressDrop | The VLAN tag on the TX frame is not registered for the host port in the ALE. | Dump the ALE VLAN entries. Check host port membership. | Add the VLAN entry with the host port in the member list. |
| TX count correct but lower than submitted | hostPort.txSofOverrun or txMofOverrun | DMA TX descriptor ring overrun; the CPU is submitting faster than switch drains. | Compare the TX submit rate versus macPort.txGoodFrames delta. | Increase numTxPkts in the EnetDma_openTxCh() function. Check the TX confirmation task priority. |