Print this page
MFV: illumos-gate@5bb0bdfe588c5df0f63ff8ac292cd608a5f4492a
9950 Need support for Intel I219 v6-v9
Reviewed by: Jason King <jason.king@joyent.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Approved by: Garrett D'Amore <garrett@damore.org>
Author: Robert Mustacchi <rm@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/e1000api/e1000_hw.h
          +++ new/usr/src/uts/common/io/e1000api/e1000_hw.h
↓ open down ↓ 138 lines elided ↑ open up ↑
 139  139  #define E1000_DEV_ID_PCH_I218_V3                0x15A3 /* Wildcat Point PCH */
 140  140  #define E1000_DEV_ID_PCH_SPT_I219_LM            0x156F /* Sunrise Point PCH */
 141  141  #define E1000_DEV_ID_PCH_SPT_I219_V             0x1570 /* Sunrise Point PCH */
 142  142  #define E1000_DEV_ID_PCH_SPT_I219_LM2           0x15B7 /* Sunrise Point-H PCH */
 143  143  #define E1000_DEV_ID_PCH_SPT_I219_V2            0x15B8 /* Sunrise Point-H PCH */
 144  144  #define E1000_DEV_ID_PCH_LBG_I219_LM3           0x15B9 /* LEWISBURG PCH */
 145  145  #define E1000_DEV_ID_PCH_SPT_I219_LM4           0x15D7
 146  146  #define E1000_DEV_ID_PCH_SPT_I219_V4            0x15D8
 147  147  #define E1000_DEV_ID_PCH_SPT_I219_LM5           0x15E3
 148  148  #define E1000_DEV_ID_PCH_SPT_I219_V5            0x15D6
      149 +#define E1000_DEV_ID_PCH_CNP_I219_LM6           0x15BD
      150 +#define E1000_DEV_ID_PCH_CNP_I219_V6            0x15BE
      151 +#define E1000_DEV_ID_PCH_CNP_I219_LM7           0x15BB
      152 +#define E1000_DEV_ID_PCH_CNP_I219_V7            0x15BC
      153 +#define E1000_DEV_ID_PCH_ICP_I219_LM8           0x15DF
      154 +#define E1000_DEV_ID_PCH_ICP_I219_V8            0x15E0
      155 +#define E1000_DEV_ID_PCH_ICP_I219_LM9           0x15E1
      156 +#define E1000_DEV_ID_PCH_ICP_I219_V9            0x15E2
 149  157  #define E1000_DEV_ID_82576                      0x10C9
 150  158  #define E1000_DEV_ID_82576_FIBER                0x10E6
 151  159  #define E1000_DEV_ID_82576_SERDES               0x10E7
 152  160  #define E1000_DEV_ID_82576_QUAD_COPPER          0x10E8
 153  161  #define E1000_DEV_ID_82576_QUAD_COPPER_ET2      0x1526
 154  162  #define E1000_DEV_ID_82576_NS                   0x150A
 155  163  #define E1000_DEV_ID_82576_NS_SERDES            0x1518
 156  164  #define E1000_DEV_ID_82576_SERDES_QUAD          0x150D
 157  165  #define E1000_DEV_ID_82576_VF                   0x10CA
 158  166  #define E1000_DEV_ID_82576_VF_HV                0x152D
↓ open down ↓ 39 lines elided ↑ open up ↑
 198  206  #define E1000_FUNC_0            0
 199  207  #define E1000_FUNC_1            1
 200  208  #define E1000_FUNC_2            2
 201  209  #define E1000_FUNC_3            3
 202  210  
 203  211  #define E1000_ALT_MAC_ADDRESS_OFFSET_LAN0       0
 204  212  #define E1000_ALT_MAC_ADDRESS_OFFSET_LAN1       3
 205  213  #define E1000_ALT_MAC_ADDRESS_OFFSET_LAN2       6
 206  214  #define E1000_ALT_MAC_ADDRESS_OFFSET_LAN3       9
 207  215  
      216 +/*
      217 + * This enumeration represents all of the different kinds of MAC chips that are
      218 + * used by both the e1000g and igb drivers. The ordering here is important as
      219 + * certain classes of MACs are very similar, but have minor differences and so
      220 + * are compared based on the ordering here. Changing the order here should not
      221 + * be done arbitrarily.
      222 + */
 208  223  enum e1000_mac_type {
 209  224          e1000_undefined = 0,
 210  225          e1000_82542,
 211  226          e1000_82543,
 212  227          e1000_82544,
 213  228          e1000_82540,
 214  229          e1000_82545,
 215  230          e1000_82545_rev_3,
 216  231          e1000_82546,
 217  232          e1000_82546_rev_3,
 218  233          e1000_82541,
 219  234          e1000_82541_rev_2,
 220  235          e1000_82547,
 221  236          e1000_82547_rev_2,
 222  237          e1000_82571,
 223  238          e1000_82572,
 224  239          e1000_82573,
 225  240          e1000_82574,
 226  241          e1000_82583,
 227  242          e1000_80003es2lan,
      243 +        /*
      244 +         * The following MACs all share the ich8 style of hardware and are
      245 +         * implemented in ich8, though some are a little more different than
      246 +         * others. The pch_lpt, pch_spt, and pch_cnp family are a bit more
      247 +         * different than the others and just have slight variants in behavior
      248 +         * between them. They are ordered based on release.
      249 +         */
 228  250          e1000_ich8lan,
 229  251          e1000_ich9lan,
 230  252          e1000_ich10lan,
 231  253          e1000_pchlan,
 232  254          e1000_pch2lan,
 233  255          e1000_pch_lpt,
 234  256          e1000_pch_spt,
      257 +        e1000_pch_cnp,
      258 +        /*
      259 +         * After this point all MACs are used by the igb(7D) driver as opposed
      260 +         * to e1000g(7D). If a new MAC is specific to e1000g series of devices,
      261 +         * then it should be added above this.
      262 +         */
 235  263          e1000_82575,
 236  264          e1000_82576,
 237  265          e1000_82580,
 238  266          e1000_i350,
 239  267          e1000_i354,
 240  268          e1000_i210,
 241  269          e1000_i211,
 242  270          e1000_vfadapt,
 243  271          e1000_vfadapt_i350,
 244  272          e1000_num_macs  /* List is 1-based, so subtract 1 for TRUE count. */
↓ open down ↓ 801 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX