25#ifndef __SOF_IPC4_HEADER_H__
26#define __SOF_IPC4_HEADER_H__
31#define ipc_from_hdr(x) ((struct ipc4_message_request *)x)
157} __attribute__((packed, aligned(4)));
202#define SOF_IPC4_SWITCH_CONTROL_PARAM_ID 200
204#define SOF_IPC4_ENUM_CONTROL_PARAM_ID 201
206#define SOF_IPC4_BYTES_CONTROL_PARAM_ID 202
208#define SOF_IPC4_NOTIFY_MODULE_EVENTID_ALSA_MAGIC_VAL ((uint32_t)0xA15A << 16)
210#define SOF_IPC4_NOTIFY_MODULE_EVENTID_COMPR_MAGIC_VAL ((uint32_t)0xC0C0 << 16)
ipc4_message_target
Message target routing selector (msg_tgt bitfield in Primary DWORD).
Definition header.h:37
struct ipc4_message_reply __attribute((packed, aligned(4)))
ipc4_message_type
Global IPC4 message types (5-bit opcode in Primary DWORD when msg_tgt == FW_GEN_MSG).
Definition header.h:59
ipc4_message_direction
Message direction indicator (rsp bitfield in Primary DWORD).
Definition header.h:48
@ SOF_IPC4_MESSAGE_TARGET_FW_GEN_MSG
Global firmware message (dispatched to Base FW or global handler).
Definition header.h:39
@ SOF_IPC4_MESSAGE_TARGET_MODULE_MSG
Module-specific message (routed directly to module instance by module_id).
Definition header.h:41
@ SOF_IPC4_GLB_UNLOAD_MULTIPLE_MODULES
Unload multiple module binary images.
Definition header.h:76
@ SOF_IPC4_GLB_INTERNAL_MESSAGE
Internal firmware control message.
Definition header.h:96
@ SOF_IPC4_GLB_MAX_IXC_MESSAGE_TYPE
Maximum supported global message opcode count.
Definition header.h:104
@ SOF_IPC4_GLB_NOTIFICATION
Asynchronous notification event from DSP to host driver.
Definition header.h:98
@ SOF_IPC4_GLB_GET_PIPELINE_STATE
Retrieve current pipeline state.
Definition header.h:84
@ SOF_IPC4_GLB_CREATE_PIPELINE
Create pipeline with specified ID, priority, and memory attributes.
Definition header.h:78
@ SOF_IPC4_GLB_ROM_CONTROL
ROM control command (directed to ADSP ROM bootloader).
Definition header.h:63
@ SOF_IPC4_GLB_CHAIN_DMA
DMA chain setup and configuration command.
Definition header.h:72
@ SOF_IPC4_GLB_IPCGATEWAY_CMD
Execute IPC gateway command.
Definition header.h:65
@ SOF_IPC4_GLB_LOAD_MULTIPLE_MODULES
Load multiple module binary images.
Definition header.h:74
@ SOF_IPC4_GLB_GET_PIPELINE_CONTEXT_SIZE
Query pipeline context memory size.
Definition header.h:86
@ SOF_IPC4_GLB_ENTER_GDB
Enter GDB debugging stub to wait for host debugger in memory window.
Definition header.h:101
@ SOF_IPC4_GLB_BOOT_CONFIG
Boot configuration handshake.
Definition header.h:61
@ SOF_IPC4_GLB_DELETE_PIPELINE
Delete pipeline and associated module graph.
Definition header.h:80
@ SOF_IPC4_GLB_SET_PIPELINE_STATE
Transition pipeline state (RESET, PAUSED, RUNNING, EOS).
Definition header.h:82
@ SOF_IPC4_GLB_LOAD_LIBRARY_PREPARE
Prepare for dynamic library loading.
Definition header.h:94
@ SOF_IPC4_GLB_LOAD_LIBRARY
Load dynamic library via HD-Audio DMA.
Definition header.h:92
@ SOF_IPC4_GLB_PERF_MEASUREMENTS_CMD
Execute performance measurement command.
Definition header.h:70
@ SOF_IPC4_GLB_SAVE_PIPELINE
Save pipeline context to host memory before power gating.
Definition header.h:88
@ SOF_IPC4_GLB_RESTORE_PIPELINE
Restore pipeline context from host memory after wake.
Definition header.h:90
@ SOF_IPC4_MESSAGE_DIR_MSG_REPLY
Command completion response / reply.
Definition header.h:52
@ SOF_IPC4_MESSAGE_DIR_MSG_REQUEST
Host-to-DSP command request, or unsolicited DSP-to-host notification.
Definition header.h:50
Standard 64-bit IPC4 message reply envelope.
Definition header.h:166
uint32_t _reserved_0
Hardware control reserved bit.
Definition header.h:184
uint32_t status
Command processing status (one of enum ipc4_status).
Definition header.h:172
uint32_t _reserved_2
Hardware control reserved bits.
Definition header.h:196
uint32_t rsp
Direction: 1 for reply (SOF_IPC4_MESSAGE_DIR_MSG_REPLY).
Definition header.h:178
uint32_t msg_tgt
Target: symmetric to request (FW_GEN_MSG or MODULE_MSG).
Definition header.h:181
uint32_t dat
Raw 32-bit Primary register value.
Definition header.h:168
struct ipc4_message_reply::@23::@25 r
uint32_t rsvd1
Extension reply data, transfer length, or additional status information.
Definition header.h:193
uint32_t type
Message type, symmetric to the incoming request.
Definition header.h:175
union ipc4_message_reply::@24 extension
union ipc4_message_reply::@23 primary
Standard 64-bit IPC4 message request envelope.
Definition header.h:127
uint32_t _reserved_0
Hardware reserved control bit.
Definition header.h:145
uint32_t ext_data
Command-specific extension payload, buffer offsets, or parameter flags.
Definition header.h:152
union ipc4_message_request::@20 extension
union ipc4_message_request::@19 primary
uint32_t type
5-bit message opcode (enum ipc4_message_type or enum sof_ipc4_module_type).
Definition header.h:136
uint32_t rsp
Direction: 0 for request/notification (SOF_IPC4_MESSAGE_DIR_MSG_REQUEST).
Definition header.h:139
uint32_t rsvd0
Command-specific payload, pipeline ID, or module/instance identifier.
Definition header.h:133
uint32_t msg_tgt
Target selector: 0 for global firmware, 1 for module instance.
Definition header.h:142
uint32_t dat
Raw 32-bit Primary register value.
Definition header.h:129
struct ipc4_message_request::@19::@21 r
Generic message header.
Definition header.h:36
uint32_t ext
Extension 32-bit register value.
Definition header.h:116
uint32_t pri
Primary 32-bit register value.
Definition header.h:115
IPC4 payload structure for ALSA kcontrol parameters.
Definition header.h:225
uint32_t reserved[4]
Reserved for future expansion; must be set to 0.
Definition header.h:228
uint16_t num_elems
Number of elements in the chanv array or number of bytes in data.
Definition header.h:227
struct sof_ipc4_ctrl_value_chan chanv[0]
Channel ID and value array.
Definition header.h:230
uint8_t data[0]
Binary byte payload for raw controls.
Definition header.h:231
uint16_t id
Unique identifier of the control.
Definition header.h:226
Generic per-channel control value mapping.
Definition header.h:216
uint32_t channel
Logical audio channel ID (0 = Left, 1 = Right, etc.).
Definition header.h:217
uint32_t value
Control integer value (gain level, mute toggle, enum index).
Definition header.h:218
Asynchronous notification payload originating from a module instance.
Definition header.h:239
uint32_t event_id
Module-specific event identifier.
Definition header.h:242
uint16_t module_id
Module ID of the originator of the notification.
Definition header.h:241
uint16_t instance_id
Instance ID of the originator module of the notification.
Definition header.h:240
uint32_t event_data_size
Size of the event_data payload (if any) in bytes.
Definition header.h:243
uint8_t event_data[]
Optional notification data, module and notification dependent.
Definition header.h:244