[U-Boot] Ethernet i210 (e1000 driver) on tegra K1

Ivan Mercier
2015-10-30T11:07:34Z

Hi,

I'm using a ethernet controller intel i210
(http://www.commell.com.tw/product/Surveillance/MPX-210.htm) on my
nvidia tegra k1 jetson.

I not an expert with pci, but the only way to make it working in u-boot
(upstream) is with the workaround below.

E1000 is very common, so finding a critical bug in this driver seems
weird...
Do you think there is a bug in e1000.c or in tegra pci layer?

diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 2ba03ed..206884d 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -5186,7 +5186,7 @@ static int _e1000_transmit(struct e1000_hw *hw,
void *txpacket, int length)
txp = tx_base + tx_tail;
tx_tail = (tx_tail + 1) % 8;

- txp->buffer_addr = cpu_to_le64(virt_to_bus(hw->pdev, nv_packet));
+ txp->buffer_addr = cpu_to_le64((unsigned long) nv_packet);
txp->lower.data = cpu_to_le32(hw->txd_cmd | length);
txp->upper.data = 0;

thank you

--
Best regards / Bien cordialement

Ivan Mercier