MFC ixgbe(4) 3.1.13-k
- r292674
Add support for X552 and X550T
- 292751 and 292697 added here to fix the build
Fix SFP module insertion post boot
- 293334
Fix VF handling of VLANS for Amazon Cloud
- 293338
Differential D5117
MFC ixgbe(4) 3.1.13-k Authored by sbruno on Jan 29 2016, 2:52 PM. Tags None Referenced Files
Details
MFC ixgbe(4) 3.1.13-k
Add support for X552 and X550T
Fix SFP module insertion post boot
Fix VF handling of VLANS for Amazon Cloud
-Basic Traffic tests (ftp, NFS, TCP, UDP)
Diff Detail
Event TimelineComment Actions We have a version of just this but back ported to 10.2 running in production. Comparing our diffs highlights the following:
sys/dev/ixgbe/if_ixv.c
@@ -1703,17 +1694,11 @@ ixv_initialize_receive_units(struct adap
reg |= IXGBE_SRRCTL_DESCTYPE_ADV_ONEBUF;
IXGBE_WRITE_REG(hw, IXGBE_VFSRRCTL(i), reg);
- /* Setup the HW Rx Head and Tail Descriptor Pointers */
- IXGBE_WRITE_REG(hw, IXGBE_VFRDH(rxr->me), 0);
- IXGBE_WRITE_REG(hw, IXGBE_VFRDT(rxr->me),
- adapter->num_rx_desc - 1);
-
- /* Set Rx Tail register */Comment Actions I should have captured r285592 in the MFC of driver version 3.1.0 to stable 10. https://svnweb.freebsd.org/base?view=revision&revision=294061 The second point, looks like an svn mismerge. I'll fix that directly. Comment Actions In that case you may be missing a few netmap bits according to our patch: sys/dev/ixgbe/if_ix.c
@@ -446,9 +463,14 @@ ixgbe_attach(device_t dev)
/* Allocate, clear, and link in our adapter structure */
adapter = device_get_softc(dev);
- adapter->dev = adapter->osdep.dev = dev;
+ adapter->dev = dev;
hw = &adapter->hw;
+#ifdef DEV_NETMAP
+ adapter->init_locked = ixgbe_init_locked;
+ adapter->stop_locked = ixgbe_stop;
+#endif
+
/* Core Lock Init*/
IXGBE_CORE_LOCK_INIT(adapter, device_get_nameunit(dev));
sys/dev/ixgbe/ixgbe.h
@@ -555,6 +562,10 @@ struct adapter {
#ifdef PCI_IOV
struct ixgbe_vf *vfs;
#endif
+#ifdef DEV_NETMAP
+ void (*init_locked)(struct adapter *);
+ void (*stop_locked)(void *);
+#endif
/* Misc stats maintained by the driver */
unsigned long dropped_pkts;
sys/dev/ixgbe/if_ixv.c
@@ -292,9 +292,14 @@ ixv_attach(device_t dev)
/* Allocate, clear, and link in our adapter structure */
adapter = device_get_softc(dev);
- adapter->dev = adapter->osdep.dev = dev;
+ adapter->dev = dev;
hw = &adapter->hw;
+#ifdef DEV_NETMAP
+ adapter->init_locked = ixv_init_locked;
+ adapter->stop_locked = ixv_stop;
+#endif
+
/* Core Lock Init*/
IXGBE_CORE_LOCK_INIT(adapter, device_get_nameunit(dev));Comment Actions the changes for osdep.dev seem to be deprecated completely by this driver update and the dev element of struct ixgbe_osdep has been removed. The NETMAP changes may be relevant, I'll poke at them. Comment Actions Address missing #ifdef DEV_NETMAP code pointed out by smh. Compile tested amd64/i386 +netmap. Comment Actions Almost there. recomparing with our diff the only remaining missing block is the following which comes from between r283882 and r283883: sys/dev/ixgbe/if_ix.c @@ -3146,11 +3285,11 @@ ixgbe_initialize_receive_units(struct ad srrctl &= ~IXGBE_SRRCTL_DROP_EN; } - IXGBE_WRITE_REG(hw, IXGBE_SRRCTL(i), srrctl); + IXGBE_WRITE_REG(hw, IXGBE_SRRCTL(j), srrctl); /* Setup the HW Rx Head and Tail Descriptor Pointers */ - IXGBE_WRITE_REG(hw, IXGBE_RDH(i), 0); - IXGBE_WRITE_REG(hw, IXGBE_RDT(i), 0); + IXGBE_WRITE_REG(hw, IXGBE_RDH(j), 0); + IXGBE_WRITE_REG(hw, IXGBE_RDT(j), 0); /* Set the driver rx tail address */ rxr->tail = IXGBE_RDT(rxr->me); Comment Actions I have this running on top of 10-STABLE (10.3-PRERELEASE) on X520, X540, X550, X552, and X552/X557. Everything seems to behaving as expected and doing "stuff". Will continue to run tests. Comment Actions Other than the slight nitpicky spot with sys/conf/files that might make future merges a bit weird, LGTM!
| ||||||||||||||||||||||||||||||||||||||||||