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