xref: /dpdk/drivers/common/cnxk/roc_sso_debug.c (revision f0e638e049f1925e3e035397b94f98fc188dd7d4)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4 
5 #include "roc_api.h"
6 #include "roc_priv.h"
7 
8 static void
sso_hws_dump(uintptr_t base,FILE * f)9 sso_hws_dump(uintptr_t base, FILE *f)
10 {
11 	fprintf(f, "SSOW_LF_GWS Base addr   0x%" PRIx64 "\n", (uint64_t)base);
12 	fprintf(f, "SSOW_LF_GWS_LINKS       0x%" PRIx64 "\n",
13 		plt_read64(base + SSOW_LF_GWS_LINKS));
14 	fprintf(f, "SSOW_LF_GWS_PENDWQP     0x%" PRIx64 "\n",
15 		plt_read64(base + SSOW_LF_GWS_PENDWQP));
16 	fprintf(f, "SSOW_LF_GWS_PENDSTATE   0x%" PRIx64 "\n",
17 		plt_read64(base + SSOW_LF_GWS_PENDSTATE));
18 	fprintf(f, "SSOW_LF_GWS_NW_TIM      0x%" PRIx64 "\n",
19 		plt_read64(base + SSOW_LF_GWS_NW_TIM));
20 	fprintf(f, "SSOW_LF_GWS_TAG         0x%" PRIx64 "\n",
21 		plt_read64(base + SSOW_LF_GWS_TAG));
22 	fprintf(f, "SSOW_LF_GWS_WQP         0x%" PRIx64 "\n",
23 		plt_read64(base + SSOW_LF_GWS_TAG));
24 	fprintf(f, "SSOW_LF_GWS_SWTP        0x%" PRIx64 "\n",
25 		plt_read64(base + SSOW_LF_GWS_SWTP));
26 	fprintf(f, "SSOW_LF_GWS_PENDTAG     0x%" PRIx64 "\n",
27 		plt_read64(base + SSOW_LF_GWS_PENDTAG));
28 }
29 
30 static void
sso_hwgrp_dump(uintptr_t base,FILE * f)31 sso_hwgrp_dump(uintptr_t base, FILE *f)
32 {
33 	fprintf(f, "SSO_LF_GGRP Base addr   0x%" PRIx64 "\n", (uint64_t)base);
34 	fprintf(f, "SSO_LF_GGRP_QCTL        0x%" PRIx64 "\n",
35 		plt_read64(base + SSO_LF_GGRP_QCTL));
36 	fprintf(f, "SSO_LF_GGRP_XAQ_CNT     0x%" PRIx64 "\n",
37 		plt_read64(base + SSO_LF_GGRP_XAQ_CNT));
38 	fprintf(f, "SSO_LF_GGRP_INT_THR     0x%" PRIx64 "\n",
39 		plt_read64(base + SSO_LF_GGRP_INT_THR));
40 	fprintf(f, "SSO_LF_GGRP_INT_CNT     0x%" PRIX64 "\n",
41 		plt_read64(base + SSO_LF_GGRP_INT_CNT));
42 	fprintf(f, "SSO_LF_GGRP_AQ_CNT      0x%" PRIX64 "\n",
43 		plt_read64(base + SSO_LF_GGRP_AQ_CNT));
44 	fprintf(f, "SSO_LF_GGRP_AQ_THR      0x%" PRIX64 "\n",
45 		plt_read64(base + SSO_LF_GGRP_AQ_THR));
46 	fprintf(f, "SSO_LF_GGRP_MISC_CNT    0x%" PRIx64 "\n",
47 		plt_read64(base + SSO_LF_GGRP_MISC_CNT));
48 }
49 
50 void
roc_sso_dump(struct roc_sso * roc_sso,uint8_t nb_hws,uint16_t hwgrp,FILE * f)51 roc_sso_dump(struct roc_sso *roc_sso, uint8_t nb_hws, uint16_t hwgrp, FILE *f)
52 {
53 	struct dev *dev = &roc_sso_to_sso_priv(roc_sso)->dev;
54 	uintptr_t base;
55 	int i;
56 
57 	/* Dump SSOW registers */
58 	for (i = 0; i < nb_hws; i++) {
59 		base = dev->bar2 + (RVU_BLOCK_ADDR_SSOW << 20 | i << 12);
60 		sso_hws_dump(base, f);
61 	}
62 
63 	/* Dump SSO registers */
64 	for (i = 0; i < hwgrp; i++) {
65 		base = dev->bar2 + (RVU_BLOCK_ADDR_SSO << 20 | i << 12);
66 		sso_hwgrp_dump(base, f);
67 	}
68 }
69