Sound Open Firmware
Loading...
Searching...
No Matches
ipc4_module_large_config Struct Reference

Large configuration parameter transfer envelope (SOF_IPC4_MOD_LARGE_CONFIG_GET / SET). More...

#include <src/include/ipc4/module.h>

Data Fields

union { 
 
   uint32_t   dat 
 Raw 32-bit Primary register value. More...
 
   struct { 
 
      uint32_t   module_id: 16 
 Target module class ID. More...
 
      uint32_t   instance_id: 8 
 Target module instance ID. More...
 
      uint32_t   type: 5 
 LARGE_CONFIG_GET (3) or LARGE_CONFIG_SET (4). More...
 
      uint32_t   rsp: 1 
 0 for request, 1 for reply. More...
 
      uint32_t   msg_tgt: 1 
 1 for module target. More...
 
      uint32_t   _reserved_0: 1 
 Reserved bit. More...
 
   }   r 
 
} primary 
 
union { 
 
   uint32_t   dat 
 Raw 32-bit Extension register value. More...
 
   struct { 
 
      uint32_t   data_off_size: 20 
 Chunk byte size (single block) or cumulative byte offset (multi-block). More...
 
      uint32_t   large_param_id: 8 
 Parameter type identifier (module-specific or VENDOR_CONFIG_PARAM). More...
 
      uint32_t   final_block: 1 
 Set to 1 on the terminating chunk of a multi-block transfer. More...
 
      uint32_t   init_block: 1 
 Set to 1 on the initial chunk of a multi-block transfer. More...
 
      uint32_t   _reserved_2: 2 
 Reserved bits. More...
 
   }   r 
 
} extension 
 

Detailed Description

Large configuration parameter transfer envelope (SOF_IPC4_MOD_LARGE_CONFIG_GET / SET).

Implements the multi-block fragmentation handshake for exchanging configuration payloads exceeding the mailbox window size (e.g. FIR coefficients, EQ curves, model blobs).

Field Documentation

◆ _reserved_0

uint32_t ipc4_module_large_config::_reserved_0

Reserved bit.

◆ _reserved_2

uint32_t ipc4_module_large_config::_reserved_2

Reserved bits.

◆ dat

uint32_t ipc4_module_large_config::dat

Raw 32-bit Primary register value.

Raw 32-bit Extension register value.

◆ data_off_size

uint32_t ipc4_module_large_config::data_off_size

Chunk byte size (single block) or cumulative byte offset (multi-block).

◆ [union]

union { ... } ipc4_module_large_config::extension

◆ final_block

uint32_t ipc4_module_large_config::final_block

Set to 1 on the terminating chunk of a multi-block transfer.

◆ init_block

uint32_t ipc4_module_large_config::init_block

Set to 1 on the initial chunk of a multi-block transfer.

◆ instance_id

uint32_t ipc4_module_large_config::instance_id

Target module instance ID.

◆ large_param_id

uint32_t ipc4_module_large_config::large_param_id

Parameter type identifier (module-specific or VENDOR_CONFIG_PARAM).

◆ module_id

uint32_t ipc4_module_large_config::module_id

Target module class ID.

◆ msg_tgt

uint32_t ipc4_module_large_config::msg_tgt

1 for module target.

◆ [union]

union { ... } ipc4_module_large_config::primary

◆ [struct] [1/2]

struct { ... } ipc4_module_large_config::r

◆ [struct] [2/2]

struct { ... } ipc4_module_large_config::r

◆ rsp

uint32_t ipc4_module_large_config::rsp

0 for request, 1 for reply.

◆ type

uint32_t ipc4_module_large_config::type

LARGE_CONFIG_GET (3) or LARGE_CONFIG_SET (4).


The documentation for this struct was generated from the following file: