Sound Open Firmware
Loading...
Searching...
No Matches
IPC4 Module Architecture & Dynamic Binding

Module instantiation, dynamic queue/pin binding, small/large parameter configuration handshake, and module power transitions. More...

Collaboration diagram for IPC4 Module Architecture & Dynamic Binding:

Files

file  module.h
 IPC4 module instantiation, binding, pin configuration, and parameter definitions.
 

Data Structures

union  ipc4_extended_param_id
 Compound parameter identifier encoding type and instance index. More...
 
struct  ipc4_vendor_error
 Vendor error reporting payload structure. More...
 
struct  ipc4_module_init_ext_object
 Header for extended initialization data objects. More...
 
struct  ipc4_module_init_ext_obj_dp_data
 Memory requirements for Data Processing (DP) module threads. More...
 
struct  ipc4_module_init_ext_init
 Extended initialization flags and coprocessor requirements. More...
 
struct  ipc4_module_init_ext_data
 Extended module initialization container. More...
 
struct  ipc4_module_init_gna_config
 Neural network accelerator (GNA) compute cycle configuration. More...
 
struct  ipc4_module_init_data
 Module initialization payload buffer. More...
 
struct  ipc4_module_init_instance
 Module instance creation command structure (SOF_IPC4_MOD_INIT_INSTANCE). More...
 
struct  ipc4_module_bind_unbind
 Module pin binding and unbinding command structure (SOF_IPC4_MOD_BIND / UNBIND). More...
 
struct  ipc4_module_config
 Small parameter configuration command structure (SOF_IPC4_MOD_CONFIG_GET / SET). More...
 
struct  ipc4_module_config_reply
 Reply structure for small parameter query (SOF_IPC4_MOD_CONFIG_GET). More...
 
struct  ipc4_module_large_config
 Large configuration parameter transfer envelope (SOF_IPC4_MOD_LARGE_CONFIG_GET / SET). More...
 
struct  ipc4_module_large_config_reply
 Reply structure for large configuration transfer. More...
 
struct  ipc4_module_delete_instance
 Module instance deletion command structure (SOF_IPC4_MOD_DELETE_INSTANCE). More...
 
struct  ipc4_module_set_d0ix
 Module D0ix low-power state entry command (SOF_IPC4_MOD_SET_D0IX). More...
 
struct  ipc4_dx_state_info
 DSP core power state bitmask descriptor. More...
 
struct  ipc4_module_set_dx
 Core DX power state transition command structure (SOF_IPC4_MOD_SET_DX). More...
 
struct  ipc4_module_load_library
 Dynamic library loading command structure (SOF_IPC4_GLB_LOAD_LIBRARY). More...
 

Enumerations

enum  sof_ipc4_module_type {
  SOF_IPC4_MOD_INIT_INSTANCE = 0 , SOF_IPC4_MOD_CONFIG_GET = 1 , SOF_IPC4_MOD_CONFIG_SET = 2 , SOF_IPC4_MOD_LARGE_CONFIG_GET = 3 ,
  SOF_IPC4_MOD_LARGE_CONFIG_SET = 4 , SOF_IPC4_MOD_BIND = 5 , SOF_IPC4_MOD_UNBIND = 6 , SOF_IPC4_MOD_SET_DX = 7 ,
  SOF_IPC4_MOD_SET_D0IX = 8 , SOF_IPC4_MOD_ENTER_MODULE_RESTORE = 9 , SOF_IPC4_MOD_EXIT_MODULE_RESTORE = 10 , SOF_IPC4_MOD_DELETE_INSTANCE = 11
}
 Module message command opcodes (5-bit opcode in Primary DWORD when msg_tgt == MODULE_MSG). More...
 
enum  ipc4_mod_init_data_glb_id { IPC4_MOD_INIT_DATA_ID_INVALID = 0 , IPC4_MOD_INIT_DATA_ID_DP_DATA = 1 , IPC4_MOD_INIT_DATA_ID_MODULE_DATA = 2 , IPC4_MOD_INIT_DATA_ID_MAX = IPC4_MOD_INIT_DATA_ID_MODULE_DATA }
 Global object type identifiers for extended initialization payloads. More...
 

Detailed Description

Module instantiation, dynamic queue/pin binding, small/large parameter configuration handshake, and module power transitions.

Enumeration Type Documentation

◆ ipc4_mod_init_data_glb_id

Global object type identifiers for extended initialization payloads.

Enumerator
IPC4_MOD_INIT_DATA_ID_INVALID 

Invalid initialization object identifier.

IPC4_MOD_INIT_DATA_ID_DP_DATA 

Data Processing (DP) thread stack and heap requirements.

IPC4_MOD_INIT_DATA_ID_MODULE_DATA 

Module-specific bespoke initialization data.

IPC4_MOD_INIT_DATA_ID_MAX 

Maximum supported object identifier.

◆ sof_ipc4_module_type

Module message command opcodes (5-bit opcode in Primary DWORD when msg_tgt == MODULE_MSG).

Enumerator
SOF_IPC4_MOD_INIT_INSTANCE 

Instantiate a new module object and attach to a pipeline.

SOF_IPC4_MOD_CONFIG_GET 

Retrieve a short 16-bit module parameter packed in header.

SOF_IPC4_MOD_CONFIG_SET 

Set a short 16-bit module parameter packed in header.

SOF_IPC4_MOD_LARGE_CONFIG_GET 

Retrieve multi-block configuration or state data from module.

SOF_IPC4_MOD_LARGE_CONFIG_SET 

Send multi-block configuration or filter coefficients to module.

SOF_IPC4_MOD_BIND 

Connect a source pin of this module to a destination pin.

SOF_IPC4_MOD_UNBIND 

Disconnect a runtime binding between two module instances.

SOF_IPC4_MOD_SET_DX 

Request core power state transition (D0/D3).

SOF_IPC4_MOD_SET_D0IX 

Request Base FW or module to enter low-power D0ix state.

SOF_IPC4_MOD_ENTER_MODULE_RESTORE 

Notify module to prepare for context restoration after wake.

SOF_IPC4_MOD_EXIT_MODULE_RESTORE 

Signal completion of module state restoration.

SOF_IPC4_MOD_DELETE_INSTANCE 

Destroy module instance and release allocated memory.