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

IPC4 asynchronous notifications, GLITCH reports, and FW ready events. More...

Include dependency graph for notification.h:

Go to the source code of this file.

Data Structures

union  ipc4_notification_header
 Standard 32-bit IPC4 notification primary header word. More...
 
struct  ipc4_voice_cmd_notification
 This notification is reported by the Detector module upon key phrase detection. More...
 
struct  ipc4_watchdog_timeout_notification
 Watchdog timeout notification structure (SOF_IPC4_WATCHDOG_TIMEOUT). More...
 
struct  ipc4_process_data_error_event_data
 Data payload for process data error event (SOF_IPC4_PROCESS_DATA_ERROR). More...
 
struct  ipc4_mixer_underrun_event_data
 Data payload for mixer underrun event (SOF_IPC4_MIXER_UNDERRUN_DETECTED). More...
 
union  ipc4_resource_event_data
 Polymorphic payload for generic resource event notification. More...
 
struct  ipc4_resource_event_data_notification
 Full resource event notification structure sent in Mailbox Window 0. More...
 

Macros

#define SOF_IPC4_GLB_NOTIFY_DIR_MASK   BIT(29)
 Global notification direction bitmask.
 
#define SOF_IPC4_REPLY_STATUS_MASK   0xFFFFFF
 Reply status mask in primary register.
 
#define SOF_IPC4_GLB_NOTIFY_TYPE_SHIFT   16
 Bit shift for notification type in primary register.
 
#define SOF_IPC4_GLB_NOTIFY_MSG_TYPE_SHIFT   24
 Bit shift for message type in primary register.
 
#define SOF_IPC4_FW_READY
 Pre-computed header word for FW_READY notification.
 
#define SOF_IPC4_FW_READY_LIB_RESTORED   BIT(15)
 FW_READY extension flag indicating dynamic libraries were restored.
 
#define SOF_IPC4_NOTIF_HEADER(notif_type)
 Helper macro to construct notification primary header DWORD.
 
#define IPC4_RESOURCE_EVENT_SIZE   sizeof(struct ipc4_resource_event_data_notification)
 Size in bytes of resource event notification data packet.
 

Enumerations

enum  sof_ipc4_notification_type {
  SOF_IPC4_NOTIFY_PHRASE_DETECTED = 4 , SOF_IPC4_NOTIFY_RESOURCE_EVENT = 5 , SOF_IPC4_NOTIFY_LOG_BUFFER_STATUS = 6 , SOF_IPC4_NOTIFY_TIMESTAMP_CAPTURED = 7 ,
  SOF_IPC4_NOTIFY_FW_READY = 8 , SOF_IPC4_FW_AUD_CLASS_RESULT = 9 , SOF_IPC4_EXCEPTION_CAUGHT = 10 , SOF_IPC4_MODULE_NOTIFICATION = 12 ,
  SOF_IPC4_UAOL_EVENT = 13 , SOF_IPC4_PROBE_DATA_AVAILABLE = 14 , SOF_IPC4_WATCHDOG_TIMEOUT = 15 , SOF_IPC4_MANAGEMENT_SERVICE = 16
}
 Unsolicited DSP-to-host asynchronous notification types. More...
 
enum  sof_ipc4_resource_event_type {
  SOF_IPC4_BUDGET_VIOLATION = 0 , SOF_IPC4_MIXER_UNDERRUN_DETECTED = 1 , SOF_IPC4_STREAM_DATA_SEGMENT = 2 , SOF_IPC4_PROCESS_DATA_ERROR = 3 ,
  SOF_IPC4_STACK_OVERFLOW = 4 , SOF_IPC4_BUFFERING_MODE_CHANGED = 5 , SOF_IPC4_GATEWAY_UNDERRUN_DETECTED = 6 , SOF_IPC4_GATEWAY_OVERRUN_DETECTED = 7 ,
  SOF_IPC4_EDF_DOMAIN_UNSTABLE = 8 , SOF_IPC4_WATCHDOG_EVENT = 9 , SOF_IPC4_GATEWAY_HIGH_THRES = 10 , SOF_IPC4_GATEWAY_LOW_THRES = 11 ,
  SOF_IPC4_I2S_BCE_DETECTED = 12 , SOF_IPC4_I2S_CLK_STATE_CHANGED = 13 , SOF_IPC4_I2S_SINK_MODE_CHANGED = 14 , SOF_IPC4_I2S_SOURCE_MODE_CHANGED = 15 ,
  SOF_IPC4_SRE_DRIFT_TOO_HIGH = 16 , SOF_IPC4_TELEMETRY_DATA_STATUS = 17 , SOF_IPC4_SNDW_DEBUG_INFO = 18 , SOF_IPC4_INVALID_RESOURCE_EVENT_TYPE = 19
}
 Specific resource event types reported by identifiable FW entities. More...
 
enum  sof_ipc4_resource_type {
  SOF_IPC4_MODULE_INSTANCE = 0 , SOF_IPC4_PIPELINE = 1 , SOF_IPC4_GATEWAY = 2 , SOF_IPC4_EDF_TASK = 3 ,
  SOF_IPC4_INVALID_RESOURCE_TYPE = 4
}
 Originator resource category firing a resource event. More...
 

Functions

static void ipc4_notification_watchdog_init (struct ipc4_watchdog_timeout_notification *notif, uint32_t core_id, bool first_timeout)
 Helper to initialize watchdog timeout notification structure.
 
void send_process_data_error_notif_msg (uint32_t resource_id, uint32_t error_code)
 Send process data error notification message to host.
 
bool send_copier_gateway_xrun_notif_msg (uint32_t pipeline_id, enum sof_ipc_stream_direction dir)
 Send Copier gateway xrun (underrun/overrun) notification to host.
 
bool send_gateway_xrun_notif_msg (uint32_t resource_id, enum sof_ipc_stream_direction dir)
 Send DMA gateway xrun notification to host.
 
void send_mixer_underrun_notif_msg (uint32_t resource_id, uint32_t eos_flag, uint32_t data_mixed, uint32_t expected_data_mixed)
 Send mixer underrun notification message to host.
 
void ipc4_update_notification_mask (uint32_t ntfy_mask, uint32_t enabled_mask)
 Update host notification enable/disable bitmasks.
 
bool send_resource_notif (uint32_t resource_id, uint32_t event_type, uint32_t resource_type, void *data, uint32_t data_size)
 Send generic resource event notification.
 

Detailed Description

IPC4 asynchronous notifications, GLITCH reports, and FW ready events.

Macro Definition Documentation

◆ IPC4_RESOURCE_EVENT_SIZE

#define IPC4_RESOURCE_EVENT_SIZE   sizeof(struct ipc4_resource_event_data_notification)

Size in bytes of resource event notification data packet.

◆ SOF_IPC4_FW_READY

#define SOF_IPC4_FW_READY
Value:
@ SOF_IPC4_GLB_NOTIFICATION
Asynchronous notification event from DSP to host driver.
Definition header.h:98
@ SOF_IPC4_NOTIFY_FW_READY
Firmware initialization complete and ready for IPC.
Definition notification.h:41
#define SOF_IPC4_GLB_NOTIFY_MSG_TYPE_SHIFT
Bit shift for message type in primary register.
Definition notification.h:97
#define SOF_IPC4_GLB_NOTIFY_TYPE_SHIFT
Bit shift for notification type in primary register.
Definition notification.h:95

Pre-computed header word for FW_READY notification.

◆ SOF_IPC4_FW_READY_LIB_RESTORED

#define SOF_IPC4_FW_READY_LIB_RESTORED   BIT(15)

FW_READY extension flag indicating dynamic libraries were restored.

◆ SOF_IPC4_GLB_NOTIFY_DIR_MASK

#define SOF_IPC4_GLB_NOTIFY_DIR_MASK   BIT(29)

Global notification direction bitmask.

◆ SOF_IPC4_GLB_NOTIFY_MSG_TYPE_SHIFT

#define SOF_IPC4_GLB_NOTIFY_MSG_TYPE_SHIFT   24

Bit shift for message type in primary register.

◆ SOF_IPC4_GLB_NOTIFY_TYPE_SHIFT

#define SOF_IPC4_GLB_NOTIFY_TYPE_SHIFT   16

Bit shift for notification type in primary register.

◆ SOF_IPC4_NOTIF_HEADER

#define SOF_IPC4_NOTIF_HEADER (   notif_type)
Value:

Helper macro to construct notification primary header DWORD.

◆ SOF_IPC4_REPLY_STATUS_MASK

#define SOF_IPC4_REPLY_STATUS_MASK   0xFFFFFF

Reply status mask in primary register.