Commit 8ba2876d authored by Omer Shpigelman's avatar Omer Shpigelman Committed by Oded Gabbay

habanalabs: add goya implementation for debug configuration

This patch adds the ASIC-specific function for GOYA to configure the
coresight components.

Most of the components have an enabled/disabled flag, depending on whether
the user wants to enable the component or disable it.

For some of the components, such as ETR and SPMU, the user can also
request to read values from them. Those values are needed for the user to
parse the trace data.

The ETR configuration is also checked for security purposes, to make sure
the trace data is written to the device's DRAM.
Signed-off-by: default avatarOmer Shpigelman <oshpigelman@habana.ai>
Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
parent 315bc055
......@@ -69,7 +69,7 @@
*
*/
#define GOYA_MMU_REGS_NUM 61
#define GOYA_MMU_REGS_NUM 63
#define GOYA_DMA_POOL_BLK_SIZE 0x100 /* 256 bytes */
......@@ -85,8 +85,6 @@
#define GOYA_QMAN0_FENCE_VAL 0xD169B243
#define GOYA_MAX_INITIATORS 20
#define GOYA_MAX_STRING_LEN 20
#define GOYA_CB_POOL_CB_CNT 512
......@@ -171,7 +169,9 @@ static u64 goya_mmu_regs[GOYA_MMU_REGS_NUM] = {
mmMME_SBA_CONTROL_DATA,
mmMME_SBB_CONTROL_DATA,
mmMME_SBC_CONTROL_DATA,
mmMME_WBC_CONTROL_DATA
mmMME_WBC_CONTROL_DATA,
mmPCIE_WRAP_PSOC_ARUSER,
mmPCIE_WRAP_PSOC_AWUSER
};
static u32 goya_all_events[] = {
......@@ -1436,6 +1436,7 @@ static void goya_init_golden_registers(struct hl_device *hdev)
*/
WREG32(mmDMA_CH_0_CFG0, 0x0fff0010);
WREG32(mmDMA_CH_1_CFG0, 0x0fff00F0);
WREG32(mmTPC_PLL_CLK_RLX_0, 0x200020);
goya->hw_cap_initialized |= HW_CAP_GOLDEN;
......
......@@ -43,6 +43,8 @@
#define QMAN_STOP_TIMEOUT_USEC 100000 /* 100 ms */
#define CORESIGHT_TIMEOUT_USEC 100000 /* 100 ms */
#define TPC_ENABLED_MASK 0xFF
#define PLL_HIGH_DEFAULT 1575000000 /* 1.575 GHz */
......
/* SPDX-License-Identifier: GPL-2.0
*
* Copyright 2016-2018 HabanaLabs, Ltd.
* Copyright 2016-2019 HabanaLabs, Ltd.
* All Rights Reserved.
*
*/
......@@ -12,6 +12,7 @@
#include "stlb_regs.h"
#include "mmu_regs.h"
#include "pcie_aux_regs.h"
#include "pcie_wrap_regs.h"
#include "psoc_global_conf_regs.h"
#include "psoc_spi_regs.h"
#include "psoc_mme_pll_regs.h"
......
This diff is collapsed.
/* SPDX-License-Identifier: GPL-2.0
*
* Copyright 2016-2018 HabanaLabs, Ltd.
* All Rights Reserved.
*
*/
#ifndef GOYA_CORESIGHT_H
#define GOYA_CORESIGHT_H
enum goya_debug_stm_regs_index {
GOYA_STM_FIRST = 0,
GOYA_STM_CPU = GOYA_STM_FIRST,
GOYA_STM_DMA_CH_0_CS,
GOYA_STM_DMA_CH_1_CS,
GOYA_STM_DMA_CH_2_CS,
GOYA_STM_DMA_CH_3_CS,
GOYA_STM_DMA_CH_4_CS,
GOYA_STM_DMA_MACRO_CS,
GOYA_STM_MME1_SBA,
GOYA_STM_MME3_SBB,
GOYA_STM_MME4_WACS2,
GOYA_STM_MME4_WACS,
GOYA_STM_MMU_CS,
GOYA_STM_PCIE,
GOYA_STM_PSOC,
GOYA_STM_TPC0_EML,
GOYA_STM_TPC1_EML,
GOYA_STM_TPC2_EML,
GOYA_STM_TPC3_EML,
GOYA_STM_TPC4_EML,
GOYA_STM_TPC5_EML,
GOYA_STM_TPC6_EML,
GOYA_STM_TPC7_EML,
GOYA_STM_LAST = GOYA_STM_TPC7_EML
};
enum goya_debug_etf_regs_index {
GOYA_ETF_FIRST = 0,
GOYA_ETF_CPU_0 = GOYA_ETF_FIRST,
GOYA_ETF_CPU_1,
GOYA_ETF_CPU_TRACE,
GOYA_ETF_DMA_CH_0_CS,
GOYA_ETF_DMA_CH_1_CS,
GOYA_ETF_DMA_CH_2_CS,
GOYA_ETF_DMA_CH_3_CS,
GOYA_ETF_DMA_CH_4_CS,
GOYA_ETF_DMA_MACRO_CS,
GOYA_ETF_MME1_SBA,
GOYA_ETF_MME3_SBB,
GOYA_ETF_MME4_WACS2,
GOYA_ETF_MME4_WACS,
GOYA_ETF_MMU_CS,
GOYA_ETF_PCIE,
GOYA_ETF_PSOC,
GOYA_ETF_TPC0_EML,
GOYA_ETF_TPC1_EML,
GOYA_ETF_TPC2_EML,
GOYA_ETF_TPC3_EML,
GOYA_ETF_TPC4_EML,
GOYA_ETF_TPC5_EML,
GOYA_ETF_TPC6_EML,
GOYA_ETF_TPC7_EML,
GOYA_ETF_LAST = GOYA_ETF_TPC7_EML
};
enum goya_debug_funnel_regs_index {
GOYA_FUNNEL_FIRST = 0,
GOYA_FUNNEL_CPU = GOYA_FUNNEL_FIRST,
GOYA_FUNNEL_DMA_CH_6_1,
GOYA_FUNNEL_DMA_MACRO_3_1,
GOYA_FUNNEL_MME0_RTR,
GOYA_FUNNEL_MME1_RTR,
GOYA_FUNNEL_MME2_RTR,
GOYA_FUNNEL_MME3_RTR,
GOYA_FUNNEL_MME4_RTR,
GOYA_FUNNEL_MME5_RTR,
GOYA_FUNNEL_PCIE,
GOYA_FUNNEL_PSOC,
GOYA_FUNNEL_TPC0_EML,
GOYA_FUNNEL_TPC1_EML,
GOYA_FUNNEL_TPC1_RTR,
GOYA_FUNNEL_TPC2_EML,
GOYA_FUNNEL_TPC2_RTR,
GOYA_FUNNEL_TPC3_EML,
GOYA_FUNNEL_TPC3_RTR,
GOYA_FUNNEL_TPC4_EML,
GOYA_FUNNEL_TPC4_RTR,
GOYA_FUNNEL_TPC5_EML,
GOYA_FUNNEL_TPC5_RTR,
GOYA_FUNNEL_TPC6_EML,
GOYA_FUNNEL_TPC6_RTR,
GOYA_FUNNEL_TPC7_EML,
GOYA_FUNNEL_LAST = GOYA_FUNNEL_TPC7_EML
};
enum goya_debug_bmon_regs_index {
GOYA_BMON_FIRST = 0,
GOYA_BMON_CPU_RD = GOYA_BMON_FIRST,
GOYA_BMON_CPU_WR,
GOYA_BMON_DMA_CH_0_0,
GOYA_BMON_DMA_CH_0_1,
GOYA_BMON_DMA_CH_1_0,
GOYA_BMON_DMA_CH_1_1,
GOYA_BMON_DMA_CH_2_0,
GOYA_BMON_DMA_CH_2_1,
GOYA_BMON_DMA_CH_3_0,
GOYA_BMON_DMA_CH_3_1,
GOYA_BMON_DMA_CH_4_0,
GOYA_BMON_DMA_CH_4_1,
GOYA_BMON_DMA_MACRO_0,
GOYA_BMON_DMA_MACRO_1,
GOYA_BMON_DMA_MACRO_2,
GOYA_BMON_DMA_MACRO_3,
GOYA_BMON_DMA_MACRO_4,
GOYA_BMON_DMA_MACRO_5,
GOYA_BMON_DMA_MACRO_6,
GOYA_BMON_DMA_MACRO_7,
GOYA_BMON_MME1_SBA_0,
GOYA_BMON_MME1_SBA_1,
GOYA_BMON_MME3_SBB_0,
GOYA_BMON_MME3_SBB_1,
GOYA_BMON_MME4_WACS2_0,
GOYA_BMON_MME4_WACS2_1,
GOYA_BMON_MME4_WACS2_2,
GOYA_BMON_MME4_WACS_0,
GOYA_BMON_MME4_WACS_1,
GOYA_BMON_MME4_WACS_2,
GOYA_BMON_MME4_WACS_3,
GOYA_BMON_MME4_WACS_4,
GOYA_BMON_MME4_WACS_5,
GOYA_BMON_MME4_WACS_6,
GOYA_BMON_MMU_0,
GOYA_BMON_MMU_1,
GOYA_BMON_PCIE_MSTR_RD,
GOYA_BMON_PCIE_MSTR_WR,
GOYA_BMON_PCIE_SLV_RD,
GOYA_BMON_PCIE_SLV_WR,
GOYA_BMON_TPC0_EML_0,
GOYA_BMON_TPC0_EML_1,
GOYA_BMON_TPC0_EML_2,
GOYA_BMON_TPC0_EML_3,
GOYA_BMON_TPC1_EML_0,
GOYA_BMON_TPC1_EML_1,
GOYA_BMON_TPC1_EML_2,
GOYA_BMON_TPC1_EML_3,
GOYA_BMON_TPC2_EML_0,
GOYA_BMON_TPC2_EML_1,
GOYA_BMON_TPC2_EML_2,
GOYA_BMON_TPC2_EML_3,
GOYA_BMON_TPC3_EML_0,
GOYA_BMON_TPC3_EML_1,
GOYA_BMON_TPC3_EML_2,
GOYA_BMON_TPC3_EML_3,
GOYA_BMON_TPC4_EML_0,
GOYA_BMON_TPC4_EML_1,
GOYA_BMON_TPC4_EML_2,
GOYA_BMON_TPC4_EML_3,
GOYA_BMON_TPC5_EML_0,
GOYA_BMON_TPC5_EML_1,
GOYA_BMON_TPC5_EML_2,
GOYA_BMON_TPC5_EML_3,
GOYA_BMON_TPC6_EML_0,
GOYA_BMON_TPC6_EML_1,
GOYA_BMON_TPC6_EML_2,
GOYA_BMON_TPC6_EML_3,
GOYA_BMON_TPC7_EML_0,
GOYA_BMON_TPC7_EML_1,
GOYA_BMON_TPC7_EML_2,
GOYA_BMON_TPC7_EML_3,
GOYA_BMON_LAST = GOYA_BMON_TPC7_EML_3
};
enum goya_debug_spmu_regs_index {
GOYA_SPMU_FIRST = 0,
GOYA_SPMU_DMA_CH_0_CS = GOYA_SPMU_FIRST,
GOYA_SPMU_DMA_CH_1_CS,
GOYA_SPMU_DMA_CH_2_CS,
GOYA_SPMU_DMA_CH_3_CS,
GOYA_SPMU_DMA_CH_4_CS,
GOYA_SPMU_DMA_MACRO_CS,
GOYA_SPMU_MME1_SBA,
GOYA_SPMU_MME3_SBB,
GOYA_SPMU_MME4_WACS2,
GOYA_SPMU_MME4_WACS,
GOYA_SPMU_MMU_CS,
GOYA_SPMU_PCIE,
GOYA_SPMU_TPC0_EML,
GOYA_SPMU_TPC1_EML,
GOYA_SPMU_TPC2_EML,
GOYA_SPMU_TPC3_EML,
GOYA_SPMU_TPC4_EML,
GOYA_SPMU_TPC5_EML,
GOYA_SPMU_TPC6_EML,
GOYA_SPMU_TPC7_EML,
GOYA_SPMU_LAST = GOYA_SPMU_TPC7_EML
};
#endif /* GOYA_CORESIGHT_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment