@@ -62,6 +62,124 @@ EXPORT_SYMBOL_GPL(phy_duplex_to_str);
6262 * must be grouped by speed and sorted in descending match priority
6363 * - iow, descending speed. */
6464static const struct phy_setting settings [] = {
65+ /* 100G */
66+ {
67+ .speed = SPEED_100000 ,
68+ .duplex = DUPLEX_FULL ,
69+ .bit = ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT ,
70+ },
71+ {
72+ .speed = SPEED_100000 ,
73+ .duplex = DUPLEX_FULL ,
74+ .bit = ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT ,
75+ },
76+ {
77+ .speed = SPEED_100000 ,
78+ .duplex = DUPLEX_FULL ,
79+ .bit = ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT ,
80+ },
81+ {
82+ .speed = SPEED_100000 ,
83+ .duplex = DUPLEX_FULL ,
84+ .bit = ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT ,
85+ },
86+ /* 56G */
87+ {
88+ .speed = SPEED_56000 ,
89+ .duplex = DUPLEX_FULL ,
90+ .bit = ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT ,
91+ },
92+ {
93+ .speed = SPEED_56000 ,
94+ .duplex = DUPLEX_FULL ,
95+ .bit = ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT ,
96+ },
97+ {
98+ .speed = SPEED_56000 ,
99+ .duplex = DUPLEX_FULL ,
100+ .bit = ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT ,
101+ },
102+ {
103+ .speed = SPEED_56000 ,
104+ .duplex = DUPLEX_FULL ,
105+ .bit = ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT ,
106+ },
107+ /* 50G */
108+ {
109+ .speed = SPEED_50000 ,
110+ .duplex = DUPLEX_FULL ,
111+ .bit = ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT ,
112+ },
113+ {
114+ .speed = SPEED_50000 ,
115+ .duplex = DUPLEX_FULL ,
116+ .bit = ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT ,
117+ },
118+ {
119+ .speed = SPEED_50000 ,
120+ .duplex = DUPLEX_FULL ,
121+ .bit = ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT ,
122+ },
123+ /* 40G */
124+ {
125+ .speed = SPEED_40000 ,
126+ .duplex = DUPLEX_FULL ,
127+ .bit = ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT ,
128+ },
129+ {
130+ .speed = SPEED_40000 ,
131+ .duplex = DUPLEX_FULL ,
132+ .bit = ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT ,
133+ },
134+ {
135+ .speed = SPEED_40000 ,
136+ .duplex = DUPLEX_FULL ,
137+ .bit = ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT ,
138+ },
139+ {
140+ .speed = SPEED_40000 ,
141+ .duplex = DUPLEX_FULL ,
142+ .bit = ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT ,
143+ },
144+ /* 25G */
145+ {
146+ .speed = SPEED_25000 ,
147+ .duplex = DUPLEX_FULL ,
148+ .bit = ETHTOOL_LINK_MODE_25000baseCR_Full_BIT ,
149+ },
150+ {
151+ .speed = SPEED_25000 ,
152+ .duplex = DUPLEX_FULL ,
153+ .bit = ETHTOOL_LINK_MODE_25000baseKR_Full_BIT ,
154+ },
155+ {
156+ .speed = SPEED_25000 ,
157+ .duplex = DUPLEX_FULL ,
158+ .bit = ETHTOOL_LINK_MODE_25000baseSR_Full_BIT ,
159+ },
160+
161+ /* 20G */
162+ {
163+ .speed = SPEED_20000 ,
164+ .duplex = DUPLEX_FULL ,
165+ .bit = ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT ,
166+ },
167+ {
168+ .speed = SPEED_20000 ,
169+ .duplex = DUPLEX_FULL ,
170+ .bit = ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT ,
171+ },
172+ /* 10G */
173+ {
174+ .speed = SPEED_10000 ,
175+ .duplex = DUPLEX_FULL ,
176+ .bit = ETHTOOL_LINK_MODE_10000baseCR_Full_BIT ,
177+ },
178+ {
179+ .speed = SPEED_10000 ,
180+ .duplex = DUPLEX_FULL ,
181+ .bit = ETHTOOL_LINK_MODE_10000baseER_Full_BIT ,
182+ },
65183 {
66184 .speed = SPEED_10000 ,
67185 .duplex = DUPLEX_FULL ,
@@ -72,25 +190,54 @@ static const struct phy_setting settings[] = {
72190 .duplex = DUPLEX_FULL ,
73191 .bit = ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT ,
74192 },
193+ {
194+ .speed = SPEED_10000 ,
195+ .duplex = DUPLEX_FULL ,
196+ .bit = ETHTOOL_LINK_MODE_10000baseLR_Full_BIT ,
197+ },
198+ {
199+ .speed = SPEED_10000 ,
200+ .duplex = DUPLEX_FULL ,
201+ .bit = ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT ,
202+ },
203+ {
204+ .speed = SPEED_10000 ,
205+ .duplex = DUPLEX_FULL ,
206+ .bit = ETHTOOL_LINK_MODE_10000baseR_FEC_BIT ,
207+ },
208+ {
209+ .speed = SPEED_10000 ,
210+ .duplex = DUPLEX_FULL ,
211+ .bit = ETHTOOL_LINK_MODE_10000baseSR_Full_BIT ,
212+ },
75213 {
76214 .speed = SPEED_10000 ,
77215 .duplex = DUPLEX_FULL ,
78216 .bit = ETHTOOL_LINK_MODE_10000baseT_Full_BIT ,
79217 },
218+ /* 5G */
219+ {
220+ .speed = SPEED_5000 ,
221+ .duplex = DUPLEX_FULL ,
222+ .bit = ETHTOOL_LINK_MODE_5000baseT_Full_BIT ,
223+ },
224+
225+ /* 2.5G */
80226 {
81227 .speed = SPEED_2500 ,
82228 .duplex = DUPLEX_FULL ,
83- .bit = ETHTOOL_LINK_MODE_2500baseX_Full_BIT ,
229+ .bit = ETHTOOL_LINK_MODE_2500baseT_Full_BIT ,
84230 },
85231 {
86- .speed = SPEED_1000 ,
232+ .speed = SPEED_2500 ,
87233 .duplex = DUPLEX_FULL ,
88- .bit = ETHTOOL_LINK_MODE_1000baseKX_Full_BIT ,
234+ .bit = ETHTOOL_LINK_MODE_2500baseX_Full_BIT ,
89235 },
236+ /* 1G */
90237 {
91238 .speed = SPEED_1000 ,
92239 .duplex = DUPLEX_FULL ,
93- .bit = ETHTOOL_LINK_MODE_1000baseX_Full_BIT ,
240+ .bit = ETHTOOL_LINK_MODE_1000baseKX_Full_BIT ,
94241 },
95242 {
96243 .speed = SPEED_1000 ,
@@ -102,6 +249,12 @@ static const struct phy_setting settings[] = {
102249 .duplex = DUPLEX_HALF ,
103250 .bit = ETHTOOL_LINK_MODE_1000baseT_Half_BIT ,
104251 },
252+ {
253+ .speed = SPEED_1000 ,
254+ .duplex = DUPLEX_FULL ,
255+ .bit = ETHTOOL_LINK_MODE_1000baseX_Full_BIT ,
256+ },
257+ /* 100M */
105258 {
106259 .speed = SPEED_100 ,
107260 .duplex = DUPLEX_FULL ,
@@ -112,6 +265,7 @@ static const struct phy_setting settings[] = {
112265 .duplex = DUPLEX_HALF ,
113266 .bit = ETHTOOL_LINK_MODE_100baseT_Half_BIT ,
114267 },
268+ /* 10M */
115269 {
116270 .speed = SPEED_10 ,
117271 .duplex = DUPLEX_FULL ,
0 commit comments