#ifndef __ECORE_HSI_DEBUG_TOOLS__
#define __ECORE_HSI_DEBUG_TOOLS__
enum block_addr
{
GRCBASE_GRC = 0x50000,
GRCBASE_MISCS = 0x9000,
GRCBASE_MISC = 0x8000,
GRCBASE_DBU = 0xa000,
GRCBASE_PGLUE_B = 0x2a8000,
GRCBASE_CNIG = 0x218000,
GRCBASE_CPMU = 0x30000,
GRCBASE_NCSI = 0x40000,
GRCBASE_OPTE = 0x53000,
GRCBASE_BMB = 0x540000,
GRCBASE_PCIE = 0x54000,
GRCBASE_MCP = 0xe00000,
GRCBASE_MCP2 = 0x52000,
GRCBASE_PSWHST = 0x2a0000,
GRCBASE_PSWHST2 = 0x29e000,
GRCBASE_PSWRD = 0x29c000,
GRCBASE_PSWRD2 = 0x29d000,
GRCBASE_PSWWR = 0x29a000,
GRCBASE_PSWWR2 = 0x29b000,
GRCBASE_PSWRQ = 0x280000,
GRCBASE_PSWRQ2 = 0x240000,
GRCBASE_PGLCS = 0x0,
GRCBASE_DMAE = 0xc000,
GRCBASE_PTU = 0x560000,
GRCBASE_TCM = 0x1180000,
GRCBASE_MCM = 0x1200000,
GRCBASE_UCM = 0x1280000,
GRCBASE_XCM = 0x1000000,
GRCBASE_YCM = 0x1080000,
GRCBASE_PCM = 0x1100000,
GRCBASE_QM = 0x2f0000,
GRCBASE_TM = 0x2c0000,
GRCBASE_DORQ = 0x100000,
GRCBASE_BRB = 0x340000,
GRCBASE_SRC = 0x238000,
GRCBASE_PRS = 0x1f0000,
GRCBASE_TSDM = 0xfb0000,
GRCBASE_MSDM = 0xfc0000,
GRCBASE_USDM = 0xfd0000,
GRCBASE_XSDM = 0xf80000,
GRCBASE_YSDM = 0xf90000,
GRCBASE_PSDM = 0xfa0000,
GRCBASE_TSEM = 0x1700000,
GRCBASE_MSEM = 0x1800000,
GRCBASE_USEM = 0x1900000,
GRCBASE_XSEM = 0x1400000,
GRCBASE_YSEM = 0x1500000,
GRCBASE_PSEM = 0x1600000,
GRCBASE_RSS = 0x238800,
GRCBASE_TMLD = 0x4d0000,
GRCBASE_MULD = 0x4e0000,
GRCBASE_YULD = 0x4c8000,
GRCBASE_XYLD = 0x4c0000,
GRCBASE_PTLD = 0x5a0000,
GRCBASE_YPLD = 0x5c0000,
GRCBASE_PRM = 0x230000,
GRCBASE_PBF_PB1 = 0xda0000,
GRCBASE_PBF_PB2 = 0xda4000,
GRCBASE_RPB = 0x23c000,
GRCBASE_BTB = 0xdb0000,
GRCBASE_PBF = 0xd80000,
GRCBASE_RDIF = 0x300000,
GRCBASE_TDIF = 0x310000,
GRCBASE_CDU = 0x580000,
GRCBASE_CCFC = 0x2e0000,
GRCBASE_TCFC = 0x2d0000,
GRCBASE_IGU = 0x180000,
GRCBASE_CAU = 0x1c0000,
GRCBASE_RGFS = 0xf00000,
GRCBASE_RGSRC = 0x320000,
GRCBASE_TGFS = 0xd00000,
GRCBASE_TGSRC = 0x322000,
GRCBASE_UMAC = 0x51000,
GRCBASE_XMAC = 0x210000,
GRCBASE_DBG = 0x10000,
GRCBASE_NIG = 0x500000,
GRCBASE_WOL = 0x600000,
GRCBASE_BMBN = 0x610000,
GRCBASE_IPC = 0x20000,
GRCBASE_NWM = 0x800000,
GRCBASE_NWS = 0x700000,
GRCBASE_MS = 0x6a0000,
GRCBASE_PHY_PCIE = 0x620000,
GRCBASE_LED = 0x6b8000,
GRCBASE_AVS_WRAP = 0x6b0000,
GRCBASE_PXPREQBUS = 0x56000,
GRCBASE_MISC_AEU = 0x8000,
GRCBASE_BAR0_MAP = 0x1c00000,
MAX_BLOCK_ADDR
};
enum block_id
{
BLOCK_GRC,
BLOCK_MISCS,
BLOCK_MISC,
BLOCK_DBU,
BLOCK_PGLUE_B,
BLOCK_CNIG,
BLOCK_CPMU,
BLOCK_NCSI,
BLOCK_OPTE,
BLOCK_BMB,
BLOCK_PCIE,
BLOCK_MCP,
BLOCK_MCP2,
BLOCK_PSWHST,
BLOCK_PSWHST2,
BLOCK_PSWRD,
BLOCK_PSWRD2,
BLOCK_PSWWR,
BLOCK_PSWWR2,
BLOCK_PSWRQ,
BLOCK_PSWRQ2,
BLOCK_PGLCS,
BLOCK_DMAE,
BLOCK_PTU,
BLOCK_TCM,
BLOCK_MCM,
BLOCK_UCM,
BLOCK_XCM,
BLOCK_YCM,
BLOCK_PCM,
BLOCK_QM,
BLOCK_TM,
BLOCK_DORQ,
BLOCK_BRB,
BLOCK_SRC,
BLOCK_PRS,
BLOCK_TSDM,
BLOCK_MSDM,
BLOCK_USDM,
BLOCK_XSDM,
BLOCK_YSDM,
BLOCK_PSDM,
BLOCK_TSEM,
BLOCK_MSEM,
BLOCK_USEM,
BLOCK_XSEM,
BLOCK_YSEM,
BLOCK_PSEM,
BLOCK_RSS,
BLOCK_TMLD,
BLOCK_MULD,
BLOCK_YULD,
BLOCK_XYLD,
BLOCK_PTLD,
BLOCK_YPLD,
BLOCK_PRM,
BLOCK_PBF_PB1,
BLOCK_PBF_PB2,
BLOCK_RPB,
BLOCK_BTB,
BLOCK_PBF,
BLOCK_RDIF,
BLOCK_TDIF,
BLOCK_CDU,
BLOCK_CCFC,
BLOCK_TCFC,
BLOCK_IGU,
BLOCK_CAU,
BLOCK_RGFS,
BLOCK_RGSRC,
BLOCK_TGFS,
BLOCK_TGSRC,
BLOCK_UMAC,
BLOCK_XMAC,
BLOCK_DBG,
BLOCK_NIG,
BLOCK_WOL,
BLOCK_BMBN,
BLOCK_IPC,
BLOCK_NWM,
BLOCK_NWS,
BLOCK_MS,
BLOCK_PHY_PCIE,
BLOCK_LED,
BLOCK_AVS_WRAP,
BLOCK_PXPREQBUS,
BLOCK_MISC_AEU,
BLOCK_BAR0_MAP,
MAX_BLOCK_ID
};
enum bin_dbg_buffer_type
{
BIN_BUF_DBG_MODE_TREE ,
BIN_BUF_DBG_DUMP_REG ,
BIN_BUF_DBG_DUMP_MEM ,
BIN_BUF_DBG_IDLE_CHK_REGS ,
BIN_BUF_DBG_IDLE_CHK_IMMS ,
BIN_BUF_DBG_IDLE_CHK_RULES ,
BIN_BUF_DBG_IDLE_CHK_PARSING_DATA ,
BIN_BUF_DBG_ATTN_BLOCKS ,
BIN_BUF_DBG_ATTN_REGS ,
BIN_BUF_DBG_ATTN_INDEXES ,
BIN_BUF_DBG_ATTN_NAME_OFFSETS ,
BIN_BUF_DBG_BUS_BLOCKS ,
BIN_BUF_DBG_BUS_LINES ,
BIN_BUF_DBG_BUS_BLOCKS_USER_DATA ,
BIN_BUF_DBG_BUS_LINE_NAME_OFFSETS ,
BIN_BUF_DBG_PARSING_STRINGS ,
MAX_BIN_DBG_BUFFER_TYPE
};
struct dbg_attn_bit_mapping
{
u16 data;
#define DBG_ATTN_BIT_MAPPING_VAL_MASK 0x7FFF
#define DBG_ATTN_BIT_MAPPING_VAL_SHIFT 0
#define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_MASK 0x1
#define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_SHIFT 15
};
struct dbg_attn_block_type_data
{
u16 names_offset ;
u16 reserved1;
u8 num_regs ;
u8 reserved2;
u16 regs_offset ;
};
struct dbg_attn_block
{
struct dbg_attn_block_type_data per_type_data[2] ;
};
struct dbg_attn_reg_result
{
u32 data;
#define DBG_ATTN_REG_RESULT_STS_ADDRESS_MASK 0xFFFFFF
#define DBG_ATTN_REG_RESULT_STS_ADDRESS_SHIFT 0
#define DBG_ATTN_REG_RESULT_NUM_REG_ATTN_MASK 0xFF
#define DBG_ATTN_REG_RESULT_NUM_REG_ATTN_SHIFT 24
u16 block_attn_offset ;
u16 reserved;
u32 sts_val ;
u32 mask_val ;
};
struct dbg_attn_block_result
{
u8 block_id ;
u8 data;
#define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_MASK 0x3
#define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_SHIFT 0
#define DBG_ATTN_BLOCK_RESULT_NUM_REGS_MASK 0x3F
#define DBG_ATTN_BLOCK_RESULT_NUM_REGS_SHIFT 2
u16 names_offset ;
struct dbg_attn_reg_result reg_results[15] ;
};
struct dbg_mode_hdr
{
u16 data;
#define DBG_MODE_HDR_EVAL_MODE_MASK 0x1
#define DBG_MODE_HDR_EVAL_MODE_SHIFT 0
#define DBG_MODE_HDR_MODES_BUF_OFFSET_MASK 0x7FFF
#define DBG_MODE_HDR_MODES_BUF_OFFSET_SHIFT 1
};
struct dbg_attn_reg
{
struct dbg_mode_hdr mode ;
u16 block_attn_offset ;
u32 data;
#define DBG_ATTN_REG_STS_ADDRESS_MASK 0xFFFFFF
#define DBG_ATTN_REG_STS_ADDRESS_SHIFT 0
#define DBG_ATTN_REG_NUM_REG_ATTN_MASK 0xFF
#define DBG_ATTN_REG_NUM_REG_ATTN_SHIFT 24
u32 sts_clr_address ;
u32 mask_address ;
};
enum dbg_attn_type
{
ATTN_TYPE_INTERRUPT,
ATTN_TYPE_PARITY,
MAX_DBG_ATTN_TYPE
};
struct dbg_bus_block
{
u8 num_of_lines ;
u8 has_latency_events ;
u16 lines_offset ;
};
struct dbg_bus_block_user_data
{
u8 num_of_lines ;
u8 has_latency_events ;
u16 names_offset ;
};
struct dbg_bus_line
{
u8 data;
#define DBG_BUS_LINE_NUM_OF_GROUPS_MASK 0xF
#define DBG_BUS_LINE_NUM_OF_GROUPS_SHIFT 0
#define DBG_BUS_LINE_IS_256B_MASK 0x1
#define DBG_BUS_LINE_IS_256B_SHIFT 4
#define DBG_BUS_LINE_RESERVED_MASK 0x7
#define DBG_BUS_LINE_RESERVED_SHIFT 5
u8 group_sizes ;
};
struct dbg_dump_cond_hdr
{
struct dbg_mode_hdr mode ;
u8 block_id ;
u8 data_size ;
};
struct dbg_dump_mem
{
u32 dword0;
#define DBG_DUMP_MEM_ADDRESS_MASK 0xFFFFFF
#define DBG_DUMP_MEM_ADDRESS_SHIFT 0
#define DBG_DUMP_MEM_MEM_GROUP_ID_MASK 0xFF
#define DBG_DUMP_MEM_MEM_GROUP_ID_SHIFT 24
u32 dword1;
#define DBG_DUMP_MEM_LENGTH_MASK 0xFFFFFF
#define DBG_DUMP_MEM_LENGTH_SHIFT 0
#define DBG_DUMP_MEM_WIDE_BUS_MASK 0x1
#define DBG_DUMP_MEM_WIDE_BUS_SHIFT 24
#define DBG_DUMP_MEM_RESERVED_MASK 0x7F
#define DBG_DUMP_MEM_RESERVED_SHIFT 25
};
struct dbg_dump_reg
{
u32 data;
#define DBG_DUMP_REG_ADDRESS_MASK 0x7FFFFF
#define DBG_DUMP_REG_ADDRESS_SHIFT 0
#define DBG_DUMP_REG_WIDE_BUS_MASK 0x1
#define DBG_DUMP_REG_WIDE_BUS_SHIFT 23
#define DBG_DUMP_REG_LENGTH_MASK 0xFF
#define DBG_DUMP_REG_LENGTH_SHIFT 24
};
struct dbg_dump_split_hdr
{
u32 hdr;
#define DBG_DUMP_SPLIT_HDR_DATA_SIZE_MASK 0xFFFFFF
#define DBG_DUMP_SPLIT_HDR_DATA_SIZE_SHIFT 0
#define DBG_DUMP_SPLIT_HDR_SPLIT_TYPE_ID_MASK 0xFF
#define DBG_DUMP_SPLIT_HDR_SPLIT_TYPE_ID_SHIFT 24
};
struct dbg_idle_chk_cond_hdr
{
struct dbg_mode_hdr mode ;
u16 data_size ;
};
struct dbg_idle_chk_cond_reg
{
u32 data;
#define DBG_IDLE_CHK_COND_REG_ADDRESS_MASK 0x7FFFFF
#define DBG_IDLE_CHK_COND_REG_ADDRESS_SHIFT 0
#define DBG_IDLE_CHK_COND_REG_WIDE_BUS_MASK 0x1
#define DBG_IDLE_CHK_COND_REG_WIDE_BUS_SHIFT 23
#define DBG_IDLE_CHK_COND_REG_BLOCK_ID_MASK 0xFF
#define DBG_IDLE_CHK_COND_REG_BLOCK_ID_SHIFT 24
u16 num_entries ;
u8 entry_size ;
u8 start_entry ;
};
struct dbg_idle_chk_info_reg
{
u32 data;
#define DBG_IDLE_CHK_INFO_REG_ADDRESS_MASK 0x7FFFFF
#define DBG_IDLE_CHK_INFO_REG_ADDRESS_SHIFT 0
#define DBG_IDLE_CHK_INFO_REG_WIDE_BUS_MASK 0x1
#define DBG_IDLE_CHK_INFO_REG_WIDE_BUS_SHIFT 23
#define DBG_IDLE_CHK_INFO_REG_BLOCK_ID_MASK 0xFF
#define DBG_IDLE_CHK_INFO_REG_BLOCK_ID_SHIFT 24
u16 size ;
struct dbg_mode_hdr mode ;
};
union dbg_idle_chk_reg
{
struct dbg_idle_chk_cond_reg cond_reg ;
struct dbg_idle_chk_info_reg info_reg ;
};
struct dbg_idle_chk_result_hdr
{
u16 rule_id ;
u16 mem_entry_id ;
u8 num_dumped_cond_regs ;
u8 num_dumped_info_regs ;
u8 severity ;
u8 reserved;
};
struct dbg_idle_chk_result_reg_hdr
{
u8 data;
#define DBG_IDLE_CHK_RESULT_REG_HDR_IS_MEM_MASK 0x1
#define DBG_IDLE_CHK_RESULT_REG_HDR_IS_MEM_SHIFT 0
#define DBG_IDLE_CHK_RESULT_REG_HDR_REG_ID_MASK 0x7F
#define DBG_IDLE_CHK_RESULT_REG_HDR_REG_ID_SHIFT 1
u8 start_entry ;
u16 size ;
};
struct dbg_idle_chk_rule
{
u16 rule_id ;
u8 severity ;
u8 cond_id ;
u8 num_cond_regs ;
u8 num_info_regs ;
u8 num_imms ;
u8 reserved1;
u16 reg_offset ;
u16 imm_offset ;
};
struct dbg_idle_chk_rule_parsing_data
{
u32 data;
#define DBG_IDLE_CHK_RULE_PARSING_DATA_HAS_FW_MSG_MASK 0x1
#define DBG_IDLE_CHK_RULE_PARSING_DATA_HAS_FW_MSG_SHIFT 0
#define DBG_IDLE_CHK_RULE_PARSING_DATA_STR_OFFSET_MASK 0x7FFFFFFF
#define DBG_IDLE_CHK_RULE_PARSING_DATA_STR_OFFSET_SHIFT 1
};
enum dbg_idle_chk_severity_types
{
IDLE_CHK_SEVERITY_ERROR ,
IDLE_CHK_SEVERITY_ERROR_NO_TRAFFIC ,
IDLE_CHK_SEVERITY_WARNING ,
MAX_DBG_IDLE_CHK_SEVERITY_TYPES
};
struct dbg_bus_block_data
{
u16 data;
#define DBG_BUS_BLOCK_DATA_ENABLE_MASK_MASK 0xF
#define DBG_BUS_BLOCK_DATA_ENABLE_MASK_SHIFT 0
#define DBG_BUS_BLOCK_DATA_RIGHT_SHIFT_MASK 0xF
#define DBG_BUS_BLOCK_DATA_RIGHT_SHIFT_SHIFT 4
#define DBG_BUS_BLOCK_DATA_FORCE_VALID_MASK_MASK 0xF
#define DBG_BUS_BLOCK_DATA_FORCE_VALID_MASK_SHIFT 8
#define DBG_BUS_BLOCK_DATA_FORCE_FRAME_MASK_MASK 0xF
#define DBG_BUS_BLOCK_DATA_FORCE_FRAME_MASK_SHIFT 12
u8 line_num ;
u8 hw_id ;
};
enum dbg_bus_clients
{
DBG_BUS_CLIENT_RBCN,
DBG_BUS_CLIENT_RBCP,
DBG_BUS_CLIENT_RBCR,
DBG_BUS_CLIENT_RBCT,
DBG_BUS_CLIENT_RBCU,
DBG_BUS_CLIENT_RBCF,
DBG_BUS_CLIENT_RBCX,
DBG_BUS_CLIENT_RBCS,
DBG_BUS_CLIENT_RBCH,
DBG_BUS_CLIENT_RBCZ,
DBG_BUS_CLIENT_OTHER_ENGINE,
DBG_BUS_CLIENT_TIMESTAMP,
DBG_BUS_CLIENT_CPU,
DBG_BUS_CLIENT_RBCY,
DBG_BUS_CLIENT_RBCQ,
DBG_BUS_CLIENT_RBCM,
DBG_BUS_CLIENT_RBCB,
DBG_BUS_CLIENT_RBCW,
DBG_BUS_CLIENT_RBCV,
MAX_DBG_BUS_CLIENTS
};
enum dbg_bus_constraint_ops
{
DBG_BUS_CONSTRAINT_OP_EQ ,
DBG_BUS_CONSTRAINT_OP_NE ,
DBG_BUS_CONSTRAINT_OP_LT ,
DBG_BUS_CONSTRAINT_OP_LTC ,
DBG_BUS_CONSTRAINT_OP_LE ,
DBG_BUS_CONSTRAINT_OP_LEC ,
DBG_BUS_CONSTRAINT_OP_GT ,
DBG_BUS_CONSTRAINT_OP_GTC ,
DBG_BUS_CONSTRAINT_OP_GE ,
DBG_BUS_CONSTRAINT_OP_GEC ,
MAX_DBG_BUS_CONSTRAINT_OPS
};
struct dbg_bus_trigger_state_data
{
u8 data;
#define DBG_BUS_TRIGGER_STATE_DATA_BLOCK_SHIFTED_ENABLE_MASK_MASK 0xF
#define DBG_BUS_TRIGGER_STATE_DATA_BLOCK_SHIFTED_ENABLE_MASK_SHIFT 0
#define DBG_BUS_TRIGGER_STATE_DATA_CONSTRAINT_DWORD_MASK_MASK 0xF
#define DBG_BUS_TRIGGER_STATE_DATA_CONSTRAINT_DWORD_MASK_SHIFT 4
};
struct dbg_bus_mem_addr
{
u32 lo;
u32 hi;
};
struct dbg_bus_pci_buf_data
{
struct dbg_bus_mem_addr phys_addr ;
struct dbg_bus_mem_addr virt_addr ;
u32 size ;
};
struct dbg_bus_storm_eid_range_params
{
u8 min ;
u8 max ;
};
struct dbg_bus_storm_eid_mask_params
{
u8 val ;
u8 mask ;
};
union dbg_bus_storm_eid_params
{
struct dbg_bus_storm_eid_range_params range ;
struct dbg_bus_storm_eid_mask_params mask ;
};
struct dbg_bus_storm_data
{
u8 enabled ;
u8 mode ;
u8 hw_id ;
u8 eid_filter_en ;
u8 eid_range_not_mask ;
u8 cid_filter_en ;
union dbg_bus_storm_eid_params eid_filter_params ;
u32 cid ;
};
struct dbg_bus_data
{
u32 app_version ;
u8 state ;
u8 hw_dwords ;
u16 hw_id_mask ;
u8 num_enabled_blocks ;
u8 num_enabled_storms ;
u8 target ;
u8 one_shot_en ;
u8 grc_input_en ;
u8 timestamp_input_en ;
u8 filter_en ;
u8 adding_filter ;
u8 filter_pre_trigger ;
u8 filter_post_trigger ;
u16 reserved;
u8 trigger_en ;
struct dbg_bus_trigger_state_data trigger_states[3] ;
u8 next_trigger_state ;
u8 next_constraint_id ;
u8 unify_inputs ;
u8 rcv_from_other_engine ;
struct dbg_bus_pci_buf_data pci_buf ;
struct dbg_bus_block_data blocks[88] ;
struct dbg_bus_storm_data storms[6] ;
};
enum dbg_bus_filter_types
{
DBG_BUS_FILTER_TYPE_OFF ,
DBG_BUS_FILTER_TYPE_PRE ,
DBG_BUS_FILTER_TYPE_POST ,
DBG_BUS_FILTER_TYPE_ON ,
MAX_DBG_BUS_FILTER_TYPES
};
enum dbg_bus_frame_modes
{
DBG_BUS_FRAME_MODE_0HW_4ST=0 ,
DBG_BUS_FRAME_MODE_4HW_0ST=3 ,
DBG_BUS_FRAME_MODE_8HW_0ST=4 ,
MAX_DBG_BUS_FRAME_MODES
};
enum dbg_bus_other_engine_modes
{
DBG_BUS_OTHER_ENGINE_MODE_NONE,
DBG_BUS_OTHER_ENGINE_MODE_DOUBLE_BW_TX,
DBG_BUS_OTHER_ENGINE_MODE_DOUBLE_BW_RX,
DBG_BUS_OTHER_ENGINE_MODE_CROSS_ENGINE_TX,
DBG_BUS_OTHER_ENGINE_MODE_CROSS_ENGINE_RX,
MAX_DBG_BUS_OTHER_ENGINE_MODES
};
enum dbg_bus_post_trigger_types
{
DBG_BUS_POST_TRIGGER_RECORD ,
DBG_BUS_POST_TRIGGER_DROP ,
MAX_DBG_BUS_POST_TRIGGER_TYPES
};
enum dbg_bus_pre_trigger_types
{
DBG_BUS_PRE_TRIGGER_START_FROM_ZERO ,
DBG_BUS_PRE_TRIGGER_NUM_CHUNKS ,
DBG_BUS_PRE_TRIGGER_DROP ,
MAX_DBG_BUS_PRE_TRIGGER_TYPES
};
enum dbg_bus_semi_frame_modes
{
DBG_BUS_SEMI_FRAME_MODE_0SLOW_4FAST=0 ,
DBG_BUS_SEMI_FRAME_MODE_4SLOW_0FAST=3 ,
MAX_DBG_BUS_SEMI_FRAME_MODES
};
enum dbg_bus_states
{
DBG_BUS_STATE_IDLE ,
DBG_BUS_STATE_READY ,
DBG_BUS_STATE_RECORDING ,
DBG_BUS_STATE_STOPPED ,
MAX_DBG_BUS_STATES
};
enum dbg_bus_storm_modes
{
DBG_BUS_STORM_MODE_PRINTF ,
DBG_BUS_STORM_MODE_PRAM_ADDR ,
DBG_BUS_STORM_MODE_DRA_RW ,
DBG_BUS_STORM_MODE_DRA_W ,
DBG_BUS_STORM_MODE_LD_ST_ADDR ,
DBG_BUS_STORM_MODE_DRA_FSM ,
DBG_BUS_STORM_MODE_RH ,
DBG_BUS_STORM_MODE_FOC ,
DBG_BUS_STORM_MODE_EXT_STORE ,
MAX_DBG_BUS_STORM_MODES
};
enum dbg_bus_targets
{
DBG_BUS_TARGET_ID_INT_BUF ,
DBG_BUS_TARGET_ID_NIG ,
DBG_BUS_TARGET_ID_PCI ,
MAX_DBG_BUS_TARGETS
};
struct dbg_grc_data
{
u8 params_initialized ;
u8 reserved1;
u16 reserved2;
u32 param_val[48] ;
};
enum dbg_grc_params
{
DBG_GRC_PARAM_DUMP_TSTORM ,
DBG_GRC_PARAM_DUMP_MSTORM ,
DBG_GRC_PARAM_DUMP_USTORM ,
DBG_GRC_PARAM_DUMP_XSTORM ,
DBG_GRC_PARAM_DUMP_YSTORM ,
DBG_GRC_PARAM_DUMP_PSTORM ,
DBG_GRC_PARAM_DUMP_REGS ,
DBG_GRC_PARAM_DUMP_RAM ,
DBG_GRC_PARAM_DUMP_PBUF ,
DBG_GRC_PARAM_DUMP_IOR ,
DBG_GRC_PARAM_DUMP_VFC ,
DBG_GRC_PARAM_DUMP_CM_CTX ,
DBG_GRC_PARAM_DUMP_PXP ,
DBG_GRC_PARAM_DUMP_RSS ,
DBG_GRC_PARAM_DUMP_CAU ,
DBG_GRC_PARAM_DUMP_QM ,
DBG_GRC_PARAM_DUMP_MCP ,
DBG_GRC_PARAM_RESERVED ,
DBG_GRC_PARAM_DUMP_CFC ,
DBG_GRC_PARAM_DUMP_IGU ,
DBG_GRC_PARAM_DUMP_BRB ,
DBG_GRC_PARAM_DUMP_BTB ,
DBG_GRC_PARAM_DUMP_BMB ,
DBG_GRC_PARAM_DUMP_NIG ,
DBG_GRC_PARAM_DUMP_MULD ,
DBG_GRC_PARAM_DUMP_PRS ,
DBG_GRC_PARAM_DUMP_DMAE ,
DBG_GRC_PARAM_DUMP_TM ,
DBG_GRC_PARAM_DUMP_SDM ,
DBG_GRC_PARAM_DUMP_DIF ,
DBG_GRC_PARAM_DUMP_STATIC ,
DBG_GRC_PARAM_UNSTALL ,
DBG_GRC_PARAM_NUM_LCIDS ,
DBG_GRC_PARAM_NUM_LTIDS ,
DBG_GRC_PARAM_EXCLUDE_ALL ,
DBG_GRC_PARAM_CRASH ,
DBG_GRC_PARAM_PARITY_SAFE ,
DBG_GRC_PARAM_DUMP_CM ,
DBG_GRC_PARAM_DUMP_PHY ,
DBG_GRC_PARAM_NO_MCP ,
DBG_GRC_PARAM_NO_FW_VER ,
MAX_DBG_GRC_PARAMS
};
enum dbg_reset_regs
{
DBG_RESET_REG_MISCS_PL_UA,
DBG_RESET_REG_MISCS_PL_HV,
DBG_RESET_REG_MISCS_PL_HV_2,
DBG_RESET_REG_MISC_PL_UA,
DBG_RESET_REG_MISC_PL_HV,
DBG_RESET_REG_MISC_PL_PDA_VMAIN_1,
DBG_RESET_REG_MISC_PL_PDA_VMAIN_2,
DBG_RESET_REG_MISC_PL_PDA_VAUX,
MAX_DBG_RESET_REGS
};
enum dbg_status
{
DBG_STATUS_OK,
DBG_STATUS_APP_VERSION_NOT_SET,
DBG_STATUS_UNSUPPORTED_APP_VERSION,
DBG_STATUS_DBG_BLOCK_NOT_RESET,
DBG_STATUS_INVALID_ARGS,
DBG_STATUS_OUTPUT_ALREADY_SET,
DBG_STATUS_INVALID_PCI_BUF_SIZE,
DBG_STATUS_PCI_BUF_ALLOC_FAILED,
DBG_STATUS_PCI_BUF_NOT_ALLOCATED,
DBG_STATUS_TOO_MANY_INPUTS,
DBG_STATUS_INPUT_OVERLAP,
DBG_STATUS_HW_ONLY_RECORDING,
DBG_STATUS_STORM_ALREADY_ENABLED,
DBG_STATUS_STORM_NOT_ENABLED,
DBG_STATUS_BLOCK_ALREADY_ENABLED,
DBG_STATUS_BLOCK_NOT_ENABLED,
DBG_STATUS_NO_INPUT_ENABLED,
DBG_STATUS_NO_FILTER_TRIGGER_64B,
DBG_STATUS_FILTER_ALREADY_ENABLED,
DBG_STATUS_TRIGGER_ALREADY_ENABLED,
DBG_STATUS_TRIGGER_NOT_ENABLED,
DBG_STATUS_CANT_ADD_CONSTRAINT,
DBG_STATUS_TOO_MANY_TRIGGER_STATES,
DBG_STATUS_TOO_MANY_CONSTRAINTS,
DBG_STATUS_RECORDING_NOT_STARTED,
DBG_STATUS_DATA_DIDNT_TRIGGER,
DBG_STATUS_NO_DATA_RECORDED,
DBG_STATUS_DUMP_BUF_TOO_SMALL,
DBG_STATUS_DUMP_NOT_CHUNK_ALIGNED,
DBG_STATUS_UNKNOWN_CHIP,
DBG_STATUS_VIRT_MEM_ALLOC_FAILED,
DBG_STATUS_BLOCK_IN_RESET,
DBG_STATUS_INVALID_TRACE_SIGNATURE,
DBG_STATUS_INVALID_NVRAM_BUNDLE,
DBG_STATUS_NVRAM_GET_IMAGE_FAILED,
DBG_STATUS_NON_ALIGNED_NVRAM_IMAGE,
DBG_STATUS_NVRAM_READ_FAILED,
DBG_STATUS_IDLE_CHK_PARSE_FAILED,
DBG_STATUS_MCP_TRACE_BAD_DATA,
DBG_STATUS_MCP_TRACE_NO_META,
DBG_STATUS_MCP_COULD_NOT_HALT,
DBG_STATUS_MCP_COULD_NOT_RESUME,
DBG_STATUS_RESERVED2,
DBG_STATUS_SEMI_FIFO_NOT_EMPTY,
DBG_STATUS_IGU_FIFO_BAD_DATA,
DBG_STATUS_MCP_COULD_NOT_MASK_PRTY,
DBG_STATUS_FW_ASSERTS_PARSE_FAILED,
DBG_STATUS_REG_FIFO_BAD_DATA,
DBG_STATUS_PROTECTION_OVERRIDE_BAD_DATA,
DBG_STATUS_DBG_ARRAY_NOT_SET,
DBG_STATUS_FILTER_BUG,
DBG_STATUS_NON_MATCHING_LINES,
DBG_STATUS_INVALID_TRIGGER_DWORD_OFFSET,
DBG_STATUS_DBG_BUS_IN_USE,
MAX_DBG_STATUS
};
enum dbg_storms
{
DBG_TSTORM_ID,
DBG_MSTORM_ID,
DBG_USTORM_ID,
DBG_XSTORM_ID,
DBG_YSTORM_ID,
DBG_PSTORM_ID,
MAX_DBG_STORMS
};
struct idle_chk_data
{
u32 buf_size ;
u8 buf_size_set ;
u8 reserved1;
u16 reserved2;
};
struct dbg_tools_data
{
struct dbg_grc_data grc ;
struct dbg_bus_data bus ;
struct idle_chk_data idle_chk ;
u8 mode_enable[40] ;
u8 block_in_reset[88] ;
u8 chip_id ;
u8 platform_id ;
u8 initialized ;
u8 use_dmae ;
u32 num_regs_read ;
};
#endif