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 #endif /* EFSYS_OPT_MON_STATS */
47 __checkReturn efx_rc_t
51 efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
52 efx_mon_t *emp = &(enp->en_mon);
53 const efx_mon_ops_t *emop;
56 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
57 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE);
59 if (enp->en_mod_flags & EFX_MOD_MON) {
64 enp->en_mod_flags |= EFX_MOD_MON;
66 emp->em_type = encp->enc_mon_type;
68 EFSYS_ASSERT(encp->enc_mon_type != EFX_MON_INVALID);
69 switch (emp->em_type) {
70 #if EFSYS_OPT_MON_MCDI
74 emop = &__efx_mon_mcdi_ops;
88 emp->em_type = EFX_MON_INVALID;
90 enp->en_mod_flags &= ~EFX_MOD_MON;
93 EFSYS_PROBE1(fail1, efx_rc_t, rc);
98 #if EFSYS_OPT_MON_STATS
102 /* START MKCONFIG GENERATED MonitorStatNamesBlock 277c17eda1a6d1a4 */
103 static const char * const __mon_stat_name[] = {
106 "controller_cooling",
137 "vreg_internal_temp",
141 "controller_internal_temp",
142 "controller_vptat_extadc",
143 "controller_internal_temp_extadc",
147 "vdd08d_vss08d_csr_extadc",
158 "ccom_avreg_1v2_supply",
159 "ccom_avreg_1v2_supply_extadc",
160 "ccom_avreg_1v8_supply",
161 "ccom_avreg_1v8_supply_extadc",
162 "controller_master_vptat",
163 "controller_master_internal_temp",
164 "controller_master_vptat_extadc",
165 "controller_master_internal_temp_extadc",
166 "controller_slave_vptat",
167 "controller_slave_internal_temp",
168 "controller_slave_vptat_extadc",
169 "controller_slave_internal_temp_extadc",
175 "controller_tdiode_temp",
186 /* END MKCONFIG GENERATED MonitorStatNamesBlock */
188 /* START MKCONFIG GENERATED MonitorMcdiMappingBlock 362875db87a4e7da */
189 __checkReturn boolean_t
190 efx_mon_mcdi_to_efx_stat(
192 __out efx_mon_stat_t *statp)
195 if ((mcdi_index % (MC_CMD_SENSOR_PAGE0_NEXT + 1)) ==
196 MC_CMD_SENSOR_PAGE0_NEXT) {
197 *statp = EFX_MON_NSTATS;
201 switch (mcdi_index) {
202 case MC_CMD_SENSOR_IN_I0V9:
203 *statp = EFX_MON_STAT_IN_I0V9;
205 case MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC:
206 *statp = EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC;
208 case MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT:
209 *statp = EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT;
211 case MC_CMD_SENSOR_PSU_TEMP:
212 *statp = EFX_MON_STAT_PSU_TEMP;
214 case MC_CMD_SENSOR_FAN_2:
215 *statp = EFX_MON_STAT_FAN_2;
217 case MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC:
218 *statp = EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC;
220 case MC_CMD_SENSOR_BOARD_BACK_TEMP:
221 *statp = EFX_MON_STAT_BOARD_BACK_TEMP;
223 case MC_CMD_SENSOR_IN_1V3:
224 *statp = EFX_MON_STAT_IN_1V3;
226 case MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP:
227 *statp = EFX_MON_STAT_CONTROLLER_TDIODE_TEMP;
229 case MC_CMD_SENSOR_IN_2V5:
230 *statp = EFX_MON_STAT_IN_2V5;
232 case MC_CMD_SENSOR_PHY_COMMON_TEMP:
233 *statp = EFX_MON_STAT_PHY_COMMON_TEMP;
235 case MC_CMD_SENSOR_PHY1_TEMP:
236 *statp = EFX_MON_STAT_PHY1_TEMP;
238 case MC_CMD_SENSOR_VREG_INTERNAL_TEMP:
239 *statp = EFX_MON_STAT_VREG_INTERNAL_TEMP;
241 case MC_CMD_SENSOR_IN_1V0:
242 *statp = EFX_MON_STAT_IN_1V0;
244 case MC_CMD_SENSOR_FAN_1:
245 *statp = EFX_MON_STAT_FAN_1;
247 case MC_CMD_SENSOR_IN_1V2:
248 *statp = EFX_MON_STAT_IN_1V2;
250 case MC_CMD_SENSOR_FAN_3:
251 *statp = EFX_MON_STAT_FAN_3;
253 case MC_CMD_SENSOR_IN_1V2A:
254 *statp = EFX_MON_STAT_IN_1V2A;
256 case MC_CMD_SENSOR_SODIMM_0_TEMP:
257 *statp = EFX_MON_STAT_SODIMM_0_TEMP;
259 case MC_CMD_SENSOR_IN_1V8:
260 *statp = EFX_MON_STAT_IN_1V8;
262 case MC_CMD_SENSOR_IN_VREF:
263 *statp = EFX_MON_STAT_IN_VREF;
265 case MC_CMD_SENSOR_SODIMM_VOUT:
266 *statp = EFX_MON_STAT_SODIMM_VOUT;
268 case MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY:
269 *statp = EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY;
271 case MC_CMD_SENSOR_IN_I1V2:
272 *statp = EFX_MON_STAT_IN_I1V2;
274 case MC_CMD_SENSOR_IN_I1V3:
275 *statp = EFX_MON_STAT_IN_I1V3;
277 case MC_CMD_SENSOR_AIRFLOW:
278 *statp = EFX_MON_STAT_AIRFLOW;
280 case MC_CMD_SENSOR_HOTPOINT_TEMP:
281 *statp = EFX_MON_STAT_HOTPOINT_TEMP;
283 case MC_CMD_SENSOR_VDD08D_VSS08D_CSR:
284 *statp = EFX_MON_STAT_VDD08D_VSS08D_CSR;
286 case MC_CMD_SENSOR_AOE_TEMP:
287 *statp = EFX_MON_STAT_AOE_TEMP;
289 case MC_CMD_SENSOR_IN_I1V8:
290 *statp = EFX_MON_STAT_IN_I1V8;
292 case MC_CMD_SENSOR_IN_I2V5:
293 *statp = EFX_MON_STAT_IN_I2V5;
295 case MC_CMD_SENSOR_PHY1_COOLING:
296 *statp = EFX_MON_STAT_PHY1_COOLING;
298 case MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC:
299 *statp = EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC;
301 case MC_CMD_SENSOR_IN_0V9_ADC:
302 *statp = EFX_MON_STAT_IN_0V9_ADC;
304 case MC_CMD_SENSOR_VREG_0V9_A_TEMP:
305 *statp = EFX_MON_STAT_VREG_0V9_A_TEMP;
307 case MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT:
308 *statp = EFX_MON_STAT_CONTROLLER_MASTER_VPTAT;
310 case MC_CMD_SENSOR_PHY0_VCC:
311 *statp = EFX_MON_STAT_PHY0_VCC;
313 case MC_CMD_SENSOR_PHY0_COOLING:
314 *statp = EFX_MON_STAT_PHY0_COOLING;
316 case MC_CMD_SENSOR_PSU_AOE_TEMP:
317 *statp = EFX_MON_STAT_PSU_AOE_TEMP;
319 case MC_CMD_SENSOR_VREG_0V9_TEMP:
320 *statp = EFX_MON_STAT_VREG_0V9_TEMP;
322 case MC_CMD_SENSOR_IN_I0V9_A:
323 *statp = EFX_MON_STAT_IN_I0V9_A;
325 case MC_CMD_SENSOR_IN_I3V3:
326 *statp = EFX_MON_STAT_IN_I3V3;
328 case MC_CMD_SENSOR_BOARD_FRONT_TEMP:
329 *statp = EFX_MON_STAT_BOARD_FRONT_TEMP;
331 case MC_CMD_SENSOR_OUT_VAOE:
332 *statp = EFX_MON_STAT_OUT_VAOE;
334 case MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC:
335 *statp = EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC;
337 case MC_CMD_SENSOR_IN_I12V0:
338 *statp = EFX_MON_STAT_IN_I12V0;
340 case MC_CMD_SENSOR_PHY_POWER_PORT1:
341 *statp = EFX_MON_STAT_PHY_POWER_PORT1;
343 case MC_CMD_SENSOR_PHY_POWER_PORT0:
344 *statp = EFX_MON_STAT_PHY_POWER_PORT0;
346 case MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC:
347 *statp = EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC;
349 case MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP:
350 *statp = EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP;
352 case MC_CMD_SENSOR_CONTROLLER_TEMP:
353 *statp = EFX_MON_STAT_CONTROLLER_TEMP;
355 case MC_CMD_SENSOR_IN_IAOE:
356 *statp = EFX_MON_STAT_IN_IAOE;
358 case MC_CMD_SENSOR_IN_VAOE:
359 *statp = EFX_MON_STAT_IN_VAOE;
361 case MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC:
362 *statp = EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC;
364 case MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY:
365 *statp = EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY;
367 case MC_CMD_SENSOR_PHY1_VCC:
368 *statp = EFX_MON_STAT_PHY1_VCC;
370 case MC_CMD_SENSOR_CONTROLLER_COOLING:
371 *statp = EFX_MON_STAT_CONTROLLER_COOLING;
373 case MC_CMD_SENSOR_AMBIENT_TEMP:
374 *statp = EFX_MON_STAT_AMBIENT_TEMP;
376 case MC_CMD_SENSOR_IN_3V3:
377 *statp = EFX_MON_STAT_IN_3V3;
379 case MC_CMD_SENSOR_PHY0_TEMP:
380 *statp = EFX_MON_STAT_PHY0_TEMP;
382 case MC_CMD_SENSOR_SODIMM_1_TEMP:
383 *statp = EFX_MON_STAT_SODIMM_1_TEMP;
385 case MC_CMD_SENSOR_MUM_VCC:
386 *statp = EFX_MON_STAT_MUM_VCC;
388 case MC_CMD_SENSOR_VREG_0V9_B_TEMP:
389 *statp = EFX_MON_STAT_VREG_0V9_B_TEMP;
391 case MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP:
392 *statp = EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP;
394 case MC_CMD_SENSOR_FAN_4:
395 *statp = EFX_MON_STAT_FAN_4;
397 case MC_CMD_SENSOR_CONTROLLER_2_TEMP:
398 *statp = EFX_MON_STAT_CONTROLLER_2_TEMP;
400 case MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC:
401 *statp = EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC;
403 case MC_CMD_SENSOR_IN_0V9_A:
404 *statp = EFX_MON_STAT_IN_0V9_A;
406 case MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC:
407 *statp = EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC;
409 case MC_CMD_SENSOR_IN_0V9:
410 *statp = EFX_MON_STAT_IN_0V9;
412 case MC_CMD_SENSOR_IN_I0V9_B:
413 *statp = EFX_MON_STAT_IN_I0V9_B;
415 case MC_CMD_SENSOR_NIC_POWER:
416 *statp = EFX_MON_STAT_NIC_POWER;
418 case MC_CMD_SENSOR_IN_12V0:
419 *statp = EFX_MON_STAT_IN_12V0;
421 case MC_CMD_SENSOR_OUT_IAOE:
422 *statp = EFX_MON_STAT_OUT_IAOE;
424 case MC_CMD_SENSOR_CONTROLLER_VPTAT:
425 *statp = EFX_MON_STAT_CONTROLLER_VPTAT;
427 case MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC:
428 *statp = EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC;
430 case MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP:
431 *statp = EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP;
433 case MC_CMD_SENSOR_FAN_0:
434 *statp = EFX_MON_STAT_FAN_0;
436 case MC_CMD_SENSOR_VREG_1V2_TEMP:
437 *statp = EFX_MON_STAT_VREG_1V2_TEMP;
439 case MC_CMD_SENSOR_IN_0V9_B:
440 *statp = EFX_MON_STAT_IN_0V9_B;
443 *statp = EFX_MON_NSTATS;
447 if (*statp == EFX_MON_NSTATS)
453 EFSYS_PROBE1(fail1, boolean_t, B_TRUE);
457 /* END MKCONFIG GENERATED MonitorMcdiMappingBlock */
459 /* START MKCONFIG GENERATED MonitorStatisticUnitsBlock 2d447c656cc2d01d */
460 __checkReturn boolean_t
461 efx_mon_get_stat_unit(
462 __in efx_mon_stat_t stat,
463 __out efx_mon_stat_unit_t *unitp)
466 case EFX_MON_STAT_IN_1V0:
467 case EFX_MON_STAT_IN_1V2:
468 case EFX_MON_STAT_IN_1V8:
469 case EFX_MON_STAT_IN_2V5:
470 case EFX_MON_STAT_IN_3V3:
471 case EFX_MON_STAT_IN_12V0:
472 case EFX_MON_STAT_IN_1V2A:
473 case EFX_MON_STAT_IN_VREF:
474 case EFX_MON_STAT_OUT_VAOE:
475 case EFX_MON_STAT_IN_VAOE:
476 case EFX_MON_STAT_IN_0V9:
477 case EFX_MON_STAT_IN_0V9_ADC:
478 case EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC:
479 case EFX_MON_STAT_VDD08D_VSS08D_CSR:
480 case EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC:
481 case EFX_MON_STAT_MUM_VCC:
482 case EFX_MON_STAT_IN_0V9_A:
483 case EFX_MON_STAT_IN_0V9_B:
484 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY:
485 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC:
486 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY:
487 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC:
488 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT:
489 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC:
490 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT:
491 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC:
492 case EFX_MON_STAT_SODIMM_VOUT:
493 case EFX_MON_STAT_PHY0_VCC:
494 case EFX_MON_STAT_PHY1_VCC:
495 case EFX_MON_STAT_IN_1V3:
496 *unitp = EFX_MON_STAT_UNIT_VOLTAGE_MV;
498 case EFX_MON_STAT_CONTROLLER_TEMP:
499 case EFX_MON_STAT_PHY_COMMON_TEMP:
500 case EFX_MON_STAT_PHY0_TEMP:
501 case EFX_MON_STAT_PHY1_TEMP:
502 case EFX_MON_STAT_AOE_TEMP:
503 case EFX_MON_STAT_PSU_AOE_TEMP:
504 case EFX_MON_STAT_PSU_TEMP:
505 case EFX_MON_STAT_CONTROLLER_2_TEMP:
506 case EFX_MON_STAT_VREG_INTERNAL_TEMP:
507 case EFX_MON_STAT_VREG_0V9_TEMP:
508 case EFX_MON_STAT_VREG_1V2_TEMP:
509 case EFX_MON_STAT_CONTROLLER_VPTAT:
510 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP:
511 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC:
512 case EFX_MON_STAT_AMBIENT_TEMP:
513 case EFX_MON_STAT_HOTPOINT_TEMP:
514 case EFX_MON_STAT_VREG_0V9_A_TEMP:
515 case EFX_MON_STAT_VREG_0V9_B_TEMP:
516 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP:
517 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC:
518 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP:
519 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC:
520 case EFX_MON_STAT_SODIMM_0_TEMP:
521 case EFX_MON_STAT_SODIMM_1_TEMP:
522 case EFX_MON_STAT_CONTROLLER_TDIODE_TEMP:
523 case EFX_MON_STAT_BOARD_FRONT_TEMP:
524 case EFX_MON_STAT_BOARD_BACK_TEMP:
525 *unitp = EFX_MON_STAT_UNIT_TEMP_C;
527 case EFX_MON_STAT_CONTROLLER_COOLING:
528 case EFX_MON_STAT_PHY0_COOLING:
529 case EFX_MON_STAT_PHY1_COOLING:
530 case EFX_MON_STAT_AIRFLOW:
531 case EFX_MON_STAT_PHY_POWER_PORT0:
532 case EFX_MON_STAT_PHY_POWER_PORT1:
533 *unitp = EFX_MON_STAT_UNIT_BOOL;
535 case EFX_MON_STAT_NIC_POWER:
536 *unitp = EFX_MON_STAT_UNIT_POWER_W;
538 case EFX_MON_STAT_OUT_IAOE:
539 case EFX_MON_STAT_IN_IAOE:
540 case EFX_MON_STAT_IN_I0V9:
541 case EFX_MON_STAT_IN_I1V2:
542 case EFX_MON_STAT_IN_I0V9_A:
543 case EFX_MON_STAT_IN_I0V9_B:
544 case EFX_MON_STAT_IN_I1V8:
545 case EFX_MON_STAT_IN_I2V5:
546 case EFX_MON_STAT_IN_I3V3:
547 case EFX_MON_STAT_IN_I12V0:
548 case EFX_MON_STAT_IN_I1V3:
549 *unitp = EFX_MON_STAT_UNIT_CURRENT_MA;
551 case EFX_MON_STAT_FAN_0:
552 case EFX_MON_STAT_FAN_1:
553 case EFX_MON_STAT_FAN_2:
554 case EFX_MON_STAT_FAN_3:
555 case EFX_MON_STAT_FAN_4:
556 *unitp = EFX_MON_STAT_UNIT_RPM;
559 *unitp = EFX_MON_STAT_UNIT_UNKNOWN;
563 if (*unitp == EFX_MON_STAT_UNIT_UNKNOWN)
569 EFSYS_PROBE1(fail1, boolean_t, B_TRUE);
573 /* END MKCONFIG GENERATED MonitorStatisticUnitsBlock */
575 /* START MKCONFIG GENERATED MonitorStatisticPortsBlock 1719b751d842534f */
576 __checkReturn boolean_t
577 efx_mon_get_stat_portmap(
578 __in efx_mon_stat_t stat,
579 __out efx_mon_stat_portmask_t *maskp)
583 case EFX_MON_STAT_PHY1_TEMP:
584 case EFX_MON_STAT_PHY1_COOLING:
585 case EFX_MON_STAT_PHY_POWER_PORT1:
586 *maskp = EFX_MON_STAT_PORTMAP_PORT1;
588 case EFX_MON_STAT_CONTROLLER_TEMP:
589 case EFX_MON_STAT_PHY_COMMON_TEMP:
590 case EFX_MON_STAT_CONTROLLER_COOLING:
591 case EFX_MON_STAT_IN_1V0:
592 case EFX_MON_STAT_IN_1V2:
593 case EFX_MON_STAT_IN_1V8:
594 case EFX_MON_STAT_IN_2V5:
595 case EFX_MON_STAT_IN_3V3:
596 case EFX_MON_STAT_IN_12V0:
597 case EFX_MON_STAT_IN_1V2A:
598 case EFX_MON_STAT_IN_VREF:
599 case EFX_MON_STAT_OUT_VAOE:
600 case EFX_MON_STAT_AOE_TEMP:
601 case EFX_MON_STAT_PSU_AOE_TEMP:
602 case EFX_MON_STAT_PSU_TEMP:
603 case EFX_MON_STAT_FAN_0:
604 case EFX_MON_STAT_FAN_1:
605 case EFX_MON_STAT_FAN_2:
606 case EFX_MON_STAT_FAN_3:
607 case EFX_MON_STAT_FAN_4:
608 case EFX_MON_STAT_IN_VAOE:
609 case EFX_MON_STAT_OUT_IAOE:
610 case EFX_MON_STAT_IN_IAOE:
611 case EFX_MON_STAT_NIC_POWER:
612 case EFX_MON_STAT_IN_0V9:
613 case EFX_MON_STAT_IN_I0V9:
614 case EFX_MON_STAT_IN_I1V2:
615 case EFX_MON_STAT_IN_0V9_ADC:
616 case EFX_MON_STAT_CONTROLLER_2_TEMP:
617 case EFX_MON_STAT_VREG_INTERNAL_TEMP:
618 case EFX_MON_STAT_VREG_0V9_TEMP:
619 case EFX_MON_STAT_VREG_1V2_TEMP:
620 case EFX_MON_STAT_CONTROLLER_VPTAT:
621 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP:
622 case EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC:
623 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC:
624 case EFX_MON_STAT_AMBIENT_TEMP:
625 case EFX_MON_STAT_AIRFLOW:
626 case EFX_MON_STAT_VDD08D_VSS08D_CSR:
627 case EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC:
628 case EFX_MON_STAT_HOTPOINT_TEMP:
629 case EFX_MON_STAT_MUM_VCC:
630 case EFX_MON_STAT_IN_0V9_A:
631 case EFX_MON_STAT_IN_I0V9_A:
632 case EFX_MON_STAT_VREG_0V9_A_TEMP:
633 case EFX_MON_STAT_IN_0V9_B:
634 case EFX_MON_STAT_IN_I0V9_B:
635 case EFX_MON_STAT_VREG_0V9_B_TEMP:
636 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY:
637 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC:
638 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY:
639 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC:
640 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT:
641 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP:
642 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC:
643 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC:
644 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT:
645 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP:
646 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC:
647 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC:
648 case EFX_MON_STAT_SODIMM_VOUT:
649 case EFX_MON_STAT_SODIMM_0_TEMP:
650 case EFX_MON_STAT_SODIMM_1_TEMP:
651 case EFX_MON_STAT_PHY0_VCC:
652 case EFX_MON_STAT_PHY1_VCC:
653 case EFX_MON_STAT_CONTROLLER_TDIODE_TEMP:
654 case EFX_MON_STAT_BOARD_FRONT_TEMP:
655 case EFX_MON_STAT_BOARD_BACK_TEMP:
656 case EFX_MON_STAT_IN_I1V8:
657 case EFX_MON_STAT_IN_I2V5:
658 case EFX_MON_STAT_IN_I3V3:
659 case EFX_MON_STAT_IN_I12V0:
660 case EFX_MON_STAT_IN_1V3:
661 case EFX_MON_STAT_IN_I1V3:
662 *maskp = EFX_MON_STAT_PORTMAP_ALL;
664 case EFX_MON_STAT_PHY0_TEMP:
665 case EFX_MON_STAT_PHY0_COOLING:
666 case EFX_MON_STAT_PHY_POWER_PORT0:
667 *maskp = EFX_MON_STAT_PORTMAP_PORT0;
670 *maskp = EFX_MON_STAT_PORTMAP_UNKNOWN;
674 if (*maskp == EFX_MON_STAT_PORTMAP_UNKNOWN)
680 EFSYS_PROBE1(fail1, boolean_t, B_TRUE);
684 /* END MKCONFIG GENERATED MonitorStatisticPortsBlock */
689 __in efx_mon_stat_t id)
691 _NOTE(ARGUNUSED(enp))
692 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
694 EFSYS_ASSERT3U(id, <, EFX_MON_NSTATS);
695 return (__mon_stat_name[id]);
698 #endif /* EFSYS_OPT_NAMES */
700 __checkReturn efx_rc_t
701 efx_mon_stats_update(
703 __in efsys_mem_t *esmp,
704 __inout_ecount(EFX_MON_NSTATS) efx_mon_stat_value_t *values)
706 efx_mon_t *emp = &(enp->en_mon);
707 const efx_mon_ops_t *emop = emp->em_emop;
709 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
710 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_MON);
712 return (emop->emo_stats_update(enp, esmp, values));
715 #endif /* EFSYS_OPT_MON_STATS */
721 efx_mon_t *emp = &(enp->en_mon);
723 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
724 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE);
725 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_MON);
729 emp->em_type = EFX_MON_INVALID;
731 enp->en_mod_flags &= ~EFX_MOD_MON;