Sound Open Firmware
Loading...
Searching...
No Matches
sof.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2016 Intel Corporation. All rights reserved.
4 *
5 * Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
6 */
7
14#ifndef __ZEPHYR_RTOS_SOF_H__
15#define __ZEPHYR_RTOS_SOF_H__
16
17#include <sof/common.h>
18#include <sof/lib/memory.h>
19#include <rtos/spinlock.h>
20
21#ifndef CONFIG_ZEPHYR_NATIVE_DRIVERS
22struct cascade_root;
23#endif
24struct clock_info;
25struct comp_driver_list;
26struct dai_info;
27struct dma_info;
28struct dma_trace_data;
29struct ipc;
31struct mm;
32#ifndef CONFIG_ZEPHYR_NATIVE_DRIVERS
33struct mn;
34#endif
36struct notify_data;
37struct pm_runtime_data;
38struct sa;
39struct trace;
40struct pipeline_posn;
41struct probe_pdata;
42
50struct sof {
51 /* init data */
52 int argc;
53 char **argv;
54
55#ifndef CONFIG_SOF_USERSPACE_LL
56 /* ipc */
57 struct ipc *ipc;
58#endif
59
60 /* system agent */
61 struct sa *sa;
62
63 /* DMA for Trace*/
65
66 /* generic trace structure */
67 struct trace *trace;
68
69 /* platform clock information */
71
72 /* timer domain for driving timer LL scheduler */
74
75 /* DMA domain for driving DMA LL scheduler */
77
78 /* memory map */
79 struct mm *memory_map;
80
81 /* runtime power management data */
82 struct pm_runtime_data *prd;
83
84#ifdef CONFIG_AMS
85 /* asynchronous messaging service */
86 struct ams_shared_context *ams_shared_ctx;
87#endif
88
89 /* shared notifier data */
91
92 /* platform dai information */
93 const struct dai_info *dai_info;
94
95 /* platform DMA information */
96 const struct dma_info *dma_info;
97
98#ifndef CONFIG_ZEPHYR_NATIVE_DRIVERS
99 /* cascading interrupt controller root */
101#endif
102
103 /* list of registered component drivers */
105
106#ifndef CONFIG_ZEPHYR_NATIVE_DRIVERS
107 /* M/N dividers */
108 struct mn *mn;
109#endif
110
111 /* probes */
112 struct probe_pdata *probe;
113
114 /* pipelines stream position */
116
117#ifdef CONFIG_LIBRARY_MANAGER
118 /* dynamically loaded libraries */
119 struct ext_library *ext_library;
120#endif
121
122 __aligned(PLATFORM_DCACHE_ALIGN) int alignment[0];
123} __aligned(PLATFORM_DCACHE_ALIGN);
124
129struct sof *sof_get(void);
130
131#endif /* __ZEPHYR_RTOS_SOF_H__ */
Memory attributes, cold/hot execution paths, and platform memory inclusions.
struct sof * sof_get(void)
Get the global Sound Open Firmware runtime instance pointer.
RTOS spinlock primitives and initialization.
Definition ams.h:106
Cascading interrupt controller root.
Definition interrupt-legacy.h:111
Definition clk.h:46
Holds list of registered components' drivers.
Definition component_ext.h:31
Definition dma.h:243
Main DMA trace context and state machine descriptor.
Definition dma-trace.h:44
Definition common.h:97
Low-Latency scheduling domain instance descriptor.
Definition ll_schedule_domain.h:168
Definition notifier.h:40
Definition agent.h:23
General firmware context.
Definition sof.h:50
struct ipc * ipc
Definition sof.h:57
struct comp_driver_list * comp_drivers
Definition sof.h:104
struct probe_pdata * probe
Definition sof.h:112
struct sa * sa
Definition sof.h:61
char ** argv
Definition sof.h:53
struct ll_schedule_domain * platform_timer_domain
Definition sof.h:73
struct dma_trace_data * dmat
Definition sof.h:64
const struct dai_info * dai_info
Definition sof.h:93
const struct dma_info * dma_info
Definition sof.h:96
struct clock_info * clocks
Definition sof.h:70
struct pm_runtime_data * prd
Definition sof.h:82
struct ll_schedule_domain * platform_dma_domain
Definition sof.h:76
struct notify_data * notify_data
Definition sof.h:90
int alignment[0]
Definition sof.h:122
struct mm * memory_map
Definition sof.h:79
int argc
Definition sof.h:52
struct cascade_root * cascade_root
Definition sof.h:100
struct trace * trace
Definition sof.h:67
struct mn * mn
Definition sof.h:108
struct pipeline_posn * pipeline_posn
Definition sof.h:115