Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
bb92e9b
(---section submitted PRs START)
kv2019i Mar 23, 2026
4983cdd
schedule: use k_thread_cpu_pin() for CPU affinity
Jun 24, 2026
fcd7010
(---section submitted PRs STOP)
kv2019i Mar 23, 2026
a90f9f5
(---section dai-zephyr START)
kv2019i Feb 19, 2026
bb29ab2
WIP: audio: dai-zephyr: temporarily disable spinlock for dai properties
kv2019i Jun 10, 2026
bb1a7ed
audio: dai-zephyr: migrate to use dai_get_properties_copy()
kv2019i Feb 18, 2026
249dd70
(---section dai-zephyr STOP)
kv2019i Feb 19, 2026
46568f7
(---section schduler changes START)
kv2019i Mar 3, 2026
4d36a44
schedule: zephyr_ll: convert pdata->sem into a dynamic object
kv2019i Feb 13, 2026
8edbd21
schedule: add scheduler_get_data_for_core()
kv2019i Jun 10, 2026
05821fc
schedule: zephyr_ll: add user_ll_grant_access()
kv2019i Jun 26, 2026
f5dce61
schedule: zephyr_domain: use a different thread name for user LL
kv2019i Mar 24, 2026
f8dc5a9
coherent: disable core debug checks for user-space builds
kv2019i Mar 20, 2026
9dd3c98
schedule: zephyr_ll: make zephyr_ll_assert_core() user-space safe
kv2019i Jun 10, 2026
6fa83f8
schedule: zephyr_ll: use correct method to get scheduler data
kv2019i Jun 9, 2026
109529c
schedule: zephyr_dp_sched_app: fix build with no thread names
kv2019i Jun 16, 2026
cc42a76
(---section schduler changes END)
kv2019i Mar 3, 2026
4b3c1e7
(---section audio-user PRs START)
kv2019i Mar 25, 2026
830afaf
audio: pipeline-schedule: make pipeline_schedule_triggered() user safe
kv2019i Jun 10, 2026
c19f641
init: secondary_core_init: set up user-space LL scheduler context
kv2019i Jun 10, 2026
1398b35
audio: make comp_drivers_get() accessible from user-space
kv2019i Apr 15, 2026
15b3fb8
audio: chain_dma: add user-space memory and scheduling support
kv2019i Apr 21, 2026
b98e676
audio: chain-dma: use module context for allocations
kv2019i May 8, 2026
9441643
audio: chain_dma: run chain DMA in the user LL thread
kv2019i Jul 13, 2026
153e46f
userspace: fix debug-overlay builds
lyakh Jun 23, 2026
7726e13
(---section audio user PRs STOP)
kv2019i Mar 25, 2026
a19ec28
(---section: IPC user support START)
kv2019i Mar 17, 2026
6a7af4c
ipc: move standalone-test check later in ipc_init()
kv2019i Feb 10, 2026
747d7b8
ipc: add global IPC context and ll_alloc for user-space LL
kv2019i Jun 18, 2026
c4d8211
ipc4: handler: make config and pipeline-state processing context-agno…
kv2019i Jun 18, 2026
10e5065
ipc: make ipc_msg_reply and compound-message handlers syscalls
kv2019i Jun 18, 2026
8cb55a2
ipc: allocate IPC objects from the user-accessible system heap
kv2019i Jun 18, 2026
cef6a87
ipc: implement user-space IPC handling thread
kv2019i Jun 18, 2026
38950e6
zephyr: lib: make vregion_alloc/free system calls
kv2019i Jun 25, 2026
ad41e93
(---section: IPC user support STOP)
kv2019i Mar 27, 2026
a75e3f5
(---section: IPC notifications START)
kv2019i May 8, 2026
924b194
ipc: turn ipc_msg_send() into a system call if SOF_USERSPACE_LL=y
Apr 20, 2026
e2f10c3
ipc: make IPC message allocation userspace-safe
kv2019i Jun 25, 2026
284392e
ipc4: notification: make send_resource_notif() a syscall
Apr 23, 2026
54fbca1
(---section: IPC notifications STOP)
kv2019i May 8, 2026
79650de
(---section test-case START)
kv2019i Feb 19, 2026
2cfc9cf
zephyr: test: userspace: add pipeline_two_components test
kv2019i Apr 22, 2026
4ff1636
(---section WIP mandatory changes START)
kv2019i Feb 19, 2026
c8075ae
audio: pipeline: enable position reporting for user-space pipelines
kv2019i Jul 2, 2026
2ea1e49
schedule: zephyr_ll: fix use-after-free when freeing an active user-s…
kv2019i Jun 5, 2026
0ed5fd5
WIP: ipc: expose coldrodata to IPC user thread
kv2019i Apr 16, 2026
dcb5cf7
HACK: audio: collection of feature limitations to run LL in user
kv2019i Feb 26, 2026
d87f563
Revert "module: generic: remove MEM_API_CHECK_THREAD debug mechanism"
kv2019i Jul 2, 2026
70358c5
Revert "module: generic: add mutex to protect module_resources"
kv2019i Jul 2, 2026
5bef042
ipc: only add a partition if it's non-empty
lyakh May 21, 2026
54dbe70
audio: pipeline: add a missing header
lyakh May 21, 2026
8b64635
lib-manager: add 2 syscalls to handle LLEXT-related work
lyakh May 22, 2026
567f360
audio: pipeline: add a missing header
lyakh Jun 17, 2026
9dbbeab
ipc: ipc4: type-cast a pointer instead of memcpy()
lyakh Jun 17, 2026
e83f6f2
ipc: ipc4: fix a logging format
lyakh Jun 17, 2026
df0a5c1
schedule: LL: limit scope of two functions
lyakh Jun 17, 2026
9d05e43
llext: add a function to map libraries to userspace
lyakh May 22, 2026
1b5de53
lib-manager: use user heap for the driver object
lyakh May 22, 2026
6e7e4bb
llext: map modules for userspace LL
lyakh May 22, 2026
6edbb6c
ipc: enable syscalls for userspace always
lyakh May 22, 2026
314dd5a
ipc: remove driver copy
lyakh May 22, 2026
54b5626
schedule: ll: userspace: enable LLEXT
lyakh May 22, 2026
f2b8283
audio: pipeline: remove unneeded warning
lyakh Jun 10, 2026
f3169c7
ipc: eliminate multiple memcpy() calls
lyakh Jun 10, 2026
809e504
ipc: allocate userspace IPC thread dynamically
lyakh Jun 10, 2026
c57fb7b
ipc: allocate userspace context uncached
lyakh Jun 10, 2026
0bd0cbd
schedule: ll: use correct core
lyakh Jun 18, 2026
bf7c7ae
userspace: ll: ipc: increase IPC processing timeout
lyakh Jun 15, 2026
fc4cd8c
ipc: ipc4: extract pipeline ID detection into a function
lyakh Jun 22, 2026
c790496
ipc: allocate userspace LL context uncached
lyakh Jun 22, 2026
71061d9
schedule: ll: enable multicore userspace
lyakh Jun 10, 2026
72a0d81
audio: add driver list access debugging
lyakh Jul 2, 2026
75a913b
schedule: ll: remove a redundant type-cast
lyakh Jul 2, 2026
378f458
userspace: use syscalls for kernel builds too
lyakh Jul 2, 2026
13b6405
init: fix an "unused variable" compiler warning
lyakh Jul 2, 2026
3cdb892
ipc: fix an "unused variable" compiler warning
lyakh Jul 2, 2026
cf63f48
ipc: add the DP case to module initialization
lyakh Jul 2, 2026
db214ec
llext: with userspace let LL thread access DP modules too
lyakh Jul 2, 2026
ca15f74
userspace: fix cpu_is_me() for kernel context
lyakh Jul 2, 2026
6012f09
audio: module-adapter: add two system calls
lyakh Jul 6, 2026
ce9f1aa
vregion: make 3 vregion API functions syscalls
lyakh Jul 7, 2026
ba3a903
schedule: dp: call directly instead of a notifier
lyakh Jul 7, 2026
264b17e
schedule: userspace: DP: make scheduler_dp_ll_tick() a syscall
lyakh Jul 7, 2026
8a5193b
schedule: (cosmetic) clarify arch_*schedulers_get()
lyakh Jul 7, 2026
2814c2a
schedule: dp: userspace: make scheduler_dp_internal_free() a syscall
lyakh Jul 7, 2026
8a04d91
schedule: dp: userspace grant IPC thread rights on DP assets
lyakh Jul 8, 2026
c7e4474
schedule: ll: fix non-userspace build
lyakh Jul 8, 2026
adc8af6
schedule: ll: userspace: grant the LL thread rights on DP
lyakh Jul 8, 2026
1d380bb
schedule: dp: make compatible with userspace LL
lyakh Jul 9, 2026
99d8e54
ipc: remove a duplicate header
lyakh Jul 9, 2026
9f6770d
ipc: add a comment to explain DP flow
lyakh Jul 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions app/overlays/ptl/ll_userspace_overlay.conf
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,12 @@ CONFIG_COLD_STORE_EXECUTE_DEBUG=n
CONFIG_SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS=n
CONFIG_SOF_TELEMETRY_IO_PERFORMANCE_MEASUREMENTS=n

# disable loadable modules (hits privilege issues in user-space now)
CONFIG_LLEXT_STORAGE_WRITABLE=n
CONFIG_LLEXT_EXPERIMENTAL=n
CONFIG_MODULES=n

# some of current boot tests interfere with user-space setup
CONFIG_SOF_BOOT_TEST_ALLOWED=n

# misc features not yet compatible with user-space
CONFIG_CROSS_CORE_STREAM=n
CONFIG_INTEL_ADSP_MIC_PRIVACY=n
CONFIG_XRUN_NOTIFICATIONS_ENABLE=n

CONFIG_MAX_THREAD_BYTES=4
21 changes: 21 additions & 0 deletions posix/include/rtos/mutex.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,25 @@ static inline int sys_mutex_unlock(struct sys_mutex *mutex)
return 0;
}

/* provide a no-op implementation for zephyr/sys/sem.h */

struct sys_sem {
};

static inline int sys_sem_init(struct sys_sem *sem, unsigned int initial_count,
unsigned int limit)
{
return 0;
}

static inline int sys_sem_give(struct sys_sem *sem)
{
return 0;
}

static inline int sys_sem_take(struct sys_sem *sem, k_timeout_t timeout)
{
return 0;
}

#endif
4 changes: 2 additions & 2 deletions src/audio/buffers/comp_buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <sof/audio/sink_api.h>
#include <sof/audio/source_api.h>
#include <sof/audio/sink_source_utils.h>
#include <sof/audio/module_adapter/module/generic.h>
#include <rtos/userspace_helper.h>
#include <sof/common.h>
#include <rtos/interrupt.h>
Expand Down Expand Up @@ -165,8 +166,7 @@ static void comp_buffer_free(struct sof_audio_buffer *audio_buffer)

if (alloc && alloc->vreg) {
vregion_free(alloc->vreg, buffer);
if (!vregion_put(alloc->vreg))
rfree(alloc);
module_adapter_vreg_free(alloc);
} else {
sof_heap_free(alloc ? alloc->heap : NULL, buffer);
}
Expand Down
Loading
Loading