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 */
191 __in efx_mon_stat_t id)
193 _NOTE(ARGUNUSED(enp))
194 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
196 EFSYS_ASSERT3U(id, <, EFX_MON_NSTATS);
197 return (__mon_stat_name[id]);
200 typedef struct _stat_description_t {
203 } stat_description_t;
205 /* START MKCONFIG GENERATED MonitorStatDescriptionsBlock f072138f16d2e1f8 */
206 static const char *__mon_stat_description[] = {
207 MC_CMD_SENSOR_CONTROLLER_TEMP_ENUM_STR,
208 MC_CMD_SENSOR_PHY_COMMON_TEMP_ENUM_STR,
209 MC_CMD_SENSOR_CONTROLLER_COOLING_ENUM_STR,
210 MC_CMD_SENSOR_PHY0_TEMP_ENUM_STR,
211 MC_CMD_SENSOR_PHY0_COOLING_ENUM_STR,
212 MC_CMD_SENSOR_PHY1_TEMP_ENUM_STR,
213 MC_CMD_SENSOR_PHY1_COOLING_ENUM_STR,
214 MC_CMD_SENSOR_IN_1V0_ENUM_STR,
215 MC_CMD_SENSOR_IN_1V2_ENUM_STR,
216 MC_CMD_SENSOR_IN_1V8_ENUM_STR,
217 MC_CMD_SENSOR_IN_2V5_ENUM_STR,
218 MC_CMD_SENSOR_IN_3V3_ENUM_STR,
219 MC_CMD_SENSOR_IN_12V0_ENUM_STR,
220 MC_CMD_SENSOR_IN_1V2A_ENUM_STR,
221 MC_CMD_SENSOR_IN_VREF_ENUM_STR,
222 MC_CMD_SENSOR_OUT_VAOE_ENUM_STR,
223 MC_CMD_SENSOR_AOE_TEMP_ENUM_STR,
224 MC_CMD_SENSOR_PSU_AOE_TEMP_ENUM_STR,
225 MC_CMD_SENSOR_PSU_TEMP_ENUM_STR,
226 MC_CMD_SENSOR_FAN_0_ENUM_STR,
227 MC_CMD_SENSOR_FAN_1_ENUM_STR,
228 MC_CMD_SENSOR_FAN_2_ENUM_STR,
229 MC_CMD_SENSOR_FAN_3_ENUM_STR,
230 MC_CMD_SENSOR_FAN_4_ENUM_STR,
231 MC_CMD_SENSOR_IN_VAOE_ENUM_STR,
232 MC_CMD_SENSOR_OUT_IAOE_ENUM_STR,
233 MC_CMD_SENSOR_IN_IAOE_ENUM_STR,
234 MC_CMD_SENSOR_NIC_POWER_ENUM_STR,
235 MC_CMD_SENSOR_IN_0V9_ENUM_STR,
236 MC_CMD_SENSOR_IN_I0V9_ENUM_STR,
237 MC_CMD_SENSOR_IN_I1V2_ENUM_STR,
238 MC_CMD_SENSOR_IN_0V9_ADC_ENUM_STR,
239 MC_CMD_SENSOR_CONTROLLER_2_TEMP_ENUM_STR,
240 MC_CMD_SENSOR_VREG_INTERNAL_TEMP_ENUM_STR,
241 MC_CMD_SENSOR_VREG_0V9_TEMP_ENUM_STR,
242 MC_CMD_SENSOR_VREG_1V2_TEMP_ENUM_STR,
243 MC_CMD_SENSOR_CONTROLLER_VPTAT_ENUM_STR,
244 MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_ENUM_STR,
245 MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC_ENUM_STR,
246 MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC_ENUM_STR,
247 MC_CMD_SENSOR_AMBIENT_TEMP_ENUM_STR,
248 MC_CMD_SENSOR_AIRFLOW_ENUM_STR,
249 MC_CMD_SENSOR_VDD08D_VSS08D_CSR_ENUM_STR,
250 MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC_ENUM_STR,
251 MC_CMD_SENSOR_HOTPOINT_TEMP_ENUM_STR,
252 MC_CMD_SENSOR_PHY_POWER_PORT0_ENUM_STR,
253 MC_CMD_SENSOR_PHY_POWER_PORT1_ENUM_STR,
254 MC_CMD_SENSOR_MUM_VCC_ENUM_STR,
255 MC_CMD_SENSOR_IN_0V9_A_ENUM_STR,
256 MC_CMD_SENSOR_IN_I0V9_A_ENUM_STR,
257 MC_CMD_SENSOR_VREG_0V9_A_TEMP_ENUM_STR,
258 MC_CMD_SENSOR_IN_0V9_B_ENUM_STR,
259 MC_CMD_SENSOR_IN_I0V9_B_ENUM_STR,
260 MC_CMD_SENSOR_VREG_0V9_B_TEMP_ENUM_STR,
261 MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_ENUM_STR,
262 MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC_ENUM_STR,
263 MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_ENUM_STR,
264 MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC_ENUM_STR,
265 MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_ENUM_STR,
266 MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_ENUM_STR,
267 MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC_ENUM_STR,
268 MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC_ENUM_STR,
269 MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_ENUM_STR,
270 MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_ENUM_STR,
271 MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC_ENUM_STR,
272 MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC_ENUM_STR,
273 MC_CMD_SENSOR_SODIMM_VOUT_ENUM_STR,
274 MC_CMD_SENSOR_SODIMM_0_TEMP_ENUM_STR,
275 MC_CMD_SENSOR_SODIMM_1_TEMP_ENUM_STR,
276 MC_CMD_SENSOR_PHY0_VCC_ENUM_STR,
277 MC_CMD_SENSOR_PHY1_VCC_ENUM_STR,
278 MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP_ENUM_STR,
279 MC_CMD_SENSOR_BOARD_FRONT_TEMP_ENUM_STR,
280 MC_CMD_SENSOR_BOARD_BACK_TEMP_ENUM_STR,
281 MC_CMD_SENSOR_IN_I1V8_ENUM_STR,
282 MC_CMD_SENSOR_IN_I2V5_ENUM_STR,
283 MC_CMD_SENSOR_IN_I3V3_ENUM_STR,
284 MC_CMD_SENSOR_IN_I12V0_ENUM_STR,
285 MC_CMD_SENSOR_IN_1V3_ENUM_STR,
286 MC_CMD_SENSOR_IN_I1V3_ENUM_STR,
289 /* END MKCONFIG GENERATED MonitorStatDescriptionsBlock */
292 efx_mon_stat_description(
294 __in efx_mon_stat_t id)
296 _NOTE(ARGUNUSED(enp))
297 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
299 EFSYS_ASSERT3U(id, <, EFX_MON_NSTATS);
300 return (__mon_stat_description[id]);
303 #endif /* EFSYS_OPT_NAMES */
305 /* START MKCONFIG GENERATED MonitorMcdiMappingBlock 173eee0a5599996a */
306 __checkReturn boolean_t
307 efx_mon_mcdi_to_efx_stat(
309 __out efx_mon_stat_t *statp)
312 if ((mcdi_index % (MC_CMD_SENSOR_PAGE0_NEXT + 1)) ==
313 MC_CMD_SENSOR_PAGE0_NEXT) {
314 *statp = EFX_MON_NSTATS;
318 switch (mcdi_index) {
319 case MC_CMD_SENSOR_IN_I0V9:
320 *statp = EFX_MON_STAT_IN_I0V9;
322 case MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT_EXTADC:
323 *statp = EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC;
325 case MC_CMD_SENSOR_CONTROLLER_SLAVE_VPTAT:
326 *statp = EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT;
328 case MC_CMD_SENSOR_PSU_TEMP:
329 *statp = EFX_MON_STAT_PSU_TEMP;
331 case MC_CMD_SENSOR_FAN_2:
332 *statp = EFX_MON_STAT_FAN_2;
334 case MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP_EXTADC:
335 *statp = EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC;
337 case MC_CMD_SENSOR_BOARD_BACK_TEMP:
338 *statp = EFX_MON_STAT_BOARD_BACK_TEMP;
340 case MC_CMD_SENSOR_IN_1V3:
341 *statp = EFX_MON_STAT_IN_1V3;
343 case MC_CMD_SENSOR_CONTROLLER_TDIODE_TEMP:
344 *statp = EFX_MON_STAT_CONTROLLER_TDIODE_TEMP;
346 case MC_CMD_SENSOR_IN_2V5:
347 *statp = EFX_MON_STAT_IN_2V5;
349 case MC_CMD_SENSOR_PHY_COMMON_TEMP:
350 *statp = EFX_MON_STAT_PHY_COMMON_TEMP;
352 case MC_CMD_SENSOR_PHY1_TEMP:
353 *statp = EFX_MON_STAT_PHY1_TEMP;
355 case MC_CMD_SENSOR_VREG_INTERNAL_TEMP:
356 *statp = EFX_MON_STAT_VREG_INTERNAL_TEMP;
358 case MC_CMD_SENSOR_IN_1V0:
359 *statp = EFX_MON_STAT_IN_1V0;
361 case MC_CMD_SENSOR_FAN_1:
362 *statp = EFX_MON_STAT_FAN_1;
364 case MC_CMD_SENSOR_IN_1V2:
365 *statp = EFX_MON_STAT_IN_1V2;
367 case MC_CMD_SENSOR_FAN_3:
368 *statp = EFX_MON_STAT_FAN_3;
370 case MC_CMD_SENSOR_IN_1V2A:
371 *statp = EFX_MON_STAT_IN_1V2A;
373 case MC_CMD_SENSOR_SODIMM_0_TEMP:
374 *statp = EFX_MON_STAT_SODIMM_0_TEMP;
376 case MC_CMD_SENSOR_IN_1V8:
377 *statp = EFX_MON_STAT_IN_1V8;
379 case MC_CMD_SENSOR_IN_VREF:
380 *statp = EFX_MON_STAT_IN_VREF;
382 case MC_CMD_SENSOR_SODIMM_VOUT:
383 *statp = EFX_MON_STAT_SODIMM_VOUT;
385 case MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY:
386 *statp = EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY;
388 case MC_CMD_SENSOR_IN_I1V2:
389 *statp = EFX_MON_STAT_IN_I1V2;
391 case MC_CMD_SENSOR_IN_I1V3:
392 *statp = EFX_MON_STAT_IN_I1V3;
394 case MC_CMD_SENSOR_AIRFLOW:
395 *statp = EFX_MON_STAT_AIRFLOW;
397 case MC_CMD_SENSOR_HOTPOINT_TEMP:
398 *statp = EFX_MON_STAT_HOTPOINT_TEMP;
400 case MC_CMD_SENSOR_VDD08D_VSS08D_CSR:
401 *statp = EFX_MON_STAT_VDD08D_VSS08D_CSR;
403 case MC_CMD_SENSOR_AOE_TEMP:
404 *statp = EFX_MON_STAT_AOE_TEMP;
406 case MC_CMD_SENSOR_IN_I1V8:
407 *statp = EFX_MON_STAT_IN_I1V8;
409 case MC_CMD_SENSOR_IN_I2V5:
410 *statp = EFX_MON_STAT_IN_I2V5;
412 case MC_CMD_SENSOR_PHY1_COOLING:
413 *statp = EFX_MON_STAT_PHY1_COOLING;
415 case MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY_EXTADC:
416 *statp = EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC;
418 case MC_CMD_SENSOR_IN_0V9_ADC:
419 *statp = EFX_MON_STAT_IN_0V9_ADC;
421 case MC_CMD_SENSOR_VREG_0V9_A_TEMP:
422 *statp = EFX_MON_STAT_VREG_0V9_A_TEMP;
424 case MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT:
425 *statp = EFX_MON_STAT_CONTROLLER_MASTER_VPTAT;
427 case MC_CMD_SENSOR_PHY0_VCC:
428 *statp = EFX_MON_STAT_PHY0_VCC;
430 case MC_CMD_SENSOR_PHY0_COOLING:
431 *statp = EFX_MON_STAT_PHY0_COOLING;
433 case MC_CMD_SENSOR_PSU_AOE_TEMP:
434 *statp = EFX_MON_STAT_PSU_AOE_TEMP;
436 case MC_CMD_SENSOR_VREG_0V9_TEMP:
437 *statp = EFX_MON_STAT_VREG_0V9_TEMP;
439 case MC_CMD_SENSOR_IN_I0V9_A:
440 *statp = EFX_MON_STAT_IN_I0V9_A;
442 case MC_CMD_SENSOR_IN_I3V3:
443 *statp = EFX_MON_STAT_IN_I3V3;
445 case MC_CMD_SENSOR_BOARD_FRONT_TEMP:
446 *statp = EFX_MON_STAT_BOARD_FRONT_TEMP;
448 case MC_CMD_SENSOR_OUT_VAOE:
449 *statp = EFX_MON_STAT_OUT_VAOE;
451 case MC_CMD_SENSOR_VDD08D_VSS08D_CSR_EXTADC:
452 *statp = EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC;
454 case MC_CMD_SENSOR_IN_I12V0:
455 *statp = EFX_MON_STAT_IN_I12V0;
457 case MC_CMD_SENSOR_PHY_POWER_PORT1:
458 *statp = EFX_MON_STAT_PHY_POWER_PORT1;
460 case MC_CMD_SENSOR_PHY_POWER_PORT0:
461 *statp = EFX_MON_STAT_PHY_POWER_PORT0;
463 case MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC:
464 *statp = EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC;
466 case MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP:
467 *statp = EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP;
469 case MC_CMD_SENSOR_CONTROLLER_TEMP:
470 *statp = EFX_MON_STAT_CONTROLLER_TEMP;
472 case MC_CMD_SENSOR_IN_IAOE:
473 *statp = EFX_MON_STAT_IN_IAOE;
475 case MC_CMD_SENSOR_IN_VAOE:
476 *statp = EFX_MON_STAT_IN_VAOE;
478 case MC_CMD_SENSOR_CONTROLLER_MASTER_VPTAT_EXTADC:
479 *statp = EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC;
481 case MC_CMD_SENSOR_CCOM_AVREG_1V8_SUPPLY:
482 *statp = EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY;
484 case MC_CMD_SENSOR_PHY1_VCC:
485 *statp = EFX_MON_STAT_PHY1_VCC;
487 case MC_CMD_SENSOR_CONTROLLER_COOLING:
488 *statp = EFX_MON_STAT_CONTROLLER_COOLING;
490 case MC_CMD_SENSOR_AMBIENT_TEMP:
491 *statp = EFX_MON_STAT_AMBIENT_TEMP;
493 case MC_CMD_SENSOR_IN_3V3:
494 *statp = EFX_MON_STAT_IN_3V3;
496 case MC_CMD_SENSOR_PHY0_TEMP:
497 *statp = EFX_MON_STAT_PHY0_TEMP;
499 case MC_CMD_SENSOR_SODIMM_1_TEMP:
500 *statp = EFX_MON_STAT_SODIMM_1_TEMP;
502 case MC_CMD_SENSOR_MUM_VCC:
503 *statp = EFX_MON_STAT_MUM_VCC;
505 case MC_CMD_SENSOR_VREG_0V9_B_TEMP:
506 *statp = EFX_MON_STAT_VREG_0V9_B_TEMP;
508 case MC_CMD_SENSOR_CONTROLLER_SLAVE_INTERNAL_TEMP:
509 *statp = EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP;
511 case MC_CMD_SENSOR_FAN_4:
512 *statp = EFX_MON_STAT_FAN_4;
514 case MC_CMD_SENSOR_CONTROLLER_2_TEMP:
515 *statp = EFX_MON_STAT_CONTROLLER_2_TEMP;
517 case MC_CMD_SENSOR_CCOM_AVREG_1V2_SUPPLY_EXTADC:
518 *statp = EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC;
520 case MC_CMD_SENSOR_IN_0V9_A:
521 *statp = EFX_MON_STAT_IN_0V9_A;
523 case MC_CMD_SENSOR_CONTROLLER_VPTAT_EXTADC:
524 *statp = EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC;
526 case MC_CMD_SENSOR_IN_0V9:
527 *statp = EFX_MON_STAT_IN_0V9;
529 case MC_CMD_SENSOR_IN_I0V9_B:
530 *statp = EFX_MON_STAT_IN_I0V9_B;
532 case MC_CMD_SENSOR_NIC_POWER:
533 *statp = EFX_MON_STAT_NIC_POWER;
535 case MC_CMD_SENSOR_IN_12V0:
536 *statp = EFX_MON_STAT_IN_12V0;
538 case MC_CMD_SENSOR_OUT_IAOE:
539 *statp = EFX_MON_STAT_OUT_IAOE;
541 case MC_CMD_SENSOR_CONTROLLER_VPTAT:
542 *statp = EFX_MON_STAT_CONTROLLER_VPTAT;
544 case MC_CMD_SENSOR_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC:
545 *statp = EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC;
547 case MC_CMD_SENSOR_CONTROLLER_INTERNAL_TEMP:
548 *statp = EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP;
550 case MC_CMD_SENSOR_FAN_0:
551 *statp = EFX_MON_STAT_FAN_0;
553 case MC_CMD_SENSOR_VREG_1V2_TEMP:
554 *statp = EFX_MON_STAT_VREG_1V2_TEMP;
556 case MC_CMD_SENSOR_IN_0V9_B:
557 *statp = EFX_MON_STAT_IN_0V9_B;
560 *statp = EFX_MON_NSTATS;
564 if (*statp == EFX_MON_NSTATS)
570 EFSYS_PROBE1(fail1, boolean_t, B_TRUE);
574 /* END MKCONFIG GENERATED MonitorMcdiMappingBlock */
576 /* START MKCONFIG GENERATED MonitorStatisticUnitsBlock 2d447c656cc2d01d */
577 __checkReturn boolean_t
578 efx_mon_get_stat_unit(
579 __in efx_mon_stat_t stat,
580 __out efx_mon_stat_unit_t *unitp)
583 case EFX_MON_STAT_IN_1V0:
584 case EFX_MON_STAT_IN_1V2:
585 case EFX_MON_STAT_IN_1V8:
586 case EFX_MON_STAT_IN_2V5:
587 case EFX_MON_STAT_IN_3V3:
588 case EFX_MON_STAT_IN_12V0:
589 case EFX_MON_STAT_IN_1V2A:
590 case EFX_MON_STAT_IN_VREF:
591 case EFX_MON_STAT_OUT_VAOE:
592 case EFX_MON_STAT_IN_VAOE:
593 case EFX_MON_STAT_IN_0V9:
594 case EFX_MON_STAT_IN_0V9_ADC:
595 case EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC:
596 case EFX_MON_STAT_VDD08D_VSS08D_CSR:
597 case EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC:
598 case EFX_MON_STAT_MUM_VCC:
599 case EFX_MON_STAT_IN_0V9_A:
600 case EFX_MON_STAT_IN_0V9_B:
601 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY:
602 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC:
603 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY:
604 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC:
605 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT:
606 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC:
607 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT:
608 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC:
609 case EFX_MON_STAT_SODIMM_VOUT:
610 case EFX_MON_STAT_PHY0_VCC:
611 case EFX_MON_STAT_PHY1_VCC:
612 case EFX_MON_STAT_IN_1V3:
613 *unitp = EFX_MON_STAT_UNIT_VOLTAGE_MV;
615 case EFX_MON_STAT_CONTROLLER_TEMP:
616 case EFX_MON_STAT_PHY_COMMON_TEMP:
617 case EFX_MON_STAT_PHY0_TEMP:
618 case EFX_MON_STAT_PHY1_TEMP:
619 case EFX_MON_STAT_AOE_TEMP:
620 case EFX_MON_STAT_PSU_AOE_TEMP:
621 case EFX_MON_STAT_PSU_TEMP:
622 case EFX_MON_STAT_CONTROLLER_2_TEMP:
623 case EFX_MON_STAT_VREG_INTERNAL_TEMP:
624 case EFX_MON_STAT_VREG_0V9_TEMP:
625 case EFX_MON_STAT_VREG_1V2_TEMP:
626 case EFX_MON_STAT_CONTROLLER_VPTAT:
627 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP:
628 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC:
629 case EFX_MON_STAT_AMBIENT_TEMP:
630 case EFX_MON_STAT_HOTPOINT_TEMP:
631 case EFX_MON_STAT_VREG_0V9_A_TEMP:
632 case EFX_MON_STAT_VREG_0V9_B_TEMP:
633 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP:
634 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC:
635 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP:
636 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC:
637 case EFX_MON_STAT_SODIMM_0_TEMP:
638 case EFX_MON_STAT_SODIMM_1_TEMP:
639 case EFX_MON_STAT_CONTROLLER_TDIODE_TEMP:
640 case EFX_MON_STAT_BOARD_FRONT_TEMP:
641 case EFX_MON_STAT_BOARD_BACK_TEMP:
642 *unitp = EFX_MON_STAT_UNIT_TEMP_C;
644 case EFX_MON_STAT_CONTROLLER_COOLING:
645 case EFX_MON_STAT_PHY0_COOLING:
646 case EFX_MON_STAT_PHY1_COOLING:
647 case EFX_MON_STAT_AIRFLOW:
648 case EFX_MON_STAT_PHY_POWER_PORT0:
649 case EFX_MON_STAT_PHY_POWER_PORT1:
650 *unitp = EFX_MON_STAT_UNIT_BOOL;
652 case EFX_MON_STAT_NIC_POWER:
653 *unitp = EFX_MON_STAT_UNIT_POWER_W;
655 case EFX_MON_STAT_OUT_IAOE:
656 case EFX_MON_STAT_IN_IAOE:
657 case EFX_MON_STAT_IN_I0V9:
658 case EFX_MON_STAT_IN_I1V2:
659 case EFX_MON_STAT_IN_I0V9_A:
660 case EFX_MON_STAT_IN_I0V9_B:
661 case EFX_MON_STAT_IN_I1V8:
662 case EFX_MON_STAT_IN_I2V5:
663 case EFX_MON_STAT_IN_I3V3:
664 case EFX_MON_STAT_IN_I12V0:
665 case EFX_MON_STAT_IN_I1V3:
666 *unitp = EFX_MON_STAT_UNIT_CURRENT_MA;
668 case EFX_MON_STAT_FAN_0:
669 case EFX_MON_STAT_FAN_1:
670 case EFX_MON_STAT_FAN_2:
671 case EFX_MON_STAT_FAN_3:
672 case EFX_MON_STAT_FAN_4:
673 *unitp = EFX_MON_STAT_UNIT_RPM;
676 *unitp = EFX_MON_STAT_UNIT_UNKNOWN;
680 if (*unitp == EFX_MON_STAT_UNIT_UNKNOWN)
686 EFSYS_PROBE1(fail1, boolean_t, B_TRUE);
690 /* END MKCONFIG GENERATED MonitorStatisticUnitsBlock */
692 /* START MKCONFIG GENERATED MonitorStatisticPortsBlock 1719b751d842534f */
693 __checkReturn boolean_t
694 efx_mon_get_stat_portmap(
695 __in efx_mon_stat_t stat,
696 __out efx_mon_stat_portmask_t *maskp)
700 case EFX_MON_STAT_PHY1_TEMP:
701 case EFX_MON_STAT_PHY1_COOLING:
702 case EFX_MON_STAT_PHY_POWER_PORT1:
703 *maskp = EFX_MON_STAT_PORTMAP_PORT1;
705 case EFX_MON_STAT_CONTROLLER_TEMP:
706 case EFX_MON_STAT_PHY_COMMON_TEMP:
707 case EFX_MON_STAT_CONTROLLER_COOLING:
708 case EFX_MON_STAT_IN_1V0:
709 case EFX_MON_STAT_IN_1V2:
710 case EFX_MON_STAT_IN_1V8:
711 case EFX_MON_STAT_IN_2V5:
712 case EFX_MON_STAT_IN_3V3:
713 case EFX_MON_STAT_IN_12V0:
714 case EFX_MON_STAT_IN_1V2A:
715 case EFX_MON_STAT_IN_VREF:
716 case EFX_MON_STAT_OUT_VAOE:
717 case EFX_MON_STAT_AOE_TEMP:
718 case EFX_MON_STAT_PSU_AOE_TEMP:
719 case EFX_MON_STAT_PSU_TEMP:
720 case EFX_MON_STAT_FAN_0:
721 case EFX_MON_STAT_FAN_1:
722 case EFX_MON_STAT_FAN_2:
723 case EFX_MON_STAT_FAN_3:
724 case EFX_MON_STAT_FAN_4:
725 case EFX_MON_STAT_IN_VAOE:
726 case EFX_MON_STAT_OUT_IAOE:
727 case EFX_MON_STAT_IN_IAOE:
728 case EFX_MON_STAT_NIC_POWER:
729 case EFX_MON_STAT_IN_0V9:
730 case EFX_MON_STAT_IN_I0V9:
731 case EFX_MON_STAT_IN_I1V2:
732 case EFX_MON_STAT_IN_0V9_ADC:
733 case EFX_MON_STAT_CONTROLLER_2_TEMP:
734 case EFX_MON_STAT_VREG_INTERNAL_TEMP:
735 case EFX_MON_STAT_VREG_0V9_TEMP:
736 case EFX_MON_STAT_VREG_1V2_TEMP:
737 case EFX_MON_STAT_CONTROLLER_VPTAT:
738 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP:
739 case EFX_MON_STAT_CONTROLLER_VPTAT_EXTADC:
740 case EFX_MON_STAT_CONTROLLER_INTERNAL_TEMP_EXTADC:
741 case EFX_MON_STAT_AMBIENT_TEMP:
742 case EFX_MON_STAT_AIRFLOW:
743 case EFX_MON_STAT_VDD08D_VSS08D_CSR:
744 case EFX_MON_STAT_VDD08D_VSS08D_CSR_EXTADC:
745 case EFX_MON_STAT_HOTPOINT_TEMP:
746 case EFX_MON_STAT_MUM_VCC:
747 case EFX_MON_STAT_IN_0V9_A:
748 case EFX_MON_STAT_IN_I0V9_A:
749 case EFX_MON_STAT_VREG_0V9_A_TEMP:
750 case EFX_MON_STAT_IN_0V9_B:
751 case EFX_MON_STAT_IN_I0V9_B:
752 case EFX_MON_STAT_VREG_0V9_B_TEMP:
753 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY:
754 case EFX_MON_STAT_CCOM_AVREG_1V2_SUPPLY_EXTADC:
755 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY:
756 case EFX_MON_STAT_CCOM_AVREG_1V8_SUPPLY_EXTADC:
757 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT:
758 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP:
759 case EFX_MON_STAT_CONTROLLER_MASTER_VPTAT_EXTADC:
760 case EFX_MON_STAT_CONTROLLER_MASTER_INTERNAL_TEMP_EXTADC:
761 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT:
762 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP:
763 case EFX_MON_STAT_CONTROLLER_SLAVE_VPTAT_EXTADC:
764 case EFX_MON_STAT_CONTROLLER_SLAVE_INTERNAL_TEMP_EXTADC:
765 case EFX_MON_STAT_SODIMM_VOUT:
766 case EFX_MON_STAT_SODIMM_0_TEMP:
767 case EFX_MON_STAT_SODIMM_1_TEMP:
768 case EFX_MON_STAT_PHY0_VCC:
769 case EFX_MON_STAT_PHY1_VCC:
770 case EFX_MON_STAT_CONTROLLER_TDIODE_TEMP:
771 case EFX_MON_STAT_BOARD_FRONT_TEMP:
772 case EFX_MON_STAT_BOARD_BACK_TEMP:
773 case EFX_MON_STAT_IN_I1V8:
774 case EFX_MON_STAT_IN_I2V5:
775 case EFX_MON_STAT_IN_I3V3:
776 case EFX_MON_STAT_IN_I12V0:
777 case EFX_MON_STAT_IN_1V3:
778 case EFX_MON_STAT_IN_I1V3:
779 *maskp = EFX_MON_STAT_PORTMAP_ALL;
781 case EFX_MON_STAT_PHY0_TEMP:
782 case EFX_MON_STAT_PHY0_COOLING:
783 case EFX_MON_STAT_PHY_POWER_PORT0:
784 *maskp = EFX_MON_STAT_PORTMAP_PORT0;
787 *maskp = EFX_MON_STAT_PORTMAP_UNKNOWN;
791 if (*maskp == EFX_MON_STAT_PORTMAP_UNKNOWN)
797 EFSYS_PROBE1(fail1, boolean_t, B_TRUE);
801 /* END MKCONFIG GENERATED MonitorStatisticPortsBlock */
803 __checkReturn efx_rc_t
804 efx_mon_stats_update(
806 __in efsys_mem_t *esmp,
807 __inout_ecount(EFX_MON_NSTATS) efx_mon_stat_value_t *values)
809 efx_mon_t *emp = &(enp->en_mon);
810 const efx_mon_ops_t *emop = emp->em_emop;
812 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
813 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_MON);
815 return (emop->emo_stats_update(enp, esmp, values));
818 #endif /* EFSYS_OPT_MON_STATS */
824 efx_mon_t *emp = &(enp->en_mon);
826 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
827 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE);
828 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_MON);
832 emp->em_type = EFX_MON_INVALID;
834 enp->en_mod_flags &= ~EFX_MOD_MON;