1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2018 Netronome Systems, Inc.
7 #include <rte_byteorder.h>
25 struct nfp_nsp_identify
*
26 __nfp_nsp_identify(struct nfp_nsp
*nsp
)
28 struct nfp_nsp_identify
*nspi
= NULL
;
29 struct nsp_identify
*ni
;
32 if (nfp_nsp_get_abi_ver_minor(nsp
) < 15)
35 ni
= malloc(sizeof(*ni
));
39 memset(ni
, 0, sizeof(*ni
));
40 ret
= nfp_nsp_read_identify(nsp
, ni
, sizeof(*ni
));
42 printf("reading bsp version failed %d\n",
47 nspi
= malloc(sizeof(*nspi
));
51 memset(nspi
, 0, sizeof(*nspi
));
52 memcpy(nspi
->version
, ni
->version
, sizeof(nspi
->version
));
53 nspi
->version
[sizeof(nspi
->version
) - 1] = '\0';
54 nspi
->flags
= ni
->flags
;
55 nspi
->br_primary
= ni
->br_primary
;
56 nspi
->br_secondary
= ni
->br_secondary
;
57 nspi
->br_nsp
= ni
->br_nsp
;
58 nspi
->primary
= rte_le_to_cpu_16(ni
->primary
);
59 nspi
->secondary
= rte_le_to_cpu_16(ni
->secondary
);
60 nspi
->nsp
= rte_le_to_cpu_16(ni
->nsp
);
61 nspi
->sensor_mask
= rte_le_to_cpu_64(ni
->sensor_mask
);
70 uint32_t assembly_power
;
71 uint32_t assembly_12v_power
;
72 uint32_t assembly_3v3_power
;
76 nfp_hwmon_read_sensor(struct nfp_cpp
*cpp
, enum nfp_nsp_sensor_id id
, long *val
)
82 nsp
= nfp_nsp_open(cpp
);
86 ret
= nfp_nsp_read_sensors(nsp
, BIT(id
), &s
, sizeof(s
));
93 case NFP_SENSOR_CHIP_TEMPERATURE
:
94 *val
= rte_le_to_cpu_32(s
.chip_temp
);
96 case NFP_SENSOR_ASSEMBLY_POWER
:
97 *val
= rte_le_to_cpu_32(s
.assembly_power
);
99 case NFP_SENSOR_ASSEMBLY_12V_POWER
:
100 *val
= rte_le_to_cpu_32(s
.assembly_12v_power
);
102 case NFP_SENSOR_ASSEMBLY_3V3_POWER
:
103 *val
= rte_le_to_cpu_32(s
.assembly_3v3_power
);