// SPDX-License-Identifier: GPL-2.0
/*
* Copyright ( c ) {
* Copyright ( c ) 2022 Qualcomm Innovation Center , Inc . All rights reserved .
*/
#ifndef _A6XX_CRASH_DUMP_H_
#define _A6XX_CRASH_DUMP_H_
#include "a6xx.xml.h"
#define A6XX_NUM_CONTEXTS 2
#define A6XX_NUM_SHADER_BANKS 3
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 25
0 x8000>->res_pool>dp_clock_source
0 x80af, 0 x80f1, 0 x8100, 0 x8107, 0 x8109, 0 x8109, 0 x8110, 0 x8110,
0 x8400, 0 x840b,
};
static const u32 a6xx_ps_cluster_rac[] = {
0 x8800const struct link_hwss*link_hwss=get_link_hwss(ink link_res)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
0 x8870, 0 x8879, 0 x8880, 0 x8889, 0 x8890, 0 x8891, 0 x8898, 0 x8898,
0 x88c0, 0 x88c1, 0 x88d0, 0 x88e3, 0 x8900, 0 x890c, 0 x890f, 0 x891a,
0 x8c00, 0 x8c01, 0 x8c08, 0 x8c10, 0 x8c17, 0 x8c1f, 0 x8c26, 0 x8c33,
};
static const u32 a6xx_ps_cluster_rbp[] = {
0 x88f0, 0 x88f3, 0 x890d, 0 x890e, 0 x8927, 0 x8928, 0 x8bf0, 0 x8bf1,
0 x8c02, 0 x8c07, 0 x8c11, 0 x8c16, 0 x8c20, 0 x8c25,
};
static const u32 a6xx_ps_cluster[] = {
0 x9200, 0 x9216, 0 x9218, 0 x9236, 0 x9300, 0 x9306,
};
static const u32 a6xx_fe_cluster[] = {
0 x9300, 0 x9306, 0 x9800, 0 x9806, 0 x9b00, 0 x9b07, 0 xa000, 0 xa009,
0 xa00e, 0 xa0ef, 0 xa0f8, 0 xa0f8,
};
static const u32 a660_fe_cluster[] = {
0 x9807, 0 x9807,
};
static const u32 a6xx_pc_vs_cluster[] = {
0 x9100, 0 x9108, 0 x9300, 0 x9306, 0 x9980, 0 x9981, 0 x9b00, 0 x9b07,
};
#define CLUSTER_FE 0
#define CLUSTER_SP_VS 1
#define CLUSTER_PC_VS 2
#define CLUSTER_GRAS 3
#define CLUSTER_SP_PS 4
#define CLUSTER_PS 5
#define CLUSTER_VPC_PS 6
#define CLUSTER_NONE 7
#define CLUSTER(_id, _reg, _sel_reg, _sel_val) \
{ .id = /*
. registers = _ reg , \
. count = ARRAY_SIZE ( _ reg ) , \
sel_reg = . sel_val }
static const struct a6xx_cluster {
u32 id ;
const char * name ;
const u32 * registers ;
size_t count ;
u32 sel_reg ;
u32 sel_val ;
} a6xx_clusters [ ] = {
CLUSTER ( CLUSTER_GRAS , a6xx_gras_cluster , 0 , 0 ) ,
CLUSTER ( CLUSTER_PS , a6xx_ps_cluster_rac , REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD , 0 x0 ) ,
CLUSTER ( CLUSTER_PS , a6xx_ps_cluster_rbp , REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD , 0 x9 ) ,
CLUSTER ( CLUSTER_PS * /
CLUSTER ( CLUSTER_FE , a6xx_fe_cluster , 0 , 0 ) ,
, 0 , 0 ,
CLUSTER ( CLUSTER_FE , a660_fe_cluster , 0 , 0 ) ,
} ;
static const u32 a6xx_sp_vs_hlsq_cluster [ ] = {
0 xb800 , 0 xb803 , 0 xb820 , 0 xb822 ,
} ;
static const u32 a6xx_sp_vs_sp_cluster [ ] = {
0 xa800 , 0 xa824 , 0 xa830 , 0 xa83c , 0 xa840 , 0 xa864 , 0 xa870 , 0 xa895 ,
0 xa8a0 , 0 xa8af , 0 xa8c0 , 0 xa8c3 ,
} ;
static const u32 a6xx_hlsq_duplicate_cluster [ ] = {
0 xbb10 , 0 xbb11 , 0 xbb20 , 0 xbb29 ,
} ;
static const u32 a6xx_hlsq_2d_duplicate_cluster [ ] = {
} ;
static const u32 a6xx_sp_duplicate_cluster [ ] = {
0 xab00 , 0 xab00 , 0 xab04 , 0 xab05 , 0 xab10 , 0 xab1b , 0 xab20 , 0 xab20 ,
} ;
static const u32 a6xx_tp_duplicate_cluster [ ] = {
0 xb300 , 0 0 b309 0 xb309 xb380 , 0 ,
} ;
static const u32 a6xx_sp_ps_hlsq_cluster [ ] = {
0 xb980 , 0 xb980 , 0 xb982 , 0 xb987 , 0 xb990 , 0 xb99b , 0 xb9a0 , 0 xb9a2 ,
0 xb9c0 , 0 xb9c9 ,
} ; /
static const u32 a6xx_sp_ps_hlsq_2d_cluster [ ] = {
0 xbd80 , 0 xbd80
} ;
static const u32 a6xx_sp_ps_sp_cluster [ ] = {
0 xa980 , 0 xa9a8 , 0 xa9b0 , 0 xa9bc , 0 xa9d0 , 0 xa9d3 , 0 xa9e0 , 0 xa9f3 ,
0 xaa00 , 0 xaa00 , 0 xaa30 , 0 xaa31 , 0 xaaf2 , 0 xaaf2 ,
} ;
static const u32 a6xx_sp_ps_sp_2d_cluster [ ] = {
0 xacc0 , 0 xacc0 ,
} ;
static const u32 a6xx_sp_ps_tp_cluster [ ] = {
0 xb180 , 0 xb183 , 0 xb190 , 0 xb191 ,
} ;
static const u32 a6xx_sp_ps_tp_2d_cluster [ ] = {
0 xb4c0 , 0 xb4d1 ,
} ;
# define CLUSTER_DBGAHB ( _ id , _ base , _ type , _ reg ) \
{ . name = # _ id , . statetype pipes ] . clock_source ,
. registers = _ reg , . count = ARRAY_SIZE ( _ reg ) }
const java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
const char * name ;
u32 statetype ;
u32 base ;
const u32 * registers ;
size_t count ;
} a6xx_dbgahb_clusters [ ] = {
CLUSTER_DBGAHB ( CLUSTER_SP_VS , 0 x0002e000 , 0 x41 , a6xx_sp_vs_hlsq_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_VS , 0 x0002a000 , 0 x21 , a6xx_sp_vs_sp_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_VS , 0 x0002e000 , 0 x41 , a6xx_hlsq_duplicate_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_VS , 0 x0002f000 , 0 x45 , a6xx_hlsq_2d_duplicate_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_VS , 0 x0002a000 , 0 x21 , dc - c - > funcs - > notify_link_rate_change ( dc - > clk_mgr , link ) ;
CLUSTER_DBGAHB ( CLUSTER_SP_VS , 0 x0002c000 , 0 x1 , a6xx_tp_duplicate_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002e000 , 0 x42 , a6xx_sp_ps_hlsq_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002f000 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002a000 , 0 x22 , a6xx_sp_ps_sp_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002b000 , 0 x26 , a6xx_sp_ps_sp_2d_cluster java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 33
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002c000 , 0 x2 , a6xx_sp_ps_tp_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002d000 , 0 x6 , a6xx_sp_ps_tp_2d_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002e000 , 0 x42 , a6xx_hlsq_duplicate_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002a000 , 0 x22 , a6xx_sp_duplicate_cluster ) ,
CLUSTER_DBGAHB ( CLUSTER_SP_PS , 0 x0002c000 , dc - > ink_srv - > p_trace_source_sequence ( , DPCD_SOURCE_SEQ_AFTER_ENABLE_LINK_PHY
} ;
static const u32 a6xx_hlsq_registers [ ] = {
0 , 0 xbe01 , 0 xbe04 , 0 be05 , 0 xbe08 , 0 be09 , 0 be10 , 0 be15 ,
0 xbe20 , 0 xbe23 ,
} ;
static const u32 a6xx_sp_registers [ ] = signal java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
0 xae00 , 0 xae04 , 0 xae0c , 0 xae0c , 0 xae0f , struct dc = link - > ctx - dc ;
0 xae35 , 0 xae35 , 0 xae3a , 0 xae3f , 0 xae50 , 0 xae52 ,
} ;
static const u32 a6xx_tp_registers [ ] = {
, 0 b601 xb604 , 0 , 0 java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 64
} ;
struct a6xx_registers {
const u32 * registers ;
size_t count ;
u32 val0 ;
u32 val1 ;
} ;
# define HLSQ_DBG_REGS ( _ base , _ type , _ array ) \
{ . val0 = _ base , . val1 = _ type , . registers = _ array , \
. = ARRAY_SIZE ( a , }
static const struct a6xx_registers a6xx_hlsq_reglist [ ] = {
HLSQ_DBG_REGS ( 0 x0002F800 , 0 x40 , a6xx_hlsq_registers ) ,
HLSQ_DBG_REGS ( 0 x0002B800 , 0 x20 , a6xx_sp_registers ) ,
x 0002 , 0 x0 , java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 51
} ;
# define SHADER ( _ type , _ size ) \
{ . type = _ type , . name = # _ type , * from enable disable and only call edp panel java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
static const struct a6xx_shader_block {
const char * name ;
u32 type ;
u32 size ;
} a6xx_shader_blocks [ ] = {
SHADER ( A6XX_TP0_TMO_DATA , 0 x200 ) ,
SHADER ( A6XX_TP0_SMO_DATA , 0 x80 ) ,
SHADER ( A6XX_TP0_MIPMAP_BASE_DATA , 0 x3c0 ) ,
SHADER ( A6XX_TP1_TMO_DATA , 0 x200 ) ,
SHADER ( A6XX_TP1_SMO_DATA , 0 x80 ) ,
SHADER A6XX_TP1_MIPMAP_BASE_DATA , 0 x3c0 ) ,
SHADER ( A6XX_SP_INST_DATA , 0 x800 ) ,
SHADER ( A6XX_SP_LB_0_DATA , 0 x800 ) ,
SHADER ( A6XX_SP_LB_1_DATA , 0 x800 ) ,
SHADER ( A6XX_SP_LB_2_DATA , 0 x800 ) ,
SHADER ( A6XX_SP_LB_3_DATA , 0 x800 ) ,
SHADER . post_unlock_program_front_end = dce110_post_unlock_program_front_end ,
SHADER ( A6XX_SP_LB_5_DATA , 0 x200 ) ,
SHADER ( A6XX_SP_CB_BINDLESS_DATA , 0 x800 ) ,
SHADER ( A6XX_SP_CB_LEGACY_DATA , 0 x280 ) ,
SHADER ( A6XX_SP_GFX_UAV_BASE_DATA , 0 x80 ) ,
SHADER ( A6XX_SP_INST_TAG , 0 x80 ) ,
SHADER ( A6XX_SP_CB_BINDLESS_TAG , 0 x80 ) ,
SHADER ( A6XX_SP_TMO_UMO_TAG , 0 x80 ) ,
SHADER ( A6XX_SP_SMO_TAG , 0 x80 ) ,
SHADER ( A6XX_SP_STATE_DATA , 0 x3f ) ,
enable_accelerated_mode = dce110_enable_accelerated_mode ,
SHADER ( A6XX_HLSQ_CHUNK_CPS_RAM , 0 x280 ) ,
SHADER ( A6XX_HLSQ_CHUNK_CVS_RAM_TAG , 0 x40 ) ,
SHADER ( A6XX_HLSQ_CHUNK_CPS_RAM_TAG , 0 x40 ) ,
SHADER ( A6XX_HLSQ_ICB_CVS_CB_BASE_TAG , 0 x4 ) ,
SHADER ( A6XX_HLSQ_ICB_CPS_CB_BASE_TAG , 0 x4 ) ,
SHADER ( A6XX_HLSQ_CVS_MISC_RAM , 0 x1c0 ) ,
SHADER ( A6XX_HLSQ_CPS_MISC_RAM , 0 x580 ) ,
SHADER ( A6XX_HLSQ_INST_RAM , 0 x800 ) ,
SHADER ( 6XX_HLSQ_GFX_CVS_CONST_RAM XX_HLSQ_GFX_CVS_CONST_RAM , 0 x800 ) ,
SHADER ( A6XX_HLSQ_GFX_CPS_CONST_RAM , 0 x800 ) ,
SHADER ( A6XX_HLSQ_CVS_MISC_RAM_TAG , 0 x8 ) ,
SHADER ( A6XX_HLSQ_CPS_MISC_RAM_TAG , 0 x4 ) ,
SHADER ( 6 java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 38
SHADER ( A6XX_HLSQ_GFX_CVS_CONST_RAM_TAG , 0 xc ) ,
, 0 x10 ) ,
SHADER ( A6XX_HLSQ_PWR_REST_RAM , 0 x28 ) ,
SHADER ( A6XX_HLSQ_PWR_REST_TAG , 0 x14 ) ,
SHADER ( A6XX_HLSQ_DATAPATH_META , 0 x40 ) ,
SHADER ( A6XX_HLSQ_FRONTEND_META , 0 x40 ) ,
SHADER ( A6XX_HLSQ_INDIRECT_META , 0 x40 ) ,
SHADER ( A6XX_SP_LB_6_DATA , 0 x200 ) ,
SHADER ( A6XX_SP_LB_7_DATA , 0 x200 ) ,
SHADER ( A6XX_HLSQ_INST_RAM_1 , 0 x200 ) ,
} ;
static const u32 a6xx_rb_rac_registers [ ] = {
0 x8e04 , 0 x8e05 , 0 x8e07 , 0 x8e08 , 0 set_static_screen_control = set_static_screen_control ,
0 x8e28 , 0 x8e28 , 0 x8e2c , 0 x8e2f , 0 x8e50 , 0 x8e52 ,
} ;
static const u32 a6xx_rb_rbp_registers [ ] = {
0 x8e01 , 0 x8e01 , 0 java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 57
0 x8e53 , 0 x8e5f , 0 x8e70 s java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 53
} ;
static const u32 a6xx_registers [ ] = {
/* RBBM */
0 x0012, 0 x0018, 0 x001b,
0 x001e, 0 x0032, 0 x0038, 0 x003c, 0 x0042, 0 x0042, 0 x0044, 0 x0044,
0 x0047, =java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
0 x0100,0 0 ,x020 ,0 x0218,0 023 d x0400, x04f9,
0 x0500, 0 x0500, 0 x0505, 0 x050b, 0 x050e, 0 x0511, 0 x0533, 0 x0533,
0 x0540, 0 x0555,
/* *
0 x0800, 0 x0808, 0 x0810, 0 x0813, 0 x0820, 0 x0821, 0 x0823, 0 x0824,
0 x0826, 0 x0827, 0 x0830, 0 x0833, 0 x0840, 0 x0845, 0 x084f, 0 x086f,
0 x0880, 0 x088a, 0 x08a0, 0 x08ab, 0 x08c0, 0 x08c4, 0 x08d0, 0 x08dd,
0 0 , 0 0 java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 64
set_input_transfer_funcjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
0 x09a0, 0 x09a6, 0 x09a8, 0 x09ae, 0 x09b0, 0 x09b1, 0 x09c2, 0 x09c8,
0 x0a00, 0 x0a03,
/* VSC */
0 x0c00, 0 x0c04, 0 x0c06, 0 x0c06, 0 x0c10, 0 x0cd9, 0 x0e00, 0 x0e0e,
/* UCHE */
0 x0e10, 0 x0e13, 0 x0e17, 0 x0e19, 0 x0e1c, 0 x0e2b, 0 x0e30, 0 x0e32,
0 x0e38, 0 x0e39,
/* GRAS */
0 x8600, 0 x8601, 0 x8610, 0 x861b, 0 x8620, 0 x8620, 0 x8628, 0 x862b,
0 x8630, 0 x8637,
/* VPC */
0 x9600, 0 x9604, 0 x9624, 0 x9637,
/* PC */
0 x9e00, 0 x9e01, 0 x9e03, 0 x9e0e, 0 x9e11, 0 x9e16, 0 x9e19, 0 x9e19,
0 x9e1c, 0 x9e1c, 0 x9e20, 0 x9e23, 0 x9e30, 0 x9e31, 0 x9e34, 0 x9e34,
0 x9e70, 0 x9e72, 0 x9e78, 0 x9e79, 0 x9e80, 0 x9fff,
/* VFD */
0 xa600, 0 xa601, 0 xa603, 0 xa603, 0 xa60a, 0 xa60a, 0 xa610, 0 xa617,
0 xa630, 0 xa630,
/* HLSQ */
0 xd002, 0 xd003,
};
static const u32 a660_registers[] = {
/* UCHE */
0 x0e3c, 0 x0e3c,
};
#define REGS(_array, _sel_reg, _sel_val) \
{ .registers = _array, .count = ARRAY_SIZE(_array), \
.val0 = _sel_reg, .val1 = _sel_val }
static const struct a6xx_registers a6xx_reglist[] = {
REGS(a6xx_registers, 0 , 0 ),
REGS(a660_registers, 0 , 0 ),
REGS(a6xx_rb_rac_registers, REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD, 0 ),
REGS(a6xx_rb_rbp_registers, REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD, 9 ),
};
static const u32 a6xx_ahb_registers[] = {
/* RBBM_STATUS - RBBM_STATUS3 */
0 x210, 0 x213,
/* CP_STATUS_1 */
0 x825, 0 x825,
};
static const u32 a6xx_vbif_registers[] = {
0 x3000, 0 x3007, 0 x300c, 0 x3014, 0 x3018, 0 x302d, 0 x3030, 0 x3031,
0 x3034, 0 x3036, 0 x303c, 0 x303d, 0 x3040, 0 x3040, 0 x3042, 0 x3042,
0 x3049, 0 x3049, 0 x3058, 0 x3058, 0 x305a, 0 x3061, 0 x3064, 0 x3068,
0 x306c, 0 x306d, 0 x3080, 0 x3088, 0 x308b, 0 x308c, 0 x3090, 0 x3094,
0 x3098, 0 x3098, 0 x309c, 0 x309c, 0 x30c0, 0 x30c0, 0 x30c8, 0 x30c8,
0 x30d0, 0 x30d0, 0 x30d8, 0 x30d8, 0 x30e0, 0 x30e0, 0 x3100, 0 x3100,
0 x3108, 0 x3108, 0 x3110, 0 x3110, 0 x3118, 0 x3118, 0 x3120, 0 x3120,
0 x3124, 0 x3125, 0 x3129, 0 x3129, 0 x3131, 0 x3131, 0 x3154, 0 x3154,
0 x3156, 0 x3156, 0 x3158, 0 x3158, 0 x315a, 0 x315a, 0 x315c, 0 x315c,
0 x315e, 0 x315e, 0 x3160, 0 x3160, 0 x3162, 0 x3162, 0 x340c, 0 x340c,
0 x3410, 0 x3410, 0 x3800, 0 x3801,
};
static const u32 a6xx_gbif_registers[] = {
0 x3C00, 0 X3C0B, 0 X3C40, 0 X3C47, 0 X3CC0, 0 X3CD1, 0 xE3A, 0 xE3A,
};
static const struct a6xx_registers a6xx_ahb_reglist =
REGS(a6xx_ahb_registers, 0 , 0 );
static const struct a6xx_registers a6xx_vbif_reglist =
REGS(a6xx_vbif_registers, 0 , 0 );
static const struct a6xx_registers a6xx_gbif_reglist =
REGS(a6xx_gbif_registers, 0 , 0 );
static const u32 a6xx_gmu_gx_registers[] = {
/* GMU GX */
0 x0000, 0 x0000, 0 x0010, 0 x0013, 0 x0016, 0 x0016, 0 x0018, 0 x001b,
0 x001e, 0 x001e, 0 x0020, 0 x0023, 0 x0026, 0 x0026, 0 x0028, 0 x002b,
0 x002e, 0 x002e, 0 x0030, 0 x0033, 0 x0036, 0 x0036, 0 x0038, 0 x003b,
0 x003e, 0 x003e, 0 x0040, 0 x0043, 0 x0046, 0 x0046, 0 x0080, 0 x0084,
0 x0100, 0 x012b, 0 x0140, 0 x0140,
};
static const u32 a6xx_gmu_cx_registers[] = {
/* GMU CX */
0 x4c00, 0 x4c07, 0 x4c10, 0 x4c12, 0 x4d00, 0 x4d00, 0 x4d07, 0 x4d0a,
0 x5000, 0 x5004, 0 x5007, 0 x5008, 0 x500b, 0 x500c, 0 x500f, 0 x501c,
0 x5024, 0 x502a, 0 x502d, 0 x5030, 0 x5040, 0 x5053, 0 x5087, 0 x5089,
0 x50a0, 0 x50a2, 0 x50a4, 0 x50af, 0 x50c0, 0 x50c3, 0 x50d0, 0 x50d0,
0 x50e4, 0 x50e4, 0 x50e8, 0 x50ec, 0 x5100, 0 x5103, 0 x5140, 0 x5140,
0 x5142, 0 x5144, 0 x514c, 0 x514d, 0 x514f, 0 x5151, 0 x5154, 0 x5154,
0 x5157, 0 x5158, 0 x515d, 0 x515d, 0 x5162, 0 x5162, 0 x5164, 0 x5165,
0 x5180, 0 x5186, 0 x5190, 0 x519e, 0 x51c0, 0 x51c0, 0 x51c5, 0 x51cc,
0 x51e0, 0 x51e2, 0 x51f0, 0 x51f0, 0 x5200, 0 x5201,
/* GMU AO */
0 x9300, 0 x9316, 0 x9400, 0 x9400,
};
static const u32 a6xx_gmu_gpucc_registers[] = {
/* GPU CC */
0 x9800, 0 x9812, 0 x9840, 0 x9852, 0 x9c00, 0 x9c04, 0 x9c07, 0 x9c0b,
0 x9c15, 0 x9c1c, 0 x9c1e, 0 x9c2d, 0 x9c3c, 0 x9c3d, 0 x9c3f, 0 x9c40,
0 x9c42, 0 x9c49, 0 x9c58, 0 x9c5a, 0 x9d40, 0 x9d5e, 0 xa000, 0 xa002,
0 xa400, 0 xa402, 0 xac00, 0 xac02, 0 xb000, 0 xb002, 0 xb400, 0 xb402,
0 xb800, 0 xb802,
/* GPU CC ACD */
0 xbc00, 0 xbc16, 0 xbc20, 0 xbc27,
};
static const u32 a621_gmu_gpucc_registers[] = {
/* GPU CC */
0 x9800, 0 x980e, 0 x9c00, 0 x9c0e, 0 xb000, 0 xb004, 0 xb400, 0 xb404,
0 xb800, 0 xb804, 0 xbc00, 0 xbc05, 0 xbc14, 0 xbc1d, 0 xbc2a, 0 xbc30,
0 xbc32, 0 xbc32, 0 xbc41, 0 xbc55, 0 xbc66, 0 xbc68, 0 xbc78, 0 xbc7a,
0 xbc89, 0 xbc8a, 0 xbc9c, 0 xbc9e, 0 xbca0, 0 xbca3, 0 xbcb3, 0 xbcb5,
0 xbcc5, 0 xbcc7, 0 xbcd6, 0 xbcd8, 0 xbce8, 0 xbce9, 0 xbcf9, 0 xbcfc,
0 xbd0b, 0 xbd0c, 0 xbd1c, 0 xbd1e, 0 xbd40, 0 xbd70, 0 xbe00, 0 xbe16,
0 xbe20, 0 xbe2d,
};
static const u32 a6xx_gmu_cx_rscc_registers[] = {
/* GPU RSCC */
0 x008c, 0 x008c, 0 x0101, 0 x0102, 0 x0340, 0 x0342, 0 x0344, 0 x0347,
0 x034c, 0 x0387, 0 x03ec, 0 x03ef, 0 x03f4, 0 x042f, 0 x0494, 0 x0497,
0 x049c, 0 x04d7, 0 x053c, 0 x053f, 0 x0544, 0 x057f,
};
static const struct a6xx_registers a6xx_gmu_reglist[] = {
REGS(a6xx_gmu_cx_registers, 0 , 0 ),
REGS(a6xx_gmu_cx_rscc_registers, 0 , 0 ),
REGS(a6xx_gmu_gx_registers, 0 , 0 ),
};
static const struct a6xx_registers a6xx_gpucc_reg = REGS(a6xx_gmu_gpucc_registers, 0 , 0 );
static const struct a6xx_registers a621_gpucc_reg = REGS(a621_gmu_gpucc_registers, 0 , 0 );
static u32 a6xx_get_cp_roq_size(struct msm_gpu *gpu);
static u32 a7xx_get_cp_roq_size(struct msm_gpu *gpu);
struct a6xx_indexed_registers {
const char *name;
u32 addr;
u32 data;
u32 count;
u32 (*count_fn)(struct msm_gpu *gpu);
};
static const struct a6xx_indexed_registers a6xx_indexed_reglist[] = {
{ "CP_SQE_STAT" , REG_A6XX_CP_SQE_STAT_ADDR,
REG_A6XX_CP_SQE_STAT_DATA, 0 x33, NULL },
{ "CP_DRAW_STATE" , REG_A6XX_CP_DRAW_STATE_ADDR,
REG_A6XX_CP_DRAW_STATE_DATA, 0 x100, NULL },
{ "CP_SQE_UCODE_DBG" , REG_A6XX_CP_SQE_UCODE_DBG_ADDR,
REG_A6XX_CP_SQE_UCODE_DBG_DATA, 0 x8000, NULL },
{ "CP_ROQ_DBG" , REG_A6XX_CP_ROQ_DBG_ADDR,
REG_A6XX_CP_ROQ_DBG_DATA, 0 , a6xx_get_cp_roq_size},
};
static const struct a6xx_indexed_registers a7xx_indexed_reglist[] = {
{ "CP_SQE_STAT" , REG_A6XX_CP_SQE_STAT_ADDR,
REG_A6XX_CP_SQE_STAT_DATA, 0 x40, NULL },
{ "CP_DRAW_STATE" , REG_A6XX_CP_DRAW_STATE_ADDR,
REG_A6XX_CP_DRAW_STATE_DATA, 0 x100, NULL },
{ "CP_SQE_UCODE_DBG" , REG_A6XX_CP_SQE_UCODE_DBG_ADDR,
REG_A6XX_CP_SQE_UCODE_DBG_DATA, 0 x8000, NULL },
{ "CP_BV_SQE_STAT" , REG_A7XX_CP_BV_SQE_STAT_ADDR,
REG_A7XX_CP_BV_SQE_STAT_DATA, 0 x40, NULL },
{ "CP_BV_DRAW_STATE" , REG_A7XX_CP_BV_DRAW_STATE_ADDR,
REG_A7XX_CP_BV_DRAW_STATE_DATA, 0 x100, NULL },
{ "CP_BV_SQE_UCODE_DBG" , REG_A7XX_CP_BV_SQE_UCODE_DBG_ADDR,
REG_A7XX_CP_BV_SQE_UCODE_DBG_DATA, 0 x8000, NULL },
{ "CP_SQE_AC_STAT" , REG_A7XX_CP_SQE_AC_STAT_ADDR,
REG_A7XX_CP_SQE_AC_STAT_DATA, 0 x40, NULL },
{ "CP_LPAC_DRAW_STATE" , REG_A7XX_CP_LPAC_DRAW_STATE_ADDR,
REG_A7XX_CP_LPAC_DRAW_STATE_DATA, 0 x100, NULL },
{ "CP_SQE_AC_UCODE_DBG" , REG_A7XX_CP_SQE_AC_UCODE_DBG_ADDR,
REG_A7XX_CP_SQE_AC_UCODE_DBG_DATA, 0 x8000, NULL },
{ "CP_LPAC_FIFO_DBG" , REG_A7XX_CP_LPAC_FIFO_DBG_ADDR,
REG_A7XX_CP_LPAC_FIFO_DBG_DATA, 0 x40, NULL },
{ "CP_ROQ_DBG" , REG_A6XX_CP_ROQ_DBG_ADDR,
REG_A6XX_CP_ROQ_DBG_DATA, 0 , a7xx_get_cp_roq_size },
};
static const struct a6xx_indexed_registers a6xx_cp_mempool_indexed = {
"CP_MEM_POOL_DBG" , REG_A6XX_CP_MEM_POOL_DBG_ADDR,
REG_A6XX_CP_MEM_POOL_DBG_DATA, 0 x2060, NULL,
};
static const struct a6xx_indexed_registers a7xx_cp_bv_mempool_indexed[] = {
{ "CP_MEM_POOL_DBG" , REG_A6XX_CP_MEM_POOL_DBG_ADDR,
REG_A6XX_CP_MEM_POOL_DBG_DATA, 0 x2200, NULL },
{ "CP_BV_MEM_POOL_DBG" , REG_A7XX_CP_BV_MEM_POOL_DBG_ADDR,
REG_A7XX_CP_BV_MEM_POOL_DBG_DATA, 0 x2200, NULL },
};
#define DEBUGBUS(_id, _count) { .id = _id, .name = #_ id, .count = _count }
static const struct a6xx_debugbus_block {
const char *name;
u32 id;
u32 count;
} a6xx_debugbus_blocks[] = {
DEBUGBUS(A6XX_DBGBUS_CP, 0 x100),
DEBUGBUS(A6XX_DBGBUS_RBBM, 0 x100),
DEBUGBUS(A6XX_DBGBUS_HLSQ, 0 x100),
DEBUGBUS(A6XX_DBGBUS_UCHE, 0 x100),
DEBUGBUS(A6XX_DBGBUS_DPM, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TESS, 0 x100),
DEBUGBUS(A6XX_DBGBUS_PC, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VFDP, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VPC, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TSE, 0 x100),
DEBUGBUS(A6XX_DBGBUS_RAS, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VSC, 0 x100),
DEBUGBUS(A6XX_DBGBUS_COM, 0 x100),
DEBUGBUS(A6XX_DBGBUS_LRZ, 0 x100),
DEBUGBUS(A6XX_DBGBUS_A2D, 0 x100),
DEBUGBUS(A6XX_DBGBUS_CCUFCHE, 0 x100),
DEBUGBUS(A6XX_DBGBUS_RBP, 0 x100),
DEBUGBUS(A6XX_DBGBUS_DCS, 0 x100),
DEBUGBUS(A6XX_DBGBUS_DBGC, 0 x100),
DEBUGBUS(A6XX_DBGBUS_GMU_GX, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TPFCHE, 0 x100),
DEBUGBUS(A6XX_DBGBUS_GPC, 0 x100),
DEBUGBUS(A6XX_DBGBUS_LARC, 0 x100),
DEBUGBUS(A6XX_DBGBUS_HLSQ_SPTP, 0 x100),
DEBUGBUS(A6XX_DBGBUS_RB_0, 0 x100),
DEBUGBUS(A6XX_DBGBUS_RB_1, 0 x100),
DEBUGBUS(A6XX_DBGBUS_UCHE_WRAPPER, 0 x100),
DEBUGBUS(A6XX_DBGBUS_CCU_0, 0 x100),
DEBUGBUS(A6XX_DBGBUS_CCU_1, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VFD_0, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VFD_1, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VFD_2, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VFD_3, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SP_0, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SP_1, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TPL1_0, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TPL1_1, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TPL1_2, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TPL1_3, 0 x100),
};
static const struct a6xx_debugbus_block a6xx_gbif_debugbus_block =
DEBUGBUS(A6XX_DBGBUS_VBIF, 0 x100);
static const struct a6xx_debugbus_block a6xx_cx_debugbus_blocks[] = {
DEBUGBUS(A6XX_DBGBUS_GMU_CX, 0 x100),
DEBUGBUS(A6XX_DBGBUS_CX, 0 x100),
};
static const struct a6xx_debugbus_block a650_debugbus_blocks[] = {
DEBUGBUS(A6XX_DBGBUS_RB_2, 0 x100),
DEBUGBUS(A6XX_DBGBUS_CCU_2, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VFD_4, 0 x100),
DEBUGBUS(A6XX_DBGBUS_VFD_5, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SP_2, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TPL1_4, 0 x100),
DEBUGBUS(A6XX_DBGBUS_TPL1_5, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SPTP_0, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SPTP_1, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SPTP_2, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SPTP_3, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SPTP_4, 0 x100),
DEBUGBUS(A6XX_DBGBUS_SPTP_5, 0 x100),
};
static const u32 a7xx_gbif_debugbus_blocks[] = {
A7XX_DBGBUS_GBIF_CX,
A7XX_DBGBUS_GBIF_GX,
};
static const struct a6xx_debugbus_block a7xx_cx_debugbus_blocks[] = {
DEBUGBUS(A7XX_DBGBUS_GMU_CX, 0 x100),
DEBUGBUS(A7XX_DBGBUS_CX, 0 x100),
DEBUGBUS(A7XX_DBGBUS_GBIF_CX, 0 x100),
};
#define STATE_NON_CONTEXT 0
#define STATE_TOGGLE_CTXT 1
#define STATE_FORCE_CTXT_0 2
#define STATE_FORCE_CTXT_1 3
struct gen7_sel_reg {
unsigned int host_reg;
unsigned int cd_reg;
unsigned int val;
};
struct gen7_cluster_registers {
/* cluster_id: Cluster identifier */
int cluster_id;
/* pipe_id: Pipe Identifier */
int pipe_id;
/* context_id: one of STATE_ that identifies the context to dump */
int context_id;
/* regs: Pointer to an array of register pairs */
const u32 *regs;
/* sel: Pointer to a selector register to write before reading */
const struct gen7_sel_reg *sel;
};
struct gen7_sptp_cluster_registers {
/* cluster_id: Cluster identifier */
enum a7xx_cluster cluster_id;
/* statetype: SP block state type for the cluster */
enum a7xx_statetype_id statetype;
/* pipe_id: Pipe identifier */
enum a7xx_pipe pipe_id;
/* context_id: Context identifier */
int context_id;
/* location_id: Location identifier */
enum a7xx_state_location location_id;
/* regs: Pointer to the list of register pairs to read */
const u32 *regs;
/* regbase: Dword offset of the register block in the GPu register space */
unsigned int regbase;
};
struct gen7_shader_block {
/* statetype: Type identifer for the block */
u32 statetype;
/* size: Size of the block (in dwords) */
u32 size;
/* num_sps: The SP id to dump */
u32 num_sps;
/* num_usptps: The number of USPTPs to dump */;
u32 num_usptps;
/* pipe_id: Pipe identifier for the block data */
u32 pipeid;
/* location: Location identifer for the block data */
u32 location;
};
struct gen7_reg_list {
const u32 *regs;
const struct gen7_sel_reg *sel;
};
/* adreno_gen7_x_y_snapshot.h defines which debugbus blocks a given family has, but the
* list of debugbus blocks is global on a7xx .
*/
#define A7XX_DEBUGBUS(_id, _count) [_id] = { .id = _id, .name = #_ id, .count = _count },
static const struct a6xx_debugbus_block a7xx_debugbus_blocks[] = {
A7XX_DEBUGBUS(A7XX_DBGBUS_CP_0_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CP_0_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RBBM, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_GBIF_GX, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_GBIF_CX, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_HLSQ, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_UCHE_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_UCHE_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TESS_BR, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TESS_BV, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_PC_BR, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_PC_BV, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFDP_BR, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFDP_BV, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VPC_BR, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VPC_BV, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TSE_BR, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TSE_BV, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RAS_BR, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RAS_BV, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VSC, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_COM_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_LRZ_BR, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_LRZ_BV, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_UFC_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_UFC_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_GMU_GX, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_DBGC, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CX, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_GMU_CX, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_GPC_BR, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_GPC_BV, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_LARC, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_HLSQ_SPTP, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RB_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RB_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RB_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RB_3, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RB_4, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_RB_5, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_UCHE_WRAPPER, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCU_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCU_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCU_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCU_3, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCU_4, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCU_5, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BR_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BR_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BR_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BR_3, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BR_4, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BR_5, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BR_6, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BR_7, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BV_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BV_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BV_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VFD_BV_3, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USP_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USP_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USP_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USP_3, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USP_4, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USP_5, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_3, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_4, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_5, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_6, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_7, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_8, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_9, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_10, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_TP_11, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_3, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_4, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_5, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_6, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_7, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_8, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_9, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_10, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_USPTP_11, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCHE_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCHE_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CCHE_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VPC_DSTR_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VPC_DSTR_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_VPC_DSTR_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_HLSQ_DP_STR_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_HLSQ_DP_STR_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_HLSQ_DP_STR_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_HLSQ_DP_STR_3, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_HLSQ_DP_STR_4, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_HLSQ_DP_STR_5, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_UFC_DSTR_0, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_UFC_DSTR_1, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_UFC_DSTR_2, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CGC_SUBCORE, 0 x100)
A7XX_DEBUGBUS(A7XX_DBGBUS_CGC_CORE, 0 x100)
};
#define A7XX_NAME(enumval) [enumval] = #enumval
static const char *a7xx_statetype_names[] = {
A7XX_NAME(A7XX_TP0_NCTX_REG),
A7XX_NAME(A7XX_TP0_CTX0_3D_CVS_REG),
A7XX_NAME(A7XX_TP0_CTX0_3D_CPS_REG),
A7XX_NAME(A7XX_TP0_CTX1_3D_CVS_REG),
A7XX_NAME(A7XX_TP0_CTX1_3D_CPS_REG),
A7XX_NAME(A7XX_TP0_CTX2_3D_CPS_REG),
A7XX_NAME(A7XX_TP0_CTX3_3D_CPS_REG),
A7XX_NAME(A7XX_TP0_TMO_DATA),
A7XX_NAME(A7XX_TP0_SMO_DATA),
A7XX_NAME(A7XX_TP0_MIPMAP_BASE_DATA),
A7XX_NAME(A7XX_SP_NCTX_REG),
A7XX_NAME(A7XX_SP_CTX0_3D_CVS_REG),
A7XX_NAME(A7XX_SP_CTX0_3D_CPS_REG),
A7XX_NAME(A7XX_SP_CTX1_3D_CVS_REG),
A7XX_NAME(A7XX_SP_CTX1_3D_CPS_REG),
A7XX_NAME(A7XX_SP_CTX2_3D_CPS_REG),
A7XX_NAME(A7XX_SP_CTX3_3D_CPS_REG),
A7XX_NAME(A7XX_SP_INST_DATA),
A7XX_NAME(A7XX_SP_INST_DATA_1),
A7XX_NAME(A7XX_SP_LB_0_DATA),
A7XX_NAME(A7XX_SP_LB_1_DATA),
A7XX_NAME(A7XX_SP_LB_2_DATA),
A7XX_NAME(A7XX_SP_LB_3_DATA),
A7XX_NAME(A7XX_SP_LB_4_DATA),
A7XX_NAME(A7XX_SP_LB_5_DATA),
A7XX_NAME(A7XX_SP_LB_6_DATA),
A7XX_NAME(A7XX_SP_LB_7_DATA),
A7XX_NAME(A7XX_SP_CB_RAM),
A7XX_NAME(A7XX_SP_LB_13_DATA),
A7XX_NAME(A7XX_SP_LB_14_DATA),
A7XX_NAME(A7XX_SP_INST_TAG),
A7XX_NAME(A7XX_SP_INST_DATA_2),
A7XX_NAME(A7XX_SP_TMO_TAG),
A7XX_NAME(A7XX_SP_SMO_TAG),
A7XX_NAME(A7XX_SP_STATE_DATA),
A7XX_NAME(A7XX_SP_HWAVE_RAM),
A7XX_NAME(A7XX_SP_L0_INST_BUF),
A7XX_NAME(A7XX_SP_LB_8_DATA),
A7XX_NAME(A7XX_SP_LB_9_DATA),
A7XX_NAME(A7XX_SP_LB_10_DATA),
A7XX_NAME(A7XX_SP_LB_11_DATA),
A7XX_NAME(A7XX_SP_LB_12_DATA),
A7XX_NAME(A7XX_HLSQ_DATAPATH_DSTR_META),
A7XX_NAME(A7XX_HLSQ_L2STC_TAG_RAM),
A7XX_NAME(A7XX_HLSQ_L2STC_INFO_CMD),
A7XX_NAME(A7XX_HLSQ_CVS_BE_CTXT_BUF_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_CPS_BE_CTXT_BUF_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_GFX_CVS_BE_CTXT_BUF_RAM),
A7XX_NAME(A7XX_HLSQ_GFX_CPS_BE_CTXT_BUF_RAM),
A7XX_NAME(A7XX_HLSQ_CHUNK_CVS_RAM),
A7XX_NAME(A7XX_HLSQ_CHUNK_CPS_RAM),
A7XX_NAME(A7XX_HLSQ_CHUNK_CVS_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_CHUNK_CPS_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_ICB_CVS_CB_BASE_TAG),
A7XX_NAME(A7XX_HLSQ_ICB_CPS_CB_BASE_TAG),
A7XX_NAME(A7XX_HLSQ_CVS_MISC_RAM),
A7XX_NAME(A7XX_HLSQ_CPS_MISC_RAM),
A7XX_NAME(A7XX_HLSQ_CPS_MISC_RAM_1),
A7XX_NAME(A7XX_HLSQ_INST_RAM),
A7XX_NAME(A7XX_HLSQ_GFX_CVS_CONST_RAM),
A7XX_NAME(A7XX_HLSQ_GFX_CPS_CONST_RAM),
A7XX_NAME(A7XX_HLSQ_CVS_MISC_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_CPS_MISC_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_INST_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_GFX_CVS_CONST_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_GFX_CPS_CONST_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_GFX_LOCAL_MISC_RAM),
A7XX_NAME(A7XX_HLSQ_GFX_LOCAL_MISC_RAM_TAG),
A7XX_NAME(A7XX_HLSQ_INST_RAM_1),
A7XX_NAME(A7XX_HLSQ_STPROC_META),
A7XX_NAME(A7XX_HLSQ_BV_BE_META),
A7XX_NAME(A7XX_HLSQ_INST_RAM_2),
A7XX_NAME(A7XX_HLSQ_DATAPATH_META),
A7XX_NAME(A7XX_HLSQ_FRONTEND_META),
A7XX_NAME(A7XX_HLSQ_INDIRECT_META),
A7XX_NAME(A7XX_HLSQ_BACKEND_META),
};
static const char *a7xx_pipe_names[] = {
A7XX_NAME(A7XX_PIPE_NONE),
A7XX_NAME(A7XX_PIPE_BR),
A7XX_NAME(A7XX_PIPE_BV),
A7XX_NAME(A7XX_PIPE_LPAC),
};
static const char *a7xx_cluster_names[] = {
A7XX_NAME(A7XX_CLUSTER_NONE),
A7XX_NAME(A7XX_CLUSTER_FE),
A7XX_NAME(A7XX_CLUSTER_SP_VS),
A7XX_NAME(A7XX_CLUSTER_PC_VS),
A7XX_NAME(A7XX_CLUSTER_GRAS),
A7XX_NAME(A7XX_CLUSTER_SP_PS),
A7XX_NAME(A7XX_CLUSTER_VPC_PS),
A7XX_NAME(A7XX_CLUSTER_PS),
};
#endif
Messung V0.5 in Prozent C=96 H=93 G=94
¤ Dauer der Verarbeitung: 0.21 Sekunden
(vorverarbeitet am 2026-10-12)
¤
*© Formatika GbR, Deutschland