Browse Source

[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>
tags/v1.20.1
Thomas Miletich 11 years ago
parent
commit
b324a9c243
1 changed files with 4 additions and 0 deletions
  1. 4
    0
      src/drivers/net/3c90x.c

+ 4
- 0
src/drivers/net/3c90x.c View File

@@ -813,10 +813,14 @@ static int a3c90x_open(struct net_device *netdev)
813 813
 		goto error;
814 814
 	}
815 815
 
816
+	a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdStallCtl, upStall);
817
+
816 818
 	/* send rx_ring address to NIC */
817 819
 	outl(virt_to_bus(inf_3c90x->rx_ring),
818 820
 	     inf_3c90x->IOAddr + regUpListPtr_l);
819 821
 
822
+	a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdStallCtl, upUnStall);
823
+
820 824
 	/* enable packet transmission and reception */
821 825
 	a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdTxEnable, 0);
822 826
 	a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdRxEnable, 0);

Loading…
Cancel
Save