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