1 /* SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2007-2018 Solarflare Communications Inc.
10 #if EFSYS_OPT_MON_MCDI
16 static const char * const __efx_mon_name
[] = {
27 efx_nic_cfg_t
*encp
= &(enp
->en_nic_cfg
);
29 EFSYS_ASSERT3U(enp
->en_magic
, ==, EFX_NIC_MAGIC
);
31 EFSYS_ASSERT(encp
->enc_mon_type
!= EFX_MON_INVALID
);
32 EFSYS_ASSERT3U(encp
->enc_mon_type
, <, EFX_MON_NTYPES
);
33 return (__efx_mon_name
[encp
->enc_mon_type
]);
36 #endif /* EFSYS_OPT_NAMES */
38 #if EFSYS_OPT_MON_MCDI
39 static const efx_mon_ops_t __efx_mon_mcdi_ops
= {
40 #if EFSYS_OPT_MON_STATS
41 mcdi_mon_stats_update
, /* emo_stats_update */
42 mcdi_mon_limits_update
, /* emo_limits_update */
43 #endif /* EFSYS_OPT_MON_STATS */
48 __checkReturn efx_rc_t
52 efx_nic_cfg_t
*encp
= &(enp
->en_nic_cfg
);
53 efx_mon_t
*emp
= &(enp
->en_mon
);
54 const efx_mon_ops_t
*emop
;
57 EFSYS_ASSERT3U(enp
->en_magic
, ==, EFX_NIC_MAGIC
);
58 EFSYS_ASSERT3U(enp
->en_mod_flags
, &, EFX_MOD_PROBE
);
60 if (enp
->en_mod_flags
& EFX_MOD_MON
) {
65 enp
->en_mod_flags
|= EFX_MOD_MON
;
67 emp
->em_type
= encp
->enc_mon_type
;
69 EFSYS_ASSERT(encp
->enc_mon_type
!= EFX_MON_INVALID
);
70 switch (emp
->em_type
) {
71 #if EFSYS_OPT_MON_MCDI
75 emop
= &__efx_mon_mcdi_ops
;
89 emp
->em_type
= EFX_MON_INVALID
;
91 enp
->en_mod_flags
&= ~EFX_MOD_MON
;
94 EFSYS_PROBE1(fail1
, efx_rc_t
, rc
);
99 #if EFSYS_OPT_MON_STATS
103 /* START MKCONFIG GENERATED MonitorStatNamesBlock 277c17eda1a6d1a4 */
104 static const char * const __mon_stat_name
[] = {
107 "controller_cooling",
138 "vreg_internal_temp",
142 "controller_internal_temp",
143 "controller_vptat_extadc",
144 "controller_internal_temp_extadc",
148 "vdd08d_vss08d_csr_extadc",
159 "ccom_avreg_1v2_supply",
160 "ccom_avreg_1v2_supply_extadc",
161 "ccom_avreg_1v8_supply",
162 "ccom_avreg_1v8_supply_extadc",
163 "controller_master_vptat",
164 "controller_master_internal_temp",
165 "controller_master_vptat_extadc",
166 "controller_master_internal_temp_extadc",
167 "controller_slave_vptat",
168 "controller_slave_internal_temp",
169 "controller_slave_vptat_extadc",
170 "controller_slave_internal_temp_extadc",
176 "controller_tdiode_temp",
187 /* END MKCONFIG GENERATED MonitorStatNamesBlock */
192 __in efx_mon_stat_t id
)
194 _NOTE(ARGUNUSED(enp
))
195 EFSYS_ASSERT3U(enp
->en_magic
, ==, EFX_NIC_MAGIC
);
197 EFSYS_ASSERT3U(id
, <, EFX_MON_NSTATS
);
198 return (__mon_stat_name
[id
]);
201 typedef struct _stat_description_t
{
204 } stat_description_t
;
206 /* START MKCONFIG GENERATED MonitorStatDescriptionsBlock f072138f16d2e1f8 */
207 static const char *__mon_stat_description
[] = {
208 MC_CMD_SENSOR_CONTROLLER_TEMP_ENUM_STR
,
209 MC_CMD_SENSOR_PHY_COMMON_TEMP_ENUM_STR
,
210 MC_CMD_SENSOR_CONTROLLER_COOLING_ENUM_STR
,
211 MC_CMD_SENSOR_PHY0_TEMP_ENUM_STR
,
212 MC_CMD_SENSOR_PHY0_COOLING_ENUM_STR
,
213 MC_CMD_SENSOR_PHY1_TEMP_ENUM_STR
,
214 MC_CMD_SENSOR_PHY1_COOLING_ENUM_STR
,
215 MC_CMD_SENSOR_IN_1V0_ENUM_STR
,
216 MC_CMD_SENSOR_IN_1V2_ENUM_STR
,
217 MC_CMD_SENSOR_IN_1V8_ENUM_STR
,
218 MC_CMD_SENSOR_IN_2V5_ENUM_STR
,
219 MC_CMD_SENSOR_IN_3V3_ENUM_STR
,
220 MC_CMD_SENSOR_IN_12V0_ENUM_STR
,
221 MC_CMD_SENSOR_IN_1V2A_ENUM_STR
,
222 MC_CMD_SENSOR_IN_VREF_ENUM_STR
,
223 MC_CMD_SENSOR_OUT_VAOE_ENUM_STR
,
224 MC_CMD_SENSOR_AOE_TEMP_ENUM_STR
,
225 MC_CMD_SENSOR_PSU_AOE_TEMP_ENUM_STR
,
226 MC_CMD_SENSOR_PSU_TEMP_ENUM_STR
,
227 MC_CMD_SENSOR_FAN_0_ENUM_STR
,
228 MC_CMD_SENSOR_FAN_1_ENUM_STR
,
229 MC_CMD_SENSOR_FAN_2_ENUM_STR
,
230 MC_CMD_SENSOR_FAN_3_ENUM_STR
,
231 MC_CMD_SENSOR_FAN_4_ENUM_STR
,
232 MC_CMD_SENSOR_IN_VAOE_ENUM_STR
,
233 MC_CMD_SENSOR_OUT_IAOE_ENUM_STR
,
234 MC_CMD_SENSOR_IN_IAOE_ENUM_STR
,
235 MC_CMD_SENSOR_NIC_POWER_ENUM_STR
,
236 MC_CMD_SENSOR_IN_0V9_ENUM_STR
,
237 MC_CMD_SENSOR_IN_I0V9_ENUM_STR
,
238 MC_CMD_SENSOR_IN_I1V2_ENUM_STR
,
239 MC_CMD_SENSOR_IN_0V9_ADC_ENUM_STR
,
240 MC_CMD_SENSOR_CONTROLLER_2_TEMP_ENUM_STR
,
241 MC_CMD_SENSOR_VREG_INTERNAL_TEMP_ENUM_STR
,
242 MC_CMD_SENSOR_VREG_0V9_TEMP_ENUM_STR
,
243 MC_CMD_SENSOR_VREG_1V2_TEMP_ENUM_STR
,
244 MC_CMD_SENSOR_CONTROLLER_VPTAT_ENUM_STR
,
245 MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_ENUM_STR
,
246 MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC_ENUM_STR
,
247 MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC_ENUM_STR
,
248 MC_CMD_SENSOR_AMBIENT_TEMP_ENUM_STR
,
249 MC_CMD_SENSOR_AIRFLOW_ENUM_STR
,
250 MC_CMD_SENSOR_VDD08D_VSS08D_CSR_ENUM_STR
,
251 MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC_ENUM_STR
,
252 MC_CMD_SENSOR_HOTPOINT_TEMP_ENUM_STR
,
253 MC_CMD_SENSOR_PHY_POWER_PORT0_ENUM_STR
,
254 MC_CMD_SENSOR_PHY_POWER_PORT1_ENUM_STR
,
255 MC_CMD_SENSOR_MUM_VCC_ENUM_STR
,
256 MC_CMD_SENSOR_IN_0V9_A_ENUM_STR
,
257 MC_CMD_SENSOR_IN_I0V9_A_ENUM_STR
,
258 MC_CMD_SENSOR_VREG_0V9_A_TEMP_ENUM_STR
,
259 MC_CMD_SENSOR_IN_0V9_B_ENUM_STR
,
260 MC_CMD_SENSOR_IN_I0V9_B_ENUM_STR
,
261 MC_CMD_SENSOR_VREG_0V9_B_TEMP_ENUM_STR
,
262 MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_ENUM_STR
,
263 MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC_ENUM_STR
,
264 MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_ENUM_STR
,
265 MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC_ENUM_STR
,
266 MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_ENUM_STR
,
267 MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_ENUM_STR
,
268 MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC_ENUM_STR
,
269 MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC_ENUM_STR
,
270 MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_ENUM_STR
,
271 MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_ENUM_STR
,
272 MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC_ENUM_STR
,
273 MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC_ENUM_STR
,
274 MC_CMD_SENSOR_SODIMM_VOUT_ENUM_STR
,
275 MC_CMD_SENSOR_SODIMM_0_TEMP_ENUM_STR
,
276 MC_CMD_SENSOR_SODIMM_1_TEMP_ENUM_STR
,
277 MC_CMD_SENSOR_PHY0_VCC_ENUM_STR
,
278 MC_CMD_SENSOR_PHY1_VCC_ENUM_STR
,
279 MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP_ENUM_STR
,
280 MC_CMD_SENSOR_BOARD_FRONT_TEMP_ENUM_STR
,
281 MC_CMD_SENSOR_BOARD_BACK_TEMP_ENUM_STR
,
282 MC_CMD_SENSOR_IN_I1V8_ENUM_STR
,
283 MC_CMD_SENSOR_IN_I2V5_ENUM_STR
,
284 MC_CMD_SENSOR_IN_I3V3_ENUM_STR
,
285 MC_CMD_SENSOR_IN_I12V0_ENUM_STR
,
286 MC_CMD_SENSOR_IN_1V3_ENUM_STR
,
287 MC_CMD_SENSOR_IN_I1V3_ENUM_STR
,
290 /* END MKCONFIG GENERATED MonitorStatDescriptionsBlock */
293 efx_mon_stat_description(
295 __in efx_mon_stat_t id
)
297 _NOTE(ARGUNUSED(enp
))
298 EFSYS_ASSERT3U(enp
->en_magic
, ==, EFX_NIC_MAGIC
);
300 EFSYS_ASSERT3U(id
, <, EFX_MON_NSTATS
);
301 return (__mon_stat_description
[id
]);
304 #endif /* EFSYS_OPT_NAMES */
306 /* START MKCONFIG GENERATED MonitorMcdiMappingBlock 173eee0a5599996a */
307 __checkReturn boolean_t
308 efx_mon_mcdi_to_efx_stat(
310 __out efx_mon_stat_t
*statp
)
313 if ((mcdi_index
% (MC_CMD_SENSOR_PAGE0_NEXT
+ 1)) ==
314 MC_CMD_SENSOR_PAGE0_NEXT
) {
315 *statp
= EFX_MON_NSTATS
;
319 switch (mcdi_index
) {
320 case MC_CMD_SENSOR_IN_I0V9
:
321 *statp
= EFX_MON_STAT_IN_I0V9
;
323 case MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC
:
324 *statp
= EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC
;
326 case MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT
:
327 *statp
= EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT
;
329 case MC_CMD_SENSOR_PSU_TEMP
:
330 *statp
= EFX_MON_STAT_PSU_TEMP
;
332 case MC_CMD_SENSOR_FAN_2
:
333 *statp
= EFX_MON_STAT_FAN_2
;
335 case MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC
:
336 *statp
= EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC
;
338 case MC_CMD_SENSOR_BOARD_BACK_TEMP
:
339 *statp
= EFX_MON_STAT_BOARD_BACK_TEMP
;
341 case MC_CMD_SENSOR_IN_1V3
:
342 *statp
= EFX_MON_STAT_IN_1V3
;
344 case MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP
:
345 *statp
= EFX_MON_STAT_CONTROLLER_TDIODE_TEMP
;
347 case MC_CMD_SENSOR_IN_2V5
:
348 *statp
= EFX_MON_STAT_IN_2V5
;
350 case MC_CMD_SENSOR_PHY_COMMON_TEMP
:
351 *statp
= EFX_MON_STAT_PHY_COMMON_TEMP
;
353 case MC_CMD_SENSOR_PHY1_TEMP
:
354 *statp
= EFX_MON_STAT_PHY1_TEMP
;
356 case MC_CMD_SENSOR_VREG_INTERNAL_TEMP
:
357 *statp
= EFX_MON_STAT_VREG_INTERNAL_TEMP
;
359 case MC_CMD_SENSOR_IN_1V0
:
360 *statp
= EFX_MON_STAT_IN_1V0
;
362 case MC_CMD_SENSOR_FAN_1
:
363 *statp
= EFX_MON_STAT_FAN_1
;
365 case MC_CMD_SENSOR_IN_1V2
:
366 *statp
= EFX_MON_STAT_IN_1V2
;
368 case MC_CMD_SENSOR_FAN_3
:
369 *statp
= EFX_MON_STAT_FAN_3
;
371 case MC_CMD_SENSOR_IN_1V2A
:
372 *statp
= EFX_MON_STAT_IN_1V2A
;
374 case MC_CMD_SENSOR_SODIMM_0_TEMP
:
375 *statp
= EFX_MON_STAT_SODIMM_0_TEMP
;
377 case MC_CMD_SENSOR_IN_1V8
:
378 *statp
= EFX_MON_STAT_IN_1V8
;
380 case MC_CMD_SENSOR_IN_VREF
:
381 *statp
= EFX_MON_STAT_IN_VREF
;
383 case MC_CMD_SENSOR_SODIMM_VOUT
:
384 *statp
= EFX_MON_STAT_SODIMM_VOUT
;
386 case MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY
:
387 *statp
= EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY
;
389 case MC_CMD_SENSOR_IN_I1V2
:
390 *statp
= EFX_MON_STAT_IN_I1V2
;
392 case MC_CMD_SENSOR_IN_I1V3
:
393 *statp
= EFX_MON_STAT_IN_I1V3
;
395 case MC_CMD_SENSOR_AIRFLOW
:
396 *statp
= EFX_MON_STAT_AIRFLOW
;
398 case MC_CMD_SENSOR_HOTPOINT_TEMP
:
399 *statp
= EFX_MON_STAT_HOTPOINT_TEMP
;
401 case MC_CMD_SENSOR_VDD08D_VSS08D_CSR
:
402 *statp
= EFX_MON_STAT_VDD08D_VSS08D_CSR
;
404 case MC_CMD_SENSOR_AOE_TEMP
:
405 *statp
= EFX_MON_STAT_AOE_TEMP
;
407 case MC_CMD_SENSOR_IN_I1V8
:
408 *statp
= EFX_MON_STAT_IN_I1V8
;
410 case MC_CMD_SENSOR_IN_I2V5
:
411 *statp
= EFX_MON_STAT_IN_I2V5
;
413 case MC_CMD_SENSOR_PHY1_COOLING
:
414 *statp
= EFX_MON_STAT_PHY1_COOLING
;
416 case MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC
:
417 *statp
= EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC
;
419 case MC_CMD_SENSOR_IN_0V9_ADC
:
420 *statp
= EFX_MON_STAT_IN_0V9_ADC
;
422 case MC_CMD_SENSOR_VREG_0V9_A_TEMP
:
423 *statp
= EFX_MON_STAT_VREG_0V9_A_TEMP
;
425 case MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT
:
426 *statp
= EFX_MON_STAT_CONTROLLER_MASTER_VPTAT
;
428 case MC_CMD_SENSOR_PHY0_VCC
:
429 *statp
= EFX_MON_STAT_PHY0_VCC
;
431 case MC_CMD_SENSOR_PHY0_COOLING
:
432 *statp
= EFX_MON_STAT_PHY0_COOLING
;
434 case MC_CMD_SENSOR_PSU_AOE_TEMP
:
435 *statp
= EFX_MON_STAT_PSU_AOE_TEMP
;
437 case MC_CMD_SENSOR_VREG_0V9_TEMP
:
438 *statp
= EFX_MON_STAT_VREG_0V9_TEMP
;
440 case MC_CMD_SENSOR_IN_I0V9_A
:
441 *statp
= EFX_MON_STAT_IN_I0V9_A
;
443 case MC_CMD_SENSOR_IN_I3V3
:
444 *statp
= EFX_MON_STAT_IN_I3V3
;
446 case MC_CMD_SENSOR_BOARD_FRONT_TEMP
:
447 *statp
= EFX_MON_STAT_BOARD_FRONT_TEMP
;
449 case MC_CMD_SENSOR_OUT_VAOE
:
450 *statp
= EFX_MON_STAT_OUT_VAOE
;
452 case MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC
:
453 *statp
= EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC
;
455 case MC_CMD_SENSOR_IN_I12V0
:
456 *statp
= EFX_MON_STAT_IN_I12V0
;
458 case MC_CMD_SENSOR_PHY_POWER_PORT1
:
459 *statp
= EFX_MON_STAT_PHY_POWER_PORT1
;
461 case MC_CMD_SENSOR_PHY_POWER_PORT0
:
462 *statp
= EFX_MON_STAT_PHY_POWER_PORT0
;
464 case MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC
:
465 *statp
= EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC
;
467 case MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP
:
468 *statp
= EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP
;
470 case MC_CMD_SENSOR_CONTROLLER_TEMP
:
471 *statp
= EFX_MON_STAT_CONTROLLER_TEMP
;
473 case MC_CMD_SENSOR_IN_IAOE
:
474 *statp
= EFX_MON_STAT_IN_IAOE
;
476 case MC_CMD_SENSOR_IN_VAOE
:
477 *statp
= EFX_MON_STAT_IN_VAOE
;
479 case MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC
:
480 *statp
= EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC
;
482 case MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY
:
483 *statp
= EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY
;
485 case MC_CMD_SENSOR_PHY1_VCC
:
486 *statp
= EFX_MON_STAT_PHY1_VCC
;
488 case MC_CMD_SENSOR_CONTROLLER_COOLING
:
489 *statp
= EFX_MON_STAT_CONTROLLER_COOLING
;
491 case MC_CMD_SENSOR_AMBIENT_TEMP
:
492 *statp
= EFX_MON_STAT_AMBIENT_TEMP
;
494 case MC_CMD_SENSOR_IN_3V3
:
495 *statp
= EFX_MON_STAT_IN_3V3
;
497 case MC_CMD_SENSOR_PHY0_TEMP
:
498 *statp
= EFX_MON_STAT_PHY0_TEMP
;
500 case MC_CMD_SENSOR_SODIMM_1_TEMP
:
501 *statp
= EFX_MON_STAT_SODIMM_1_TEMP
;
503 case MC_CMD_SENSOR_MUM_VCC
:
504 *statp
= EFX_MON_STAT_MUM_VCC
;
506 case MC_CMD_SENSOR_VREG_0V9_B_TEMP
:
507 *statp
= EFX_MON_STAT_VREG_0V9_B_TEMP
;
509 case MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP
:
510 *statp
= EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP
;
512 case MC_CMD_SENSOR_FAN_4
:
513 *statp
= EFX_MON_STAT_FAN_4
;
515 case MC_CMD_SENSOR_CONTROLLER_2_TEMP
:
516 *statp
= EFX_MON_STAT_CONTROLLER_2_TEMP
;
518 case MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC
:
519 *statp
= EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC
;
521 case MC_CMD_SENSOR_IN_0V9_A
:
522 *statp
= EFX_MON_STAT_IN_0V9_A
;
524 case MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC
:
525 *statp
= EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC
;
527 case MC_CMD_SENSOR_IN_0V9
:
528 *statp
= EFX_MON_STAT_IN_0V9
;
530 case MC_CMD_SENSOR_IN_I0V9_B
:
531 *statp
= EFX_MON_STAT_IN_I0V9_B
;
533 case MC_CMD_SENSOR_NIC_POWER
:
534 *statp
= EFX_MON_STAT_NIC_POWER
;
536 case MC_CMD_SENSOR_IN_12V0
:
537 *statp
= EFX_MON_STAT_IN_12V0
;
539 case MC_CMD_SENSOR_OUT_IAOE
:
540 *statp
= EFX_MON_STAT_OUT_IAOE
;
542 case MC_CMD_SENSOR_CONTROLLER_VPTAT
:
543 *statp
= EFX_MON_STAT_CONTROLLER_VPTAT
;
545 case MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC
:
546 *statp
= EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC
;
548 case MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP
:
549 *statp
= EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP
;
551 case MC_CMD_SENSOR_FAN_0
:
552 *statp
= EFX_MON_STAT_FAN_0
;
554 case MC_CMD_SENSOR_VREG_1V2_TEMP
:
555 *statp
= EFX_MON_STAT_VREG_1V2_TEMP
;
557 case MC_CMD_SENSOR_IN_0V9_B
:
558 *statp
= EFX_MON_STAT_IN_0V9_B
;
561 *statp
= EFX_MON_NSTATS
;
565 if (*statp
== EFX_MON_NSTATS
)
571 EFSYS_PROBE1(fail1
, boolean_t
, B_TRUE
);
575 /* END MKCONFIG GENERATED MonitorMcdiMappingBlock */
577 /* START MKCONFIG GENERATED MonitorStatisticUnitsBlock 2d447c656cc2d01d */
578 __checkReturn boolean_t
579 efx_mon_get_stat_unit(
580 __in efx_mon_stat_t stat
,
581 __out efx_mon_stat_unit_t
*unitp
)
584 case EFX_MON_STAT_IN_1V0
:
585 case EFX_MON_STAT_IN_1V2
:
586 case EFX_MON_STAT_IN_1V8
:
587 case EFX_MON_STAT_IN_2V5
:
588 case EFX_MON_STAT_IN_3V3
:
589 case EFX_MON_STAT_IN_12V0
:
590 case EFX_MON_STAT_IN_1V2A
:
591 case EFX_MON_STAT_IN_VREF
:
592 case EFX_MON_STAT_OUT_VAOE
:
593 case EFX_MON_STAT_IN_VAOE
:
594 case EFX_MON_STAT_IN_0V9
:
595 case EFX_MON_STAT_IN_0V9_ADC
:
596 case EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC
:
597 case EFX_MON_STAT_VDD08D_VSS08D_CSR
:
598 case EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC
:
599 case EFX_MON_STAT_MUM_VCC
:
600 case EFX_MON_STAT_IN_0V9_A
:
601 case EFX_MON_STAT_IN_0V9_B
:
602 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY
:
603 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC
:
604 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY
:
605 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC
:
606 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT
:
607 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC
:
608 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT
:
609 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC
:
610 case EFX_MON_STAT_SODIMM_VOUT
:
611 case EFX_MON_STAT_PHY0_VCC
:
612 case EFX_MON_STAT_PHY1_VCC
:
613 case EFX_MON_STAT_IN_1V3
:
614 *unitp
= EFX_MON_STAT_UNIT_VOLTAGE_MV
;
616 case EFX_MON_STAT_CONTROLLER_TEMP
:
617 case EFX_MON_STAT_PHY_COMMON_TEMP
:
618 case EFX_MON_STAT_PHY0_TEMP
:
619 case EFX_MON_STAT_PHY1_TEMP
:
620 case EFX_MON_STAT_AOE_TEMP
:
621 case EFX_MON_STAT_PSU_AOE_TEMP
:
622 case EFX_MON_STAT_PSU_TEMP
:
623 case EFX_MON_STAT_CONTROLLER_2_TEMP
:
624 case EFX_MON_STAT_VREG_INTERNAL_TEMP
:
625 case EFX_MON_STAT_VREG_0V9_TEMP
:
626 case EFX_MON_STAT_VREG_1V2_TEMP
:
627 case EFX_MON_STAT_CONTROLLER_VPTAT
:
628 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP
:
629 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC
:
630 case EFX_MON_STAT_AMBIENT_TEMP
:
631 case EFX_MON_STAT_HOTPOINT_TEMP
:
632 case EFX_MON_STAT_VREG_0V9_A_TEMP
:
633 case EFX_MON_STAT_VREG_0V9_B_TEMP
:
634 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP
:
635 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC
:
636 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP
:
637 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC
:
638 case EFX_MON_STAT_SODIMM_0_TEMP
:
639 case EFX_MON_STAT_SODIMM_1_TEMP
:
640 case EFX_MON_STAT_CONTROLLER_TDIODE_TEMP
:
641 case EFX_MON_STAT_BOARD_FRONT_TEMP
:
642 case EFX_MON_STAT_BOARD_BACK_TEMP
:
643 *unitp
= EFX_MON_STAT_UNIT_TEMP_C
;
645 case EFX_MON_STAT_CONTROLLER_COOLING
:
646 case EFX_MON_STAT_PHY0_COOLING
:
647 case EFX_MON_STAT_PHY1_COOLING
:
648 case EFX_MON_STAT_AIRFLOW
:
649 case EFX_MON_STAT_PHY_POWER_PORT0
:
650 case EFX_MON_STAT_PHY_POWER_PORT1
:
651 *unitp
= EFX_MON_STAT_UNIT_BOOL
;
653 case EFX_MON_STAT_NIC_POWER
:
654 *unitp
= EFX_MON_STAT_UNIT_POWER_W
;
656 case EFX_MON_STAT_OUT_IAOE
:
657 case EFX_MON_STAT_IN_IAOE
:
658 case EFX_MON_STAT_IN_I0V9
:
659 case EFX_MON_STAT_IN_I1V2
:
660 case EFX_MON_STAT_IN_I0V9_A
:
661 case EFX_MON_STAT_IN_I0V9_B
:
662 case EFX_MON_STAT_IN_I1V8
:
663 case EFX_MON_STAT_IN_I2V5
:
664 case EFX_MON_STAT_IN_I3V3
:
665 case EFX_MON_STAT_IN_I12V0
:
666 case EFX_MON_STAT_IN_I1V3
:
667 *unitp
= EFX_MON_STAT_UNIT_CURRENT_MA
;
669 case EFX_MON_STAT_FAN_0
:
670 case EFX_MON_STAT_FAN_1
:
671 case EFX_MON_STAT_FAN_2
:
672 case EFX_MON_STAT_FAN_3
:
673 case EFX_MON_STAT_FAN_4
:
674 *unitp
= EFX_MON_STAT_UNIT_RPM
;
677 *unitp
= EFX_MON_STAT_UNIT_UNKNOWN
;
681 if (*unitp
== EFX_MON_STAT_UNIT_UNKNOWN
)
687 EFSYS_PROBE1(fail1
, boolean_t
, B_TRUE
);
691 /* END MKCONFIG GENERATED MonitorStatisticUnitsBlock */
693 /* START MKCONFIG GENERATED MonitorStatisticPortsBlock 1719b751d842534f */
694 __checkReturn boolean_t
695 efx_mon_get_stat_portmap(
696 __in efx_mon_stat_t stat
,
697 __out efx_mon_stat_portmask_t
*maskp
)
701 case EFX_MON_STAT_PHY1_TEMP
:
702 case EFX_MON_STAT_PHY1_COOLING
:
703 case EFX_MON_STAT_PHY_POWER_PORT1
:
704 *maskp
= EFX_MON_STAT_PORTMAP_PORT1
;
706 case EFX_MON_STAT_CONTROLLER_TEMP
:
707 case EFX_MON_STAT_PHY_COMMON_TEMP
:
708 case EFX_MON_STAT_CONTROLLER_COOLING
:
709 case EFX_MON_STAT_IN_1V0
:
710 case EFX_MON_STAT_IN_1V2
:
711 case EFX_MON_STAT_IN_1V8
:
712 case EFX_MON_STAT_IN_2V5
:
713 case EFX_MON_STAT_IN_3V3
:
714 case EFX_MON_STAT_IN_12V0
:
715 case EFX_MON_STAT_IN_1V2A
:
716 case EFX_MON_STAT_IN_VREF
:
717 case EFX_MON_STAT_OUT_VAOE
:
718 case EFX_MON_STAT_AOE_TEMP
:
719 case EFX_MON_STAT_PSU_AOE_TEMP
:
720 case EFX_MON_STAT_PSU_TEMP
:
721 case EFX_MON_STAT_FAN_0
:
722 case EFX_MON_STAT_FAN_1
:
723 case EFX_MON_STAT_FAN_2
:
724 case EFX_MON_STAT_FAN_3
:
725 case EFX_MON_STAT_FAN_4
:
726 case EFX_MON_STAT_IN_VAOE
:
727 case EFX_MON_STAT_OUT_IAOE
:
728 case EFX_MON_STAT_IN_IAOE
:
729 case EFX_MON_STAT_NIC_POWER
:
730 case EFX_MON_STAT_IN_0V9
:
731 case EFX_MON_STAT_IN_I0V9
:
732 case EFX_MON_STAT_IN_I1V2
:
733 case EFX_MON_STAT_IN_0V9_ADC
:
734 case EFX_MON_STAT_CONTROLLER_2_TEMP
:
735 case EFX_MON_STAT_VREG_INTERNAL_TEMP
:
736 case EFX_MON_STAT_VREG_0V9_TEMP
:
737 case EFX_MON_STAT_VREG_1V2_TEMP
:
738 case EFX_MON_STAT_CONTROLLER_VPTAT
:
739 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP
:
740 case EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC
:
741 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC
:
742 case EFX_MON_STAT_AMBIENT_TEMP
:
743 case EFX_MON_STAT_AIRFLOW
:
744 case EFX_MON_STAT_VDD08D_VSS08D_CSR
:
745 case EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC
:
746 case EFX_MON_STAT_HOTPOINT_TEMP
:
747 case EFX_MON_STAT_MUM_VCC
:
748 case EFX_MON_STAT_IN_0V9_A
:
749 case EFX_MON_STAT_IN_I0V9_A
:
750 case EFX_MON_STAT_VREG_0V9_A_TEMP
:
751 case EFX_MON_STAT_IN_0V9_B
:
752 case EFX_MON_STAT_IN_I0V9_B
:
753 case EFX_MON_STAT_VREG_0V9_B_TEMP
:
754 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY
:
755 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC
:
756 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY
:
757 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC
:
758 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT
:
759 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP
:
760 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC
:
761 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC
:
762 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT
:
763 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP
:
764 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC
:
765 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC
:
766 case EFX_MON_STAT_SODIMM_VOUT
:
767 case EFX_MON_STAT_SODIMM_0_TEMP
:
768 case EFX_MON_STAT_SODIMM_1_TEMP
:
769 case EFX_MON_STAT_PHY0_VCC
:
770 case EFX_MON_STAT_PHY1_VCC
:
771 case EFX_MON_STAT_CONTROLLER_TDIODE_TEMP
:
772 case EFX_MON_STAT_BOARD_FRONT_TEMP
:
773 case EFX_MON_STAT_BOARD_BACK_TEMP
:
774 case EFX_MON_STAT_IN_I1V8
:
775 case EFX_MON_STAT_IN_I2V5
:
776 case EFX_MON_STAT_IN_I3V3
:
777 case EFX_MON_STAT_IN_I12V0
:
778 case EFX_MON_STAT_IN_1V3
:
779 case EFX_MON_STAT_IN_I1V3
:
780 *maskp
= EFX_MON_STAT_PORTMAP_ALL
;
782 case EFX_MON_STAT_PHY0_TEMP
:
783 case EFX_MON_STAT_PHY0_COOLING
:
784 case EFX_MON_STAT_PHY_POWER_PORT0
:
785 *maskp
= EFX_MON_STAT_PORTMAP_PORT0
;
788 *maskp
= EFX_MON_STAT_PORTMAP_UNKNOWN
;
792 if (*maskp
== EFX_MON_STAT_PORTMAP_UNKNOWN
)
798 EFSYS_PROBE1(fail1
, boolean_t
, B_TRUE
);
802 /* END MKCONFIG GENERATED MonitorStatisticPortsBlock */
804 __checkReturn efx_rc_t
805 efx_mon_stats_update(
807 __in efsys_mem_t
*esmp
,
808 __inout_ecount(EFX_MON_NSTATS
) efx_mon_stat_value_t
*values
)
810 efx_mon_t
*emp
= &(enp
->en_mon
);
811 const efx_mon_ops_t
*emop
= emp
->em_emop
;
813 EFSYS_ASSERT3U(enp
->en_magic
, ==, EFX_NIC_MAGIC
);
814 EFSYS_ASSERT3U(enp
->en_mod_flags
, &, EFX_MOD_MON
);
816 return (emop
->emo_stats_update(enp
, esmp
, values
));
819 __checkReturn efx_rc_t
820 efx_mon_limits_update(
822 __inout_ecount(EFX_MON_NSTATS
) efx_mon_stat_limits_t
*values
)
824 efx_mon_t
*emp
= &(enp
->en_mon
);
825 const efx_mon_ops_t
*emop
= emp
->em_emop
;
827 EFSYS_ASSERT3U(enp
->en_magic
, ==, EFX_NIC_MAGIC
);
828 EFSYS_ASSERT3U(enp
->en_mod_flags
, &, EFX_MOD_MON
);
830 return (emop
->emo_limits_update(enp
, values
));
833 #endif /* EFSYS_OPT_MON_STATS */
839 efx_mon_t
*emp
= &(enp
->en_mon
);
841 EFSYS_ASSERT3U(enp
->en_magic
, ==, EFX_NIC_MAGIC
);
842 EFSYS_ASSERT3U(enp
->en_mod_flags
, &, EFX_MOD_PROBE
);
843 EFSYS_ASSERT3U(enp
->en_mod_flags
, &, EFX_MOD_MON
);
847 emp
->em_type
= EFX_MON_INVALID
;
849 enp
->en_mod_flags
&= ~EFX_MOD_MON
;