Index: sys/dev/e1000/e1000_hw.h =================================================================== --- sys/dev/e1000/e1000_hw.h +++ sys/dev/e1000/e1000_hw.h @@ -260,11 +260,11 @@ e1000_pchlan, e1000_pch2lan, e1000_pch_lpt, - e1000_pch_spt, - e1000_pch_cnp, - e1000_pch_tgp, - e1000_pch_adp, - e1000_pch_mtp, + e1000_pch_spt, /* I219 Start */ + e1000_pch_cnp, /* I219 Check for usage of the value at "I219 Start" and */ + e1000_pch_tgp, /* I219 "I219 END" in the driver when adding a new PCH */ + e1000_pch_adp, /* I219 */ + e1000_pch_mtp, /* I219 End */ e1000_82575, e1000_82576, e1000_82580, Index: sys/dev/e1000/if_em.c =================================================================== --- sys/dev/e1000/if_em.c +++ sys/dev/e1000/if_em.c @@ -1789,7 +1789,7 @@ switch (hw->phy.media_type) { case e1000_media_type_copper: if (hw->mac.get_link_status) { - if (hw->mac.type == e1000_pch_spt) + if (hw->mac.type >= e1000_pch_spt && hw->mac.type <= e1000_pch_mtp) msec_delay(50); /* Do the work to read phy */ e1000_check_for_link(hw); @@ -3143,13 +3143,13 @@ /* This write will effectively turn on the transmit unit. */ E1000_WRITE_REG(hw, E1000_TCTL, tctl); - /* SPT and KBL errata workarounds */ - if (hw->mac.type == e1000_pch_spt) { + /* I218/I219 errata workarounds */ + if (hw->mac.type >= e1000_pch_lpt && hw->mac.type <= e1000_pch_mtp) { u32 reg; reg = E1000_READ_REG(hw, E1000_IOSFPC); reg |= E1000_RCTL_RDMTS_HEX; E1000_WRITE_REG(hw, E1000_IOSFPC, reg); - /* i218-i219 Specification Update 1.5.4.5 */ + /* I218-I219 Specification Update 1.5.4.5 */ reg = E1000_READ_REG(hw, E1000_TARC(0)); reg &= ~E1000_TARC0_CB_MULTIQ_3_REQ; reg |= E1000_TARC0_CB_MULTIQ_2_REQ;