summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMingkai Hu <Mingkai.Hu@freescale.com>2015-08-18 14:06:26 -0700
committerJoe Hershberger <joe.hershberger@ni.com>2015-08-21 16:31:34 -0500
commit6497e37a7523d0d438990c56aa7f609b17e6b571 (patch)
tree48e4d2eb05a5dd8da3dc20b8d270039047e81e5d
parent620776d734e4b126c407f636bda825a594a17723 (diff)
net: e1000: Support 64-bit physical address
High 32-bit address is needed when u-boot runs in 64-bit space. Tested on armv8-based LS2085ARDB. Signed-off-by: Mingkai Hu <Mingkai.Hu@freescale.com> Signed-off-by: York Sun <yorksun@freescale.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-rw-r--r--drivers/net/e1000.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index d5d48b1e7d..e81641054d 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -4980,8 +4980,8 @@ e1000_configure_tx(struct e1000_hw *hw)
unsigned long tipg, tarc;
uint32_t ipgr1, ipgr2;
- E1000_WRITE_REG(hw, TDBAL, (unsigned long)tx_base);
- E1000_WRITE_REG(hw, TDBAH, 0);
+ E1000_WRITE_REG(hw, TDBAL, (unsigned long)tx_base & 0xffffffff);
+ E1000_WRITE_REG(hw, TDBAH, (unsigned long)tx_base >> 32);
E1000_WRITE_REG(hw, TDLEN, 128);
@@ -5124,8 +5124,8 @@ e1000_configure_rx(struct e1000_hw *hw)
E1000_WRITE_FLUSH(hw);
}
/* Setup the Base and Length of the Rx Descriptor Ring */
- E1000_WRITE_REG(hw, RDBAL, (unsigned long)rx_base);
- E1000_WRITE_REG(hw, RDBAH, 0);
+ E1000_WRITE_REG(hw, RDBAL, (unsigned long)rx_base & 0xffffffff);
+ E1000_WRITE_REG(hw, RDBAH, (unsigned long)rx_base >> 32);
E1000_WRITE_REG(hw, RDLEN, 128);