Hello! I am running FreeBSD 10-RELEASE on a system with the H97I chipset which has an Intel network controller based on I218 with ID 0x15A1 (as seen in pciconf -lv). I looked around the internet and saw that this was still not supported and was able to find this patch from intel for Linux: https://lists.ubuntu.com/archives/kernel-team/2013-August/031363.html . I ported those changes to files in /usr/src/sys/dev/e1000 (diffs attached) and rebuilt GENERIC kernel and was able to use the network interface. I checked svn head for -CURRENT and didn't see this hardware ID yet so I decided to file this bug report in case there is interest to have support added. Thanks.
Created attachment 143933 [details] tar file of diffs
Over to maintainers.
Unified version of the submitted diffs. Assigning to jfv@ % svn diff Index: sys/dev/e1000/e1000_api.c =================================================================== --- sys/dev/e1000/e1000_api.c (revision 267197) +++ sys/dev/e1000/e1000_api.c (working copy) @@ -293,6 +293,7 @@ case E1000_DEV_ID_PCH_LPT_I217_V: case E1000_DEV_ID_PCH_LPTLP_I218_LM: case E1000_DEV_ID_PCH_LPTLP_I218_V: + case E1000_DEV_ID_PCH_I218_V2: mac->type = e1000_pch_lpt; break; case E1000_DEV_ID_82575EB_COPPER: Index: sys/dev/e1000/e1000_hw.h =================================================================== --- sys/dev/e1000/e1000_hw.h (revision 267197) +++ sys/dev/e1000/e1000_hw.h (working copy) @@ -133,6 +133,7 @@ #define E1000_DEV_ID_PCH_LPT_I217_V 0x153B #define E1000_DEV_ID_PCH_LPTLP_I218_LM 0x155A #define E1000_DEV_ID_PCH_LPTLP_I218_V 0x1559 +#define E1000_DEV_ID_PCH_I218_V2 0x15A1 #define E1000_DEV_ID_82576 0x10C9 #define E1000_DEV_ID_82576_FIBER 0x10E6 #define E1000_DEV_ID_82576_SERDES 0x10E7 Index: sys/dev/e1000/e1000_ich8lan.c =================================================================== --- sys/dev/e1000/e1000_ich8lan.c (revision 267197) +++ sys/dev/e1000/e1000_ich8lan.c (working copy) @@ -61,7 +61,7 @@ * 82579V Gigabit Network Connection * Ethernet Connection I217-LM * Ethernet Connection I217-V - * Ethernet Connection I218-V + * Ethernet Connection I218-V2 * Ethernet Connection I218-LM */ @@ -1246,7 +1246,8 @@ /* Work-around I218 hang issue */ if ((hw->device_id == E1000_DEV_ID_PCH_LPTLP_I218_LM) || - (hw->device_id == E1000_DEV_ID_PCH_LPTLP_I218_V)) { + (hw->device_id == E1000_DEV_ID_PCH_LPTLP_I218_V) || + (hw->device_id == E1000_DEV_ID_PCH_I218_V2)) { ret_val = e1000_k1_workaround_lpt_lp(hw, link); if (ret_val) return ret_val; @@ -4597,7 +4598,8 @@ u16 phy_reg, device_id = hw->device_id; if ((device_id == E1000_DEV_ID_PCH_LPTLP_I218_LM) || - (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V)) { + (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V) || + (device_id == E1000_DEV_ID_PCH_I218_V2)) { u32 fextnvm6 = E1000_READ_REG(hw, E1000_FEXTNVM6); E1000_WRITE_REG(hw, E1000_FEXTNVM6,
Looks like Jack just committed an update to the driver yesterday that is a superset of this.