1
2 /* SPDX-License-Identifier: BSD-3-Clause
3 * Copyright(C) 2021 Marvell.
4 */
5
6 #include <unistd.h>
7
8 #include "cnxk_telemetry.h"
9 #include "roc_api.h"
10 #include "roc_priv.h"
11
12 static int
cnxk_tel_sso(struct plt_tel_data * d)13 cnxk_tel_sso(struct plt_tel_data *d)
14 {
15 struct roc_sso *roc_sso;
16 struct sso *sso;
17
18 roc_sso = idev_sso_get();
19 if (roc_sso == NULL)
20 return SSO_ERR_DEVICE_NOT_BOUNDED;
21
22 sso = roc_sso_to_sso_priv(roc_sso);
23 plt_tel_data_add_dict_ptr(d, "roc_sso", roc_sso);
24 plt_tel_data_add_dict_ptr(d, "sso", sso);
25 plt_tel_data_add_dict_int(d, "max_hws", roc_sso->max_hws);
26 plt_tel_data_add_dict_int(d, "max_hwgrp", roc_sso->max_hwgrp);
27 plt_tel_data_add_dict_int(d, "nb_hws", roc_sso->nb_hws);
28 plt_tel_data_add_dict_int(d, "nb_hwgrp", roc_sso->nb_hwgrp);
29 plt_tel_data_add_dict_int(d, "pf_func", sso->dev.pf_func);
30 plt_tel_data_add_dict_int(d, "pid", getpid());
31
32 return 0;
33 }
34
35 static int
cnxk_sso_tel_handle_info(const char * cmd __plt_unused,const char * params __plt_unused,struct plt_tel_data * d)36 cnxk_sso_tel_handle_info(const char *cmd __plt_unused,
37 const char *params __plt_unused,
38 struct plt_tel_data *d)
39 {
40 plt_tel_data_start_dict(d);
41 cnxk_tel_sso(d);
42 return 0;
43 }
44
PLT_INIT(cnxk_telemetry_sso_init)45 PLT_INIT(cnxk_telemetry_sso_init)
46 {
47 plt_telemetry_register_cmd(
48 "/cnxk/sso/info", cnxk_sso_tel_handle_info,
49 "Returns sso information. Takes no parameters");
50 }
51