Sound Open Firmware
Loading...
Searching...
No Matches

IPC4 module instantiation, binding, pin configuration, and parameter definitions. More...

Include dependency graph for module.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

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...
 

Macros

#define IPC4_MAX_SUPPORTED_LIBRARIES   16
 Maximum number of dynamically loadable LLEXT library containers.
 
#define IPC4_MAX_MODULE_COUNT   128
 Maximum distinct module class types registered in the FW image manifest.
 
#define SOF_IPC4_DST_QUEUE_ID_BITFIELD_SIZE   3
 Number of bits allocated for destination queue/pin ID in bind commands (3 bits, supporting pins 0..7).
 
#define SOF_IPC4_SRC_QUEUE_ID_BITFIELD_SIZE   3
 Number of bits allocated for source queue/pin ID in bind commands (3 bits, supporting pins 0..7).
 
#define VENDOR_CONFIG_PARAM   0xFF
 Special parameter ID (0xFF) designating vendor-specific large configuration payloads.
 
#define IPC4_INVALID_PIPELINE_ID   0xFF
 Reserved pipeline ID (0xFF) indicating module has no parent pipeline (e.g.
 
#define IPC4_COMP_ID(x, y)   ((y) << 16 | (x))
 Construct a 32-bit component token from module class ID (x) and instance ID (y).
 
#define IPC4_MOD_ID(x)   (IS_ENABLED(CONFIG_IPC_MAJOR_4) ? ((x) & 0xffff) : 0)
 Extract 16-bit module class ID from a 32-bit component token.
 
#define IPC4_INST_ID(x)   ((x) >> 16)
 Extract 16-bit instance ID from a 32-bit component token.
 
#define IPC4_SRC_QUEUE_ID(x)   ((x) & 0xffff)
 Extract 16-bit source queue/pin ID from a 32-bit queue token.
 
#define IPC4_SINK_QUEUE_ID(x)   (((x) >> 16) & 0xffff)
 Extract 16-bit sink queue/pin ID from a 32-bit queue token.
 

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

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

NOTE: This ABI uses bit fields and is non portable.

Macro Definition Documentation

◆ IPC4_COMP_ID

#define IPC4_COMP_ID (   x,
  y 
)    ((y) << 16 | (x))

Construct a 32-bit component token from module class ID (x) and instance ID (y).

◆ IPC4_INST_ID

#define IPC4_INST_ID (   x)    ((x) >> 16)

Extract 16-bit instance ID from a 32-bit component token.

◆ IPC4_INVALID_PIPELINE_ID

#define IPC4_INVALID_PIPELINE_ID   0xFF

Reserved pipeline ID (0xFF) indicating module has no parent pipeline (e.g.

probe).

◆ IPC4_MAX_MODULE_COUNT

#define IPC4_MAX_MODULE_COUNT   128

Maximum distinct module class types registered in the FW image manifest.

◆ IPC4_MAX_SUPPORTED_LIBRARIES

#define IPC4_MAX_SUPPORTED_LIBRARIES   16

Maximum number of dynamically loadable LLEXT library containers.

◆ IPC4_MOD_ID

#define IPC4_MOD_ID (   x)    (IS_ENABLED(CONFIG_IPC_MAJOR_4) ? ((x) & 0xffff) : 0)

Extract 16-bit module class ID from a 32-bit component token.

◆ IPC4_SINK_QUEUE_ID

#define IPC4_SINK_QUEUE_ID (   x)    (((x) >> 16) & 0xffff)

Extract 16-bit sink queue/pin ID from a 32-bit queue token.

◆ IPC4_SRC_QUEUE_ID

#define IPC4_SRC_QUEUE_ID (   x)    ((x) & 0xffff)

Extract 16-bit source queue/pin ID from a 32-bit queue token.

◆ SOF_IPC4_DST_QUEUE_ID_BITFIELD_SIZE

#define SOF_IPC4_DST_QUEUE_ID_BITFIELD_SIZE   3

Number of bits allocated for destination queue/pin ID in bind commands (3 bits, supporting pins 0..7).

◆ SOF_IPC4_SRC_QUEUE_ID_BITFIELD_SIZE

#define SOF_IPC4_SRC_QUEUE_ID_BITFIELD_SIZE   3

Number of bits allocated for source queue/pin ID in bind commands (3 bits, supporting pins 0..7).

◆ VENDOR_CONFIG_PARAM

#define VENDOR_CONFIG_PARAM   0xFF

Special parameter ID (0xFF) designating vendor-specific large configuration payloads.