Sound Open Firmware
Loading...
Searching...
No Matches
info.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2018 Intel Corporation. All rights reserved.
4 *
5 * Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
6 * Keyon Jie <yang.jie@linux.intel.com>
7 */
8
15
16#ifndef __IPC_INFO_H__
17#define __IPC_INFO_H__
18
19#include <ipc/header.h>
20#include <ipc/stream.h>
21#include <stdint.h>
22
23/*
24 * Firmware boot and version
25 */
26
27#define SOF_IPC_MAX_ELEMS 16
28
29/*
30 * Firmware boot info flag bits (64-bit)
31 */
32#define SOF_IPC_INFO_BUILD BIT(0)
33#define SOF_IPC_INFO_LOCKS BIT(1)
34#define SOF_IPC_INFO_LOCKSV BIT(2)
35#define SOF_IPC_INFO_GDB BIT(3)
36#define SOF_IPC_INFO_D3_PERSISTENT BIT(4)
37
38/* extended data types that can be appended onto end of sof_ipc_fw_ready */
46
47/* FW version - SOF_IPC_GLB_VERSION */
50 uint16_t major;
51 uint16_t minor;
52 uint16_t micro;
53 uint16_t build;
54 uint8_t date[12];
55 uint8_t time[10];
56 uint8_t tag[6];
57 uint32_t abi_version;
59 uint32_t src_hash;
60
61 /* reserved for future use */
62 uint32_t reserved[3];
63} __attribute__((packed, aligned(4)));
64
65/* FW ready Message - sent by firmware when boot has completed */
68 uint32_t dspbox_offset; /* dsp initiated IPC mailbox */
69 uint32_t hostbox_offset; /* host initiated IPC mailbox */
70 uint32_t dspbox_size;
71 uint32_t hostbox_size;
73
74 /* Miscellaneous flags */
75 uint64_t flags;
76
77 /* reserved for future use */
78 uint32_t reserved[4];
79} __attribute__((packed, aligned(4)));
80
81/*
82 * Extended Firmware data. All optional, depends on platform/arch.
83 */
93
96 uint32_t type;
97} __attribute__((packed, aligned(4)));
98
101 uint32_t type;
102 uint32_t id;
103 uint32_t flags;
104 uint32_t size;
105 /* offset in window region as windows can be partitioned */
106 uint32_t offset;
107} __attribute__((packed, aligned(4)));
108
109/* extended data memory windows for IPC, trace and debug */
112 uint32_t num_windows;
114} __attribute__((packed, aligned(4)));
115
116/* extended data, compiler version */
119 uint32_t major;
120 uint32_t minor;
121 uint32_t micro;
122
123 /* reserved for future use */
124 uint32_t reserved[4];
125
126 uint8_t name[16]; /* null terminated compiler name */
127 uint8_t optim[4]; /* null terminated compiler -O flag value */
128 uint8_t desc[32]; /* null terminated compiler description */
129} __attribute__((packed, aligned(4)));
130
131/* extended data: Probe setup */
134
137
138 /* reserved for future use */
139 uint32_t reserved[2];
140} __attribute__((packed, aligned(4)));
141
142/* extended data: user abi version(s) */
145
147} __attribute__((packed, aligned(4)));
148
149#endif /* __IPC_INFO_H__ */
sof_ipc_region
Definition info.h:84
@ SOF_IPC_REGION_DOWNBOX
Definition info.h:85
@ SOF_IPC_REGION_STREAM
Definition info.h:89
@ SOF_IPC_REGION_DEBUG
Definition info.h:88
@ SOF_IPC_REGION_EXCEPTION
Definition info.h:91
@ SOF_IPC_REGION_TRACE
Definition info.h:87
@ SOF_IPC_REGION_REGS
Definition info.h:90
@ SOF_IPC_REGION_UPBOX
Definition info.h:86
#define SOF_IPC_MAX_ELEMS
Definition info.h:27
sof_ipc_ext_data
Definition info.h:39
@ SOF_IPC_EXT_WINDOW
Definition info.h:41
@ SOF_IPC_EXT_USER_ABI_INFO
Definition info.h:44
@ SOF_IPC_EXT_CC_INFO
Definition info.h:42
@ SOF_IPC_EXT_PROBE_INFO
Definition info.h:43
@ SOF_IPC_EXT_UNUSED
Definition info.h:40
IPC command header.
IPC definitions for streams.
Definition info.h:117
uint8_t optim[4]
Definition info.h:127
uint8_t name[16]
Definition info.h:126
uint32_t micro
Definition info.h:121
uint32_t major
Definition info.h:119
struct sof_ipc_ext_data_hdr ext_hdr
Definition info.h:118
uint8_t desc[32]
Definition info.h:128
uint32_t minor
Definition info.h:120
uint32_t reserved[4]
Definition info.h:124
Command Header - Header for all IPC commands.
Definition header.h:357
Definition info.h:94
uint32_t type
SOF_IPC_EXT_.
Definition info.h:96
struct sof_ipc_cmd_hdr hdr
Definition info.h:95
Definition info.h:66
uint32_t reserved[4]
Definition info.h:78
uint64_t flags
Definition info.h:75
uint32_t hostbox_size
Definition info.h:71
uint32_t dspbox_size
Definition info.h:70
uint32_t hostbox_offset
Definition info.h:69
struct sof_ipc_cmd_hdr hdr
Definition info.h:67
struct sof_ipc_fw_version version
Definition info.h:72
uint32_t dspbox_offset
Definition info.h:68
Definition info.h:48
uint16_t minor
Definition info.h:51
uint32_t src_hash
used to check FW and ldc file compatibility, reproducible value (ABI3.17)
Definition info.h:59
uint16_t micro
Definition info.h:52
uint32_t reserved[3]
Definition info.h:62
uint8_t time[10]
Definition info.h:55
uint32_t abi_version
Definition info.h:57
uint16_t build
Definition info.h:53
uint8_t tag[6]
Definition info.h:56
uint8_t date[12]
Definition info.h:54
struct sof_ipc_hdr hdr
Definition info.h:49
uint16_t major
Definition info.h:50
Structure Header - Header for all IPC structures except command structs.
Definition header.h:347
Definition info.h:132
struct sof_ipc_ext_data_hdr ext_hdr
Definition info.h:133
uint32_t injection_dmas_max
Definition info.h:136
uint32_t reserved[2]
Definition info.h:139
uint32_t probe_points_max
Definition info.h:135
Definition info.h:143
struct sof_ipc_ext_data_hdr ext_hdr
Definition info.h:144
uint32_t abi_dbg_version
Definition info.h:146
Definition info.h:99
uint32_t type
SOF_IPC_REGION_.
Definition info.h:101
uint32_t id
platform specific - used to map to host memory
Definition info.h:102
uint32_t offset
Definition info.h:106
uint32_t flags
R, W, RW, etc - to define.
Definition info.h:103
struct sof_ipc_hdr hdr
Definition info.h:100
uint32_t size
size of region in bytes
Definition info.h:104
Definition info.h:110
struct sof_ipc_window_elem window[SOF_IPC_MAX_ELEMS]
ABI3.17: Fixed size.
Definition info.h:113
uint32_t num_windows
Definition info.h:112
struct sof_ipc_ext_data_hdr ext_hdr
Definition info.h:111