Message ID | 1410383900.16012.24.camel@localhost.localdomain |
---|---|
State | Not Applicable |
Delegated to: | Marek Vasut |
Headers | show |
On Wednesday, September 10, 2014 at 11:18:20 PM, Marcel Ziswiler wrote: > On Mon, 2014-09-08 at 04:07 +0200, Marek Vasut wrote: > > Does the network really work with an i21x with unprogrammed iNVM ? > > Yes, it actually does work quite nicely. That's interesting. I never got it working with unprogrammed iNVM, I always had to program it first. > However I currently still have to patch it additionally as follows: > > diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c > index ce19173..5f9c606 100644 > --- a/drivers/net/e1000.c > +++ b/drivers/net/e1000.c > @@ -1128,7 +1128,7 @@ e1000_swfw_sync_acquire(struct e1000_hw *hw, > uint16_t mask) > > if (!timeout) { > DEBUGOUT("Driver can't access resource, SW_FW_SYNC > timeout.\n"); > - return -E1000_ERR_SWFW_SYNC; > +// return -E1000_ERR_SWFW_SYNC; > } > > swfw_sync |= swmask; > @@ -4378,7 +4378,7 @@ e1000_get_phy_cfg_done(struct e1000_hw *hw) > if (!timeout) { > DEBUGOUT("MNG configuration cycle has not " > "completed.\n"); > - return -E1000_ERR_RESET; > +// return -E1000_ERR_RESET; > } > break; > } > > Without doing the above it fails as follows (enabled E1000_DEBUG): [...] > This is both with programmed (iNVM only, haven't tried external serial > PROM possible on i210) as well as unprogrammed i210 as well as i211 > chips on our Apalis T30 modules. > > Have you ever seen any such issue? No, but this looks like the card cannot acquire a semaphore. You might want to check if there are maybe some pecularities in semaphore handling on this i210 hardware. I remember intel did change the semaphore handling between various intel ethernet cards. > Wondering whether this is a Tegra PCIe related issue. I doubt so. > May I ask about your specific platform you tried this on? The MX6 SabreLite and the MX6 SabreSDP . Both MX6Quad. > Could you send some output of a working session with > E1000_DEBUG enabled? I plan to try it on a Boundary Devices Nitrogen6X > as well as our Apalis iMX6 module as well. I don't have the setup assembled now and the i210 is not available to me now, but you should be getting the same result with the N6X. Right now, I only have the MX6 SabreLite and an another intel NIC available, sorry. Best regards, Marek Vasut
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index ce19173..5f9c606 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -1128,7 +1128,7 @@ e1000_swfw_sync_acquire(struct e1000_hw *hw, uint16_t mask) if (!timeout) { DEBUGOUT("Driver can't access resource, SW_FW_SYNC timeout.\n"); - return -E1000_ERR_SWFW_SYNC; +// return -E1000_ERR_SWFW_SYNC; }
On Mon, 2014-09-08 at 04:07 +0200, Marek Vasut wrote: > Does the network really work with an i21x with unprogrammed iNVM ? Yes, it actually does work quite nicely. However I currently still have to patch it additionally as follows: swfw_sync |= swmask; @@ -4378,7 +4378,7 @@ e1000_get_phy_cfg_done(struct e1000_hw *hw) if (!timeout) { DEBUGOUT("MNG configuration cycle has not " "completed.\n"); - return -E1000_ERR_RESET; +// return -E1000_ERR_RESET; } break; } Without doing the above it fails as follows (enabled E1000_DEBUG): U-Boot SPL 2014.10-rc2-00043-g80a3caa-dirty (Sep 08 2014 - 12:26:27) U-Boot 2014.10-rc2-00043-g80a3caa-dirty (Sep 08 2014 - 12:26:27) TEGRA30 Board: Toradex Apalis T30 I2C: ready DRAM: 1 GiB MMC: Tegra SD/MMC: 0, Tegra SD/MMC: 1, Tegra SD/MMC: 2 tegra-pcie: PCI regions: tegra-pcie: I/O: 0x2000000-0x2010000 tegra-pcie: non-prefetchable memory: 0x20000000-0x30000000 tegra-pcie: prefetchable memory: 0x30000000-0x40000000 tegra-pcie: 4x1, 1x2 configuration tegra-pcie: probing port 2, using 1 lanes In: serial Out: serial Err: serial Net: e1000_initialize e1000: e1000#0: DEBUG: iobase 0x20000000 e1000_set_mac_type e1000_set_media_type copper interface e1000_reset_hw Masking off all interrupts Issuing a global reset to MAC PF OK EEC OK Masking off all interrupts e1000: no NVM e1000#0 Error: e1000#0 address not set. Hit any key to stop autoboot: 0 Apalis T30 # setenv ethaddr 00:14:2d:27:35:8f Apalis T30 # dhcp e1000_reset_hw Masking off all interrupts Issuing a global reset to MAC PF OK EEC OK Masking off all interrupts e1000_init_hw e1000_set_media_type Initializing the IEEE VLAN e1000_init_rx_addrs Programming MAC Address into RAR[0] Clearing RAR[1-15] Zeroing the MTA e1000_setup_link After fix-ups FlowControl is now = 3 e1000_setup_copper_link e1000_copper_link_preconfig e1000_detect_gig_phy e1000_set_phy_type PHY ID 0x1410C00 detected Phy ID = 1410c00 e1000_copper_link_mgp_setup e1000_phy_reset e1000_phy_hw_reset Resetting Phy... e1000_swfw_sync_acquire Driver can't access resource, SW_FW_SYNC timeout. Unable to acquire swfw sync Error Resetting the PHY e1000: e1000#0: ERROR: Hardware Initialization Failed This is both with programmed (iNVM only, haven't tried external serial PROM possible on i210) as well as unprogrammed i210 as well as i211 chips on our Apalis T30 modules. Have you ever seen any such issue? Wondering whether this is a Tegra PCIe related issue. May I ask about your specific platform you tried this on? Could you send some output of a working session with E1000_DEBUG enabled? I plan to try it on a Boundary Devices Nitrogen6X as well as our Apalis iMX6 module as well.