]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
net: e1000: Support 64-bit physical address
authorMingkai Hu <Mingkai.Hu@freescale.com>
Tue, 18 Aug 2015 21:06:26 +0000 (14:06 -0700)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 10 Sep 2015 08:30:33 +0000 (10:30 +0200)
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>
drivers/net/e1000.c

index d5d48b1e7d06b3d6ff9e1c36a8a13c9f7abdcfb4..e81641054d6d8618ee3b429135c91f1706872f27 100644 (file)
@@ -4980,8 +4980,8 @@ e1000_configure_tx(struct e1000_hw *hw)
        unsigned long tipg, tarc;
        uint32_t ipgr1, ipgr2;
 
        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);
 
 
        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_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);
 
 
        E1000_WRITE_REG(hw, RDLEN, 128);