|
Sound Open Firmware
|
IPC4 module instantiation, binding, pin configuration, and parameter definitions. More...


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... | |
IPC4 module instantiation, binding, pin configuration, and parameter definitions.
NOTE: This ABI uses bit fields and is non portable.
| #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_INST_ID | ( | x | ) | ((x) >> 16) |
Extract 16-bit instance ID from a 32-bit component token.
| #define IPC4_INVALID_PIPELINE_ID 0xFF |
Reserved pipeline ID (0xFF) indicating module has no parent pipeline (e.g.
probe).
| #define IPC4_MAX_MODULE_COUNT 128 |
Maximum distinct module class types registered in the FW image manifest.
| #define IPC4_MAX_SUPPORTED_LIBRARIES 16 |
Maximum number of dynamically loadable LLEXT library containers.
| #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_SINK_QUEUE_ID | ( | x | ) | (((x) >> 16) & 0xffff) |
Extract 16-bit sink queue/pin ID from a 32-bit queue token.
| #define IPC4_SRC_QUEUE_ID | ( | x | ) | ((x) & 0xffff) |
Extract 16-bit source queue/pin ID from a 32-bit queue token.
| #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.