1*c59a5c48SFrançois Tigeot /* 2*c59a5c48SFrançois Tigeot * Copyright 2012 Advanced Micro Devices, Inc. 3*c59a5c48SFrançois Tigeot * 4*c59a5c48SFrançois Tigeot * Permission is hereby granted, free of charge, to any person obtaining a 5*c59a5c48SFrançois Tigeot * copy of this software and associated documentation files (the "Software"), 6*c59a5c48SFrançois Tigeot * to deal in the Software without restriction, including without limitation 7*c59a5c48SFrançois Tigeot * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8*c59a5c48SFrançois Tigeot * and/or sell copies of the Software, and to permit persons to whom the 9*c59a5c48SFrançois Tigeot * Software is furnished to do so, subject to the following conditions: 10*c59a5c48SFrançois Tigeot * 11*c59a5c48SFrançois Tigeot * The above copyright notice and this permission notice shall be included in 12*c59a5c48SFrançois Tigeot * all copies or substantial portions of the Software. 13*c59a5c48SFrançois Tigeot * 14*c59a5c48SFrançois Tigeot * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15*c59a5c48SFrançois Tigeot * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16*c59a5c48SFrançois Tigeot * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17*c59a5c48SFrançois Tigeot * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18*c59a5c48SFrançois Tigeot * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19*c59a5c48SFrançois Tigeot * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20*c59a5c48SFrançois Tigeot * OTHER DEALINGS IN THE SOFTWARE. 21*c59a5c48SFrançois Tigeot * 22*c59a5c48SFrançois Tigeot */ 23*c59a5c48SFrançois Tigeot 24*c59a5c48SFrançois Tigeot #ifndef CIK_STRUCTS_H_ 25*c59a5c48SFrançois Tigeot #define CIK_STRUCTS_H_ 26*c59a5c48SFrançois Tigeot 27*c59a5c48SFrançois Tigeot struct cik_mqd { 28*c59a5c48SFrançois Tigeot uint32_t header; 29*c59a5c48SFrançois Tigeot uint32_t compute_dispatch_initiator; 30*c59a5c48SFrançois Tigeot uint32_t compute_dim_x; 31*c59a5c48SFrançois Tigeot uint32_t compute_dim_y; 32*c59a5c48SFrançois Tigeot uint32_t compute_dim_z; 33*c59a5c48SFrançois Tigeot uint32_t compute_start_x; 34*c59a5c48SFrançois Tigeot uint32_t compute_start_y; 35*c59a5c48SFrançois Tigeot uint32_t compute_start_z; 36*c59a5c48SFrançois Tigeot uint32_t compute_num_thread_x; 37*c59a5c48SFrançois Tigeot uint32_t compute_num_thread_y; 38*c59a5c48SFrançois Tigeot uint32_t compute_num_thread_z; 39*c59a5c48SFrançois Tigeot uint32_t compute_pipelinestat_enable; 40*c59a5c48SFrançois Tigeot uint32_t compute_perfcount_enable; 41*c59a5c48SFrançois Tigeot uint32_t compute_pgm_lo; 42*c59a5c48SFrançois Tigeot uint32_t compute_pgm_hi; 43*c59a5c48SFrançois Tigeot uint32_t compute_tba_lo; 44*c59a5c48SFrançois Tigeot uint32_t compute_tba_hi; 45*c59a5c48SFrançois Tigeot uint32_t compute_tma_lo; 46*c59a5c48SFrançois Tigeot uint32_t compute_tma_hi; 47*c59a5c48SFrançois Tigeot uint32_t compute_pgm_rsrc1; 48*c59a5c48SFrançois Tigeot uint32_t compute_pgm_rsrc2; 49*c59a5c48SFrançois Tigeot uint32_t compute_vmid; 50*c59a5c48SFrançois Tigeot uint32_t compute_resource_limits; 51*c59a5c48SFrançois Tigeot uint32_t compute_static_thread_mgmt_se0; 52*c59a5c48SFrançois Tigeot uint32_t compute_static_thread_mgmt_se1; 53*c59a5c48SFrançois Tigeot uint32_t compute_tmpring_size; 54*c59a5c48SFrançois Tigeot uint32_t compute_static_thread_mgmt_se2; 55*c59a5c48SFrançois Tigeot uint32_t compute_static_thread_mgmt_se3; 56*c59a5c48SFrançois Tigeot uint32_t compute_restart_x; 57*c59a5c48SFrançois Tigeot uint32_t compute_restart_y; 58*c59a5c48SFrançois Tigeot uint32_t compute_restart_z; 59*c59a5c48SFrançois Tigeot uint32_t compute_thread_trace_enable; 60*c59a5c48SFrançois Tigeot uint32_t compute_misc_reserved; 61*c59a5c48SFrançois Tigeot uint32_t compute_user_data_0; 62*c59a5c48SFrançois Tigeot uint32_t compute_user_data_1; 63*c59a5c48SFrançois Tigeot uint32_t compute_user_data_2; 64*c59a5c48SFrançois Tigeot uint32_t compute_user_data_3; 65*c59a5c48SFrançois Tigeot uint32_t compute_user_data_4; 66*c59a5c48SFrançois Tigeot uint32_t compute_user_data_5; 67*c59a5c48SFrançois Tigeot uint32_t compute_user_data_6; 68*c59a5c48SFrançois Tigeot uint32_t compute_user_data_7; 69*c59a5c48SFrançois Tigeot uint32_t compute_user_data_8; 70*c59a5c48SFrançois Tigeot uint32_t compute_user_data_9; 71*c59a5c48SFrançois Tigeot uint32_t compute_user_data_10; 72*c59a5c48SFrançois Tigeot uint32_t compute_user_data_11; 73*c59a5c48SFrançois Tigeot uint32_t compute_user_data_12; 74*c59a5c48SFrançois Tigeot uint32_t compute_user_data_13; 75*c59a5c48SFrançois Tigeot uint32_t compute_user_data_14; 76*c59a5c48SFrançois Tigeot uint32_t compute_user_data_15; 77*c59a5c48SFrançois Tigeot uint32_t cp_compute_csinvoc_count_lo; 78*c59a5c48SFrançois Tigeot uint32_t cp_compute_csinvoc_count_hi; 79*c59a5c48SFrançois Tigeot uint32_t cp_mqd_base_addr_lo; 80*c59a5c48SFrançois Tigeot uint32_t cp_mqd_base_addr_hi; 81*c59a5c48SFrançois Tigeot uint32_t cp_hqd_active; 82*c59a5c48SFrançois Tigeot uint32_t cp_hqd_vmid; 83*c59a5c48SFrançois Tigeot uint32_t cp_hqd_persistent_state; 84*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pipe_priority; 85*c59a5c48SFrançois Tigeot uint32_t cp_hqd_queue_priority; 86*c59a5c48SFrançois Tigeot uint32_t cp_hqd_quantum; 87*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_base_lo; 88*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_base_hi; 89*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_rptr; 90*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_rptr_report_addr_lo; 91*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_rptr_report_addr_hi; 92*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_wptr_poll_addr_lo; 93*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_wptr_poll_addr_hi; 94*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_doorbell_control; 95*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_wptr; 96*c59a5c48SFrançois Tigeot uint32_t cp_hqd_pq_control; 97*c59a5c48SFrançois Tigeot uint32_t cp_hqd_ib_base_addr_lo; 98*c59a5c48SFrançois Tigeot uint32_t cp_hqd_ib_base_addr_hi; 99*c59a5c48SFrançois Tigeot uint32_t cp_hqd_ib_rptr; 100*c59a5c48SFrançois Tigeot uint32_t cp_hqd_ib_control; 101*c59a5c48SFrançois Tigeot uint32_t cp_hqd_iq_timer; 102*c59a5c48SFrançois Tigeot uint32_t cp_hqd_iq_rptr; 103*c59a5c48SFrançois Tigeot uint32_t cp_hqd_dequeue_request; 104*c59a5c48SFrançois Tigeot uint32_t cp_hqd_dma_offload; 105*c59a5c48SFrançois Tigeot uint32_t cp_hqd_sema_cmd; 106*c59a5c48SFrançois Tigeot uint32_t cp_hqd_msg_type; 107*c59a5c48SFrançois Tigeot uint32_t cp_hqd_atomic0_preop_lo; 108*c59a5c48SFrançois Tigeot uint32_t cp_hqd_atomic0_preop_hi; 109*c59a5c48SFrançois Tigeot uint32_t cp_hqd_atomic1_preop_lo; 110*c59a5c48SFrançois Tigeot uint32_t cp_hqd_atomic1_preop_hi; 111*c59a5c48SFrançois Tigeot uint32_t cp_hqd_hq_status0; 112*c59a5c48SFrançois Tigeot uint32_t cp_hqd_hq_control0; 113*c59a5c48SFrançois Tigeot uint32_t cp_mqd_control; 114*c59a5c48SFrançois Tigeot uint32_t cp_mqd_query_time_lo; 115*c59a5c48SFrançois Tigeot uint32_t cp_mqd_query_time_hi; 116*c59a5c48SFrançois Tigeot uint32_t cp_mqd_connect_start_time_lo; 117*c59a5c48SFrançois Tigeot uint32_t cp_mqd_connect_start_time_hi; 118*c59a5c48SFrançois Tigeot uint32_t cp_mqd_connect_end_time_lo; 119*c59a5c48SFrançois Tigeot uint32_t cp_mqd_connect_end_time_hi; 120*c59a5c48SFrançois Tigeot uint32_t cp_mqd_connect_end_wf_count; 121*c59a5c48SFrançois Tigeot uint32_t cp_mqd_connect_end_pq_rptr; 122*c59a5c48SFrançois Tigeot uint32_t cp_mqd_connect_end_pq_wptr; 123*c59a5c48SFrançois Tigeot uint32_t cp_mqd_connect_end_ib_rptr; 124*c59a5c48SFrançois Tigeot uint32_t reserved_96; 125*c59a5c48SFrançois Tigeot uint32_t reserved_97; 126*c59a5c48SFrançois Tigeot uint32_t reserved_98; 127*c59a5c48SFrançois Tigeot uint32_t reserved_99; 128*c59a5c48SFrançois Tigeot uint32_t iqtimer_pkt_header; 129*c59a5c48SFrançois Tigeot uint32_t iqtimer_pkt_dw0; 130*c59a5c48SFrançois Tigeot uint32_t iqtimer_pkt_dw1; 131*c59a5c48SFrançois Tigeot uint32_t iqtimer_pkt_dw2; 132*c59a5c48SFrançois Tigeot uint32_t iqtimer_pkt_dw3; 133*c59a5c48SFrançois Tigeot uint32_t iqtimer_pkt_dw4; 134*c59a5c48SFrançois Tigeot uint32_t iqtimer_pkt_dw5; 135*c59a5c48SFrançois Tigeot uint32_t iqtimer_pkt_dw6; 136*c59a5c48SFrançois Tigeot uint32_t reserved_108; 137*c59a5c48SFrançois Tigeot uint32_t reserved_109; 138*c59a5c48SFrançois Tigeot uint32_t reserved_110; 139*c59a5c48SFrançois Tigeot uint32_t reserved_111; 140*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id0; 141*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id1; 142*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id2; 143*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id3; 144*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id4; 145*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id5; 146*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id6; 147*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id7; 148*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id8; 149*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id9; 150*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id10; 151*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id11; 152*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id12; 153*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id13; 154*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id14; 155*c59a5c48SFrançois Tigeot uint32_t queue_doorbell_id15; 156*c59a5c48SFrançois Tigeot }; 157*c59a5c48SFrançois Tigeot 158*c59a5c48SFrançois Tigeot struct cik_sdma_rlc_registers { 159*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_cntl; 160*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_base; 161*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_base_hi; 162*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_rptr; 163*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_wptr; 164*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_wptr_poll_cntl; 165*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_wptr_poll_addr_hi; 166*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_wptr_poll_addr_lo; 167*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_rptr_addr_hi; 168*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_rb_rptr_addr_lo; 169*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_ib_cntl; 170*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_ib_rptr; 171*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_ib_offset; 172*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_ib_base_lo; 173*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_ib_base_hi; 174*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_ib_size; 175*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_skip_cntl; 176*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_context_status; 177*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_doorbell; 178*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_virtual_addr; 179*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_ape1_cntl; 180*c59a5c48SFrançois Tigeot uint32_t sdma_rlc_doorbell_log; 181*c59a5c48SFrançois Tigeot uint32_t reserved_22; 182*c59a5c48SFrançois Tigeot uint32_t reserved_23; 183*c59a5c48SFrançois Tigeot uint32_t reserved_24; 184*c59a5c48SFrançois Tigeot uint32_t reserved_25; 185*c59a5c48SFrançois Tigeot uint32_t reserved_26; 186*c59a5c48SFrançois Tigeot uint32_t reserved_27; 187*c59a5c48SFrançois Tigeot uint32_t reserved_28; 188*c59a5c48SFrançois Tigeot uint32_t reserved_29; 189*c59a5c48SFrançois Tigeot uint32_t reserved_30; 190*c59a5c48SFrançois Tigeot uint32_t reserved_31; 191*c59a5c48SFrançois Tigeot uint32_t reserved_32; 192*c59a5c48SFrançois Tigeot uint32_t reserved_33; 193*c59a5c48SFrançois Tigeot uint32_t reserved_34; 194*c59a5c48SFrançois Tigeot uint32_t reserved_35; 195*c59a5c48SFrançois Tigeot uint32_t reserved_36; 196*c59a5c48SFrançois Tigeot uint32_t reserved_37; 197*c59a5c48SFrançois Tigeot uint32_t reserved_38; 198*c59a5c48SFrançois Tigeot uint32_t reserved_39; 199*c59a5c48SFrançois Tigeot uint32_t reserved_40; 200*c59a5c48SFrançois Tigeot uint32_t reserved_41; 201*c59a5c48SFrançois Tigeot uint32_t reserved_42; 202*c59a5c48SFrançois Tigeot uint32_t reserved_43; 203*c59a5c48SFrançois Tigeot uint32_t reserved_44; 204*c59a5c48SFrançois Tigeot uint32_t reserved_45; 205*c59a5c48SFrançois Tigeot uint32_t reserved_46; 206*c59a5c48SFrançois Tigeot uint32_t reserved_47; 207*c59a5c48SFrançois Tigeot uint32_t reserved_48; 208*c59a5c48SFrançois Tigeot uint32_t reserved_49; 209*c59a5c48SFrançois Tigeot uint32_t reserved_50; 210*c59a5c48SFrançois Tigeot uint32_t reserved_51; 211*c59a5c48SFrançois Tigeot uint32_t reserved_52; 212*c59a5c48SFrançois Tigeot uint32_t reserved_53; 213*c59a5c48SFrançois Tigeot uint32_t reserved_54; 214*c59a5c48SFrançois Tigeot uint32_t reserved_55; 215*c59a5c48SFrançois Tigeot uint32_t reserved_56; 216*c59a5c48SFrançois Tigeot uint32_t reserved_57; 217*c59a5c48SFrançois Tigeot uint32_t reserved_58; 218*c59a5c48SFrançois Tigeot uint32_t reserved_59; 219*c59a5c48SFrançois Tigeot uint32_t reserved_60; 220*c59a5c48SFrançois Tigeot uint32_t reserved_61; 221*c59a5c48SFrançois Tigeot uint32_t reserved_62; 222*c59a5c48SFrançois Tigeot uint32_t reserved_63; 223*c59a5c48SFrançois Tigeot uint32_t reserved_64; 224*c59a5c48SFrançois Tigeot uint32_t reserved_65; 225*c59a5c48SFrançois Tigeot uint32_t reserved_66; 226*c59a5c48SFrançois Tigeot uint32_t reserved_67; 227*c59a5c48SFrançois Tigeot uint32_t reserved_68; 228*c59a5c48SFrançois Tigeot uint32_t reserved_69; 229*c59a5c48SFrançois Tigeot uint32_t reserved_70; 230*c59a5c48SFrançois Tigeot uint32_t reserved_71; 231*c59a5c48SFrançois Tigeot uint32_t reserved_72; 232*c59a5c48SFrançois Tigeot uint32_t reserved_73; 233*c59a5c48SFrançois Tigeot uint32_t reserved_74; 234*c59a5c48SFrançois Tigeot uint32_t reserved_75; 235*c59a5c48SFrançois Tigeot uint32_t reserved_76; 236*c59a5c48SFrançois Tigeot uint32_t reserved_77; 237*c59a5c48SFrançois Tigeot uint32_t reserved_78; 238*c59a5c48SFrançois Tigeot uint32_t reserved_79; 239*c59a5c48SFrançois Tigeot uint32_t reserved_80; 240*c59a5c48SFrançois Tigeot uint32_t reserved_81; 241*c59a5c48SFrançois Tigeot uint32_t reserved_82; 242*c59a5c48SFrançois Tigeot uint32_t reserved_83; 243*c59a5c48SFrançois Tigeot uint32_t reserved_84; 244*c59a5c48SFrançois Tigeot uint32_t reserved_85; 245*c59a5c48SFrançois Tigeot uint32_t reserved_86; 246*c59a5c48SFrançois Tigeot uint32_t reserved_87; 247*c59a5c48SFrançois Tigeot uint32_t reserved_88; 248*c59a5c48SFrançois Tigeot uint32_t reserved_89; 249*c59a5c48SFrançois Tigeot uint32_t reserved_90; 250*c59a5c48SFrançois Tigeot uint32_t reserved_91; 251*c59a5c48SFrançois Tigeot uint32_t reserved_92; 252*c59a5c48SFrançois Tigeot uint32_t reserved_93; 253*c59a5c48SFrançois Tigeot uint32_t reserved_94; 254*c59a5c48SFrançois Tigeot uint32_t reserved_95; 255*c59a5c48SFrançois Tigeot uint32_t reserved_96; 256*c59a5c48SFrançois Tigeot uint32_t reserved_97; 257*c59a5c48SFrançois Tigeot uint32_t reserved_98; 258*c59a5c48SFrançois Tigeot uint32_t reserved_99; 259*c59a5c48SFrançois Tigeot uint32_t reserved_100; 260*c59a5c48SFrançois Tigeot uint32_t reserved_101; 261*c59a5c48SFrançois Tigeot uint32_t reserved_102; 262*c59a5c48SFrançois Tigeot uint32_t reserved_103; 263*c59a5c48SFrançois Tigeot uint32_t reserved_104; 264*c59a5c48SFrançois Tigeot uint32_t reserved_105; 265*c59a5c48SFrançois Tigeot uint32_t reserved_106; 266*c59a5c48SFrançois Tigeot uint32_t reserved_107; 267*c59a5c48SFrançois Tigeot uint32_t reserved_108; 268*c59a5c48SFrançois Tigeot uint32_t reserved_109; 269*c59a5c48SFrançois Tigeot uint32_t reserved_110; 270*c59a5c48SFrançois Tigeot uint32_t reserved_111; 271*c59a5c48SFrançois Tigeot uint32_t reserved_112; 272*c59a5c48SFrançois Tigeot uint32_t reserved_113; 273*c59a5c48SFrançois Tigeot uint32_t reserved_114; 274*c59a5c48SFrançois Tigeot uint32_t reserved_115; 275*c59a5c48SFrançois Tigeot uint32_t reserved_116; 276*c59a5c48SFrançois Tigeot uint32_t reserved_117; 277*c59a5c48SFrançois Tigeot uint32_t reserved_118; 278*c59a5c48SFrançois Tigeot uint32_t reserved_119; 279*c59a5c48SFrançois Tigeot uint32_t reserved_120; 280*c59a5c48SFrançois Tigeot uint32_t reserved_121; 281*c59a5c48SFrançois Tigeot uint32_t reserved_122; 282*c59a5c48SFrançois Tigeot uint32_t reserved_123; 283*c59a5c48SFrançois Tigeot uint32_t reserved_124; 284*c59a5c48SFrançois Tigeot uint32_t reserved_125; 285*c59a5c48SFrançois Tigeot uint32_t reserved_126; 286*c59a5c48SFrançois Tigeot uint32_t reserved_127; 287*c59a5c48SFrançois Tigeot uint32_t sdma_engine_id; 288*c59a5c48SFrançois Tigeot uint32_t sdma_queue_id; 289*c59a5c48SFrançois Tigeot }; 290*c59a5c48SFrançois Tigeot 291*c59a5c48SFrançois Tigeot 292*c59a5c48SFrançois Tigeot 293*c59a5c48SFrançois Tigeot #endif /* CIK_STRUCTS_H_ */ 294