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