1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00

The BCM5704 ASIC has a smaller mbuf space than the 5700/1/2/3. Failure

to configure this correctly yields many watchdog timeouts even on lightly
loaded machines. This is a common complaint from users with Dell 1750
servers with built-in dual 5704 NICs.
This commit is contained in:
Bill Paul 2003-08-10 18:04:35 +00:00
parent 696fe9ddcd
commit 822f63fc94
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=118733

View File

@ -1310,16 +1310,24 @@ bge_blockinit(sc)
*/ */
CSR_WRITE_4(sc, BGE_PCI_MEMWIN_BASEADDR, 0); CSR_WRITE_4(sc, BGE_PCI_MEMWIN_BASEADDR, 0);
/* Note: the BCM5704 has a smaller mbuf space than other chips. */
if (sc->bge_asicrev != BGE_ASICREV_BCM5705) { if (sc->bge_asicrev != BGE_ASICREV_BCM5705) {
/* Configure mbuf memory pool */ /* Configure mbuf memory pool */
if (sc->bge_extram) { if (sc->bge_extram) {
CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_BASEADDR, CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_BASEADDR,
BGE_EXT_SSRAM); BGE_EXT_SSRAM);
CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000); if (sc->bge_asicrev == BGE_ASICREV_BCM5704)
CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x10000);
else
CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000);
} else { } else {
CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_BASEADDR, CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_BASEADDR,
BGE_BUFFPOOL_1); BGE_BUFFPOOL_1);
CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000); if (sc->bge_asicrev == BGE_ASICREV_BCM5704)
CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x10000);
else
CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000);
} }
/* Configure DMA resource pool */ /* Configure DMA resource pool */