Sound Open Firmware
Loading...
Searching...
No Matches
ipc-config.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2021 Intel Corporation. All rights reserved.
4 */
5
6#ifndef __SOF_AUDIO_IPC_CONFIG_H__
7#define __SOF_AUDIO_IPC_CONFIG_H__
8
9#include <stdint.h>
10#include <stdbool.h>
11
12/* ACE 2.0 and newer */
13#define GTW_DMA_CONFIG_ID 0x1000
14#define GTW_DMA_INVALID_CHANNEL_ID 0xffffffff
15/* Maximum number of devices */
16#define GTW_DMA_DEVICE_MAX_COUNT 16
17
22
27
29 uint8_t dma_method;
33 uint16_t rsvd;
34 uint32_t dma_channel_id;
37 uint32_t stream_id;
38 /* DmaStreamChannelMap */
41 uint8_t dma_priv_config[0];
42} __attribute__((packed, aligned(4)));
43
44#define GET_IPC_DMA_CONFIG(buffer, size) \
45 ((struct ipc_dma_config *)((uint8_t *)(buffer) + (size) - sizeof(struct ipc_dma_config)))
46#define GET_IPC_DMA_CONFIG_ID(buffer, size) ((uint32_t *)GET_IPC_DMA_CONFIG(buffer, size) - 2)
47
48/*
49 * Generic IPC information for base components. Fields can be added here with NO impact on
50 * IPC ABI version.
51 */
52
53/* generic host component */
55 uint32_t direction;
56 uint32_t no_irq;
57 uint32_t dmac_config;
58 uint32_t dma_buffer_size;
59 uint32_t feature_mask;
62};
63
64/* generic DAI component */
66 uint32_t direction;
67 uint32_t dai_index;
68 uint32_t type;
69 uint32_t dma_buffer_size;
70 /* physical protocol and clocking */
72 uint16_t format;
73 uint16_t group_id;
75 uint32_t feature_mask;
80 const struct ipc4_audio_format *gtw_fmt;
83 /* Gain feature flag */
85};
86
87/* generic volume component */
89 uint32_t channels;
90 uint32_t min_value;
91 uint32_t max_value;
92 uint32_t ramp;
93 uint32_t initial_ramp;
94};
95
96/* generic SRC component */
98 /* either source or sink rate must be non zero */
99 uint32_t source_rate;
100 uint32_t sink_rate;
101 uint32_t rate_mask;
102};
103
104/* generic ASRC component */
106 /* either source or sink rate must be non zero */
107 uint32_t source_rate;
110 uint32_t sink_rate;
116 uint32_t operation_mode;
123};
124
125/* generic tone generator component */
127 int32_t sample_rate;
128 int32_t frequency;
129 int32_t amplitude;
130 int32_t freq_mult;
131 int32_t ampl_mult;
132 int32_t length;
133 int32_t period;
134 int32_t repeats;
135 int32_t ramp_step;
136};
137
138/* generic "effect", "codec" or proprietary processing component */
140 uint32_t size;
141 uint32_t type;
142
143 const unsigned char *data;
144};
145
146/* file IO ipc comp */
148 struct ipc_config_process module_header; /* Needed for module_adapter_init_data() */
149 uint32_t rate;
150 uint32_t channels;
151 char *fn;
152 uint32_t mode;
153 uint32_t frame_fmt;
154 uint32_t direction;
155} __attribute__((packed, aligned(4)));
156
157#endif
#define GTW_DMA_DEVICE_MAX_COUNT
Definition ipc-config.h:16
Definition ipc-config.h:18
uint32_t device_address
Definition ipc-config.h:19
uint32_t channel_map
Definition ipc-config.h:20
Definition ipc-config.h:23
uint32_t device_count
Definition ipc-config.h:24
struct dma_device_stream_channel_map map[GTW_DMA_DEVICE_MAX_COUNT]
Definition ipc-config.h:25
Definition ipc-config.h:147
uint32_t rate
Definition ipc-config.h:149
char * fn
Definition ipc-config.h:151
uint32_t frame_fmt
Definition ipc-config.h:153
uint32_t mode
Definition ipc-config.h:152
uint32_t direction
SOF_IPC_STREAM_.
Definition ipc-config.h:154
uint32_t channels
Definition ipc-config.h:150
struct ipc_config_process module_header
Definition ipc-config.h:148
Definition ipc-config.h:105
uint32_t asynchronous_mode
synchronous 0, asynchronous 1
Definition ipc-config.h:113
uint32_t sink_rate
Define fixed sink rate or.
Definition ipc-config.h:110
uint32_t operation_mode
push 0, pull 1, In push mode the
Definition ipc-config.h:116
uint32_t source_rate
Define fixed source rate or.
Definition ipc-config.h:107
Definition ipc-config.h:65
bool apply_gain
Definition ipc-config.h:84
struct ipc_dma_config * host_dma_config[GTW_DMA_DEVICE_MAX_COUNT]
Definition ipc-config.h:79
uint32_t direction
SOF_IPC_STREAM_.
Definition ipc-config.h:66
uint32_t dai_index
index of this type dai
Definition ipc-config.h:67
uint32_t dma_buffer_size
Requested DMA buffer size.
Definition ipc-config.h:69
uint32_t sampling_frequency
DAI sampling frequency - required only with IPC4.
Definition ipc-config.h:71
uint32_t feature_mask
copier feature mask (set directly from ipc4_copier_module_cfg on init)
Definition ipc-config.h:75
const struct ipc4_audio_format * gtw_fmt
audio format for gateway DMA data - required for ACE 2.0 and newer
Definition ipc-config.h:80
uint16_t group_id
group ID, 0 means no group (ABI 3.17)
Definition ipc-config.h:73
uint16_t format
SOF_DAI_FMT_.
Definition ipc-config.h:72
bool is_config_blob
DAI specific configuration is a blob.
Definition ipc-config.h:74
uint32_t type
DAI type - SOF_DAI_.
Definition ipc-config.h:68
Definition ipc-config.h:54
uint32_t dma_buffer_size
Requested DMA buffer size.
Definition ipc-config.h:58
uint32_t feature_mask
copier feature mask (set directly from ipc4_copier_module_cfg on init)
Definition ipc-config.h:59
uint32_t direction
SOF_IPC_STREAM_.
Definition ipc-config.h:55
uint32_t no_irq
don't send periodic IRQ to host/DSP
Definition ipc-config.h:56
uint32_t dmac_config
DMA engine specific.
Definition ipc-config.h:57
Definition ipc-config.h:139
uint32_t type
sof_ipc_process_type
Definition ipc-config.h:141
const unsigned char * data
Definition ipc-config.h:143
uint32_t size
size of bespoke data section in bytes
Definition ipc-config.h:140
Definition ipc-config.h:97
uint32_t source_rate
source rate or 0 for variable
Definition ipc-config.h:99
uint32_t rate_mask
SOF_RATE_ supported rates.
Definition ipc-config.h:101
uint32_t sink_rate
sink rate or 0 for variable
Definition ipc-config.h:100
Definition ipc-config.h:126
int32_t repeats
Definition ipc-config.h:134
int32_t freq_mult
Definition ipc-config.h:130
int32_t length
Definition ipc-config.h:132
int32_t amplitude
Definition ipc-config.h:129
int32_t frequency
Definition ipc-config.h:128
int32_t ramp_step
Definition ipc-config.h:135
int32_t sample_rate
Definition ipc-config.h:127
int32_t ampl_mult
Definition ipc-config.h:131
int32_t period
Definition ipc-config.h:133
Definition ipc-config.h:88
uint32_t ramp
SOF_VOLUME_.
Definition ipc-config.h:92
uint32_t max_value
Definition ipc-config.h:91
uint32_t initial_ramp
ramp space in ms
Definition ipc-config.h:93
uint32_t min_value
Definition ipc-config.h:90
uint32_t channels
Definition ipc-config.h:89
Definition ipc-config.h:28
uint8_t pre_allocated_by_host
1 - DMA pre-allocated by host, otherwise to be allocated by DSP
Definition ipc-config.h:30
struct dma_stream_channel_map channel_map
Definition ipc-config.h:39
uint32_t stream_id
Definition ipc-config.h:37
uint32_t dma_priv_config_size
Definition ipc-config.h:40
uint8_t dma_priv_config[0]
Definition ipc-config.h:41
uint32_t dma_channel_id
channel ID if DMA pre-allocated by host, otherwise invalid channel ID
Definition ipc-config.h:34
uint16_t rsvd
Definition ipc-config.h:33
uint8_t dma_method
DMA method.
Definition ipc-config.h:29