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