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