1
2
3
4
5
6
7
8
9 #ifndef __INCLUDE_SOUND_SOF_INFO_H__
10 #define __INCLUDE_SOUND_SOF_INFO_H__
11
12 #include <sound/sof/header.h>
13 #include <sound/sof/stream.h>
14
15
16
17
18
19 #define SOF_IPC_MAX_ELEMS 16
20
21
22
23
24 #define SOF_IPC_INFO_BUILD BIT(0)
25 #define SOF_IPC_INFO_LOCKS BIT(1)
26 #define SOF_IPC_INFO_LOCKSV BIT(2)
27 #define SOF_IPC_INFO_GDB BIT(3)
28
29
30 enum sof_ipc_ext_data {
31 SOF_IPC_EXT_DMA_BUFFER = 0,
32 SOF_IPC_EXT_WINDOW,
33 };
34
35
36 struct sof_ipc_fw_version {
37 struct sof_ipc_hdr hdr;
38 uint16_t major;
39 uint16_t minor;
40 uint16_t micro;
41 uint16_t build;
42 uint8_t date[12];
43 uint8_t time[10];
44 uint8_t tag[6];
45 uint32_t abi_version;
46
47
48 uint32_t reserved[4];
49 } __packed;
50
51
52 struct sof_ipc_fw_ready {
53 struct sof_ipc_cmd_hdr hdr;
54 uint32_t dspbox_offset;
55 uint32_t hostbox_offset;
56 uint32_t dspbox_size;
57 uint32_t hostbox_size;
58 struct sof_ipc_fw_version version;
59
60
61 uint64_t flags;
62
63
64 uint32_t reserved[4];
65 } __packed;
66
67
68
69
70 enum sof_ipc_region {
71 SOF_IPC_REGION_DOWNBOX = 0,
72 SOF_IPC_REGION_UPBOX,
73 SOF_IPC_REGION_TRACE,
74 SOF_IPC_REGION_DEBUG,
75 SOF_IPC_REGION_STREAM,
76 SOF_IPC_REGION_REGS,
77 SOF_IPC_REGION_EXCEPTION,
78 };
79
80 struct sof_ipc_ext_data_hdr {
81 struct sof_ipc_cmd_hdr hdr;
82 uint32_t type;
83 } __packed;
84
85 struct sof_ipc_dma_buffer_elem {
86 struct sof_ipc_hdr hdr;
87 uint32_t type;
88 uint32_t id;
89 struct sof_ipc_host_buffer buffer;
90 } __packed;
91
92
93 struct sof_ipc_dma_buffer_data {
94 struct sof_ipc_ext_data_hdr ext_hdr;
95 uint32_t num_buffers;
96
97
98 struct sof_ipc_dma_buffer_elem buffer[];
99 } __packed;
100
101 struct sof_ipc_window_elem {
102 struct sof_ipc_hdr hdr;
103 uint32_t type;
104 uint32_t id;
105 uint32_t flags;
106 uint32_t size;
107
108 uint32_t offset;
109 } __packed;
110
111
112 struct sof_ipc_window {
113 struct sof_ipc_ext_data_hdr ext_hdr;
114 uint32_t num_windows;
115 struct sof_ipc_window_elem window[];
116 } __packed;
117
118 #endif