Linux Audio

Check our new training course

Loading...
v6.9.4
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/* Copyright (C) 2023 Intel Corporation */
  3
  4#ifndef _ICE_ETHTOOL_H_
  5#define _ICE_ETHTOOL_H_
  6
  7struct ice_phy_type_to_ethtool {
  8	u64 aq_link_speed;
  9	u8 link_mode;
 10};
 11
 12/* Macro to make PHY type to Ethtool link mode table entry.
 13 * The index is the PHY type.
 14 */
 15#define ICE_PHY_TYPE(LINK_SPEED, ETHTOOL_LINK_MODE) {\
 16	.aq_link_speed = ICE_AQ_LINK_SPEED_##LINK_SPEED, \
 17	.link_mode = ETHTOOL_LINK_MODE_##ETHTOOL_LINK_MODE##_BIT, \
 18}
 19
 20/* Lookup table mapping PHY type low to link speed and Ethtool link modes.
 21 * Array index corresponds to HW PHY type bit, see
 22 * ice_adminq_cmd.h:ICE_PHY_TYPE_LOW_*.
 23 */
 24static const struct ice_phy_type_to_ethtool
 25phy_type_low_lkup[] = {
 26	[0] = ICE_PHY_TYPE(100MB, 100baseT_Full),
 27	[1] = ICE_PHY_TYPE(100MB, 100baseT_Full),
 28	[2] = ICE_PHY_TYPE(1000MB, 1000baseT_Full),
 29	[3] = ICE_PHY_TYPE(1000MB, 1000baseX_Full),
 30	[4] = ICE_PHY_TYPE(1000MB, 1000baseX_Full),
 31	[5] = ICE_PHY_TYPE(1000MB, 1000baseKX_Full),
 32	[6] = ICE_PHY_TYPE(1000MB, 1000baseT_Full),
 33	[7] = ICE_PHY_TYPE(2500MB, 2500baseT_Full),
 34	[8] = ICE_PHY_TYPE(2500MB, 2500baseX_Full),
 35	[9] = ICE_PHY_TYPE(2500MB, 2500baseX_Full),
 36	[10] = ICE_PHY_TYPE(5GB, 5000baseT_Full),
 37	[11] = ICE_PHY_TYPE(5GB, 5000baseT_Full),
 38	[12] = ICE_PHY_TYPE(10GB, 10000baseT_Full),
 39	[13] = ICE_PHY_TYPE(10GB, 10000baseCR_Full),
 40	[14] = ICE_PHY_TYPE(10GB, 10000baseSR_Full),
 41	[15] = ICE_PHY_TYPE(10GB, 10000baseLR_Full),
 42	[16] = ICE_PHY_TYPE(10GB, 10000baseKR_Full),
 43	[17] = ICE_PHY_TYPE(10GB, 10000baseCR_Full),
 44	[18] = ICE_PHY_TYPE(10GB, 10000baseKR_Full),
 45	[19] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 46	[20] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 47	[21] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 48	[22] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 49	[23] = ICE_PHY_TYPE(25GB, 25000baseSR_Full),
 50	[24] = ICE_PHY_TYPE(25GB, 25000baseSR_Full),
 51	[25] = ICE_PHY_TYPE(25GB, 25000baseKR_Full),
 52	[26] = ICE_PHY_TYPE(25GB, 25000baseKR_Full),
 53	[27] = ICE_PHY_TYPE(25GB, 25000baseKR_Full),
 54	[28] = ICE_PHY_TYPE(25GB, 25000baseSR_Full),
 55	[29] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 56	[30] = ICE_PHY_TYPE(40GB, 40000baseCR4_Full),
 57	[31] = ICE_PHY_TYPE(40GB, 40000baseSR4_Full),
 58	[32] = ICE_PHY_TYPE(40GB, 40000baseLR4_Full),
 59	[33] = ICE_PHY_TYPE(40GB, 40000baseKR4_Full),
 60	[34] = ICE_PHY_TYPE(40GB, 40000baseSR4_Full),
 61	[35] = ICE_PHY_TYPE(40GB, 40000baseCR4_Full),
 62	[36] = ICE_PHY_TYPE(50GB, 50000baseCR2_Full),
 63	[37] = ICE_PHY_TYPE(50GB, 50000baseSR2_Full),
 64	[38] = ICE_PHY_TYPE(50GB, 50000baseSR2_Full),
 65	[39] = ICE_PHY_TYPE(50GB, 50000baseKR2_Full),
 66	[40] = ICE_PHY_TYPE(50GB, 50000baseSR2_Full),
 67	[41] = ICE_PHY_TYPE(50GB, 50000baseCR2_Full),
 68	[42] = ICE_PHY_TYPE(50GB, 50000baseSR2_Full),
 69	[43] = ICE_PHY_TYPE(50GB, 50000baseCR2_Full),
 70	[44] = ICE_PHY_TYPE(50GB, 50000baseCR_Full),
 71	[45] = ICE_PHY_TYPE(50GB, 50000baseSR_Full),
 72	[46] = ICE_PHY_TYPE(50GB, 50000baseLR_ER_FR_Full),
 73	[47] = ICE_PHY_TYPE(50GB, 50000baseLR_ER_FR_Full),
 74	[48] = ICE_PHY_TYPE(50GB, 50000baseKR_Full),
 75	[49] = ICE_PHY_TYPE(50GB, 50000baseSR_Full),
 76	[50] = ICE_PHY_TYPE(50GB, 50000baseCR_Full),
 77	[51] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 78	[52] = ICE_PHY_TYPE(100GB, 100000baseSR4_Full),
 79	[53] = ICE_PHY_TYPE(100GB, 100000baseLR4_ER4_Full),
 80	[54] = ICE_PHY_TYPE(100GB, 100000baseKR4_Full),
 81	[55] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 82	[56] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 83	[57] = ICE_PHY_TYPE(100GB, 100000baseSR4_Full),
 84	[58] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 85	[59] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 86	[60] = ICE_PHY_TYPE(100GB, 100000baseKR4_Full),
 87	[61] = ICE_PHY_TYPE(100GB, 100000baseCR2_Full),
 88	[62] = ICE_PHY_TYPE(100GB, 100000baseSR2_Full),
 89	[63] = ICE_PHY_TYPE(100GB, 100000baseLR4_ER4_Full),
 90};
 91
 92/* Lookup table mapping PHY type high to link speed and Ethtool link modes.
 93 * Array index corresponds to HW PHY type bit, see
 94 * ice_adminq_cmd.h:ICE_PHY_TYPE_HIGH_*
 95 */
 96static const struct ice_phy_type_to_ethtool
 97phy_type_high_lkup[] = {
 98	[0] = ICE_PHY_TYPE(100GB, 100000baseKR2_Full),
 99	[1] = ICE_PHY_TYPE(100GB, 100000baseSR2_Full),
100	[2] = ICE_PHY_TYPE(100GB, 100000baseCR2_Full),
101	[3] = ICE_PHY_TYPE(100GB, 100000baseSR2_Full),
102	[4] = ICE_PHY_TYPE(100GB, 100000baseCR2_Full),
103	[5] = ICE_PHY_TYPE(200GB, 200000baseCR4_Full),
104	[6] = ICE_PHY_TYPE(200GB, 200000baseSR4_Full),
105	[7] = ICE_PHY_TYPE(200GB, 200000baseLR4_ER4_FR4_Full),
106	[8] = ICE_PHY_TYPE(200GB, 200000baseLR4_ER4_FR4_Full),
107	[9] = ICE_PHY_TYPE(200GB, 200000baseDR4_Full),
108	[10] = ICE_PHY_TYPE(200GB, 200000baseKR4_Full),
109	[11] = ICE_PHY_TYPE(200GB, 200000baseSR4_Full),
110	[12] = ICE_PHY_TYPE(200GB, 200000baseCR4_Full),
111};
112
113#endif /* !_ICE_ETHTOOL_H_ */
v6.8
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/* Copyright (C) 2023 Intel Corporation */
  3
  4#ifndef _ICE_ETHTOOL_H_
  5#define _ICE_ETHTOOL_H_
  6
  7struct ice_phy_type_to_ethtool {
  8	u64 aq_link_speed;
  9	u8 link_mode;
 10};
 11
 12/* Macro to make PHY type to Ethtool link mode table entry.
 13 * The index is the PHY type.
 14 */
 15#define ICE_PHY_TYPE(LINK_SPEED, ETHTOOL_LINK_MODE) {\
 16	.aq_link_speed = ICE_AQ_LINK_SPEED_##LINK_SPEED, \
 17	.link_mode = ETHTOOL_LINK_MODE_##ETHTOOL_LINK_MODE##_BIT, \
 18}
 19
 20/* Lookup table mapping PHY type low to link speed and Ethtool link modes.
 21 * Array index corresponds to HW PHY type bit, see
 22 * ice_adminq_cmd.h:ICE_PHY_TYPE_LOW_*.
 23 */
 24static const struct ice_phy_type_to_ethtool
 25phy_type_low_lkup[] = {
 26	[0] = ICE_PHY_TYPE(100MB, 100baseT_Full),
 27	[1] = ICE_PHY_TYPE(100MB, 100baseT_Full),
 28	[2] = ICE_PHY_TYPE(1000MB, 1000baseT_Full),
 29	[3] = ICE_PHY_TYPE(1000MB, 1000baseX_Full),
 30	[4] = ICE_PHY_TYPE(1000MB, 1000baseX_Full),
 31	[5] = ICE_PHY_TYPE(1000MB, 1000baseKX_Full),
 32	[6] = ICE_PHY_TYPE(1000MB, 1000baseT_Full),
 33	[7] = ICE_PHY_TYPE(2500MB, 2500baseT_Full),
 34	[8] = ICE_PHY_TYPE(2500MB, 2500baseX_Full),
 35	[9] = ICE_PHY_TYPE(2500MB, 2500baseX_Full),
 36	[10] = ICE_PHY_TYPE(5GB, 5000baseT_Full),
 37	[11] = ICE_PHY_TYPE(5GB, 5000baseT_Full),
 38	[12] = ICE_PHY_TYPE(10GB, 10000baseT_Full),
 39	[13] = ICE_PHY_TYPE(10GB, 10000baseCR_Full),
 40	[14] = ICE_PHY_TYPE(10GB, 10000baseSR_Full),
 41	[15] = ICE_PHY_TYPE(10GB, 10000baseLR_Full),
 42	[16] = ICE_PHY_TYPE(10GB, 10000baseKR_Full),
 43	[17] = ICE_PHY_TYPE(10GB, 10000baseCR_Full),
 44	[18] = ICE_PHY_TYPE(10GB, 10000baseKR_Full),
 45	[19] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 46	[20] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 47	[21] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 48	[22] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 49	[23] = ICE_PHY_TYPE(25GB, 25000baseSR_Full),
 50	[24] = ICE_PHY_TYPE(25GB, 25000baseSR_Full),
 51	[25] = ICE_PHY_TYPE(25GB, 25000baseKR_Full),
 52	[26] = ICE_PHY_TYPE(25GB, 25000baseKR_Full),
 53	[27] = ICE_PHY_TYPE(25GB, 25000baseKR_Full),
 54	[28] = ICE_PHY_TYPE(25GB, 25000baseSR_Full),
 55	[29] = ICE_PHY_TYPE(25GB, 25000baseCR_Full),
 56	[30] = ICE_PHY_TYPE(40GB, 40000baseCR4_Full),
 57	[31] = ICE_PHY_TYPE(40GB, 40000baseSR4_Full),
 58	[32] = ICE_PHY_TYPE(40GB, 40000baseLR4_Full),
 59	[33] = ICE_PHY_TYPE(40GB, 40000baseKR4_Full),
 60	[34] = ICE_PHY_TYPE(40GB, 40000baseSR4_Full),
 61	[35] = ICE_PHY_TYPE(40GB, 40000baseCR4_Full),
 62	[36] = ICE_PHY_TYPE(50GB, 50000baseCR2_Full),
 63	[37] = ICE_PHY_TYPE(50GB, 50000baseSR2_Full),
 64	[38] = ICE_PHY_TYPE(50GB, 50000baseSR2_Full),
 65	[39] = ICE_PHY_TYPE(50GB, 50000baseKR2_Full),
 66	[40] = ICE_PHY_TYPE(50GB, 50000baseSR2_Full),
 67	[41] = ICE_PHY_TYPE(50GB, 50000baseCR2_Full),
 68	[42] = ICE_PHY_TYPE(50GB, 50000baseSR2_Full),
 69	[43] = ICE_PHY_TYPE(50GB, 50000baseCR2_Full),
 70	[44] = ICE_PHY_TYPE(50GB, 50000baseCR_Full),
 71	[45] = ICE_PHY_TYPE(50GB, 50000baseSR_Full),
 72	[46] = ICE_PHY_TYPE(50GB, 50000baseLR_ER_FR_Full),
 73	[47] = ICE_PHY_TYPE(50GB, 50000baseLR_ER_FR_Full),
 74	[48] = ICE_PHY_TYPE(50GB, 50000baseKR_Full),
 75	[49] = ICE_PHY_TYPE(50GB, 50000baseSR_Full),
 76	[50] = ICE_PHY_TYPE(50GB, 50000baseCR_Full),
 77	[51] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 78	[52] = ICE_PHY_TYPE(100GB, 100000baseSR4_Full),
 79	[53] = ICE_PHY_TYPE(100GB, 100000baseLR4_ER4_Full),
 80	[54] = ICE_PHY_TYPE(100GB, 100000baseKR4_Full),
 81	[55] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 82	[56] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 83	[57] = ICE_PHY_TYPE(100GB, 100000baseSR4_Full),
 84	[58] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 85	[59] = ICE_PHY_TYPE(100GB, 100000baseCR4_Full),
 86	[60] = ICE_PHY_TYPE(100GB, 100000baseKR4_Full),
 87	[61] = ICE_PHY_TYPE(100GB, 100000baseCR2_Full),
 88	[62] = ICE_PHY_TYPE(100GB, 100000baseSR2_Full),
 89	[63] = ICE_PHY_TYPE(100GB, 100000baseLR4_ER4_Full),
 90};
 91
 92/* Lookup table mapping PHY type high to link speed and Ethtool link modes.
 93 * Array index corresponds to HW PHY type bit, see
 94 * ice_adminq_cmd.h:ICE_PHY_TYPE_HIGH_*
 95 */
 96static const struct ice_phy_type_to_ethtool
 97phy_type_high_lkup[] = {
 98	[0] = ICE_PHY_TYPE(100GB, 100000baseKR2_Full),
 99	[1] = ICE_PHY_TYPE(100GB, 100000baseSR2_Full),
100	[2] = ICE_PHY_TYPE(100GB, 100000baseCR2_Full),
101	[3] = ICE_PHY_TYPE(100GB, 100000baseSR2_Full),
102	[4] = ICE_PHY_TYPE(100GB, 100000baseCR2_Full),
103	[5] = ICE_PHY_TYPE(200GB, 200000baseCR4_Full),
104	[6] = ICE_PHY_TYPE(200GB, 200000baseSR4_Full),
105	[7] = ICE_PHY_TYPE(200GB, 200000baseLR4_ER4_FR4_Full),
106	[8] = ICE_PHY_TYPE(200GB, 200000baseLR4_ER4_FR4_Full),
107	[9] = ICE_PHY_TYPE(200GB, 200000baseDR4_Full),
108	[10] = ICE_PHY_TYPE(200GB, 200000baseKR4_Full),
109	[11] = ICE_PHY_TYPE(200GB, 200000baseSR4_Full),
110	[12] = ICE_PHY_TYPE(200GB, 200000baseCR4_Full),
111};
112
113#endif /* !_ICE_ETHTOOL_H_ */