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