common/cnxk: support setting BPHY CGX/RPM FEC
[dpdk.git] / drivers / common / cnxk / roc_sso_debug.c
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
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
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
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 }