Sound Open Firmware
Loading...
Searching...
No Matches
module.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2021 Intel Corporation. All rights reserved.
4 */
5
6/*
7 * Some of the structures may contain programming implementations that makes them
8 * unsuitable for generic use and general usage.
9 *
10 * This code is mostly copied "as-is" from existing C++ interface files hence the use of
11 * different style in places. The intention is to keep the interface as close as possible to
12 * original so it's easier to track changes with IPC host code.
13 */
14
22#ifndef __IPC4_MODULE_H__
23#define __IPC4_MODULE_H__
24
25#include <ipc4/error_status.h>
26
27#include <stdint.h>
28
30#define IPC4_MAX_SUPPORTED_LIBRARIES 16
31
33#define IPC4_MAX_MODULE_COUNT 128
34
36#define SOF_IPC4_DST_QUEUE_ID_BITFIELD_SIZE 3
38#define SOF_IPC4_SRC_QUEUE_ID_BITFIELD_SIZE 3
39
41#define VENDOR_CONFIG_PARAM 0xFF
42
61
67 uint32_t full;
68 struct {
69 uint32_t parameter_type : 8;
70 uint32_t parameter_instance : 24;
72} __attribute__((packed, aligned(4)));
73
79 uint32_t param_idx;
80 uint32_t err_code;
81};
82
93
99 uint32_t last_object : 1;
100 uint32_t object_id : 15;
101 uint32_t object_words : 16;
102} __attribute__((packed, aligned(4)));
103
109 uint32_t domain_id;
110 uint32_t stack_bytes;
111 uint32_t heap_bytes;
112} __attribute__((packed, aligned(4)));
113
120 uint32_t rtos_domain : 1;
122 uint32_t gna_used : 1;
123 uint32_t data_obj_array : 1;
124 uint32_t rsvd_0 : 29;
125 uint32_t rsvd_1[2];
126} __attribute__((packed, aligned(4)));
127
134 uint32_t param_data[];
135} __attribute__((packed, aligned(4)));
136
143 uint32_t gna_cpc;
144 uint32_t rsvd;
145} __attribute__((packed, aligned(4)));
146
152 uint32_t param_data[0];
153} __attribute__((packed, aligned(4)));
154
156#define IPC4_INVALID_PIPELINE_ID 0xFF
157
163 union {
164 uint32_t dat;
166 struct {
168 uint32_t module_id : 16;
170 uint32_t instance_id : 8;
172 uint32_t type : 5;
174 uint32_t rsp : 1;
176 uint32_t msg_tgt : 1;
177 uint32_t _reserved_0 : 1;
178 } r;
180
181 union {
182 uint32_t dat;
184 struct {
186 uint32_t param_block_size : 16;
188 uint32_t ppl_instance_id : 8;
190 uint32_t core_id : 4;
192 uint32_t proc_domain : 1;
194 uint32_t extended_init : 1;
195 uint32_t _hw_reserved_2 : 2;
196 } r;
198} __attribute__((packed, aligned(4)));
199
207 union {
208 uint32_t dat;
210 struct {
212 uint32_t module_id : 16;
214 uint32_t instance_id : 8;
216 uint32_t type : 5;
218 uint32_t rsp : 1;
220 uint32_t msg_tgt : 1;
221 uint32_t _reserved_0 : 1;
222 } r;
224
225 union {
226 uint32_t dat;
228 struct {
230 uint32_t dst_module_id : 16;
232 uint32_t dst_instance_id : 8;
237 uint32_t _reserved_2 : 2;
238 } r;
240} __attribute__((packed, aligned(4)));
241
247 union {
248 uint32_t dat;
250 struct {
251 uint32_t module_id : 16;
252 uint32_t instance_id : 8;
253 uint32_t type : 5;
254 uint32_t rsp : 1;
255 uint32_t msg_tgt : 1;
256 uint32_t _reserved_0 : 1;
257 } r;
259
260 union {
261 uint32_t dat;
263 struct {
264 uint32_t param_id_data : 30;
265 uint32_t _reserved_2 : 2;
266 } r;
268} __attribute__((packed, aligned(4)));
269
275 union {
276 uint32_t dat;
278 struct {
280 uint32_t type : 5;
281 uint32_t rsp : 1;
282 uint32_t msg_tgt : 1;
283 uint32_t _reserved_0 : 1;
284 } r;
286
287 union {
288 uint32_t dat;
290 struct {
291 uint32_t param_id_data : 30;
292 uint32_t _reserved_2 : 2;
293 } r;
295} __attribute__((packed, aligned(4)));
296
305 union {
306 uint32_t dat;
308 struct {
309 uint32_t module_id : 16;
310 uint32_t instance_id : 8;
311 uint32_t type : 5;
312 uint32_t rsp : 1;
313 uint32_t msg_tgt : 1;
314 uint32_t _reserved_0 : 1;
315 } r;
317
318 union {
319 uint32_t dat;
321 struct {
323 uint32_t data_off_size : 20;
325 uint32_t large_param_id : 8;
327 uint32_t final_block : 1;
329 uint32_t init_block : 1;
330 uint32_t _reserved_2 : 2;
331 } r;
333} __attribute__((packed, aligned(4)));
334
340 union {
341 uint32_t dat;
343 struct {
345 uint32_t type : 5;
346 uint32_t rsp : 1;
347 uint32_t msg_tgt : 1;
348 uint32_t _reserved_0 : 1;
349 } r;
351
352 union {
353 uint32_t dat;
355 struct {
356 uint32_t data_off_size : 20;
357 uint32_t large_param_id : 8;
358 uint32_t final_block : 1;
359 uint32_t init_block : 1;
360 uint32_t _reserved_2 : 2;
361 } r;
363} __attribute__((packed, aligned(4)));
364
370 union {
371 uint32_t dat;
373 struct {
374 uint32_t module_id : 16;
375 uint32_t instance_id : 8;
376 uint32_t type : 5;
377 uint32_t rsp : 1;
378 uint32_t msg_tgt : 1;
379 uint32_t _reserved_0 : 1;
380 } r;
382
383 union {
384 uint32_t dat;
386 struct {
387 uint32_t rsvd : 30;
388 uint32_t _reserved_1 : 2;
389 } r;
391} __attribute__((packed, aligned(4)));
392
398 union {
399 uint32_t dat;
401 struct {
402 uint32_t module_id : 16;
403 uint32_t instance_id : 8;
404 uint32_t type : 5;
405 uint32_t rsp : 1;
406 uint32_t msg_tgt : 1;
407 uint32_t _reserved_0 : 1;
408 } r;
410
411 union {
412 uint32_t dat;
414 struct {
415 uint32_t wake : 1;
416 uint32_t streaming : 1;
417 uint32_t prevent_power_gating : 1;
419 uint32_t rsvd1 : 26;
420 uint32_t _reserved_2 : 2;
421 } r;
423} __attribute__((packed, aligned(4)));
424
430 uint32_t core_mask;
432 uint32_t dx_mask;
433} __attribute__((packed, aligned(4)));
434
440 union {
441 uint32_t dat;
443 struct {
444 uint32_t module_id : 16;
445 uint32_t instance_id : 8;
446 uint32_t type : 5;
447 uint32_t rsp : 1;
448 uint32_t msg_tgt : 1;
449 uint32_t _reserved_0 : 1;
450 } r;
452
453 union {
454 uint32_t dat;
456 struct {
457 uint32_t rsvd : 30;
458 uint32_t _reserved_2 : 2;
459 } r;
461} __attribute__((packed, aligned(4)));
462
468 union {
469 uint32_t dat;
471 struct {
472 uint32_t dma_id : 5;
473 uint32_t rsvd0 : 11;
474 uint32_t lib_id : 4;
475 uint32_t rsvd1 : 4;
476 uint32_t type : 5;
477 uint32_t rsp : 1;
478 uint32_t msg_tgt : 1;
479 uint32_t _reserved_0 : 1;
480 } r;
482
483 union {
484 uint32_t dat;
486 struct {
487 uint32_t load_offset : 30;
488 uint32_t _reserved_2 : 2;
489 } r;
491} __attribute__((packed, aligned(4)));
492
494#define IPC4_COMP_ID(x, y) ((y) << 16 | (x))
496#define IPC4_MOD_ID(x) (IS_ENABLED(CONFIG_IPC_MAJOR_4) ? ((x) & 0xffff) : 0)
498#define IPC4_INST_ID(x) ((x) >> 16)
500#define IPC4_SRC_QUEUE_ID(x) ((x) & 0xffff)
502#define IPC4_SINK_QUEUE_ID(x) (((x) >> 16) & 0xffff)
503
504#endif
IPC4 status codes, error codes, and IXC return values.
#define IPC4_IXC_STATUS_BITS
Number of bits allocated for processing status in the Primary reply DWORD (24 bits).
Definition error_status.h:25
sof_ipc4_module_type
Module message command opcodes (5-bit opcode in Primary DWORD when msg_tgt == MODULE_MSG).
Definition module.h:47
ipc4_mod_init_data_glb_id
Global object type identifiers for extended initialization payloads.
Definition module.h:87
@ SOF_IPC4_MOD_LARGE_CONFIG_SET
Send multi-block configuration or filter coefficients to module.
Definition module.h:52
@ SOF_IPC4_MOD_UNBIND
Disconnect a runtime binding between two module instances.
Definition module.h:54
@ SOF_IPC4_MOD_ENTER_MODULE_RESTORE
Notify module to prepare for context restoration after wake.
Definition module.h:57
@ SOF_IPC4_MOD_LARGE_CONFIG_GET
Retrieve multi-block configuration or state data from module.
Definition module.h:51
@ SOF_IPC4_MOD_CONFIG_SET
Set a short 16-bit module parameter packed in header.
Definition module.h:50
@ SOF_IPC4_MOD_INIT_INSTANCE
Instantiate a new module object and attach to a pipeline.
Definition module.h:48
@ SOF_IPC4_MOD_DELETE_INSTANCE
Destroy module instance and release allocated memory.
Definition module.h:59
@ SOF_IPC4_MOD_BIND
Connect a source pin of this module to a destination pin.
Definition module.h:53
@ SOF_IPC4_MOD_SET_DX
Request core power state transition (D0/D3).
Definition module.h:55
@ SOF_IPC4_MOD_EXIT_MODULE_RESTORE
Signal completion of module state restoration.
Definition module.h:58
@ SOF_IPC4_MOD_SET_D0IX
Request Base FW or module to enter low-power D0ix state.
Definition module.h:56
@ SOF_IPC4_MOD_CONFIG_GET
Retrieve a short 16-bit module parameter packed in header.
Definition module.h:49
@ IPC4_MOD_INIT_DATA_ID_MODULE_DATA
Module-specific bespoke initialization data.
Definition module.h:90
@ IPC4_MOD_INIT_DATA_ID_DP_DATA
Data Processing (DP) thread stack and heap requirements.
Definition module.h:89
@ IPC4_MOD_INIT_DATA_ID_INVALID
Invalid initialization object identifier.
Definition module.h:88
@ IPC4_MOD_INIT_DATA_ID_MAX
Maximum supported object identifier.
Definition module.h:91
#define SOF_IPC4_DST_QUEUE_ID_BITFIELD_SIZE
Number of bits allocated for destination queue/pin ID in bind commands (3 bits, supporting pins 0....
Definition module.h:36
#define SOF_IPC4_SRC_QUEUE_ID_BITFIELD_SIZE
Number of bits allocated for source queue/pin ID in bind commands (3 bits, supporting pins 0....
Definition module.h:38
DSP core power state bitmask descriptor.
Definition module.h:429
uint32_t core_mask
Bitmask indicating which DSP cores are subject to state change.
Definition module.h:430
uint32_t dx_mask
Target state bitmask: bit[core_id] = 0 -> put to D3, bit[core_id] = 1 -> put to D0.
Definition module.h:432
Module pin binding and unbinding command structure (SOF_IPC4_MOD_BIND / UNBIND).
Definition module.h:206
uint32_t instance_id
Source module instance identifier.
Definition module.h:214
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:208
union ipc4_module_bind_unbind::@41 extension
uint32_t _reserved_0
Reserved hardware control bit.
Definition module.h:221
uint32_t dst_instance_id
Destination module instance identifier.
Definition module.h:232
union ipc4_module_bind_unbind::@40 primary
uint32_t msg_tgt
Target: 1 for module message (SOF_IPC4_MESSAGE_TARGET_MODULE_MSG).
Definition module.h:220
uint32_t module_id
Source module class identifier.
Definition module.h:212
struct ipc4_module_bind_unbind::@40::@42 r
uint32_t dst_module_id
Destination module class identifier.
Definition module.h:230
uint32_t rsp
Direction: 0 for request (SOF_IPC4_MESSAGE_DIR_MSG_REQUEST).
Definition module.h:218
uint32_t dst_queue
Destination input queue/pin index (0..7).
Definition module.h:234
uint32_t type
Opcode: SOF_IPC4_MOD_BIND (5) or SOF_IPC4_MOD_UNBIND (6).
Definition module.h:216
uint32_t src_queue
Source output queue/pin index (0..7).
Definition module.h:236
uint32_t _reserved_2
Reserved hardware control bits.
Definition module.h:237
Reply structure for small parameter query (SOF_IPC4_MOD_CONFIG_GET).
Definition module.h:274
uint32_t msg_tgt
1 for module message.
Definition module.h:282
struct ipc4_module_config_reply::@48::@50 r
union ipc4_module_config_reply::@49 extension
uint32_t _reserved_0
Reserved bit.
Definition module.h:283
uint32_t type
Opcode: SOF_IPC4_MOD_CONFIG_GET.
Definition module.h:280
uint32_t _reserved_2
Reserved bits.
Definition module.h:292
union ipc4_module_config_reply::@48 primary
uint32_t rsp
1 for reply.
Definition module.h:281
uint32_t param_id_data
Returned parameter value if fitting in 30 bits.
Definition module.h:291
uint32_t status
Command processing status (enum ipc4_status).
Definition module.h:279
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:276
Small parameter configuration command structure (SOF_IPC4_MOD_CONFIG_GET / SET).
Definition module.h:246
union ipc4_module_config::@45 extension
uint32_t param_id_data
Packed 16-bit parameter data and 14-bit parameter ID.
Definition module.h:264
uint32_t instance_id
Target module instance ID.
Definition module.h:252
uint32_t _reserved_0
Reserved bit.
Definition module.h:256
struct ipc4_module_config::@44::@46 r
uint32_t type
Opcode: SOF_IPC4_MOD_CONFIG_GET or SET.
Definition module.h:253
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:248
uint32_t msg_tgt
1 for module message.
Definition module.h:255
uint32_t module_id
Target module class ID.
Definition module.h:251
uint32_t rsp
0 for request.
Definition module.h:254
union ipc4_module_config::@44 primary
uint32_t _reserved_2
Reserved bits.
Definition module.h:265
Module instance deletion command structure (SOF_IPC4_MOD_DELETE_INSTANCE).
Definition module.h:369
uint32_t type
Opcode: SOF_IPC4_MOD_DELETE_INSTANCE (11).
Definition module.h:376
uint32_t instance_id
Instance ID to destroy.
Definition module.h:375
union ipc4_module_delete_instance::@61 extension
uint32_t msg_tgt
1 for module target.
Definition module.h:378
uint32_t rsvd
Reserved padding.
Definition module.h:387
struct ipc4_module_delete_instance::@60::@62 r
uint32_t _reserved_0
Reserved bit.
Definition module.h:379
uint32_t rsp
0 for request.
Definition module.h:377
union ipc4_module_delete_instance::@60 primary
uint32_t _reserved_1
Reserved bits.
Definition module.h:388
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:371
uint32_t module_id
Module class ID of instance to destroy.
Definition module.h:374
Module initialization payload buffer.
Definition module.h:151
uint32_t param_data[0]
Configuration payload words (sized by param_block_size).
Definition module.h:152
Extended module initialization container.
Definition module.h:132
struct ipc4_module_init_ext_init extended_init
Extended flags.
Definition module.h:133
uint32_t param_data[]
Module configuration payload words.
Definition module.h:134
Extended initialization flags and coprocessor requirements.
Definition module.h:118
uint32_t rtos_domain
If set to 1, proc_domain is ignored and processing domain is RTOS scheduling.
Definition module.h:120
uint32_t data_obj_array
1 if followed by struct ipc4_module_init_ext_object array.
Definition module.h:123
uint32_t rsvd_1[2]
Reserved padding words.
Definition module.h:125
uint32_t rsvd_0
Reserved bits.
Definition module.h:124
uint32_t gna_used
Indicates that GNA coprocessor is used by module and gna_config follows.
Definition module.h:122
Memory requirements for Data Processing (DP) module threads.
Definition module.h:108
uint32_t stack_bytes
Required thread stack size in bytes.
Definition module.h:110
uint32_t domain_id
Userspace domain identifier.
Definition module.h:109
uint32_t heap_bytes
Required thread heap allocation size in bytes.
Definition module.h:111
Header for extended initialization data objects.
Definition module.h:98
uint32_t object_words
Payload size in 32-bit DWORDs following this header.
Definition module.h:101
uint32_t last_object
Set to 1 if this is the terminating object in the array.
Definition module.h:99
uint32_t object_id
Unique object identifier (one of enum ipc4_mod_init_data_glb_id).
Definition module.h:100
Neural network accelerator (GNA) compute cycle configuration.
Definition module.h:141
uint32_t rsvd
Reserved padding.
Definition module.h:144
uint32_t gna_cpc
Number of GNA cycles required to process one input frame.
Definition module.h:143
Module instance creation command structure (SOF_IPC4_MOD_INIT_INSTANCE).
Definition module.h:162
uint32_t param_block_size
Size of initialization payload in 32-bit DWORDs.
Definition module.h:186
uint32_t proc_domain
Processing domain (0 = Low-Latency LL, 1 = Data Processing DP).
Definition module.h:192
uint32_t ppl_instance_id
ID of parent pipeline, or IPC4_INVALID_PIPELINE_ID.
Definition module.h:188
uint32_t msg_tgt
Target: 1 for module message (SOF_IPC4_MESSAGE_TARGET_MODULE_MSG).
Definition module.h:176
uint32_t module_id
Module class ID index from the FW manifest.
Definition module.h:168
union ipc4_module_init_instance::@37 extension
uint32_t instance_id
Module instance ID unique within the module class (0..max_instances-1).
Definition module.h:170
uint32_t rsp
Direction: 0 for request (SOF_IPC4_MESSAGE_DIR_MSG_REQUEST).
Definition module.h:174
uint32_t _reserved_0
Reserved hardware control bit.
Definition module.h:177
union ipc4_module_init_instance::@36 primary
uint32_t type
Opcode: SOF_IPC4_MOD_INIT_INSTANCE (0).
Definition module.h:172
uint32_t _hw_reserved_2
Reserved hardware bits.
Definition module.h:195
struct ipc4_module_init_instance::@36::@38 r
uint32_t core_id
Target DSP core ID on which this instance will execute (platform-dependent, 0..CONFIG_CORE_COUNT - 1)...
Definition module.h:190
uint32_t extended_init
1 if extended initialization structures follow.
Definition module.h:194
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:164
Reply structure for large configuration transfer.
Definition module.h:339
union ipc4_module_large_config_reply::@56 primary
struct ipc4_module_large_config_reply::@56::@58 r
uint32_t final_block
1 if final block processed.
Definition module.h:358
union ipc4_module_large_config_reply::@57 extension
uint32_t large_param_id
Parameter type ID.
Definition module.h:357
uint32_t rsp
1 for reply.
Definition module.h:346
uint32_t type
Symmetric opcode.
Definition module.h:345
uint32_t init_block
1 if first block processed.
Definition module.h:359
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:341
uint32_t data_off_size
Processed byte size or offset.
Definition module.h:356
uint32_t msg_tgt
Symmetric target.
Definition module.h:347
uint32_t _reserved_0
Reserved bit.
Definition module.h:348
uint32_t _reserved_2
Reserved bits.
Definition module.h:360
uint32_t status
Processing status (enum ipc4_status).
Definition module.h:344
Large configuration parameter transfer envelope (SOF_IPC4_MOD_LARGE_CONFIG_GET / SET).
Definition module.h:304
uint32_t data_off_size
Chunk byte size (single block) or cumulative byte offset (multi-block).
Definition module.h:323
union ipc4_module_large_config::@53 extension
uint32_t final_block
Set to 1 on the terminating chunk of a multi-block transfer.
Definition module.h:327
struct ipc4_module_large_config::@52::@54 r
uint32_t type
LARGE_CONFIG_GET (3) or LARGE_CONFIG_SET (4).
Definition module.h:311
uint32_t init_block
Set to 1 on the initial chunk of a multi-block transfer.
Definition module.h:329
uint32_t _reserved_2
Reserved bits.
Definition module.h:330
uint32_t large_param_id
Parameter type identifier (module-specific or VENDOR_CONFIG_PARAM).
Definition module.h:325
union ipc4_module_large_config::@52 primary
uint32_t module_id
Target module class ID.
Definition module.h:309
uint32_t rsp
0 for request, 1 for reply.
Definition module.h:312
uint32_t msg_tgt
1 for module target.
Definition module.h:313
uint32_t instance_id
Target module instance ID.
Definition module.h:310
uint32_t _reserved_0
Reserved bit.
Definition module.h:314
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:306
Dynamic library loading command structure (SOF_IPC4_GLB_LOAD_LIBRARY).
Definition module.h:467
uint32_t rsvd1
Reserved padding.
Definition module.h:475
uint32_t msg_tgt
0 for global firmware message.
Definition module.h:478
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:469
uint32_t load_offset
Load offset into host DMA buffer.
Definition module.h:487
union ipc4_module_load_library::@73 data
struct ipc4_module_load_library::@72::@74 r
uint32_t rsp
0 for request.
Definition module.h:477
uint32_t type
Opcode: SOF_IPC4_GLB_LOAD_LIBRARY (24).
Definition module.h:476
uint32_t _reserved_0
Reserved bit.
Definition module.h:479
union ipc4_module_load_library::@72 header
uint32_t rsvd0
Reserved padding.
Definition module.h:473
uint32_t dma_id
ID of Host Output DMA used to load code.
Definition module.h:472
uint32_t _reserved_2
Reserved bits.
Definition module.h:488
uint32_t lib_id
Dynamic library container ID (0..15).
Definition module.h:474
Module D0ix low-power state entry command (SOF_IPC4_MOD_SET_D0IX).
Definition module.h:397
uint32_t type
Opcode: SOF_IPC4_MOD_SET_D0IX (8).
Definition module.h:404
uint32_t module_id
Module ID (must be 0 for Base FW).
Definition module.h:402
uint32_t _reserved_0
Reserved bit.
Definition module.h:407
union ipc4_module_set_d0ix::@64 primary
uint32_t rsvd1
Reserved padding.
Definition module.h:419
uint32_t wake
Legacy wake type flag.
Definition module.h:415
uint32_t streaming
Active audio streaming indicator.
Definition module.h:416
uint32_t instance_id
Instance ID (must be 0 for core 0).
Definition module.h:403
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:399
uint32_t msg_tgt
1 for module message.
Definition module.h:406
struct ipc4_module_set_d0ix::@64::@66 r
uint32_t prevent_local_clock_gating
Set to 1 to inhibit local clock gating.
Definition module.h:418
uint32_t _reserved_2
Reserved bits.
Definition module.h:420
uint32_t rsp
0 for request.
Definition module.h:405
uint32_t prevent_power_gating
Set to 1 to inhibit DSP core power gating.
Definition module.h:417
union ipc4_module_set_d0ix::@65 extension
Core DX power state transition command structure (SOF_IPC4_MOD_SET_DX).
Definition module.h:439
union ipc4_module_set_dx::@68 primary
uint32_t msg_tgt
1 for module message.
Definition module.h:448
uint32_t instance_id
Instance ID (0 for Core 0).
Definition module.h:445
struct ipc4_module_set_dx::@68::@70 r
uint32_t rsvd
Reserved padding.
Definition module.h:457
uint32_t type
Opcode: SOF_IPC4_MOD_SET_DX (7).
Definition module.h:446
union ipc4_module_set_dx::@69 extension
uint32_t _reserved_2
Reserved bits.
Definition module.h:458
uint32_t module_id
Module ID (0 for Base FW).
Definition module.h:444
uint32_t rsp
0 for request.
Definition module.h:447
uint32_t _reserved_0
Reserved bit.
Definition module.h:449
uint32_t dat
Raw 32-bit Primary register value.
Definition module.h:441
Vendor error reporting payload structure.
Definition module.h:78
uint32_t err_code
Vendor-specific or hardware error code.
Definition module.h:80
uint32_t param_idx
Index of the failed parameter in vendor configuration list.
Definition module.h:79
Compound parameter identifier encoding type and instance index.
Definition module.h:66
struct ipc4_extended_param_id::@35 part
uint32_t full
Full 32-bit parameter identifier.
Definition module.h:67
uint32_t parameter_instance
Parameter instance index.
Definition module.h:70
uint32_t parameter_type
Parameter type identifier.
Definition module.h:69