diff options
author | Thomas Miletich | 2013-08-19 12:59:34 +0200 |
---|---|---|
committer | Michael Brown | 2013-08-20 15:34:53 +0200 |
commit | b324a9c24304fddd6f111df4663ec583d887020c (patch) | |
tree | 329f5f87e89220d6d5c2de3508ab2c4ea4f2c05f /src | |
parent | [http] Add support for HTTP POST (diff) | |
download | ipxe-b324a9c24304fddd6f111df4663ec583d887020c.tar.gz ipxe-b324a9c24304fddd6f111df4663ec583d887020c.tar.xz ipxe-b324a9c24304fddd6f111df4663ec583d887020c.zip |
[3c90x] Stall upload engine before setting RX ring address
According to the 3c90x datasheet we have to stall the upload (receive)
engine before setting the receive ring address.
Signed-off-by: Thomas Miletich <thomas.miletich@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/drivers/net/3c90x.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/drivers/net/3c90x.c b/src/drivers/net/3c90x.c index c1900574..1433e64a 100644 --- a/src/drivers/net/3c90x.c +++ b/src/drivers/net/3c90x.c @@ -813,10 +813,14 @@ static int a3c90x_open(struct net_device *netdev) goto error; } + a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdStallCtl, upStall); + /* send rx_ring address to NIC */ outl(virt_to_bus(inf_3c90x->rx_ring), inf_3c90x->IOAddr + regUpListPtr_l); + a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdStallCtl, upUnStall); + /* enable packet transmission and reception */ a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdTxEnable, 0); a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdRxEnable, 0); |