• Pravin M. Bathija's avatar
    NEWEMAC: fix support for pause packets · 4373c932
    Pravin M. Bathija authored
    Problem Description and Fix
    ---------------------------
    When a pause packet(with destination as reserved Multicast address) is
    received by the EMAC hardware to control the flow of frames being
    transmitted by it, it is dropped by the hardware unless the reserved
    Multicast address is hashed in to the GAHT[1-4] registers. This code fix
    adds the default reserved multicast address to the GAHT[1-4] registers
    in the EMAC(s) present on the chip. The flow control with Pause packets
    will only work if the following register bits are programmed in EMAC:
    EMACx_MR1[APP] = 1
    EMACx_RMR[BAE] = 1
    EMACx_RMR[MAE] = 1
    
    Behavior that may be observed in a running system
    -------------------------------------------------
    A host transferring data from a PPC based system may send a Pause packet
    to the PPC EMAC requesting it to slow down the flow of packets. If the
    default reserved multicast MAC address is not programmed into the
    GAHT[1-4] registers this Pause packet will be dropped by PPC EMAC and no
    Flow Control will be done.
    Signed-off-by: default avatarPravin M. Bathija <pbathija@amcc.com>
    Signed-off-by: default avatarStefan Roese <sr@denx.de>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    4373c932
core.c 76.2 KB