pvr_rogue_fwif_check.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. /* SPDX-License-Identifier: GPL-2.0-only OR MIT */
  2. /* Copyright (c) 2023 Imagination Technologies Ltd. */
  3. #ifndef PVR_ROGUE_FWIF_CHECK_H
  4. #define PVR_ROGUE_FWIF_CHECK_H
  5. #include <linux/build_bug.h>
  6. #define OFFSET_CHECK(type, member, offset) \
  7. static_assert(offsetof(type, member) == (offset), \
  8. "offsetof(" #type ", " #member ") incorrect")
  9. #define SIZE_CHECK(type, size) \
  10. static_assert(sizeof(type) == (size), #type " is incorrect size")
  11. OFFSET_CHECK(struct rogue_fwif_file_info_buf, path, 0);
  12. OFFSET_CHECK(struct rogue_fwif_file_info_buf, info, 200);
  13. OFFSET_CHECK(struct rogue_fwif_file_info_buf, line_num, 400);
  14. SIZE_CHECK(struct rogue_fwif_file_info_buf, 408);
  15. OFFSET_CHECK(struct rogue_fwif_tracebuf_space, trace_pointer, 0);
  16. OFFSET_CHECK(struct rogue_fwif_tracebuf_space, trace_buffer_fw_addr, 4);
  17. OFFSET_CHECK(struct rogue_fwif_tracebuf_space, trace_buffer, 8);
  18. OFFSET_CHECK(struct rogue_fwif_tracebuf_space, assert_buf, 16);
  19. SIZE_CHECK(struct rogue_fwif_tracebuf_space, 424);
  20. OFFSET_CHECK(struct rogue_fwif_tracebuf, log_type, 0);
  21. OFFSET_CHECK(struct rogue_fwif_tracebuf, tracebuf, 8);
  22. OFFSET_CHECK(struct rogue_fwif_tracebuf, tracebuf_size_in_dwords, 856);
  23. OFFSET_CHECK(struct rogue_fwif_tracebuf, tracebuf_flags, 860);
  24. SIZE_CHECK(struct rogue_fwif_tracebuf, 864);
  25. OFFSET_CHECK(struct rogue_fw_fault_info, cr_timer, 0);
  26. OFFSET_CHECK(struct rogue_fw_fault_info, os_timer, 8);
  27. OFFSET_CHECK(struct rogue_fw_fault_info, data, 16);
  28. OFFSET_CHECK(struct rogue_fw_fault_info, reserved, 20);
  29. OFFSET_CHECK(struct rogue_fw_fault_info, fault_buf, 24);
  30. SIZE_CHECK(struct rogue_fw_fault_info, 432);
  31. OFFSET_CHECK(struct rogue_fwif_sysdata, config_flags, 0);
  32. OFFSET_CHECK(struct rogue_fwif_sysdata, config_flags_ext, 4);
  33. OFFSET_CHECK(struct rogue_fwif_sysdata, pow_state, 8);
  34. OFFSET_CHECK(struct rogue_fwif_sysdata, hw_perf_ridx, 12);
  35. OFFSET_CHECK(struct rogue_fwif_sysdata, hw_perf_widx, 16);
  36. OFFSET_CHECK(struct rogue_fwif_sysdata, hw_perf_wrap_count, 20);
  37. OFFSET_CHECK(struct rogue_fwif_sysdata, hw_perf_size, 24);
  38. OFFSET_CHECK(struct rogue_fwif_sysdata, hw_perf_drop_count, 28);
  39. OFFSET_CHECK(struct rogue_fwif_sysdata, hw_perf_ut, 32);
  40. OFFSET_CHECK(struct rogue_fwif_sysdata, first_drop_ordinal, 36);
  41. OFFSET_CHECK(struct rogue_fwif_sysdata, last_drop_ordinal, 40);
  42. OFFSET_CHECK(struct rogue_fwif_sysdata, os_runtime_flags_mirror, 44);
  43. OFFSET_CHECK(struct rogue_fwif_sysdata, fault_info, 80);
  44. OFFSET_CHECK(struct rogue_fwif_sysdata, fw_faults, 3536);
  45. OFFSET_CHECK(struct rogue_fwif_sysdata, cr_poll_addr, 3540);
  46. OFFSET_CHECK(struct rogue_fwif_sysdata, cr_poll_mask, 3548);
  47. OFFSET_CHECK(struct rogue_fwif_sysdata, cr_poll_count, 3556);
  48. OFFSET_CHECK(struct rogue_fwif_sysdata, start_idle_time, 3568);
  49. OFFSET_CHECK(struct rogue_fwif_sysdata, hwr_state_flags, 3576);
  50. OFFSET_CHECK(struct rogue_fwif_sysdata, hwr_recovery_flags, 3580);
  51. OFFSET_CHECK(struct rogue_fwif_sysdata, fw_sys_data_flags, 3616);
  52. OFFSET_CHECK(struct rogue_fwif_sysdata, mc_config, 3620);
  53. SIZE_CHECK(struct rogue_fwif_sysdata, 3624);
  54. OFFSET_CHECK(struct rogue_fwif_slr_entry, timestamp, 0);
  55. OFFSET_CHECK(struct rogue_fwif_slr_entry, fw_ctx_addr, 8);
  56. OFFSET_CHECK(struct rogue_fwif_slr_entry, num_ufos, 12);
  57. OFFSET_CHECK(struct rogue_fwif_slr_entry, ccb_name, 16);
  58. SIZE_CHECK(struct rogue_fwif_slr_entry, 48);
  59. OFFSET_CHECK(struct rogue_fwif_osdata, fw_os_config_flags, 0);
  60. OFFSET_CHECK(struct rogue_fwif_osdata, fw_sync_check_mark, 4);
  61. OFFSET_CHECK(struct rogue_fwif_osdata, host_sync_check_mark, 8);
  62. OFFSET_CHECK(struct rogue_fwif_osdata, forced_updates_requested, 12);
  63. OFFSET_CHECK(struct rogue_fwif_osdata, slr_log_wp, 16);
  64. OFFSET_CHECK(struct rogue_fwif_osdata, slr_log_first, 24);
  65. OFFSET_CHECK(struct rogue_fwif_osdata, slr_log, 72);
  66. OFFSET_CHECK(struct rogue_fwif_osdata, last_forced_update_time, 552);
  67. OFFSET_CHECK(struct rogue_fwif_osdata, interrupt_count, 560);
  68. OFFSET_CHECK(struct rogue_fwif_osdata, kccb_cmds_executed, 568);
  69. OFFSET_CHECK(struct rogue_fwif_osdata, power_sync_fw_addr, 572);
  70. OFFSET_CHECK(struct rogue_fwif_osdata, fw_os_data_flags, 576);
  71. SIZE_CHECK(struct rogue_fwif_osdata, 584);
  72. OFFSET_CHECK(struct rogue_bifinfo, bif_req_status, 0);
  73. OFFSET_CHECK(struct rogue_bifinfo, bif_mmu_status, 8);
  74. OFFSET_CHECK(struct rogue_bifinfo, pc_address, 16);
  75. OFFSET_CHECK(struct rogue_bifinfo, reserved, 24);
  76. SIZE_CHECK(struct rogue_bifinfo, 32);
  77. OFFSET_CHECK(struct rogue_eccinfo, fault_gpu, 0);
  78. SIZE_CHECK(struct rogue_eccinfo, 4);
  79. OFFSET_CHECK(struct rogue_mmuinfo, mmu_status, 0);
  80. OFFSET_CHECK(struct rogue_mmuinfo, pc_address, 16);
  81. OFFSET_CHECK(struct rogue_mmuinfo, reserved, 24);
  82. SIZE_CHECK(struct rogue_mmuinfo, 32);
  83. OFFSET_CHECK(struct rogue_pollinfo, thread_num, 0);
  84. OFFSET_CHECK(struct rogue_pollinfo, cr_poll_addr, 4);
  85. OFFSET_CHECK(struct rogue_pollinfo, cr_poll_mask, 8);
  86. OFFSET_CHECK(struct rogue_pollinfo, cr_poll_last_value, 12);
  87. OFFSET_CHECK(struct rogue_pollinfo, reserved, 16);
  88. SIZE_CHECK(struct rogue_pollinfo, 24);
  89. OFFSET_CHECK(struct rogue_tlbinfo, bad_addr, 0);
  90. OFFSET_CHECK(struct rogue_tlbinfo, entry_lo, 4);
  91. SIZE_CHECK(struct rogue_tlbinfo, 8);
  92. OFFSET_CHECK(struct rogue_hwrinfo, hwr_data, 0);
  93. OFFSET_CHECK(struct rogue_hwrinfo, cr_timer, 32);
  94. OFFSET_CHECK(struct rogue_hwrinfo, os_timer, 40);
  95. OFFSET_CHECK(struct rogue_hwrinfo, frame_num, 48);
  96. OFFSET_CHECK(struct rogue_hwrinfo, pid, 52);
  97. OFFSET_CHECK(struct rogue_hwrinfo, active_hwrt_data, 56);
  98. OFFSET_CHECK(struct rogue_hwrinfo, hwr_number, 60);
  99. OFFSET_CHECK(struct rogue_hwrinfo, event_status, 64);
  100. OFFSET_CHECK(struct rogue_hwrinfo, hwr_recovery_flags, 68);
  101. OFFSET_CHECK(struct rogue_hwrinfo, hwr_type, 72);
  102. OFFSET_CHECK(struct rogue_hwrinfo, dm, 76);
  103. OFFSET_CHECK(struct rogue_hwrinfo, core_id, 80);
  104. OFFSET_CHECK(struct rogue_hwrinfo, cr_time_of_kick, 88);
  105. OFFSET_CHECK(struct rogue_hwrinfo, cr_time_hw_reset_start, 96);
  106. OFFSET_CHECK(struct rogue_hwrinfo, cr_time_hw_reset_finish, 104);
  107. OFFSET_CHECK(struct rogue_hwrinfo, cr_time_freelist_ready, 112);
  108. OFFSET_CHECK(struct rogue_hwrinfo, reserved, 120);
  109. SIZE_CHECK(struct rogue_hwrinfo, 136);
  110. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, hwr_info, 0);
  111. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, hwr_counter, 2176);
  112. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, write_index, 2180);
  113. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, dd_req_count, 2184);
  114. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, hwr_info_buf_flags, 2188);
  115. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, hwr_dm_locked_up_count, 2192);
  116. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, hwr_dm_overran_count, 2228);
  117. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, hwr_dm_recovered_count, 2264);
  118. OFFSET_CHECK(struct rogue_fwif_hwrinfobuf, hwr_dm_false_detect_count, 2300);
  119. SIZE_CHECK(struct rogue_fwif_hwrinfobuf, 2336);
  120. OFFSET_CHECK(struct rogue_fwif_fwmemcontext, pc_dev_paddr, 0);
  121. OFFSET_CHECK(struct rogue_fwif_fwmemcontext, page_cat_base_reg_set, 8);
  122. OFFSET_CHECK(struct rogue_fwif_fwmemcontext, breakpoint_addr, 12);
  123. OFFSET_CHECK(struct rogue_fwif_fwmemcontext, bp_handler_addr, 16);
  124. OFFSET_CHECK(struct rogue_fwif_fwmemcontext, breakpoint_ctl, 20);
  125. OFFSET_CHECK(struct rogue_fwif_fwmemcontext, fw_mem_ctx_flags, 24);
  126. SIZE_CHECK(struct rogue_fwif_fwmemcontext, 32);
  127. OFFSET_CHECK(struct rogue_fwif_geom_ctx_state_per_geom, geom_reg_vdm_call_stack_pointer, 0);
  128. OFFSET_CHECK(struct rogue_fwif_geom_ctx_state_per_geom, geom_reg_vdm_call_stack_pointer_init, 8);
  129. OFFSET_CHECK(struct rogue_fwif_geom_ctx_state_per_geom, geom_reg_vbs_so_prim, 16);
  130. OFFSET_CHECK(struct rogue_fwif_geom_ctx_state_per_geom, geom_current_idx, 32);
  131. SIZE_CHECK(struct rogue_fwif_geom_ctx_state_per_geom, 40);
  132. OFFSET_CHECK(struct rogue_fwif_geom_ctx_state, geom_core, 0);
  133. SIZE_CHECK(struct rogue_fwif_geom_ctx_state, 160);
  134. OFFSET_CHECK(struct rogue_fwif_frag_ctx_state, frag_reg_pm_deallocated_mask_status, 0);
  135. OFFSET_CHECK(struct rogue_fwif_frag_ctx_state, frag_reg_dm_pds_mtilefree_status, 4);
  136. OFFSET_CHECK(struct rogue_fwif_frag_ctx_state, ctx_state_flags, 8);
  137. OFFSET_CHECK(struct rogue_fwif_frag_ctx_state, frag_reg_isp_store, 12);
  138. SIZE_CHECK(struct rogue_fwif_frag_ctx_state, 16);
  139. OFFSET_CHECK(struct rogue_fwif_compute_ctx_state, ctx_state_flags, 0);
  140. SIZE_CHECK(struct rogue_fwif_compute_ctx_state, 4);
  141. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, ccbctl_fw_addr, 0);
  142. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, ccb_fw_addr, 4);
  143. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, ccb_meta_dma_addr, 8);
  144. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, context_state_addr, 24);
  145. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, fw_com_ctx_flags, 28);
  146. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, priority, 32);
  147. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, priority_seq_num, 36);
  148. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, rf_cmd_addr, 40);
  149. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, stats_pending, 44);
  150. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, stats_num_stores, 48);
  151. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, stats_num_out_of_memory, 52);
  152. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, stats_num_partial_renders, 56);
  153. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, dm, 60);
  154. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, wait_signal_address, 64);
  155. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, wait_signal_node, 72);
  156. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, buf_stalled_node, 80);
  157. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, cbuf_queue_ctrl_addr, 88);
  158. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, robustness_address, 96);
  159. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, max_deadline_ms, 104);
  160. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, read_offset_needs_reset, 108);
  161. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, waiting_node, 112);
  162. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, run_node, 120);
  163. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, last_failed_ufo, 128);
  164. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, fw_mem_context_fw_addr, 136);
  165. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, server_common_context_id, 140);
  166. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, pid, 144);
  167. OFFSET_CHECK(struct rogue_fwif_fwcommoncontext, geom_oom_disabled, 148);
  168. SIZE_CHECK(struct rogue_fwif_fwcommoncontext, 152);
  169. OFFSET_CHECK(struct rogue_fwif_ccb_ctl, write_offset, 0);
  170. OFFSET_CHECK(struct rogue_fwif_ccb_ctl, padding, 4);
  171. OFFSET_CHECK(struct rogue_fwif_ccb_ctl, read_offset, 128);
  172. OFFSET_CHECK(struct rogue_fwif_ccb_ctl, wrap_mask, 132);
  173. OFFSET_CHECK(struct rogue_fwif_ccb_ctl, cmd_size, 136);
  174. OFFSET_CHECK(struct rogue_fwif_ccb_ctl, padding2, 140);
  175. SIZE_CHECK(struct rogue_fwif_ccb_ctl, 144);
  176. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_kick_data, context_fw_addr, 0);
  177. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_kick_data, client_woff_update, 4);
  178. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_kick_data, client_wrap_mask_update, 8);
  179. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_kick_data, num_cleanup_ctl, 12);
  180. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_kick_data, cleanup_ctl_fw_addr, 16);
  181. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_kick_data, work_est_cmd_header_offset, 28);
  182. SIZE_CHECK(struct rogue_fwif_kccb_cmd_kick_data, 32);
  183. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_combined_geom_frag_kick_data, geom_cmd_kick_data, 0);
  184. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_combined_geom_frag_kick_data, frag_cmd_kick_data, 32);
  185. SIZE_CHECK(struct rogue_fwif_kccb_cmd_combined_geom_frag_kick_data, 64);
  186. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_force_update_data, context_fw_addr, 0);
  187. OFFSET_CHECK(struct rogue_fwif_kccb_cmd_force_update_data, ccb_fence_offset, 4);
  188. SIZE_CHECK(struct rogue_fwif_kccb_cmd_force_update_data, 8);
  189. OFFSET_CHECK(struct rogue_fwif_cleanup_request, cleanup_type, 0);
  190. OFFSET_CHECK(struct rogue_fwif_cleanup_request, cleanup_data, 4);
  191. SIZE_CHECK(struct rogue_fwif_cleanup_request, 8);
  192. OFFSET_CHECK(struct rogue_fwif_power_request, pow_type, 0);
  193. OFFSET_CHECK(struct rogue_fwif_power_request, power_req_data, 4);
  194. SIZE_CHECK(struct rogue_fwif_power_request, 8);
  195. OFFSET_CHECK(struct rogue_fwif_slcflushinvaldata, context_fw_addr, 0);
  196. OFFSET_CHECK(struct rogue_fwif_slcflushinvaldata, inval, 4);
  197. OFFSET_CHECK(struct rogue_fwif_slcflushinvaldata, dm_context, 8);
  198. OFFSET_CHECK(struct rogue_fwif_slcflushinvaldata, address, 16);
  199. OFFSET_CHECK(struct rogue_fwif_slcflushinvaldata, size, 24);
  200. SIZE_CHECK(struct rogue_fwif_slcflushinvaldata, 32);
  201. OFFSET_CHECK(struct rogue_fwif_hwperf_ctrl, opcode, 0);
  202. OFFSET_CHECK(struct rogue_fwif_hwperf_ctrl, mask, 8);
  203. SIZE_CHECK(struct rogue_fwif_hwperf_ctrl, 16);
  204. OFFSET_CHECK(struct rogue_fwif_hwperf_config_enable_blks, num_blocks, 0);
  205. OFFSET_CHECK(struct rogue_fwif_hwperf_config_enable_blks, block_configs_fw_addr, 4);
  206. SIZE_CHECK(struct rogue_fwif_hwperf_config_enable_blks, 8);
  207. OFFSET_CHECK(struct rogue_fwif_hwperf_config_da_blks, num_blocks, 0);
  208. OFFSET_CHECK(struct rogue_fwif_hwperf_config_da_blks, block_configs_fw_addr, 4);
  209. SIZE_CHECK(struct rogue_fwif_hwperf_config_da_blks, 8);
  210. OFFSET_CHECK(struct rogue_fwif_coreclkspeedchange_data, new_clock_speed, 0);
  211. SIZE_CHECK(struct rogue_fwif_coreclkspeedchange_data, 4);
  212. OFFSET_CHECK(struct rogue_fwif_hwperf_ctrl_blks, enable, 0);
  213. OFFSET_CHECK(struct rogue_fwif_hwperf_ctrl_blks, num_blocks, 4);
  214. OFFSET_CHECK(struct rogue_fwif_hwperf_ctrl_blks, block_ids, 8);
  215. SIZE_CHECK(struct rogue_fwif_hwperf_ctrl_blks, 40);
  216. OFFSET_CHECK(struct rogue_fwif_hwperf_select_custom_cntrs, custom_block, 0);
  217. OFFSET_CHECK(struct rogue_fwif_hwperf_select_custom_cntrs, num_counters, 2);
  218. OFFSET_CHECK(struct rogue_fwif_hwperf_select_custom_cntrs, custom_counter_ids_fw_addr, 4);
  219. SIZE_CHECK(struct rogue_fwif_hwperf_select_custom_cntrs, 8);
  220. OFFSET_CHECK(struct rogue_fwif_zsbuffer_backing_data, zs_buffer_fw_addr, 0);
  221. OFFSET_CHECK(struct rogue_fwif_zsbuffer_backing_data, done, 4);
  222. SIZE_CHECK(struct rogue_fwif_zsbuffer_backing_data, 8);
  223. OFFSET_CHECK(struct rogue_fwif_freelist_gs_data, freelist_fw_addr, 0);
  224. OFFSET_CHECK(struct rogue_fwif_freelist_gs_data, delta_pages, 4);
  225. OFFSET_CHECK(struct rogue_fwif_freelist_gs_data, new_pages, 8);
  226. OFFSET_CHECK(struct rogue_fwif_freelist_gs_data, ready_pages, 12);
  227. SIZE_CHECK(struct rogue_fwif_freelist_gs_data, 16);
  228. OFFSET_CHECK(struct rogue_fwif_freelists_reconstruction_data, freelist_count, 0);
  229. OFFSET_CHECK(struct rogue_fwif_freelists_reconstruction_data, freelist_ids, 4);
  230. SIZE_CHECK(struct rogue_fwif_freelists_reconstruction_data, 76);
  231. OFFSET_CHECK(struct rogue_fwif_write_offset_update_data, context_fw_addr, 0);
  232. SIZE_CHECK(struct rogue_fwif_write_offset_update_data, 8);
  233. OFFSET_CHECK(struct rogue_fwif_kccb_cmd, cmd_type, 0);
  234. OFFSET_CHECK(struct rogue_fwif_kccb_cmd, kccb_flags, 4);
  235. OFFSET_CHECK(struct rogue_fwif_kccb_cmd, cmd_data, 8);
  236. SIZE_CHECK(struct rogue_fwif_kccb_cmd, 88);
  237. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd_context_reset_data, server_common_context_id, 0);
  238. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd_context_reset_data, reset_reason, 4);
  239. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd_context_reset_data, dm, 8);
  240. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd_context_reset_data, reset_job_ref, 12);
  241. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd_context_reset_data, flags, 16);
  242. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd_context_reset_data, pc_address, 24);
  243. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd_context_reset_data, fault_address, 32);
  244. SIZE_CHECK(struct rogue_fwif_fwccb_cmd_context_reset_data, 40);
  245. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd_fw_pagefault_data, fw_fault_addr, 0);
  246. SIZE_CHECK(struct rogue_fwif_fwccb_cmd_fw_pagefault_data, 8);
  247. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd, cmd_type, 0);
  248. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd, fwccb_flags, 4);
  249. OFFSET_CHECK(struct rogue_fwif_fwccb_cmd, cmd_data, 8);
  250. SIZE_CHECK(struct rogue_fwif_fwccb_cmd, 88);
  251. OFFSET_CHECK(struct rogue_fwif_ccb_cmd_header, cmd_type, 0);
  252. OFFSET_CHECK(struct rogue_fwif_ccb_cmd_header, cmd_size, 4);
  253. OFFSET_CHECK(struct rogue_fwif_ccb_cmd_header, ext_job_ref, 8);
  254. OFFSET_CHECK(struct rogue_fwif_ccb_cmd_header, int_job_ref, 12);
  255. OFFSET_CHECK(struct rogue_fwif_ccb_cmd_header, work_est_kick_data, 16);
  256. SIZE_CHECK(struct rogue_fwif_ccb_cmd_header, 40);
  257. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, active_pm_latency_ms, 0);
  258. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, runtime_cfg_flags, 4);
  259. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, active_pm_latency_persistant, 8);
  260. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, core_clock_speed, 12);
  261. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, default_dusts_num_init, 16);
  262. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, phr_mode, 20);
  263. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, hcs_deadline_ms, 24);
  264. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, wdg_period_us, 28);
  265. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, osid_priority, 32);
  266. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, hwperf_buf_fw_addr, 64);
  267. OFFSET_CHECK(struct rogue_fwif_runtime_cfg, padding, 68);
  268. SIZE_CHECK(struct rogue_fwif_runtime_cfg, 72);
  269. OFFSET_CHECK(struct rogue_fwif_connection_ctl, connection_fw_state, 0);
  270. OFFSET_CHECK(struct rogue_fwif_connection_ctl, connection_os_state, 4);
  271. OFFSET_CHECK(struct rogue_fwif_connection_ctl, alive_fw_token, 8);
  272. OFFSET_CHECK(struct rogue_fwif_connection_ctl, alive_os_token, 12);
  273. SIZE_CHECK(struct rogue_fwif_connection_ctl, 16);
  274. OFFSET_CHECK(struct rogue_fwif_compchecks_bvnc, layout_version, 0);
  275. OFFSET_CHECK(struct rogue_fwif_compchecks_bvnc, bvnc, 8);
  276. SIZE_CHECK(struct rogue_fwif_compchecks_bvnc, 16);
  277. OFFSET_CHECK(struct rogue_fwif_init_options, os_count_support, 0);
  278. SIZE_CHECK(struct rogue_fwif_init_options, 8);
  279. OFFSET_CHECK(struct rogue_fwif_compchecks, hw_bvnc, 0);
  280. OFFSET_CHECK(struct rogue_fwif_compchecks, fw_bvnc, 16);
  281. OFFSET_CHECK(struct rogue_fwif_compchecks, fw_processor_version, 32);
  282. OFFSET_CHECK(struct rogue_fwif_compchecks, ddk_version, 36);
  283. OFFSET_CHECK(struct rogue_fwif_compchecks, ddk_build, 40);
  284. OFFSET_CHECK(struct rogue_fwif_compchecks, build_options, 44);
  285. OFFSET_CHECK(struct rogue_fwif_compchecks, init_options, 48);
  286. OFFSET_CHECK(struct rogue_fwif_compchecks, updated, 56);
  287. SIZE_CHECK(struct rogue_fwif_compchecks, 64);
  288. OFFSET_CHECK(struct rogue_fwif_osinit, kernel_ccbctl_fw_addr, 0);
  289. OFFSET_CHECK(struct rogue_fwif_osinit, kernel_ccb_fw_addr, 4);
  290. OFFSET_CHECK(struct rogue_fwif_osinit, kernel_ccb_rtn_slots_fw_addr, 8);
  291. OFFSET_CHECK(struct rogue_fwif_osinit, firmware_ccbctl_fw_addr, 12);
  292. OFFSET_CHECK(struct rogue_fwif_osinit, firmware_ccb_fw_addr, 16);
  293. OFFSET_CHECK(struct rogue_fwif_osinit, work_est_firmware_ccbctl_fw_addr, 20);
  294. OFFSET_CHECK(struct rogue_fwif_osinit, work_est_firmware_ccb_fw_addr, 24);
  295. OFFSET_CHECK(struct rogue_fwif_osinit, rogue_fwif_hwr_info_buf_ctl_fw_addr, 28);
  296. OFFSET_CHECK(struct rogue_fwif_osinit, hwr_debug_dump_limit, 32);
  297. OFFSET_CHECK(struct rogue_fwif_osinit, fw_os_data_fw_addr, 36);
  298. OFFSET_CHECK(struct rogue_fwif_osinit, rogue_comp_checks, 40);
  299. SIZE_CHECK(struct rogue_fwif_osinit, 104);
  300. OFFSET_CHECK(struct rogue_fwif_sigbuf_ctl, buffer_fw_addr, 0);
  301. OFFSET_CHECK(struct rogue_fwif_sigbuf_ctl, left_size_in_regs, 4);
  302. SIZE_CHECK(struct rogue_fwif_sigbuf_ctl, 8);
  303. OFFSET_CHECK(struct pdvfs_opp, volt, 0);
  304. OFFSET_CHECK(struct pdvfs_opp, freq, 4);
  305. SIZE_CHECK(struct pdvfs_opp, 8);
  306. OFFSET_CHECK(struct rogue_fwif_pdvfs_opp, opp_values, 0);
  307. OFFSET_CHECK(struct rogue_fwif_pdvfs_opp, min_opp_point, 128);
  308. OFFSET_CHECK(struct rogue_fwif_pdvfs_opp, max_opp_point, 132);
  309. SIZE_CHECK(struct rogue_fwif_pdvfs_opp, 136);
  310. OFFSET_CHECK(struct rogue_fwif_counter_dump_ctl, buffer_fw_addr, 0);
  311. OFFSET_CHECK(struct rogue_fwif_counter_dump_ctl, size_in_dwords, 4);
  312. SIZE_CHECK(struct rogue_fwif_counter_dump_ctl, 8);
  313. OFFSET_CHECK(struct rogue_hwperf_bvnc, bvnc_string, 0);
  314. OFFSET_CHECK(struct rogue_hwperf_bvnc, bvnc_km_feature_flags, 24);
  315. OFFSET_CHECK(struct rogue_hwperf_bvnc, num_bvnc_blocks, 28);
  316. OFFSET_CHECK(struct rogue_hwperf_bvnc, bvnc_gpu_cores, 30);
  317. OFFSET_CHECK(struct rogue_hwperf_bvnc, bvnc_blocks, 32);
  318. SIZE_CHECK(struct rogue_hwperf_bvnc, 160);
  319. OFFSET_CHECK(struct rogue_fwif_sysinit, fault_phys_addr, 0);
  320. OFFSET_CHECK(struct rogue_fwif_sysinit, pds_exec_base, 8);
  321. OFFSET_CHECK(struct rogue_fwif_sysinit, usc_exec_base, 16);
  322. OFFSET_CHECK(struct rogue_fwif_sysinit, fbcdc_state_table_base, 24);
  323. OFFSET_CHECK(struct rogue_fwif_sysinit, fbcdc_large_state_table_base, 32);
  324. OFFSET_CHECK(struct rogue_fwif_sysinit, texture_heap_base, 40);
  325. OFFSET_CHECK(struct rogue_fwif_sysinit, hw_perf_filter, 48);
  326. OFFSET_CHECK(struct rogue_fwif_sysinit, slc3_fence_dev_addr, 56);
  327. OFFSET_CHECK(struct rogue_fwif_sysinit, tpu_trilinear_frac_mask, 64);
  328. OFFSET_CHECK(struct rogue_fwif_sysinit, sigbuf_ctl, 80);
  329. OFFSET_CHECK(struct rogue_fwif_sysinit, pdvfs_opp_info, 152);
  330. OFFSET_CHECK(struct rogue_fwif_sysinit, coremem_data_store, 288);
  331. OFFSET_CHECK(struct rogue_fwif_sysinit, counter_dump_ctl, 304);
  332. OFFSET_CHECK(struct rogue_fwif_sysinit, filter_flags, 312);
  333. OFFSET_CHECK(struct rogue_fwif_sysinit, runtime_cfg_fw_addr, 316);
  334. OFFSET_CHECK(struct rogue_fwif_sysinit, trace_buf_ctl_fw_addr, 320);
  335. OFFSET_CHECK(struct rogue_fwif_sysinit, fw_sys_data_fw_addr, 324);
  336. OFFSET_CHECK(struct rogue_fwif_sysinit, gpu_util_fw_cb_ctl_fw_addr, 328);
  337. OFFSET_CHECK(struct rogue_fwif_sysinit, reg_cfg_fw_addr, 332);
  338. OFFSET_CHECK(struct rogue_fwif_sysinit, hwperf_ctl_fw_addr, 336);
  339. OFFSET_CHECK(struct rogue_fwif_sysinit, align_checks, 340);
  340. OFFSET_CHECK(struct rogue_fwif_sysinit, initial_core_clock_speed, 344);
  341. OFFSET_CHECK(struct rogue_fwif_sysinit, active_pm_latency_ms, 348);
  342. OFFSET_CHECK(struct rogue_fwif_sysinit, firmware_started, 352);
  343. OFFSET_CHECK(struct rogue_fwif_sysinit, marker_val, 356);
  344. OFFSET_CHECK(struct rogue_fwif_sysinit, firmware_started_timestamp, 360);
  345. OFFSET_CHECK(struct rogue_fwif_sysinit, jones_disable_mask, 364);
  346. OFFSET_CHECK(struct rogue_fwif_sysinit, firmware_perf, 368);
  347. OFFSET_CHECK(struct rogue_fwif_sysinit, core_clock_rate_fw_addr, 372);
  348. OFFSET_CHECK(struct rogue_fwif_sysinit, gpio_validation_mode, 376);
  349. OFFSET_CHECK(struct rogue_fwif_sysinit, bvnc_km_feature_flags, 380);
  350. OFFSET_CHECK(struct rogue_fwif_sysinit, tfbc_compression_control, 540);
  351. SIZE_CHECK(struct rogue_fwif_sysinit, 544);
  352. OFFSET_CHECK(struct rogue_fwif_gpu_util_fwcb, time_corr, 0);
  353. OFFSET_CHECK(struct rogue_fwif_gpu_util_fwcb, time_corr_seq_count, 10240);
  354. OFFSET_CHECK(struct rogue_fwif_gpu_util_fwcb, gpu_util_flags, 10244);
  355. OFFSET_CHECK(struct rogue_fwif_gpu_util_fwcb, last_word, 10248);
  356. OFFSET_CHECK(struct rogue_fwif_gpu_util_fwcb, stats_counters, 10256);
  357. SIZE_CHECK(struct rogue_fwif_gpu_util_fwcb, 10280);
  358. OFFSET_CHECK(struct rogue_fwif_rta_ctl, render_target_index, 0);
  359. OFFSET_CHECK(struct rogue_fwif_rta_ctl, current_render_target, 4);
  360. OFFSET_CHECK(struct rogue_fwif_rta_ctl, active_render_targets, 8);
  361. OFFSET_CHECK(struct rogue_fwif_rta_ctl, cumul_active_render_targets, 12);
  362. OFFSET_CHECK(struct rogue_fwif_rta_ctl, valid_render_targets_fw_addr, 16);
  363. OFFSET_CHECK(struct rogue_fwif_rta_ctl, rta_num_partial_renders_fw_addr, 20);
  364. OFFSET_CHECK(struct rogue_fwif_rta_ctl, max_rts, 24);
  365. OFFSET_CHECK(struct rogue_fwif_rta_ctl, rta_ctl_flags, 28);
  366. SIZE_CHECK(struct rogue_fwif_rta_ctl, 32);
  367. OFFSET_CHECK(struct rogue_fwif_freelist, freelist_dev_addr, 0);
  368. OFFSET_CHECK(struct rogue_fwif_freelist, current_dev_addr, 8);
  369. OFFSET_CHECK(struct rogue_fwif_freelist, current_stack_top, 16);
  370. OFFSET_CHECK(struct rogue_fwif_freelist, max_pages, 20);
  371. OFFSET_CHECK(struct rogue_fwif_freelist, grow_pages, 24);
  372. OFFSET_CHECK(struct rogue_fwif_freelist, current_pages, 28);
  373. OFFSET_CHECK(struct rogue_fwif_freelist, allocated_page_count, 32);
  374. OFFSET_CHECK(struct rogue_fwif_freelist, allocated_mmu_page_count, 36);
  375. OFFSET_CHECK(struct rogue_fwif_freelist, freelist_id, 40);
  376. OFFSET_CHECK(struct rogue_fwif_freelist, grow_pending, 44);
  377. OFFSET_CHECK(struct rogue_fwif_freelist, ready_pages, 48);
  378. OFFSET_CHECK(struct rogue_fwif_freelist, freelist_flags, 52);
  379. OFFSET_CHECK(struct rogue_fwif_freelist, pm_global_pb, 56);
  380. SIZE_CHECK(struct rogue_fwif_freelist, 64);
  381. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, geom_caches_need_zeroing, 0);
  382. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, screen_pixel_max, 4);
  383. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, multi_sample_ctl, 8);
  384. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, flipped_multi_sample_ctl, 16);
  385. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, tpc_stride, 24);
  386. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, tpc_size, 28);
  387. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, te_screen, 32);
  388. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, mtile_stride, 36);
  389. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, teaa, 40);
  390. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, te_mtile1, 44);
  391. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, te_mtile2, 48);
  392. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, isp_merge_lower_x, 52);
  393. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, isp_merge_lower_y, 56);
  394. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, isp_merge_upper_x, 60);
  395. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, isp_merge_upper_y, 64);
  396. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, isp_merge_scale_x, 68);
  397. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, isp_merge_scale_y, 72);
  398. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, rgn_header_size, 76);
  399. OFFSET_CHECK(struct rogue_fwif_hwrtdata_common, isp_mtile_size, 80);
  400. SIZE_CHECK(struct rogue_fwif_hwrtdata_common, 88);
  401. OFFSET_CHECK(struct rogue_fwif_hwrtdata, pm_mlist_dev_addr, 0);
  402. OFFSET_CHECK(struct rogue_fwif_hwrtdata, vce_cat_base, 8);
  403. OFFSET_CHECK(struct rogue_fwif_hwrtdata, vce_last_cat_base, 40);
  404. OFFSET_CHECK(struct rogue_fwif_hwrtdata, te_cat_base, 72);
  405. OFFSET_CHECK(struct rogue_fwif_hwrtdata, te_last_cat_base, 104);
  406. OFFSET_CHECK(struct rogue_fwif_hwrtdata, alist_cat_base, 136);
  407. OFFSET_CHECK(struct rogue_fwif_hwrtdata, alist_last_cat_base, 144);
  408. OFFSET_CHECK(struct rogue_fwif_hwrtdata, pm_alist_stack_pointer, 152);
  409. OFFSET_CHECK(struct rogue_fwif_hwrtdata, pm_mlist_stack_pointer, 160);
  410. OFFSET_CHECK(struct rogue_fwif_hwrtdata, hwrt_data_common_fw_addr, 164);
  411. OFFSET_CHECK(struct rogue_fwif_hwrtdata, hwrt_data_flags, 168);
  412. OFFSET_CHECK(struct rogue_fwif_hwrtdata, state, 172);
  413. OFFSET_CHECK(struct rogue_fwif_hwrtdata, freelists_fw_addr, 176);
  414. OFFSET_CHECK(struct rogue_fwif_hwrtdata, freelist_hwr_snapshot, 188);
  415. OFFSET_CHECK(struct rogue_fwif_hwrtdata, vheap_table_dev_addr, 200);
  416. OFFSET_CHECK(struct rogue_fwif_hwrtdata, rta_ctl, 208);
  417. OFFSET_CHECK(struct rogue_fwif_hwrtdata, tail_ptrs_dev_addr, 240);
  418. OFFSET_CHECK(struct rogue_fwif_hwrtdata, macrotile_array_dev_addr, 248);
  419. OFFSET_CHECK(struct rogue_fwif_hwrtdata, rgn_header_dev_addr, 256);
  420. OFFSET_CHECK(struct rogue_fwif_hwrtdata, rtc_dev_addr, 264);
  421. OFFSET_CHECK(struct rogue_fwif_hwrtdata, owner_geom_not_used_by_host, 272);
  422. OFFSET_CHECK(struct rogue_fwif_hwrtdata, geom_caches_need_zeroing, 276);
  423. OFFSET_CHECK(struct rogue_fwif_hwrtdata, cleanup_state, 320);
  424. SIZE_CHECK(struct rogue_fwif_hwrtdata, 384);
  425. OFFSET_CHECK(struct rogue_fwif_sync_checkpoint, state, 0);
  426. OFFSET_CHECK(struct rogue_fwif_sync_checkpoint, fw_ref_count, 4);
  427. SIZE_CHECK(struct rogue_fwif_sync_checkpoint, 8);
  428. #endif /* PVR_ROGUE_FWIF_CHECK_H */