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);