SLUUDO2 September   2026 AM2611 , AM2612 , AM2612-Q1 , AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1 , AM263P2 , AM263P2-Q1 , AM263P4 , AM263P4-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Acronyms
  5. 2Introduction
  6. 3Introduction to CPSWSS and ENET-LLD
    1. 3.1 Hardware
    2. 3.2 Software
    3. 3.3 Application Software
      1. 3.3.1 Board and Peripherals Initialization (SYSCFG)
      2. 3.3.2 CPSW Configuration (ENET-LLD)
      3. 3.3.3 Operating System (FreeRTOS or NoRTOS)
      4. 3.3.4 Middleware Stack (LwIP, Arm® Mbed™ Platform TLS, TSN)
      5. 3.3.5 Application Layer
  7. 4Debugging Hardware and Software
    1. 4.1 Hardware Debugging
      1. 4.1.1 Schematic Review Checklist
        1. 4.1.1.1 Management Data Input/Output (MDIO and MDC)
        2. 4.1.1.2 RGMII Interface
      2. 4.1.2 PHY Debug
        1. 4.1.2.1 PHY Bootstrap Settings
        2. 4.1.2.2 Trace Length
        3. 4.1.2.3 Clock Configuration
        4. 4.1.2.4 Mode Settings
        5. 4.1.2.5 IO MUX and SW Switch Settings
        6. 4.1.2.6 PHY Troubleshooting Guides
        7. 4.1.2.7 Custom Pin MUX Settings
      3. 4.1.3 Test Setup
      4. 4.1.4 Software Debugging
        1. 4.1.4.1 Using GEL Scripts in CCS
          1. 4.1.4.1.1 Statistics Using GEL Scripts
          2. 4.1.4.1.2 Statistics Using Expressions
      5. 4.1.5 Debugging Custom Ethernet Software
        1. 4.1.5.1 Debugging Initialization Sequence
        2. 4.1.5.2 PHY Debugging
        3. 4.1.5.3 MAC Port Debugging
        4. 4.1.5.4 TX Path Debugging
        5. 4.1.5.5 Systematic Debugging Checklist
          1. 4.1.5.5.1 RX Path Debugging
          2. 4.1.5.5.2 Multicast or Broadcast Does Not Work, But Unicast Works
    2. 4.2 Custom Hardware Bring-Up Process
      1. 4.2.1 Example 1: CPSW PHY Loopback
        1. 4.2.1.1 Failure: PHY Not Detected or MDIO Bus Not Alive
        2. 4.2.1.2 Failure: TX Packets Transmitted But RX Count = 0
      2. 4.2.2 Example 2: CPSW MAC Loopback Example
        1. 4.2.2.1 Failure: MAC Loopback Initialization Fails
        2. 4.2.2.2 Failure: TX Packets Increase But RX = 0
        3. 4.2.2.3 Failure: Nonzero Error Counters
      3. 4.2.3 Example 3: Enet_Layer2_CPSW and Enet_Layer2_cpsw_switch
        1. 4.2.3.1 Hardware Setup
        2. 4.2.3.2 Failure: Link Never Comes UP
        3. 4.2.3.3 Failure: Link is Up But No Frames Are Received or Transmitted
        4. 4.2.3.4 Failure: RX and TX Counters Increase But Error Rates Are High
      4. 4.2.4 Example 4: Enet_lwip_cpsw_example
        1. 4.2.4.1 Failure: Link Never Comes Up
        2. 4.2.4.2 Failure: Links Up But No IP Address Is Assigned
        3. 4.2.4.3 Failure: Ping Fails Despite Link and IP Address
    3. 4.3 Debugging Packet Forwarding Issues (ALE and Statistics)
      1. 4.3.1 CPSW Statistics Architecture
        1. 4.3.1.1 What Each Block Measures
        2. 4.3.1.2 Counter Reference Tables
          1. 4.3.1.2.1 MAC Port – RX Counters
          2. 4.3.1.2.2 MAC Port – TX Counters
          3. 4.3.1.2.3 MAC Port and Host Port – ALE and FIFO Drop Counters
          4. 4.3.1.2.4 Host Port – ALE Flood and Overrun Counters
          5. 4.3.1.2.5 MAC Port RX Issues
          6. 4.3.1.2.6 MAC Port TX Issues
          7. 4.3.1.2.7 Host Port RX Issues
          8. 4.3.1.2.8 Host Port TX Issues
    4. 4.4 Custom Board Enablement in SYSCFG
    5. 4.5 LwIP Debug Guide
      1. 4.5.1 LwIP Stack Configuration
      2. 4.5.2 lwip_stats
  8. 5Conclusion
  9. 6References
Multicast or Broadcast Does Not Work, But Unicast Works

Multicast and broadcast reception failures are difficult to diagnose because unicast traffic works efficiently while multicast frames vanish silently. The link is up, TX works, but specific multicast addresses are not received. The CPSW ALE requires explicit multicast entries in static mode. If the application does not add the multicast MAC address to the ALE table with the correct port mask, frames are dropped.

  1. First, verify the frames reach the MAC port by reading the MAC port statistics.
  2. Verify that the frames reach the host port.
    Note: If hostStats.rxGoodFrames does NOT increment but the MAC port rxGoodFrames does, the ALE is filtering.

  3. Check the hostStats.portMaskDrop counter.
  4. Dump the ALE table using the GEL scripts or the IOCTL functions and look for the multicast or broadcast MAC address.
    1. Check the PortMask field:
      1. Bit 0 = Host port (0x01)
      2. Bit 1 = MAC port 1 (0x02)
      3. Bit 2 = MAC port 2 (0x04)
    Note: If the PortMask does NOT include bit 0 (host port), the frames do not reach the CPU.
  5. Add the broadcast or multicast ALE entry, if needed, using the CPSW_ALE_IOCTL_ADD_MCAST IOCTL.
CpswAle_SetMcastEntryInArgs mcastInArgs;
uint32_t entryIdx;
uint8_t mcastMacAddr[ENET_MAC_ADDR_LEN] = {0x01, 0x00, 0x5E, 0x00, 0x00, 0x01}; // Your multicast MAC
mcastInArgs.addr.vlanId = 0U;
mcastInArgs.info.portMask = (1 << CPSW_ALE_HOST_PORT_NUM) | (1 << ENET_MAC_PORT_1);
mcastInArgs.info.super = false;
mcastInArgs.info.fwdState = CPSW_ALE_FWDSTLVL_FWD;
mcastInArgs.info.numIgnBits = 0;
EnetUtils_copyMacAddr(&mcastInArgs.addr.addr[0U], mcastMacAddr);
ENET_IOCTL_SET_INOUT_ARGS(&prms, &mcastInArgs, &entryIdx);
status = Enet_ioctl(hEnet, coreId, CPSW_ALE_IOCTL_ADD_MCAST, &prms);
  • Join multicast group (if using LwIP), for LwIP applications using IGMP, join the multicast group:
ip4_addr_t multicast_addr;
IP4_ADDR(&multicast_addr, 239, 0, 0, 1); // Your multicast IP
err_t result = igmp_joingroup_netif(&netif, &multicast_addr);
 if (result != ERR_OK) {
EnetAppUtils_print("IGMP join failed: %d\n", result);
}
Note: IGMP join tells the network stack to accept packets for this group. The ALE entry is still required for hardware filtering.