diff options
author | Michael Brown | 2012-08-23 13:25:08 +0200 |
---|---|---|
committer | Michael Brown | 2012-08-23 16:15:35 +0200 |
commit | 5d05220ee034bf6989786303d1e195aaf61da986 (patch) | |
tree | 9ab67280b38249fda8636d40bfbd84eb12f7b1e5 /src/drivers/net/realtek.c | |
parent | [realtek] Always set high dword of ring address registers (diff) | |
download | ipxe-5d05220ee034bf6989786303d1e195aaf61da986.tar.gz ipxe-5d05220ee034bf6989786303d1e195aaf61da986.tar.xz ipxe-5d05220ee034bf6989786303d1e195aaf61da986.zip |
[realtek] Use explicit values for RCR.RXFTH and RCR.MXDMA
Some RTL8169 cards (observed with an RTL8169SC) power up with invalid
values in RCR.RXFTH and RCR.MXDMA, causing receive DMA to fail. Fix
by setting explicit values for both fields.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/realtek.c')
-rw-r--r-- | src/drivers/net/realtek.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/drivers/net/realtek.c b/src/drivers/net/realtek.c index 6a119db3..2dded0a5 100644 --- a/src/drivers/net/realtek.c +++ b/src/drivers/net/realtek.c @@ -526,8 +526,10 @@ static int realtek_open ( struct net_device *netdev ) { /* Configure receiver */ rcr = readl ( rtl->regs + RTL_RCR ); - rcr &= ~( RTL_RCR_RBLEN_MASK ); - rcr |= ( RTL_RCR_RBLEN_DEFAULT | RTL_RCR_WRAP | RTL_RCR_AB | + rcr &= ~( RTL_RCR_RXFTH_MASK | RTL_RCR_RBLEN_MASK | + RTL_RCR_MXDMA_MASK ); + rcr |= ( RTL_RCR_RXFTH_DEFAULT | RTL_RCR_RBLEN_DEFAULT | + RTL_RCR_MXDMA_DEFAULT | RTL_RCR_WRAP | RTL_RCR_AB | RTL_RCR_AM | RTL_RCR_APM | RTL_RCR_AAP ); writel ( rcr, rtl->regs + RTL_RCR ); |