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 } 69