|
@@ -320,6 +320,9 @@ static s32 ixgbe_identify_phy_x550em(struct ixgbe_hw *hw)
|
|
case IXGBE_DEV_ID_X550EM_X_KX4:
|
|
case IXGBE_DEV_ID_X550EM_X_KX4:
|
|
hw->phy.type = ixgbe_phy_x550em_kx4;
|
|
hw->phy.type = ixgbe_phy_x550em_kx4;
|
|
break;
|
|
break;
|
|
|
|
+ case IXGBE_DEV_ID_X550EM_X_XFI:
|
|
|
|
+ hw->phy.type = ixgbe_phy_x550em_xfi;
|
|
|
|
+ break;
|
|
case IXGBE_DEV_ID_X550EM_X_KR:
|
|
case IXGBE_DEV_ID_X550EM_X_KR:
|
|
case IXGBE_DEV_ID_X550EM_A_KR:
|
|
case IXGBE_DEV_ID_X550EM_A_KR:
|
|
case IXGBE_DEV_ID_X550EM_A_KR_L:
|
|
case IXGBE_DEV_ID_X550EM_A_KR_L:
|
|
@@ -2231,6 +2234,10 @@ static s32 ixgbe_get_link_capabilities_X550em(struct ixgbe_hw *hw,
|
|
IXGBE_LINK_SPEED_2_5GB_FULL |
|
|
IXGBE_LINK_SPEED_2_5GB_FULL |
|
|
IXGBE_LINK_SPEED_10GB_FULL;
|
|
IXGBE_LINK_SPEED_10GB_FULL;
|
|
break;
|
|
break;
|
|
|
|
+ case ixgbe_phy_x550em_xfi:
|
|
|
|
+ *speed = IXGBE_LINK_SPEED_1GB_FULL |
|
|
|
|
+ IXGBE_LINK_SPEED_10GB_FULL;
|
|
|
|
+ break;
|
|
case ixgbe_phy_sgmii:
|
|
case ixgbe_phy_sgmii:
|
|
*speed = IXGBE_LINK_SPEED_1GB_FULL;
|
|
*speed = IXGBE_LINK_SPEED_1GB_FULL;
|
|
break;
|
|
break;
|
|
@@ -3127,6 +3134,12 @@ static s32 ixgbe_init_phy_ops_X550em(struct ixgbe_hw *hw)
|
|
phy->ops.read_reg = ixgbe_read_phy_reg_x550em;
|
|
phy->ops.read_reg = ixgbe_read_phy_reg_x550em;
|
|
phy->ops.write_reg = ixgbe_write_phy_reg_x550em;
|
|
phy->ops.write_reg = ixgbe_write_phy_reg_x550em;
|
|
break;
|
|
break;
|
|
|
|
+ case ixgbe_phy_x550em_xfi:
|
|
|
|
+ /* link is managed by HW */
|
|
|
|
+ phy->ops.setup_link = NULL;
|
|
|
|
+ phy->ops.read_reg = ixgbe_read_phy_reg_x550em;
|
|
|
|
+ phy->ops.write_reg = ixgbe_write_phy_reg_x550em;
|
|
|
|
+ break;
|
|
case ixgbe_phy_x550em_ext_t:
|
|
case ixgbe_phy_x550em_ext_t:
|
|
/* Save NW management interface connected on board. This is used
|
|
/* Save NW management interface connected on board. This is used
|
|
* to determine internal PHY mode
|
|
* to determine internal PHY mode
|
|
@@ -3180,6 +3193,7 @@ static enum ixgbe_media_type ixgbe_get_media_type_X550em(struct ixgbe_hw *hw)
|
|
/* Fallthrough */
|
|
/* Fallthrough */
|
|
case IXGBE_DEV_ID_X550EM_X_KR:
|
|
case IXGBE_DEV_ID_X550EM_X_KR:
|
|
case IXGBE_DEV_ID_X550EM_X_KX4:
|
|
case IXGBE_DEV_ID_X550EM_X_KX4:
|
|
|
|
+ case IXGBE_DEV_ID_X550EM_X_XFI:
|
|
case IXGBE_DEV_ID_X550EM_A_KR:
|
|
case IXGBE_DEV_ID_X550EM_A_KR:
|
|
case IXGBE_DEV_ID_X550EM_A_KR_L:
|
|
case IXGBE_DEV_ID_X550EM_A_KR_L:
|
|
media_type = ixgbe_media_type_backplane;
|
|
media_type = ixgbe_media_type_backplane;
|