unplugged-kernel/drivers/misc/mediatek/apusys/debug/mt6873/apusys_plat.h

123 lines
3.8 KiB
C

// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2020 MediaTek Inc.
*/
#ifndef __APUSYS_MIDWARE_PLATFORM_H__
#define __APUSYS_MIDWARE_PLATFORM_H__
extern struct dentry *mdw_dbg_root;
#define APUSYS_VLM_START 0x1D800000 // tcm tmp
#define APUSYS_VLM_SIZE 0x100000
#define APUSYS_REG_SIZE (0x100000)
#define APUSYS_BASE (0x19000000)
#define INFRA_BASE (0x10000000)
#define INFRA_SIZE (0x10000)
#define NA (-1)
char *reg_all_mem;
bool apusys_dump_force;
static void *apu_top;
static void *apu_to_infra_top;
struct dbg_mux_sel_info {
int offset;
int start_bit;
int end_bit;
};
struct dbg_mux_sel_info info_table[] = {
{0x29010, 1, 1 }, //vcore_dbg_sel
{0x29010, 4, 2 }, //vcore_dbg_sel0
{0x29010, 7, 5 }, //vcore_dbg_sel1
{0x20138, 2, 0 }, //conn_dbg0_sel
{0x20138, 11, 9 }, //conn_dbg3_sel
{0x20138, 20, 18}, //conn_dbg6_sel
{0x01098, 15, 8 }, //edma_up_dbg_bus_sel
{0x30a10, 10, 10}, //vpu0_apu_gals_m_ctl_sel
{0x31a10, 10, 10}, //vpu1_apu_gals_m_ctl_sel
};
#define DBG_MUX_SEL_COUNT (sizeof(info_table)/sizeof(struct dbg_mux_sel_info))
struct dbg_mux_sel_value {
char name[128];
int status_reg_offset;
int dbg_sel[DBG_MUX_SEL_COUNT];
};
struct dbg_mux_sel_value value_table[] = {
{"VCORE2EMI_S0_GALS_TX", 0x2901C,
{ 0, 3, NA, NA, NA, NA, NA, NA, NA} },
{"VCORE2EMI_S1_GALS_TX", 0x2901C,
{ 0, 4, NA, NA, NA, NA, NA, NA, NA} },
{"APUSYS2ACP_VCORE_GALS_TX", 0x2901C,
{ 0, 5, NA, NA, NA, NA, NA, NA, NA} },
{"XPU2APUSYS_VCORE_GALS_RX", 0x2901C,
{ 0, 6, NA, NA, NA, NA, NA, NA, NA} },
{"MNOC_MISC_1/0_DBG_BUS", 0x2901C,
{ 0, 7, NA, 4, NA, 2, NA, NA, NA} },
{"MNOC_MISC_3/2_DBG_BUS", 0x2901C,
{ 0, 7, NA, 4, NA, 3, NA, NA, NA} },
{"MNOC_MISC_4_DBG_BUS", 0x2901C,
{ 0, 7, NA, 4, NA, 4, NA, NA, NA} },
{"APU_UP_SYS_DBG_BUS", 0x2901C,
{ 0, 7, NA, 4, NA, 5, 1, NA, NA} },
{"APU_EDMA_0_DBG_BUS_0", 0x2901C,
{ 0, 7, NA, 4, NA, 5, 2, NA, NA} },
{"APU_EDMA_0_DBG_BUS_1", 0x2901C,
{ 0, 7, NA, 4, NA, 5, 3, NA, NA} },
{"CONN2VCORE_EMI_S0_GALS_RX", 0x2901C,
{ 1, NA, 3, NA, NA, NA, NA, NA, NA} },
{"CONN2VCORE_EMI_S1_GALS_RX", 0x2901C,
{ 1, NA, 4, NA, NA, NA, NA, NA, NA} },
{"APUSYS2ACP_VCORE_GALS_RX", 0x2901C,
{ 1, NA, 5, NA, NA, NA, NA, NA, NA} },
{"XPU2APUSYS_VCORE_GALS_TX", 0x2901C,
{ 1, NA, 6, NA, NA, NA, NA, NA, NA} },
};
#define TOTAL_DBG_MUX_COUNT \
(sizeof(value_table)/sizeof(struct dbg_mux_sel_value))
struct reg_dump_info {
char name[128];
u32 base;
u32 size;
};
struct reg_dump_info range_table[] = {
{"md32_sysCtrl", 0x19001000, 0x800 },
{"md32_sysCtrl_PMU", 0x19001800, 0x800 },
{"md32_wdt", 0x19002000, 0x1000},
{"apu_iommu0_r0", 0x19010000, 0x1000},
{"apu_iommu0_r1", 0x19011000, 0x1000},
{"apu_iommu0_r2", 0x19012000, 0x1000},
{"apu_iommu0_r3", 0x19013000, 0x1000},
{"apu_iommu0_r4", 0x19014000, 0x1000},
{"apu_xpu_rsi_config", 0x1901C000, 0x1000},
{"apu_acp_ssc_config", 0x1901F000, 0x1000},
{"apu_conn_config", 0x19020000, 0x1000},
{"apu_sema_stimer", 0x19022000, 0x1000},
{"emi_config", 0x19023000, 0x1000},
{"apb_dapc_wrapper", 0x19064000, 0x1000},
{"infra_bcrm", 0x19065000, 0x1000},
{"apb_debug_ctl", 0x19066000, 0x1000},
{"noc_dapc_wrapper", 0x1906C000, 0x1000},
{"apu_noc_bcrm", 0x1906D000, 0x1000},
{"apu_noc_config_0", 0x1906E000, 0x2000},
{"apu_noc_config_1", 0x19070000, 0x2000},
{"apu_noc_config_2", 0x19072000, 0x2000},
{"apu_noc_config_3", 0x19074000, 0x2000},
{"apu_noc_config_4", 0x19076000, 0x2000},
{"apu_rpc(CPC)", 0x190F0000, 0x1000},
{"apu_rpc(DVFS)", 0x190F1000, 0x1000},
{"apu_ao_ctrl", 0x190F2000, 0x1000},
{"apb_dapc_ap_wrapper", 0x190F8000, 0x4000},
{"noc_dapc_ap_wrapper", 0x190FC000, 0x4000},
};
#define SEGMENT_COUNT (sizeof(range_table)/sizeof(struct reg_dump_info))
#endif