Print this page
4431 igb support for I354
4616 igb has uninitialized kstats

*** 333,342 **** --- 333,366 ---- IGB_FLAG_NEED_CTX_IDX), 0xfff00000 /* mask for RXDCTL register */ }; + static adapter_info_t igb_i354_cap = { + /* limits */ + 8, /* maximum number of rx queues */ + 1, /* minimum number of rx queues */ + 4, /* default number of rx queues */ + 8, /* maximum number of tx queues */ + 1, /* minimum number of tx queues */ + 4, /* default number of tx queues */ + 65535, /* maximum interrupt throttle rate */ + 0, /* minimum interrupt throttle rate */ + 200, /* default interrupt throttle rate */ + + /* function pointers */ + igb_enable_adapter_interrupts_82580, + igb_setup_msix_82580, + + /* capabilities */ + (IGB_FLAG_HAS_DCA | /* capability flags */ + IGB_FLAG_VMDQ_POOL | + IGB_FLAG_NEED_CTX_IDX), + + 0xfff00000 /* mask for RXDCTL register */ + }; + /* * Module Initialization Functions */ int
*** 571,580 **** --- 595,606 ---- * Newer models have Energy Efficient Ethernet, let's disable this by * default. */ if (igb->hw.mac.type == e1000_i350) (void) e1000_set_eee_i350(&igb->hw); + else if (igb->hw.mac.type == e1000_i354) + (void) e1000_set_eee_i354(&igb->hw); return (DDI_SUCCESS); attach_fail: igb_unconfigure(devinfo, igb);
*** 898,907 **** --- 924,936 ---- break; case e1000_i210: case e1000_i211: igb->capab = &igb_i210_cap; break; + case e1000_i354: + igb->capab = &igb_i354_cap; + break; default: return (IGB_FAILURE); } return (IGB_SUCCESS);
*** 1316,1325 **** --- 1345,1355 ---- pba = E1000_READ_REG(hw, E1000_RXPBS); pba &= E1000_RXPBS_SIZE_MASK_82576; break; case e1000_82580: case e1000_i350: + case e1000_i354: pba = E1000_READ_REG(hw, E1000_RXPBS); pba = e1000_rxpbs_adjust_82580(pba); break; case e1000_i210: case e1000_i211:
*** 1833,1842 **** --- 1863,1874 ---- if (igb_check_acc_handle(igb->osdep.reg_handle) != DDI_FM_OK) goto start_failure; if (igb->hw.mac.type == e1000_i350) (void) e1000_set_eee_i350(&igb->hw); + else if (igb->hw.mac.type == e1000_i354) + (void) e1000_set_eee_i354(&igb->hw); for (i = igb->num_tx_rings - 1; i >= 0; i--) mutex_exit(&igb->tx_rings[i].tx_lock); for (i = igb->num_rx_rings - 1; i >= 0; i--) mutex_exit(&igb->rx_rings[i].rx_lock);