Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b61ace1e authored by George Shen's avatar George Shen
Browse files

msm: cvp: Dump testbus for CVP debugging



Testbus registers provide valuable information for
debugging potential CVP hardware issue.

Change-Id: I228c18cf0ec1b9cf4ffbe4f07c3fa9a388231680
Signed-off-by: default avatarGeorge Shen <sqiao@codeaurora.org>
parent 4ba31fbd
Loading
Loading
Loading
Loading
+30 −1
Original line number Diff line number Diff line
@@ -4362,9 +4362,12 @@ static int iris_hfi_get_core_capabilities(void *dev)
	return 0;
}

static u32 cvp_arp_test_regs[16];
static u32 cvp_dma_test_regs[512];

static void __noc_error_info_iris2(struct iris_hfi_device *device)
{
	u32 val = 0;
	u32 val = 0, regi, i;

	val = __read_register(device, CVP_NOC_ERR_SWID_LOW_OFFS);
	dprintk(CVP_ERR, "CVP_NOC_ERL_MAIN_SWID_LOW:     %#x\n", val);
@@ -4419,6 +4422,32 @@ static void __noc_error_info_iris2(struct iris_hfi_device *device)
	dprintk(CVP_ERR, "CVP_NOC_CORE_ERL_MAIN_ERRLOG3_LOW:     %#x\n", val);
	val = __read_register(device, CVP_NOC_CORE_ERR_ERRLOG3_HIGH_OFFS);
	dprintk(CVP_ERR, "CVP_NOC_CORE_ERL_MAIN_ERRLOG3_HIGH:     %#x\n", val);
#define CVP_SS_CLK_HALT 0x8
#define CVP_SS_CLK_EN 0xC
#define CVP_SS_ARP_TEST_BUS_CONTROL 0x700
#define CVP_SS_ARP_TEST_BUS_REGISTER 0x704
#define CVP_DMA_TEST_BUS_CONTROL 0x66A0
#define CVP_DMA_TEST_BUS_REGISTER 0x66A4
#define CVP_VPU_WRAPPER_CORE_CONFIG 0xB0088
	__write_register(device, CVP_SS_CLK_HALT, 0);
	__write_register(device, CVP_SS_CLK_EN, 0x3f);
	__write_register(device, CVP_VPU_WRAPPER_CORE_CONFIG, 0);

	for (i = 0; i < 15; i++) {
		regi = 0xC0000000 + i;
		__write_register(device, CVP_SS_ARP_TEST_BUS_CONTROL, regi);
		val = __read_register(device, CVP_SS_ARP_TEST_BUS_REGISTER);
		cvp_arp_test_regs[i] = val;
		dprintk(CVP_ERR, "ARP_CTL:%x - %x\n", regi, val);
	}

	for (i = 0; i < 512; i++) {
		regi = 0x40000000 + i;
		__write_register(device, CVP_DMA_TEST_BUS_CONTROL, regi);
		val = __read_register(device, CVP_DMA_TEST_BUS_REGISTER);
		cvp_dma_test_regs[i] = val;
		dprintk(CVP_ERR, "DMA_CTL:%x - %x\n", regi, val);
	}
}

static int iris_hfi_noc_error_info(void *dev)