Workaround GMAC hardware hang of Yukon II on the receipt of pause
frames. This bug seems to happen on certain hardware model/revision (e.g. 88E8053) but it's not identified which hardwares are affected. Revision 1.4 of if_mskreg.h was not enough to workaround the bug. To workaround it, inrease GMAC FIFO threshold by one FIFO word to flush received pause frames. Reported by: das, Kirill Nuzhdin < kirill.nuzhdin AT rad dot chem dot msu dot ru > Tested by: das, Kirill Nuzhdin
This commit is contained in:
parent
d412b2debb
commit
d5d601648c
@ -3658,9 +3658,12 @@ msk_init_locked(struct msk_if_softc *sc_if)
|
||||
CSR_WRITE_4(sc, MR_ADDR(sc_if->msk_port, RX_GMF_FL_MSK),
|
||||
GMR_FS_ANY_ERR);
|
||||
|
||||
/* Set Rx FIFO flush threshold to 64 bytes. */
|
||||
/*
|
||||
* Set Rx FIFO flush threshold to 64 bytes + 1 FIFO word
|
||||
* due to hardware hang on receipt of pause frames.
|
||||
*/
|
||||
CSR_WRITE_4(sc, MR_ADDR(sc_if->msk_port, RX_GMF_FL_THR),
|
||||
RX_GMF_FL_THR_DEF);
|
||||
RX_GMF_FL_THR_DEF + 1);
|
||||
|
||||
/* Configure Tx MAC FIFO. */
|
||||
CSR_WRITE_4(sc, MR_ADDR(sc_if->msk_port, TX_GMF_CTRL_T), GMF_RST_SET);
|
||||
|
@ -1818,6 +1818,7 @@
|
||||
GMR_FS_LONG_ERR | \
|
||||
GMR_FS_MII_ERR | \
|
||||
GMR_FS_BAD_FC | \
|
||||
GMR_FS_GOOD_FC | \
|
||||
GMR_FS_UN_SIZE | \
|
||||
GMR_FS_JABBER)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user