From: Thomas Miletich Date: Mon, 19 Aug 2013 10:59:34 +0000 (+0200) Subject: [3c90x] Stall upload engine before setting RX ring address X-Git-Tag: v1.20.1~1429 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b324a9c24304fddd6f111df4663ec583d887020c;p=thirdparty%2Fipxe.git [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 Signed-off-by: Michael Brown --- diff --git a/src/drivers/net/3c90x.c b/src/drivers/net/3c90x.c index c19005746..1433e64a3 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);