]> git.baikalelectronics.ru Git - kernel.git/commit
NEWEMAC: fix support for pause packets
authorPravin M. Bathija <pbathija@amcc.com>
Fri, 14 Mar 2008 09:52:28 +0000 (10:52 +0100)
committerJeff Garzik <jeff@garzik.org>
Mon, 17 Mar 2008 12:06:33 +0000 (08:06 -0400)
commitcb83392c8209b8a73a416f0b6ba822ed94ba5721
tree4d3ac3b31b36d4fe8617d49ce93bb6b981e066e5
parente9b82c34f583f28ac3e3dc8ab8e12ab13e555d7a
NEWEMAC: fix support for pause packets

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: Pravin M. Bathija <pbathija@amcc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/ibm_newemac/core.c