18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * Copyright 2012 Advanced Micro Devices, Inc.
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a
58c2ecf20Sopenharmony_ci * copy of this software and associated documentation files (the "Software"),
68c2ecf20Sopenharmony_ci * to deal in the Software without restriction, including without limitation
78c2ecf20Sopenharmony_ci * the rights to use, copy, modify, merge, publish, distribute, sublicense,
88c2ecf20Sopenharmony_ci * and/or sell copies of the Software, and to permit persons to whom the
98c2ecf20Sopenharmony_ci * Software is furnished to do so, subject to the following conditions:
108c2ecf20Sopenharmony_ci *
118c2ecf20Sopenharmony_ci * The above copyright notice and this permission notice shall be included in
128c2ecf20Sopenharmony_ci * all copies or substantial portions of the Software.
138c2ecf20Sopenharmony_ci *
148c2ecf20Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
158c2ecf20Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
168c2ecf20Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
178c2ecf20Sopenharmony_ci * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
188c2ecf20Sopenharmony_ci * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
198c2ecf20Sopenharmony_ci * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
208c2ecf20Sopenharmony_ci * OTHER DEALINGS IN THE SOFTWARE.
218c2ecf20Sopenharmony_ci *
228c2ecf20Sopenharmony_ci */
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci#ifndef VI_STRUCTS_H_
258c2ecf20Sopenharmony_ci#define VI_STRUCTS_H_
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_cistruct vi_sdma_mqd {
288c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_cntl;
298c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_base;
308c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_base_hi;
318c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_rptr;
328c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_wptr;
338c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_wptr_poll_cntl;
348c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_wptr_poll_addr_hi;
358c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_wptr_poll_addr_lo;
368c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_rptr_addr_hi;
378c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_rb_rptr_addr_lo;
388c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_ib_cntl;
398c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_ib_rptr;
408c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_ib_offset;
418c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_ib_base_lo;
428c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_ib_base_hi;
438c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_ib_size;
448c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_skip_cntl;
458c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_context_status;
468c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_doorbell;
478c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_virtual_addr;
488c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_ape1_cntl;
498c2ecf20Sopenharmony_ci	uint32_t sdmax_rlcx_doorbell_log;
508c2ecf20Sopenharmony_ci	uint32_t reserved_22;
518c2ecf20Sopenharmony_ci	uint32_t reserved_23;
528c2ecf20Sopenharmony_ci	uint32_t reserved_24;
538c2ecf20Sopenharmony_ci	uint32_t reserved_25;
548c2ecf20Sopenharmony_ci	uint32_t reserved_26;
558c2ecf20Sopenharmony_ci	uint32_t reserved_27;
568c2ecf20Sopenharmony_ci	uint32_t reserved_28;
578c2ecf20Sopenharmony_ci	uint32_t reserved_29;
588c2ecf20Sopenharmony_ci	uint32_t reserved_30;
598c2ecf20Sopenharmony_ci	uint32_t reserved_31;
608c2ecf20Sopenharmony_ci	uint32_t reserved_32;
618c2ecf20Sopenharmony_ci	uint32_t reserved_33;
628c2ecf20Sopenharmony_ci	uint32_t reserved_34;
638c2ecf20Sopenharmony_ci	uint32_t reserved_35;
648c2ecf20Sopenharmony_ci	uint32_t reserved_36;
658c2ecf20Sopenharmony_ci	uint32_t reserved_37;
668c2ecf20Sopenharmony_ci	uint32_t reserved_38;
678c2ecf20Sopenharmony_ci	uint32_t reserved_39;
688c2ecf20Sopenharmony_ci	uint32_t reserved_40;
698c2ecf20Sopenharmony_ci	uint32_t reserved_41;
708c2ecf20Sopenharmony_ci	uint32_t reserved_42;
718c2ecf20Sopenharmony_ci	uint32_t reserved_43;
728c2ecf20Sopenharmony_ci	uint32_t reserved_44;
738c2ecf20Sopenharmony_ci	uint32_t reserved_45;
748c2ecf20Sopenharmony_ci	uint32_t reserved_46;
758c2ecf20Sopenharmony_ci	uint32_t reserved_47;
768c2ecf20Sopenharmony_ci	uint32_t reserved_48;
778c2ecf20Sopenharmony_ci	uint32_t reserved_49;
788c2ecf20Sopenharmony_ci	uint32_t reserved_50;
798c2ecf20Sopenharmony_ci	uint32_t reserved_51;
808c2ecf20Sopenharmony_ci	uint32_t reserved_52;
818c2ecf20Sopenharmony_ci	uint32_t reserved_53;
828c2ecf20Sopenharmony_ci	uint32_t reserved_54;
838c2ecf20Sopenharmony_ci	uint32_t reserved_55;
848c2ecf20Sopenharmony_ci	uint32_t reserved_56;
858c2ecf20Sopenharmony_ci	uint32_t reserved_57;
868c2ecf20Sopenharmony_ci	uint32_t reserved_58;
878c2ecf20Sopenharmony_ci	uint32_t reserved_59;
888c2ecf20Sopenharmony_ci	uint32_t reserved_60;
898c2ecf20Sopenharmony_ci	uint32_t reserved_61;
908c2ecf20Sopenharmony_ci	uint32_t reserved_62;
918c2ecf20Sopenharmony_ci	uint32_t reserved_63;
928c2ecf20Sopenharmony_ci	uint32_t reserved_64;
938c2ecf20Sopenharmony_ci	uint32_t reserved_65;
948c2ecf20Sopenharmony_ci	uint32_t reserved_66;
958c2ecf20Sopenharmony_ci	uint32_t reserved_67;
968c2ecf20Sopenharmony_ci	uint32_t reserved_68;
978c2ecf20Sopenharmony_ci	uint32_t reserved_69;
988c2ecf20Sopenharmony_ci	uint32_t reserved_70;
998c2ecf20Sopenharmony_ci	uint32_t reserved_71;
1008c2ecf20Sopenharmony_ci	uint32_t reserved_72;
1018c2ecf20Sopenharmony_ci	uint32_t reserved_73;
1028c2ecf20Sopenharmony_ci	uint32_t reserved_74;
1038c2ecf20Sopenharmony_ci	uint32_t reserved_75;
1048c2ecf20Sopenharmony_ci	uint32_t reserved_76;
1058c2ecf20Sopenharmony_ci	uint32_t reserved_77;
1068c2ecf20Sopenharmony_ci	uint32_t reserved_78;
1078c2ecf20Sopenharmony_ci	uint32_t reserved_79;
1088c2ecf20Sopenharmony_ci	uint32_t reserved_80;
1098c2ecf20Sopenharmony_ci	uint32_t reserved_81;
1108c2ecf20Sopenharmony_ci	uint32_t reserved_82;
1118c2ecf20Sopenharmony_ci	uint32_t reserved_83;
1128c2ecf20Sopenharmony_ci	uint32_t reserved_84;
1138c2ecf20Sopenharmony_ci	uint32_t reserved_85;
1148c2ecf20Sopenharmony_ci	uint32_t reserved_86;
1158c2ecf20Sopenharmony_ci	uint32_t reserved_87;
1168c2ecf20Sopenharmony_ci	uint32_t reserved_88;
1178c2ecf20Sopenharmony_ci	uint32_t reserved_89;
1188c2ecf20Sopenharmony_ci	uint32_t reserved_90;
1198c2ecf20Sopenharmony_ci	uint32_t reserved_91;
1208c2ecf20Sopenharmony_ci	uint32_t reserved_92;
1218c2ecf20Sopenharmony_ci	uint32_t reserved_93;
1228c2ecf20Sopenharmony_ci	uint32_t reserved_94;
1238c2ecf20Sopenharmony_ci	uint32_t reserved_95;
1248c2ecf20Sopenharmony_ci	uint32_t reserved_96;
1258c2ecf20Sopenharmony_ci	uint32_t reserved_97;
1268c2ecf20Sopenharmony_ci	uint32_t reserved_98;
1278c2ecf20Sopenharmony_ci	uint32_t reserved_99;
1288c2ecf20Sopenharmony_ci	uint32_t reserved_100;
1298c2ecf20Sopenharmony_ci	uint32_t reserved_101;
1308c2ecf20Sopenharmony_ci	uint32_t reserved_102;
1318c2ecf20Sopenharmony_ci	uint32_t reserved_103;
1328c2ecf20Sopenharmony_ci	uint32_t reserved_104;
1338c2ecf20Sopenharmony_ci	uint32_t reserved_105;
1348c2ecf20Sopenharmony_ci	uint32_t reserved_106;
1358c2ecf20Sopenharmony_ci	uint32_t reserved_107;
1368c2ecf20Sopenharmony_ci	uint32_t reserved_108;
1378c2ecf20Sopenharmony_ci	uint32_t reserved_109;
1388c2ecf20Sopenharmony_ci	uint32_t reserved_110;
1398c2ecf20Sopenharmony_ci	uint32_t reserved_111;
1408c2ecf20Sopenharmony_ci	uint32_t reserved_112;
1418c2ecf20Sopenharmony_ci	uint32_t reserved_113;
1428c2ecf20Sopenharmony_ci	uint32_t reserved_114;
1438c2ecf20Sopenharmony_ci	uint32_t reserved_115;
1448c2ecf20Sopenharmony_ci	uint32_t reserved_116;
1458c2ecf20Sopenharmony_ci	uint32_t reserved_117;
1468c2ecf20Sopenharmony_ci	uint32_t reserved_118;
1478c2ecf20Sopenharmony_ci	uint32_t reserved_119;
1488c2ecf20Sopenharmony_ci	uint32_t reserved_120;
1498c2ecf20Sopenharmony_ci	uint32_t reserved_121;
1508c2ecf20Sopenharmony_ci	uint32_t reserved_122;
1518c2ecf20Sopenharmony_ci	uint32_t reserved_123;
1528c2ecf20Sopenharmony_ci	uint32_t reserved_124;
1538c2ecf20Sopenharmony_ci	uint32_t reserved_125;
1548c2ecf20Sopenharmony_ci	/* reserved_126,127: repurposed for driver-internal use */
1558c2ecf20Sopenharmony_ci	uint32_t sdma_engine_id;
1568c2ecf20Sopenharmony_ci	uint32_t sdma_queue_id;
1578c2ecf20Sopenharmony_ci};
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_cistruct vi_mqd {
1608c2ecf20Sopenharmony_ci	uint32_t header;
1618c2ecf20Sopenharmony_ci	uint32_t compute_dispatch_initiator;
1628c2ecf20Sopenharmony_ci	uint32_t compute_dim_x;
1638c2ecf20Sopenharmony_ci	uint32_t compute_dim_y;
1648c2ecf20Sopenharmony_ci	uint32_t compute_dim_z;
1658c2ecf20Sopenharmony_ci	uint32_t compute_start_x;
1668c2ecf20Sopenharmony_ci	uint32_t compute_start_y;
1678c2ecf20Sopenharmony_ci	uint32_t compute_start_z;
1688c2ecf20Sopenharmony_ci	uint32_t compute_num_thread_x;
1698c2ecf20Sopenharmony_ci	uint32_t compute_num_thread_y;
1708c2ecf20Sopenharmony_ci	uint32_t compute_num_thread_z;
1718c2ecf20Sopenharmony_ci	uint32_t compute_pipelinestat_enable;
1728c2ecf20Sopenharmony_ci	uint32_t compute_perfcount_enable;
1738c2ecf20Sopenharmony_ci	uint32_t compute_pgm_lo;
1748c2ecf20Sopenharmony_ci	uint32_t compute_pgm_hi;
1758c2ecf20Sopenharmony_ci	uint32_t compute_tba_lo;
1768c2ecf20Sopenharmony_ci	uint32_t compute_tba_hi;
1778c2ecf20Sopenharmony_ci	uint32_t compute_tma_lo;
1788c2ecf20Sopenharmony_ci	uint32_t compute_tma_hi;
1798c2ecf20Sopenharmony_ci	uint32_t compute_pgm_rsrc1;
1808c2ecf20Sopenharmony_ci	uint32_t compute_pgm_rsrc2;
1818c2ecf20Sopenharmony_ci	uint32_t compute_vmid;
1828c2ecf20Sopenharmony_ci	uint32_t compute_resource_limits;
1838c2ecf20Sopenharmony_ci	uint32_t compute_static_thread_mgmt_se0;
1848c2ecf20Sopenharmony_ci	uint32_t compute_static_thread_mgmt_se1;
1858c2ecf20Sopenharmony_ci	uint32_t compute_tmpring_size;
1868c2ecf20Sopenharmony_ci	uint32_t compute_static_thread_mgmt_se2;
1878c2ecf20Sopenharmony_ci	uint32_t compute_static_thread_mgmt_se3;
1888c2ecf20Sopenharmony_ci	uint32_t compute_restart_x;
1898c2ecf20Sopenharmony_ci	uint32_t compute_restart_y;
1908c2ecf20Sopenharmony_ci	uint32_t compute_restart_z;
1918c2ecf20Sopenharmony_ci	uint32_t compute_thread_trace_enable;
1928c2ecf20Sopenharmony_ci	uint32_t compute_misc_reserved;
1938c2ecf20Sopenharmony_ci	uint32_t compute_dispatch_id;
1948c2ecf20Sopenharmony_ci	uint32_t compute_threadgroup_id;
1958c2ecf20Sopenharmony_ci	uint32_t compute_relaunch;
1968c2ecf20Sopenharmony_ci	uint32_t compute_wave_restore_addr_lo;
1978c2ecf20Sopenharmony_ci	uint32_t compute_wave_restore_addr_hi;
1988c2ecf20Sopenharmony_ci	uint32_t compute_wave_restore_control;
1998c2ecf20Sopenharmony_ci	uint32_t reserved9;
2008c2ecf20Sopenharmony_ci	uint32_t reserved10;
2018c2ecf20Sopenharmony_ci	uint32_t reserved11;
2028c2ecf20Sopenharmony_ci	uint32_t reserved12;
2038c2ecf20Sopenharmony_ci	uint32_t reserved13;
2048c2ecf20Sopenharmony_ci	uint32_t reserved14;
2058c2ecf20Sopenharmony_ci	uint32_t reserved15;
2068c2ecf20Sopenharmony_ci	uint32_t reserved16;
2078c2ecf20Sopenharmony_ci	uint32_t reserved17;
2088c2ecf20Sopenharmony_ci	uint32_t reserved18;
2098c2ecf20Sopenharmony_ci	uint32_t reserved19;
2108c2ecf20Sopenharmony_ci	uint32_t reserved20;
2118c2ecf20Sopenharmony_ci	uint32_t reserved21;
2128c2ecf20Sopenharmony_ci	uint32_t reserved22;
2138c2ecf20Sopenharmony_ci	uint32_t reserved23;
2148c2ecf20Sopenharmony_ci	uint32_t reserved24;
2158c2ecf20Sopenharmony_ci	uint32_t reserved25;
2168c2ecf20Sopenharmony_ci	uint32_t reserved26;
2178c2ecf20Sopenharmony_ci	uint32_t reserved27;
2188c2ecf20Sopenharmony_ci	uint32_t reserved28;
2198c2ecf20Sopenharmony_ci	uint32_t reserved29;
2208c2ecf20Sopenharmony_ci	uint32_t reserved30;
2218c2ecf20Sopenharmony_ci	uint32_t reserved31;
2228c2ecf20Sopenharmony_ci	uint32_t reserved32;
2238c2ecf20Sopenharmony_ci	uint32_t reserved33;
2248c2ecf20Sopenharmony_ci	uint32_t reserved34;
2258c2ecf20Sopenharmony_ci	uint32_t compute_user_data_0;
2268c2ecf20Sopenharmony_ci	uint32_t compute_user_data_1;
2278c2ecf20Sopenharmony_ci	uint32_t compute_user_data_2;
2288c2ecf20Sopenharmony_ci	uint32_t compute_user_data_3;
2298c2ecf20Sopenharmony_ci	uint32_t compute_user_data_4;
2308c2ecf20Sopenharmony_ci	uint32_t compute_user_data_5;
2318c2ecf20Sopenharmony_ci	uint32_t compute_user_data_6;
2328c2ecf20Sopenharmony_ci	uint32_t compute_user_data_7;
2338c2ecf20Sopenharmony_ci	uint32_t compute_user_data_8;
2348c2ecf20Sopenharmony_ci	uint32_t compute_user_data_9;
2358c2ecf20Sopenharmony_ci	uint32_t compute_user_data_10;
2368c2ecf20Sopenharmony_ci	uint32_t compute_user_data_11;
2378c2ecf20Sopenharmony_ci	uint32_t compute_user_data_12;
2388c2ecf20Sopenharmony_ci	uint32_t compute_user_data_13;
2398c2ecf20Sopenharmony_ci	uint32_t compute_user_data_14;
2408c2ecf20Sopenharmony_ci	uint32_t compute_user_data_15;
2418c2ecf20Sopenharmony_ci	uint32_t cp_compute_csinvoc_count_lo;
2428c2ecf20Sopenharmony_ci	uint32_t cp_compute_csinvoc_count_hi;
2438c2ecf20Sopenharmony_ci	uint32_t reserved35;
2448c2ecf20Sopenharmony_ci	uint32_t reserved36;
2458c2ecf20Sopenharmony_ci	uint32_t reserved37;
2468c2ecf20Sopenharmony_ci	uint32_t cp_mqd_query_time_lo;
2478c2ecf20Sopenharmony_ci	uint32_t cp_mqd_query_time_hi;
2488c2ecf20Sopenharmony_ci	uint32_t cp_mqd_connect_start_time_lo;
2498c2ecf20Sopenharmony_ci	uint32_t cp_mqd_connect_start_time_hi;
2508c2ecf20Sopenharmony_ci	uint32_t cp_mqd_connect_end_time_lo;
2518c2ecf20Sopenharmony_ci	uint32_t cp_mqd_connect_end_time_hi;
2528c2ecf20Sopenharmony_ci	uint32_t cp_mqd_connect_end_wf_count;
2538c2ecf20Sopenharmony_ci	uint32_t cp_mqd_connect_end_pq_rptr;
2548c2ecf20Sopenharmony_ci	uint32_t cp_mqd_connect_endvi_sdma_mqd_pq_wptr;
2558c2ecf20Sopenharmony_ci	uint32_t cp_mqd_connect_end_ib_rptr;
2568c2ecf20Sopenharmony_ci	uint32_t reserved38;
2578c2ecf20Sopenharmony_ci	uint32_t reserved39;
2588c2ecf20Sopenharmony_ci	uint32_t cp_mqd_save_start_time_lo;
2598c2ecf20Sopenharmony_ci	uint32_t cp_mqd_save_start_time_hi;
2608c2ecf20Sopenharmony_ci	uint32_t cp_mqd_save_end_time_lo;
2618c2ecf20Sopenharmony_ci	uint32_t cp_mqd_save_end_time_hi;
2628c2ecf20Sopenharmony_ci	uint32_t cp_mqd_restore_start_time_lo;
2638c2ecf20Sopenharmony_ci	uint32_t cp_mqd_restore_start_time_hi;
2648c2ecf20Sopenharmony_ci	uint32_t cp_mqd_restore_end_time_lo;
2658c2ecf20Sopenharmony_ci	uint32_t cp_mqd_restore_end_time_hi;
2668c2ecf20Sopenharmony_ci	uint32_t disable_queue;
2678c2ecf20Sopenharmony_ci	uint32_t reserved41;
2688c2ecf20Sopenharmony_ci	uint32_t gds_cs_ctxsw_cnt0;
2698c2ecf20Sopenharmony_ci	uint32_t gds_cs_ctxsw_cnt1;
2708c2ecf20Sopenharmony_ci	uint32_t gds_cs_ctxsw_cnt2;
2718c2ecf20Sopenharmony_ci	uint32_t gds_cs_ctxsw_cnt3;
2728c2ecf20Sopenharmony_ci	uint32_t reserved42;
2738c2ecf20Sopenharmony_ci	uint32_t reserved43;
2748c2ecf20Sopenharmony_ci	uint32_t cp_pq_exe_status_lo;
2758c2ecf20Sopenharmony_ci	uint32_t cp_pq_exe_status_hi;
2768c2ecf20Sopenharmony_ci	uint32_t cp_packet_id_lo;
2778c2ecf20Sopenharmony_ci	uint32_t cp_packet_id_hi;
2788c2ecf20Sopenharmony_ci	uint32_t cp_packet_exe_status_lo;
2798c2ecf20Sopenharmony_ci	uint32_t cp_packet_exe_status_hi;
2808c2ecf20Sopenharmony_ci	uint32_t gds_save_base_addr_lo;
2818c2ecf20Sopenharmony_ci	uint32_t gds_save_base_addr_hi;
2828c2ecf20Sopenharmony_ci	uint32_t gds_save_mask_lo;
2838c2ecf20Sopenharmony_ci	uint32_t gds_save_mask_hi;
2848c2ecf20Sopenharmony_ci	uint32_t ctx_save_base_addr_lo;
2858c2ecf20Sopenharmony_ci	uint32_t ctx_save_base_addr_hi;
2868c2ecf20Sopenharmony_ci	uint32_t dynamic_cu_mask_addr_lo;
2878c2ecf20Sopenharmony_ci	uint32_t dynamic_cu_mask_addr_hi;
2888c2ecf20Sopenharmony_ci	uint32_t cp_mqd_base_addr_lo;
2898c2ecf20Sopenharmony_ci	uint32_t cp_mqd_base_addr_hi;
2908c2ecf20Sopenharmony_ci	uint32_t cp_hqd_active;
2918c2ecf20Sopenharmony_ci	uint32_t cp_hqd_vmid;
2928c2ecf20Sopenharmony_ci	uint32_t cp_hqd_persistent_state;
2938c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pipe_priority;
2948c2ecf20Sopenharmony_ci	uint32_t cp_hqd_queue_priority;
2958c2ecf20Sopenharmony_ci	uint32_t cp_hqd_quantum;
2968c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_base_lo;
2978c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_base_hi;
2988c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_rptr;
2998c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_rptr_report_addr_lo;
3008c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_rptr_report_addr_hi;
3018c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_wptr_poll_addr_lo;
3028c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_wptr_poll_addr_hi;
3038c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_doorbell_control;
3048c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_wptr;
3058c2ecf20Sopenharmony_ci	uint32_t cp_hqd_pq_control;
3068c2ecf20Sopenharmony_ci	uint32_t cp_hqd_ib_base_addr_lo;
3078c2ecf20Sopenharmony_ci	uint32_t cp_hqd_ib_base_addr_hi;
3088c2ecf20Sopenharmony_ci	uint32_t cp_hqd_ib_rptr;
3098c2ecf20Sopenharmony_ci	uint32_t cp_hqd_ib_control;
3108c2ecf20Sopenharmony_ci	uint32_t cp_hqd_iq_timer;
3118c2ecf20Sopenharmony_ci	uint32_t cp_hqd_iq_rptr;
3128c2ecf20Sopenharmony_ci	uint32_t cp_hqd_dequeue_request;
3138c2ecf20Sopenharmony_ci	uint32_t cp_hqd_dma_offload;
3148c2ecf20Sopenharmony_ci	uint32_t cp_hqd_sema_cmd;
3158c2ecf20Sopenharmony_ci	uint32_t cp_hqd_msg_type;
3168c2ecf20Sopenharmony_ci	uint32_t cp_hqd_atomic0_preop_lo;
3178c2ecf20Sopenharmony_ci	uint32_t cp_hqd_atomic0_preop_hi;
3188c2ecf20Sopenharmony_ci	uint32_t cp_hqd_atomic1_preop_lo;
3198c2ecf20Sopenharmony_ci	uint32_t cp_hqd_atomic1_preop_hi;
3208c2ecf20Sopenharmony_ci	uint32_t cp_hqd_hq_status0;
3218c2ecf20Sopenharmony_ci	uint32_t cp_hqd_hq_control0;
3228c2ecf20Sopenharmony_ci	uint32_t cp_mqd_control;
3238c2ecf20Sopenharmony_ci	uint32_t cp_hqd_hq_status1;
3248c2ecf20Sopenharmony_ci	uint32_t cp_hqd_hq_control1;
3258c2ecf20Sopenharmony_ci	uint32_t cp_hqd_eop_base_addr_lo;
3268c2ecf20Sopenharmony_ci	uint32_t cp_hqd_eop_base_addr_hi;
3278c2ecf20Sopenharmony_ci	uint32_t cp_hqd_eop_control;
3288c2ecf20Sopenharmony_ci	uint32_t cp_hqd_eop_rptr;
3298c2ecf20Sopenharmony_ci	uint32_t cp_hqd_eop_wptr;
3308c2ecf20Sopenharmony_ci	uint32_t cp_hqd_eop_done_events;
3318c2ecf20Sopenharmony_ci	uint32_t cp_hqd_ctx_save_base_addr_lo;
3328c2ecf20Sopenharmony_ci	uint32_t cp_hqd_ctx_save_base_addr_hi;
3338c2ecf20Sopenharmony_ci	uint32_t cp_hqd_ctx_save_control;
3348c2ecf20Sopenharmony_ci	uint32_t cp_hqd_cntl_stack_offset;
3358c2ecf20Sopenharmony_ci	uint32_t cp_hqd_cntl_stack_size;
3368c2ecf20Sopenharmony_ci	uint32_t cp_hqd_wg_state_offset;
3378c2ecf20Sopenharmony_ci	uint32_t cp_hqd_ctx_save_size;
3388c2ecf20Sopenharmony_ci	uint32_t cp_hqd_gds_resource_state;
3398c2ecf20Sopenharmony_ci	uint32_t cp_hqd_error;
3408c2ecf20Sopenharmony_ci	uint32_t cp_hqd_eop_wptr_mem;
3418c2ecf20Sopenharmony_ci	uint32_t cp_hqd_eop_dones;
3428c2ecf20Sopenharmony_ci	uint32_t reserved46;
3438c2ecf20Sopenharmony_ci	uint32_t reserved47;
3448c2ecf20Sopenharmony_ci	uint32_t reserved48;
3458c2ecf20Sopenharmony_ci	uint32_t reserved49;
3468c2ecf20Sopenharmony_ci	uint32_t reserved50;
3478c2ecf20Sopenharmony_ci	uint32_t reserved51;
3488c2ecf20Sopenharmony_ci	uint32_t reserved52;
3498c2ecf20Sopenharmony_ci	uint32_t reserved53;
3508c2ecf20Sopenharmony_ci	uint32_t reserved54;
3518c2ecf20Sopenharmony_ci	uint32_t reserved55;
3528c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_header;
3538c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw0;
3548c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw1;
3558c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw2;
3568c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw3;
3578c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw4;
3588c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw5;
3598c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw6;
3608c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw7;
3618c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw8;
3628c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw9;
3638c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw10;
3648c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw11;
3658c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw12;
3668c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw13;
3678c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw14;
3688c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw15;
3698c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw16;
3708c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw17;
3718c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw18;
3728c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw19;
3738c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw20;
3748c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw21;
3758c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw22;
3768c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw23;
3778c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw24;
3788c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw25;
3798c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw26;
3808c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw27;
3818c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw28;
3828c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw29;
3838c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw30;
3848c2ecf20Sopenharmony_ci	uint32_t iqtimer_pkt_dw31;
3858c2ecf20Sopenharmony_ci	uint32_t reserved56;
3868c2ecf20Sopenharmony_ci	uint32_t reserved57;
3878c2ecf20Sopenharmony_ci	uint32_t reserved58;
3888c2ecf20Sopenharmony_ci	uint32_t set_resources_header;
3898c2ecf20Sopenharmony_ci	uint32_t set_resources_dw1;
3908c2ecf20Sopenharmony_ci	uint32_t set_resources_dw2;
3918c2ecf20Sopenharmony_ci	uint32_t set_resources_dw3;
3928c2ecf20Sopenharmony_ci	uint32_t set_resources_dw4;
3938c2ecf20Sopenharmony_ci	uint32_t set_resources_dw5;
3948c2ecf20Sopenharmony_ci	uint32_t set_resources_dw6;
3958c2ecf20Sopenharmony_ci	uint32_t set_resources_dw7;
3968c2ecf20Sopenharmony_ci	uint32_t reserved59;
3978c2ecf20Sopenharmony_ci	uint32_t reserved60;
3988c2ecf20Sopenharmony_ci	uint32_t reserved61;
3998c2ecf20Sopenharmony_ci	uint32_t reserved62;
4008c2ecf20Sopenharmony_ci	uint32_t reserved63;
4018c2ecf20Sopenharmony_ci	uint32_t reserved64;
4028c2ecf20Sopenharmony_ci	uint32_t reserved65;
4038c2ecf20Sopenharmony_ci	uint32_t reserved66;
4048c2ecf20Sopenharmony_ci	uint32_t reserved67;
4058c2ecf20Sopenharmony_ci	uint32_t reserved68;
4068c2ecf20Sopenharmony_ci	uint32_t reserved69;
4078c2ecf20Sopenharmony_ci	uint32_t reserved70;
4088c2ecf20Sopenharmony_ci	uint32_t reserved71;
4098c2ecf20Sopenharmony_ci	uint32_t reserved72;
4108c2ecf20Sopenharmony_ci	uint32_t reserved73;
4118c2ecf20Sopenharmony_ci	uint32_t reserved74;
4128c2ecf20Sopenharmony_ci	uint32_t reserved75;
4138c2ecf20Sopenharmony_ci	uint32_t reserved76;
4148c2ecf20Sopenharmony_ci	uint32_t reserved77;
4158c2ecf20Sopenharmony_ci	uint32_t reserved78;
4168c2ecf20Sopenharmony_ci	uint32_t reserved_t[256];
4178c2ecf20Sopenharmony_ci};
4188c2ecf20Sopenharmony_ci
4198c2ecf20Sopenharmony_cistruct vi_mqd_allocation {
4208c2ecf20Sopenharmony_ci	struct vi_mqd mqd;
4218c2ecf20Sopenharmony_ci	uint32_t wptr_poll_mem;
4228c2ecf20Sopenharmony_ci	uint32_t rptr_report_mem;
4238c2ecf20Sopenharmony_ci	uint32_t dynamic_cu_mask;
4248c2ecf20Sopenharmony_ci	uint32_t dynamic_rb_mask;
4258c2ecf20Sopenharmony_ci};
4268c2ecf20Sopenharmony_ci
4278c2ecf20Sopenharmony_cistruct vi_ce_ib_state {
4288c2ecf20Sopenharmony_ci	uint32_t    ce_ib_completion_status;
4298c2ecf20Sopenharmony_ci	uint32_t    ce_constegnine_count;
4308c2ecf20Sopenharmony_ci	uint32_t    ce_ibOffset_ib1;
4318c2ecf20Sopenharmony_ci	uint32_t    ce_ibOffset_ib2;
4328c2ecf20Sopenharmony_ci}; /* Total of 4 DWORD */
4338c2ecf20Sopenharmony_ci
4348c2ecf20Sopenharmony_cistruct vi_de_ib_state {
4358c2ecf20Sopenharmony_ci	uint32_t    ib_completion_status;
4368c2ecf20Sopenharmony_ci	uint32_t    de_constEngine_count;
4378c2ecf20Sopenharmony_ci	uint32_t    ib_offset_ib1;
4388c2ecf20Sopenharmony_ci	uint32_t    ib_offset_ib2;
4398c2ecf20Sopenharmony_ci	uint32_t    preamble_begin_ib1;
4408c2ecf20Sopenharmony_ci	uint32_t    preamble_begin_ib2;
4418c2ecf20Sopenharmony_ci	uint32_t    preamble_end_ib1;
4428c2ecf20Sopenharmony_ci	uint32_t    preamble_end_ib2;
4438c2ecf20Sopenharmony_ci	uint32_t    draw_indirect_baseLo;
4448c2ecf20Sopenharmony_ci	uint32_t    draw_indirect_baseHi;
4458c2ecf20Sopenharmony_ci	uint32_t    disp_indirect_baseLo;
4468c2ecf20Sopenharmony_ci	uint32_t    disp_indirect_baseHi;
4478c2ecf20Sopenharmony_ci	uint32_t    gds_backup_addrlo;
4488c2ecf20Sopenharmony_ci	uint32_t    gds_backup_addrhi;
4498c2ecf20Sopenharmony_ci	uint32_t    index_base_addrlo;
4508c2ecf20Sopenharmony_ci	uint32_t    index_base_addrhi;
4518c2ecf20Sopenharmony_ci	uint32_t    sample_cntl;
4528c2ecf20Sopenharmony_ci}; /* Total of 17 DWORD */
4538c2ecf20Sopenharmony_ci
4548c2ecf20Sopenharmony_cistruct vi_ce_ib_state_chained_ib {
4558c2ecf20Sopenharmony_ci	/* section of non chained ib part */
4568c2ecf20Sopenharmony_ci	uint32_t    ce_ib_completion_status;
4578c2ecf20Sopenharmony_ci	uint32_t    ce_constegnine_count;
4588c2ecf20Sopenharmony_ci	uint32_t    ce_ibOffset_ib1;
4598c2ecf20Sopenharmony_ci	uint32_t    ce_ibOffset_ib2;
4608c2ecf20Sopenharmony_ci
4618c2ecf20Sopenharmony_ci	/* section of chained ib */
4628c2ecf20Sopenharmony_ci	uint32_t    ce_chainib_addrlo_ib1;
4638c2ecf20Sopenharmony_ci	uint32_t    ce_chainib_addrlo_ib2;
4648c2ecf20Sopenharmony_ci	uint32_t    ce_chainib_addrhi_ib1;
4658c2ecf20Sopenharmony_ci	uint32_t    ce_chainib_addrhi_ib2;
4668c2ecf20Sopenharmony_ci	uint32_t    ce_chainib_size_ib1;
4678c2ecf20Sopenharmony_ci	uint32_t    ce_chainib_size_ib2;
4688c2ecf20Sopenharmony_ci}; /* total 10 DWORD */
4698c2ecf20Sopenharmony_ci
4708c2ecf20Sopenharmony_cistruct vi_de_ib_state_chained_ib {
4718c2ecf20Sopenharmony_ci	/* section of non chained ib part */
4728c2ecf20Sopenharmony_ci	uint32_t    ib_completion_status;
4738c2ecf20Sopenharmony_ci	uint32_t    de_constEngine_count;
4748c2ecf20Sopenharmony_ci	uint32_t    ib_offset_ib1;
4758c2ecf20Sopenharmony_ci	uint32_t    ib_offset_ib2;
4768c2ecf20Sopenharmony_ci
4778c2ecf20Sopenharmony_ci	/* section of chained ib */
4788c2ecf20Sopenharmony_ci	uint32_t    chain_ib_addrlo_ib1;
4798c2ecf20Sopenharmony_ci	uint32_t    chain_ib_addrlo_ib2;
4808c2ecf20Sopenharmony_ci	uint32_t    chain_ib_addrhi_ib1;
4818c2ecf20Sopenharmony_ci	uint32_t    chain_ib_addrhi_ib2;
4828c2ecf20Sopenharmony_ci	uint32_t    chain_ib_size_ib1;
4838c2ecf20Sopenharmony_ci	uint32_t    chain_ib_size_ib2;
4848c2ecf20Sopenharmony_ci
4858c2ecf20Sopenharmony_ci	/* section of non chained ib part */
4868c2ecf20Sopenharmony_ci	uint32_t    preamble_begin_ib1;
4878c2ecf20Sopenharmony_ci	uint32_t    preamble_begin_ib2;
4888c2ecf20Sopenharmony_ci	uint32_t    preamble_end_ib1;
4898c2ecf20Sopenharmony_ci	uint32_t    preamble_end_ib2;
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_ci	/* section of chained ib */
4928c2ecf20Sopenharmony_ci	uint32_t    chain_ib_pream_addrlo_ib1;
4938c2ecf20Sopenharmony_ci	uint32_t    chain_ib_pream_addrlo_ib2;
4948c2ecf20Sopenharmony_ci	uint32_t    chain_ib_pream_addrhi_ib1;
4958c2ecf20Sopenharmony_ci	uint32_t    chain_ib_pream_addrhi_ib2;
4968c2ecf20Sopenharmony_ci
4978c2ecf20Sopenharmony_ci	/* section of non chained ib part */
4988c2ecf20Sopenharmony_ci	uint32_t    draw_indirect_baseLo;
4998c2ecf20Sopenharmony_ci	uint32_t    draw_indirect_baseHi;
5008c2ecf20Sopenharmony_ci	uint32_t    disp_indirect_baseLo;
5018c2ecf20Sopenharmony_ci	uint32_t    disp_indirect_baseHi;
5028c2ecf20Sopenharmony_ci	uint32_t    gds_backup_addrlo;
5038c2ecf20Sopenharmony_ci	uint32_t    gds_backup_addrhi;
5048c2ecf20Sopenharmony_ci	uint32_t    index_base_addrlo;
5058c2ecf20Sopenharmony_ci	uint32_t    index_base_addrhi;
5068c2ecf20Sopenharmony_ci	uint32_t    sample_cntl;
5078c2ecf20Sopenharmony_ci}; /* Total of 27 DWORD */
5088c2ecf20Sopenharmony_ci
5098c2ecf20Sopenharmony_cistruct vi_gfx_meta_data {
5108c2ecf20Sopenharmony_ci	/* 4 DWORD, address must be 4KB aligned */
5118c2ecf20Sopenharmony_ci	struct vi_ce_ib_state        ce_payload;
5128c2ecf20Sopenharmony_ci	uint32_t                     reserved1[60];
5138c2ecf20Sopenharmony_ci	/* 17 DWORD, address must be 64B aligned */
5148c2ecf20Sopenharmony_ci	struct vi_de_ib_state        de_payload;
5158c2ecf20Sopenharmony_ci	/* PFP IB base address which get pre-empted */
5168c2ecf20Sopenharmony_ci	uint32_t                     DeIbBaseAddrLo;
5178c2ecf20Sopenharmony_ci	uint32_t                     DeIbBaseAddrHi;
5188c2ecf20Sopenharmony_ci	uint32_t                     reserved2[941];
5198c2ecf20Sopenharmony_ci}; /* Total of 4K Bytes */
5208c2ecf20Sopenharmony_ci
5218c2ecf20Sopenharmony_cistruct vi_gfx_meta_data_chained_ib {
5228c2ecf20Sopenharmony_ci	/* 10 DWORD, address must be 4KB aligned */
5238c2ecf20Sopenharmony_ci	struct vi_ce_ib_state_chained_ib       ce_payload;
5248c2ecf20Sopenharmony_ci	uint32_t                               reserved1[54];
5258c2ecf20Sopenharmony_ci	/* 27 DWORD, address must be 64B aligned */
5268c2ecf20Sopenharmony_ci	struct vi_de_ib_state_chained_ib       de_payload;
5278c2ecf20Sopenharmony_ci	/* PFP IB base address which get pre-empted */
5288c2ecf20Sopenharmony_ci	uint32_t                               DeIbBaseAddrLo;
5298c2ecf20Sopenharmony_ci	uint32_t                               DeIbBaseAddrHi;
5308c2ecf20Sopenharmony_ci	uint32_t                               reserved2[931];
5318c2ecf20Sopenharmony_ci}; /* Total of 4K Bytes */
5328c2ecf20Sopenharmony_ci
5338c2ecf20Sopenharmony_ci#endif /* VI_STRUCTS_H_ */
534