[U-Boot] [PATCH] net: e1000: Support 64-bit physical address

York Sun yorksun at freescale.com
Tue Aug 18 23:06:26 CEST 2015


From: Mingkai Hu <Mingkai.Hu at freescale.com>

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 at freescale.com>
Signed-off-by: York Sun <yorksun at freescale.com>

---

 drivers/net/e1000.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index d5d48b1..e816410 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);
 
-- 
1.7.9.5



More information about the U-Boot mailing list