summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/intel.c
diff options
context:
space:
mode:
authorMichael Brown2013-04-03 16:20:55 +0200
committerMichael Brown2013-04-19 00:56:05 +0200
commitc2ba57e517031c751b93ffc59fa30ffa4d03ba0d (patch)
tree876cc77a2db70b9710f8c7986b62c31ca1388909 /src/drivers/net/intel.c
parent[bios] Fix screen clearing on buggy BIOSes (diff)
downloadipxe-c2ba57e517031c751b93ffc59fa30ffa4d03ba0d.tar.gz
ipxe-c2ba57e517031c751b93ffc59fa30ffa4d03ba0d.tar.xz
ipxe-c2ba57e517031c751b93ffc59fa30ffa4d03ba0d.zip
[intel] Remove hardcoded offsets for descriptor ring registers
The Intel 10 Gigabit NICs use the same simplified (aka "legacy") descriptor format and the same layout for descriptor register blocks as the Intel 1 Gigabit NICs. The offsets of the descriptor register blocks are not the same. Simplify reuse of the existing code by removing all hardcoded offsets for registers within descriptor register blocks, and ensuring that all offsets are calculated using the descriptor register block base address provided via intel_init_ring(). Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/intel.c')
-rw-r--r--src/drivers/net/intel.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/drivers/net/intel.c b/src/drivers/net/intel.c
index ce17e9f2..2533fbee 100644
--- a/src/drivers/net/intel.c
+++ b/src/drivers/net/intel.c
@@ -248,10 +248,10 @@ static int intel_fetch_mac ( struct intel_nic *intel, uint8_t *hw_addr ) {
static void __attribute__ (( unused )) intel_diag ( struct intel_nic *intel ) {
DBGC ( intel, "INTEL %p TDH=%04x TDT=%04x RDH=%04x RDT=%04x\n", intel,
- readl ( intel->regs + INTEL_TDH ),
- readl ( intel->regs + INTEL_TDT ),
- readl ( intel->regs + INTEL_RDH ),
- readl ( intel->regs + INTEL_RDT ) );
+ readl ( intel->regs + intel->tx.reg + INTEL_xDH ),
+ readl ( intel->regs + intel->tx.reg + INTEL_xDT ),
+ readl ( intel->regs + intel->rx.reg + INTEL_xDH ),
+ readl ( intel->regs + intel->rx.reg + INTEL_xDT ) );
}
/******************************************************************************
@@ -468,7 +468,7 @@ static void intel_refill_rx ( struct intel_nic *intel ) {
intel->rx_iobuf[rx_idx] = iobuf;
/* Push descriptor to card */
- writel ( rx_tail, intel->regs + INTEL_RDT );
+ writel ( rx_tail, intel->regs + intel->rx.reg + INTEL_xDT );
DBGC2 ( intel, "INTEL %p RX %d is [%llx,%llx)\n", intel, rx_idx,
( ( unsigned long long ) address ),
@@ -599,7 +599,7 @@ static int intel_transmit ( struct net_device *netdev,
wmb();
/* Notify card that there are packets ready to transmit */
- writel ( tx_tail, intel->regs + INTEL_TDT );
+ writel ( tx_tail, intel->regs + intel->tx.reg + INTEL_xDT );
DBGC2 ( intel, "INTEL %p TX %d is [%llx,%llx)\n", intel, tx_idx,
( ( unsigned long long ) address ),