Implement the write twice to send producer index workaround for
BCM5700 chips as described in the Broadcom Errata documents. Obtained from: NetBSD and Broadcom Errata documentation
This commit is contained in:
parent
0ad8e69a7c
commit
bebfb7b1d8
@ -934,8 +934,16 @@ bge_init_tx_ring(sc)
|
||||
{
|
||||
sc->bge_txcnt = 0;
|
||||
sc->bge_tx_saved_considx = 0;
|
||||
|
||||
CSR_WRITE_4(sc, BGE_MBX_TX_HOST_PROD0_LO, 0);
|
||||
/* 5700 b2 errata */
|
||||
if (BGE_ASICREV(sc->bge_asicrev) == BGE_ASICREV_BCM5700)
|
||||
CSR_WRITE_4(sc, BGE_MBX_TX_HOST_PROD0_LO, 0);
|
||||
|
||||
CSR_WRITE_4(sc, BGE_MBX_TX_NIC_PROD0_LO, 0);
|
||||
/* 5700 b2 errata */
|
||||
if (BGE_ASICREV(sc->bge_asicrev) == BGE_ASICREV_BCM5700)
|
||||
CSR_WRITE_4(sc, BGE_MBX_TX_NIC_PROD0_LO, 0);
|
||||
|
||||
return(0);
|
||||
}
|
||||
@ -2344,6 +2352,9 @@ bge_start(ifp)
|
||||
|
||||
/* Transmit */
|
||||
CSR_WRITE_4(sc, BGE_MBX_TX_HOST_PROD0_LO, prodidx);
|
||||
/* 5700 b2 errata */
|
||||
if (BGE_ASICREV(sc->bge_asicrev) == BGE_ASICREV_BCM5700)
|
||||
CSR_WRITE_4(sc, BGE_MBX_TX_HOST_PROD0_LO, prodidx);
|
||||
|
||||
/*
|
||||
* Set a timeout in case the chip goes out to lunch.
|
||||
|
Loading…
Reference in New Issue
Block a user