Skip to content

Commit

Permalink
[3c90x] Stall upload engine before setting RX ring address
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
thomil authored and mcb30 committed Aug 20, 2013
1 parent 82e452d commit b324a9c
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/drivers/net/3c90x.c
Expand Up @@ -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);
Expand Down

0 comments on commit b324a9c

Please sign in to comment.