diff mbox

[U-Boot] e1000: support 64bit physical address

Message ID 1439794196-45869-1-git-send-email-Mingkai.Hu@freescale.com
State Superseded
Delegated to: Joe Hershberger
Headers show

Commit Message

Mingkai Hu Aug. 17, 2015, 6:49 a.m. UTC
Signed-off-by: Mingkai Hu <Mingkai.Hu@freescale.com>
---
 drivers/net/e1000.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Bin Meng Aug. 18, 2015, 4:18 a.m. UTC | #1
Hi Mingkai,

On Mon, Aug 17, 2015 at 2:49 PM, Mingkai Hu <Mingkai.Hu@freescale.com> wrote:

Please add a commit message on this change.

> Signed-off-by: Mingkai Hu <Mingkai.Hu@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);

Should it be:

    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);
>
> --

Regards,
Bin
Sergey Temerkhanov Aug. 18, 2015, 8:47 a.m. UTC | #2
On Tue, Aug 18, 2015 at 7:18 AM, Bin Meng <bmeng.cn@gmail.com> wrote:
> Hi Mingkai,
>
> On Mon, Aug 17, 2015 at 2:49 PM, Mingkai Hu <Mingkai.Hu@freescale.com> wrote:
>
> Please add a commit message on this change.
>
>> Signed-off-by: Mingkai Hu <Mingkai.Hu@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);
>
> Should it be:
>
>     E1000_WRITE_REG(hw, TDBAL, (unsigned long)(tx_base & 0xffffffff));
>     E1000_WRITE_REG(hw, TDBAH, (unsigned long)(tx_base >> 32));
>

Shouldn't 'unsigned long' be 'uintptr_t' or 'phys_addr_t'?
> ?
>
>>
>>         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);
>>
>> --
>
> Regards,
> Bin
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
diff mbox

Patch

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);