|
Sound Open Firmware
|
IDC header file. More...


Go to the source code of this file.
Data Structures | |
| struct | idc_payload |
| IDC message payload. More... | |
| struct | idc_msg |
| IDC message. More... | |
| struct | idc |
| IDC data. More... | |
Macros | |
| #define | IDC_BLOCKING 0 |
| IDC send blocking flag. | |
| #define | IDC_NON_BLOCKING 1 |
| IDC send non-blocking flag. | |
| #define | IDC_POWER_UP 2 |
| IDC send core power up flag. | |
| #define | IDC_POWER_DOWN 3 |
| IDC send core power down flag. | |
| #define | IDC_DEADLINE 100 |
| IDC task deadline. | |
| #define | IDC_ROM_WAKE_VERSION 0x2 |
| ROM wake version parsed by ROM during core wake up. | |
| #define | IDC_TYPE_SHIFT 24 |
| IDC message type. | |
| #define | IDC_TYPE_MASK 0x7f |
| #define | IDC_TYPE(x) |
| #define | IDC_HEADER_MASK 0xffffff |
| IDC message header. | |
| #define | IDC_HEADER(x) |
| #define | IDC_EXTENSION_MASK 0x3fffffff |
| IDC message extension. | |
| #define | IDC_EXTENSION(x) |
| #define | IDC_MSG_POWER_UP |
| IDC power up message. | |
| #define | IDC_MSG_POWER_UP_EXT IDC_EXTENSION(SOF_TEXT_START >> 2) |
| #define | IDC_MSG_POWER_DOWN IDC_TYPE(0x2) |
| IDC power down message. | |
| #define | IDC_MSG_POWER_DOWN_EXT IDC_EXTENSION(0x0) |
| #define | IDC_MSG_NOTIFY IDC_TYPE(0x3) |
| IDC notify message. | |
| #define | IDC_MSG_NOTIFY_EXT IDC_EXTENSION(0x0) |
| #define | IDC_MSG_IPC IDC_TYPE(0x4) |
| IDC IPC processing message. | |
| #define | IDC_MSG_IPC_EXT IDC_EXTENSION(0x0) |
| #define | IDC_MSG_PARAMS IDC_TYPE(0x5) |
| IDC component params message. | |
| #define | IDC_MSG_PARAMS_EXT(x) |
| #define | IDC_MSG_PREPARE IDC_TYPE(0x6) |
| IDC component prepare message. | |
| #define | IDC_MSG_PREPARE_EXT(x) |
| #define | IDC_MSG_TRIGGER IDC_TYPE(0x7) |
| IDC component trigger message. | |
| #define | IDC_MSG_TRIGGER_EXT(x) |
| #define | IDC_MSG_RESET IDC_TYPE(0x8) |
| IDC component reset message. | |
| #define | IDC_MSG_RESET_EXT(x) |
| #define | IDC_MSG_PREPARE_D0ix IDC_TYPE(0x9) |
| IDC prepare D0ix message. | |
| #define | IDC_MSG_PREPARE_D0ix_EXT IDC_EXTENSION(0x0) |
| #define | IDC_MSG_SECONDARY_CORE_CRASHED IDC_TYPE(0xA) |
| IDC secondary core crashed notify message. | |
| #define | IDC_MSG_SECONDARY_CORE_CRASHED_EXT(x) |
| #define | IDC_MSG_AMS IDC_TYPE(0xB) |
| IDC process async msg. | |
| #define | IDC_MSG_AMS_EXT IDC_EXTENSION(0x0) |
| #define | IDC_HEADER_TO_AMS_SLOT_MASK(x) |
| #define | IDC_MSG_BIND IDC_TYPE(0xD) |
| #define | IDC_MSG_UNBIND IDC_TYPE(0xE) |
| #define | IDC_MSG_GET_ATTRIBUTE IDC_TYPE(0xF) |
| #define | IDC_MSG_FREE IDC_TYPE(0x10) |
| IDC component delete message. | |
| #define | IDC_MSG_FREE_EXT(x) |
| #define | IDC_MSG_PPL_STATE IDC_TYPE(0xC) |
| IDC pipeline set state message. | |
| #define | IDC_PPL_STATE_PPL_ID_SHIFT 0 |
| #define | IDC_PPL_STATE_PPL_ID_MASK MASK(23, 0) |
| #define | IDC_PPL_STATE_PHASE_SHIFT 24 |
| #define | IDC_PPL_STATE_PHASE_MASK MASK(27, 24) |
| #define | IDC_PPL_STATE_PHASE_SET(x) |
| #define | IDC_PPL_STATE_PHASE_GET(x) |
| #define | IDC_PPL_STATE_PHASE_PREPARE BIT(0) |
| #define | IDC_PPL_STATE_PHASE_TRIGGER BIT(1) |
| #define | IDC_PPL_STATE_PHASE_ONESHOT |
| #define | IDC_MSG_PPL_STATE_EXT(_ppl_id, _action) |
| #define | IDC_SCC_CORE_SHIFT 0 |
| IDC_MSG_SECONDARY_CORE_CRASHED header fields. | |
| #define | IDC_SCC_CORE_MASK 0xff |
| #define | IDC_SCC_CORE(x) |
| #define | IDC_SCC_REASON_SHIFT 8 |
| #define | IDC_SCC_REASON_MASK 0xff |
| #define | IDC_SCC_REASON(x) |
| #define | IDC_SCC_REASON_WATCHDOG 0x00 |
| Secondary core crash reasons. | |
| #define | IDC_SCC_REASON_EXCEPTION 0x01 |
| #define | iTS(x) |
| Decodes IDC message type. | |
| #define | IDC_MAX_PAYLOAD_SIZE (DCACHE_LINE_SIZE * 2) |
| Max IDC message payload size in bytes. | |
| #define | IDC_FREE_IRQ_ONLY BIT(0) |
| IDC free function flags. | |
Functions | |
| static struct idc_payload * | idc_payload_get (struct idc *idc, uint32_t core) |
| void | idc_enable_interrupts (int target_core, int source_core) |
| void | idc_free (uint32_t flags) |
| int | platform_idc_init (void) |
| int | platform_idc_restore (void) |
| enum task_state | idc_do_cmd (void *data) |
| void | idc_cmd (struct idc_msg *msg) |
| int | idc_msg_status_get (uint32_t core) |
| int | idc_init (void) |
| void | idc_init_thread (void) |
| int | idc_send_msg (struct idc_msg *msg, uint32_t mode) |
| struct idc ** | idc_get (void) |
Variables | |
| struct tr_ctx | idc_tr |
IDC header file.
| #define IDC_BLOCKING 0 |
IDC send blocking flag.
| #define IDC_DEADLINE 100 |
IDC task deadline.
| #define IDC_EXTENSION | ( | x | ) |
| #define IDC_EXTENSION_MASK 0x3fffffff |
IDC message extension.
| #define IDC_FREE_IRQ_ONLY BIT(0) |
IDC free function flags.
disable only irqs
| #define IDC_HEADER | ( | x | ) |
| #define IDC_HEADER_MASK 0xffffff |
IDC message header.
| #define IDC_HEADER_TO_AMS_SLOT_MASK | ( | x | ) |
| #define IDC_MAX_PAYLOAD_SIZE (DCACHE_LINE_SIZE * 2) |
Max IDC message payload size in bytes.
| #define IDC_MSG_AMS IDC_TYPE(0xB) |
IDC process async msg.
| #define IDC_MSG_AMS_EXT IDC_EXTENSION(0x0) |
| #define IDC_MSG_BIND IDC_TYPE(0xD) |
| #define IDC_MSG_FREE IDC_TYPE(0x10) |
IDC component delete message.
| #define IDC_MSG_FREE_EXT | ( | x | ) |
| #define IDC_MSG_GET_ATTRIBUTE IDC_TYPE(0xF) |
| #define IDC_MSG_IPC IDC_TYPE(0x4) |
IDC IPC processing message.
| #define IDC_MSG_IPC_EXT IDC_EXTENSION(0x0) |
| #define IDC_MSG_NOTIFY IDC_TYPE(0x3) |
IDC notify message.
| #define IDC_MSG_NOTIFY_EXT IDC_EXTENSION(0x0) |
| #define IDC_MSG_PARAMS IDC_TYPE(0x5) |
IDC component params message.
| #define IDC_MSG_PARAMS_EXT | ( | x | ) |
| #define IDC_MSG_POWER_DOWN IDC_TYPE(0x2) |
IDC power down message.
| #define IDC_MSG_POWER_DOWN_EXT IDC_EXTENSION(0x0) |
| #define IDC_MSG_POWER_UP |
IDC power up message.
| #define IDC_MSG_POWER_UP_EXT IDC_EXTENSION(SOF_TEXT_START >> 2) |
| #define IDC_MSG_PPL_STATE IDC_TYPE(0xC) |
IDC pipeline set state message.
| #define IDC_MSG_PPL_STATE_EXT | ( | _ppl_id, | |
| _action ) |
| #define IDC_MSG_PREPARE IDC_TYPE(0x6) |
IDC component prepare message.
| #define IDC_MSG_PREPARE_D0ix IDC_TYPE(0x9) |
IDC prepare D0ix message.
| #define IDC_MSG_PREPARE_D0ix_EXT IDC_EXTENSION(0x0) |
| #define IDC_MSG_PREPARE_EXT | ( | x | ) |
| #define IDC_MSG_RESET IDC_TYPE(0x8) |
IDC component reset message.
| #define IDC_MSG_RESET_EXT | ( | x | ) |
| #define IDC_MSG_SECONDARY_CORE_CRASHED IDC_TYPE(0xA) |
IDC secondary core crashed notify message.
| #define IDC_MSG_SECONDARY_CORE_CRASHED_EXT | ( | x | ) |
| #define IDC_MSG_TRIGGER IDC_TYPE(0x7) |
IDC component trigger message.
| #define IDC_MSG_TRIGGER_EXT | ( | x | ) |
| #define IDC_MSG_UNBIND IDC_TYPE(0xE) |
| #define IDC_NON_BLOCKING 1 |
IDC send non-blocking flag.
| #define IDC_POWER_DOWN 3 |
IDC send core power down flag.
| #define IDC_POWER_UP 2 |
IDC send core power up flag.
| #define IDC_PPL_STATE_PHASE_GET | ( | x | ) |
| #define IDC_PPL_STATE_PHASE_MASK MASK(27, 24) |
| #define IDC_PPL_STATE_PHASE_ONESHOT |
| #define IDC_PPL_STATE_PHASE_PREPARE BIT(0) |
| #define IDC_PPL_STATE_PHASE_SET | ( | x | ) |
| #define IDC_PPL_STATE_PHASE_SHIFT 24 |
| #define IDC_PPL_STATE_PHASE_TRIGGER BIT(1) |
| #define IDC_PPL_STATE_PPL_ID_MASK MASK(23, 0) |
| #define IDC_PPL_STATE_PPL_ID_SHIFT 0 |
| #define IDC_ROM_WAKE_VERSION 0x2 |
ROM wake version parsed by ROM during core wake up.
| #define IDC_SCC_CORE | ( | x | ) |
| #define IDC_SCC_CORE_MASK 0xff |
| #define IDC_SCC_CORE_SHIFT 0 |
IDC_MSG_SECONDARY_CORE_CRASHED header fields.
| #define IDC_SCC_REASON | ( | x | ) |
| #define IDC_SCC_REASON_EXCEPTION 0x01 |
| #define IDC_SCC_REASON_MASK 0xff |
| #define IDC_SCC_REASON_SHIFT 8 |
| #define IDC_SCC_REASON_WATCHDOG 0x00 |
Secondary core crash reasons.
| #define IDC_TYPE | ( | x | ) |
| #define IDC_TYPE_MASK 0x7f |
| #define IDC_TYPE_SHIFT 24 |
IDC message type.
| #define iTS | ( | x | ) |
Decodes IDC message type.
| void idc_cmd | ( | struct idc_msg * | msg | ) |
| enum task_state idc_do_cmd | ( | void * | data | ) |
| void idc_enable_interrupts | ( | int | target_core, |
| int | source_core ) |
| void idc_free | ( | uint32_t | flags | ) |
| struct idc ** idc_get | ( | void | ) |
| int idc_init | ( | void | ) |
| void idc_init_thread | ( | void | ) |
| int idc_msg_status_get | ( | uint32_t | core | ) |
|
inlinestatic |
| int idc_send_msg | ( | struct idc_msg * | msg, |
| uint32_t | mode ) |
| int platform_idc_init | ( | void | ) |
| int platform_idc_restore | ( | void | ) |
|
extern |