Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
167546c
audio: pipeline: log component ID when comp_prepare fails
lrgirdwo Oct 14, 2026
5e1e19a
audio: copier: guard against NULL pointers in copier_dai_free
lrgirdwo Oct 14, 2026
c954cab
audio: dai: guard against NULL pointers during pipeline teardown
lrgirdwo Oct 28, 2026
a2071fe
lib: agent: guard against NULL system agent in sa_set_panic_on_delay
singalsu Oct 28, 2026
60957b7
audio: host-zephyr: increase minimum no-bytes warning interval
singalsu Oct 28, 2026
456cc83
schedule: edf_schedule: cancel delayed work on task free
lrgirdwo Oct 14, 2026
d7f0ec7
platform: intel: cavs: initialize the DP scheduler
ujfalusi Oct 9, 2026
3474ed9
schedule: zephyr_dp_schedule: use a mutex for the per-core DP lock
ujfalusi Oct 9, 2026
6974ffa
lib: notifier: wait for completion of remote core notifications
singalsu Oct 16, 2026
98a63e7
math: audio: add PCAN (Per-Channel AGC Normalization) support
singalsu Oct 9, 2026
c90b34e
audio: mfcc: add 8-bit PCAN feature extraction support
singalsu Oct 9, 2026
5fc1dce
ipc: notifier: add D0ix power state notifier
lrgirdwo Oct 9, 2026
3b6a224
ipc4: handler: support hostless pipelines and handle COMP_STATE_PREPARE
lrgirdwo Oct 9, 2026
53570bf
audio: module_adapter: support DP-to-DP binding and virtual detect sinks
singalsu Oct 14, 2026
9b7f669
audio: kpb: add multi-client downstream triggering, 32-bit, and drain…
lrgirdwo Oct 14, 2026
c7546c1
audio: wov_arbiter: add multi-slot Wake-on-Voice arbiter component
lrgirdwo Oct 9, 2026
49709a7
audio: ecns: add 20ms DP dual-rate processing component
lrgirdwo Oct 14, 2026
5e85e38
submanifests: tflm: add TensorFlow Lite Micro and ML submanifest
singalsu Oct 14, 2026
71b7884
zephyr: lib: add C++ LLEXT runtime support symbols
lrgirdwo Oct 14, 2026
7d7b218
cmake: microwakeword: add dynamic toolchain discovery and libc shim
singalsu Oct 9, 2026
5ed6ce2
audio: microwakeword: integrate multi-slot Wake-on-Voice architecture
singalsu Oct 9, 2026
ce1bb0b
boards: intel: enable multi-slot WoV, ECNS, and KPB on PTL, WCL, and …
lrgirdwo Oct 14, 2026
6ff4066
topology2: include: add ECNS and WoV Arbiter component definitions
lrgirdwo Oct 9, 2026
28ac44e
topology2: include: add MicroWakeWord (MWW) component definitions
singalsu Oct 14, 2026
8179f17
topology2: dmic-wov-multi: implement dual-rate DMIC architecture and …
lrgirdwo Oct 9, 2026
bf15792
topology2: integrate multi-slot WoV into SoundWire and HDA topologies
lrgirdwo Oct 9, 2026
58faa0f
topology2: dmic-wov-multi: support 2-channel DMIC and add ADL target
singalsu Oct 15, 2026
94dd2fa
topology2: ace3: add 2ch PTL/WCL rt721/rt722 multi-wov topologies
singalsu Oct 16, 2026
1dc99de
topology2: dmic-wov-multi: use only 32-bit input on dmic16k copier
singalsu Oct 16, 2026
6271e47
topology2: ace3: embed NHLT in PTL/WCL rt722 multi-wov topologies
naveen-manohar Oct 14, 2026
7321283
topology2: ace3: use all four mics for 4ch wov-multi WoV path
singalsu Oct 20, 2026
be72aec
topology2: add SoundWire headset ECNS and multi-slot WoV
naveen-manohar Oct 21, 2026
2d4e1e9
topology2: ace3: enable headset WoV in WCL RT722 multi-WoV targets
naveen-manohar Oct 21, 2026
8d9e66c
topology2: ace3: use symlinks for WCL WoV topologies
ujfalusi Oct 22, 2026
1477b18
topology2: hda-generic: Correct the PTL/WCL WoV topology name
ujfalusi Oct 15, 2026
65c829b
topology2: drop the wcl platform, WCL is ACE3 and uses PLATFORM=ptl
ujfalusi Oct 22, 2026
0111c71
topology2: ecns: add capture boost and test signal switch controls
singalsu Oct 28, 2026
9ef7c07
topology2: wov-arbiter: rename active slot control to DMIC/Jack In Ph…
lrgirdwo Oct 22, 2026
f8f664d
audio: samples: add multi-slot detect_test keyword detector component
lrgirdwo Oct 14, 2026
498009a
tools: wov_capture: add blocking read utilities and 20-run S0/D0i3 va…
lrgirdwo Oct 9, 2026
7cff58a
tools: wov_capture: support DMIC and Jack In Phrase Detect ID controls
lrgirdwo Oct 22, 2026
9ee48f2
tools: sof_ri_info: add Intel debug key signature mapping for Panther…
lrgirdwo Oct 9, 2026
10e8d00
doc: topology2/audio: document multi-slot WoV, dual-rate DMIC, and D0…
lrgirdwo Oct 14, 2026
65a7b09
fixup! boards: intel: enable multi-slot WoV, ECNS, and KPB on PTL, WC…
ujfalusi Oct 28, 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
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,14 @@ The script will guide you through the process of installing system dependencies,

See [unit testing documentation](https://thesofproject.github.io/latest/developer_guides/unit_tests.html)

### Wake-on-Voice (WoV) Multi-Slot Hardware Verification

For automated hardware testing of the 4-channel native 16 kHz DMIC Wake-on-Voice pipeline with multi-slot microWakeWord (MWW) on Intel Panther Lake (PTL), see the comprehensive runbook:
* **Documentation & Reproduction Guide**: [Wake-on-Voice (WoV) S0 / D0i3 Multi-Slot Testing & Verification](tools/topology/topology2/README.md#wake-on-voice-wov-s0--d0i3-multi-slot-testing--verification)
* **Required Kernel Branch**: `wov-ipc4-d0i3` on [`lgirdwood/linux`](https://github.com/lgirdwood/linux/tree/wov-ipc4-d0i3) (`SNDRV_PCM_INFO_NO_PERIOD_WAKEUP` + `SOF_IPC4_NOTIFY_PHRASE_DETECTED`)
* **Required Firmware Branch**: `wcl-uaol-wov-002` on [`lgirdwood/sof`](https://github.com/lgirdwood/sof/tree/wcl-uaol-wov-002)
* **Verified Results**: 20 / 20 consecutive passes in S0 mode with synthetic fake-wake detection (`CONFIG_COMP_MWW_FAKE_WAKE_MS=5000`), zero xruns, and zero kernel IPC/ASoC errors.

## Deployment

TODO: Add additional notes about how to deploy this on a live system
Expand Down
63 changes: 33 additions & 30 deletions app/boards/intel_adsp_ace30_ptl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,38 @@ CONFIG_RIMAGE_SIGNING_SCHEMA="ptl"
CONFIG_IPC_MAJOR_4=y

# SOF / audio pipeline and module settings
CONFIG_COMP_TESTER=m
CONFIG_COMP_TESTER=n
CONFIG_COMP_SRC_IPC4_FULL_MATRIX=y
CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_COMP_DRC=y
CONFIG_COMP_TDFB=y
CONFIG_COMP_MULTIBAND_DRC=y
CONFIG_COMP_ARIA=y
CONFIG_COMP_MUX=y
CONFIG_PCM_CONVERTER_FORMAT_S24_3LE=y
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=n
CONFIG_COMP_STFT_PROCESS=n

# SOF / audio modules / mocks
# This mock is part of official sof-bin releases because the CI that
# tests it can't use extra CONFIGs. See #9410, #8722 and #9386
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=m
CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK=y
CONFIG_COMP_STFT_PROCESS=y
# WOV Arbiter, KPB, Mixin/Mixout and Sample Detector
CONFIG_COMP_MIXIN_MIXOUT=y
CONFIG_COMP_WOV_ARBITER=y
CONFIG_COMP_KPB=y
CONFIG_KPB_MAX_BUFF_TIME=2000
CONFIG_COMP_ECNS=y
CONFIG_ECNS_TEST_SIGNAL=y
CONFIG_SOF_STAGING=y
CONFIG_COMP_MFCC=y
CONFIG_COMP_MFCC_PCAN=y
CONFIG_COMP_MWW=y
CONFIG_COMP_MWW_PCAN=y
CONFIG_COMP_MWW_DEBUG_TRACE=y
CONFIG_CPP=y
CONFIG_STD_CPP17=y
CONFIG_COMP_TENSORFLOW=n

# SOF / infrastructure
CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL=n
CONFIG_IDC_TIMEOUT_US=100000
CONFIG_PROBE=y
CONFIG_PROBE_DMA_MAX=2
CONFIG_SOF_TELEMETRY=y
Expand All @@ -27,11 +46,7 @@ CONFIG_COLD_STORE_EXECUTE_DRAM=y

# SOF / loadable modules
CONFIG_INTEL_MODULES=y
CONFIG_LIBRARY_AUTH_SUPPORT=y
CONFIG_LIBRARY_MANAGER=y
CONFIG_LIBRARY_BASE_ADDRESS=0xa0688000
CONFIG_LIBRARY_BUILD_LIB=y
CONFIG_LIBRARY_DEFAULT_MODULAR=y
CONFIG_LIBRARY_MANAGER=n

# SOF / logging
CONFIG_SOF_LOG_LEVEL_INF=y
Expand All @@ -43,12 +58,10 @@ CONFIG_SOF_LOG_LEVEL_INF=y
CONFIG_DEBUG_COREDUMP_BACKEND_INTEL_ADSP_MEM_WINDOW=y
CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN=y
CONFIG_COUNTER=y
CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_LLEXT=y
CONFIG_LLEXT_STORAGE_WRITABLE=y
CONFIG_LLEXT_EXPERIMENTAL=y
CONFIG_LLEXT_EDK=n
CONFIG_MODULES=y
CONFIG_HEAP_MEM_POOL_SIZE=32768
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=32768
# sof_init (POST_KERNEL) starts the core 0 IDC p4wq thread, needs it created first
CONFIG_P4WQ_INIT_STAGE_EARLY=y

# Zephyr / device drivers
CONFIG_DAI_INIT_PRIORITY=70
Expand All @@ -60,8 +73,6 @@ CONFIG_DMA_DW_LLI_POOL_SIZE=50
CONFIG_MEMORY_WIN_2_SIZE=12288
CONFIG_MM_DRV_INTEL_ADSP_TLB_REMAP_UNUSED_RAM=y
CONFIG_MM_DRV_INTEL_VIRTUAL_REGION_COUNT=3
# note: notable impact to memory use, setting of 50
# tuned for configs with upto 2 isolated DP modules
CONFIG_XTENSA_MMU_NUM_L2_TABLES=50
CONFIG_SYS_CLOCK_TICKS_PER_SEC=12000

Expand All @@ -75,13 +86,5 @@ CONFIG_LOG_BACKEND_ADSP=n
CONFIG_LOG_FLUSH_SLEEP_US=5000
CONFIG_WINSTREAM_CONSOLE=n

# Userspace options
CONFIG_USERSPACE=y
CONFIG_DYNAMIC_THREAD=y
CONFIG_DYNAMIC_THREAD_ALLOC=y
CONFIG_DYNAMIC_THREAD_PREFER_ALLOC=y
CONFIG_SOF_STACK_SIZE=8192
CONFIG_SOF_USERSPACE_PROXY=y
CONFIG_MAX_THREAD_BYTES=3

CONFIG_MAX_DOMAIN_PARTITIONS=32
CONFIG_SYS_HEAP_RUNTIME_STATS=y
CONFIG_SOF_ZEPHYR_HEAP_SIZE=0x80000
49 changes: 34 additions & 15 deletions app/boards/intel_adsp_ace30_wcl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,38 @@ CONFIG_RIMAGE_SIGNING_SCHEMA="ptl"
CONFIG_IPC_MAJOR_4=y

# SOF / audio pipeline and module settings
CONFIG_COMP_TESTER=m
CONFIG_COMP_TESTER=n
CONFIG_COMP_SRC_IPC4_FULL_MATRIX=y
CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_COMP_DRC=y
CONFIG_COMP_TDFB=y
CONFIG_COMP_MULTIBAND_DRC=y
CONFIG_COMP_ARIA=y
CONFIG_COMP_MUX=y
CONFIG_PCM_CONVERTER_FORMAT_S24_3LE=y

# SOF / audio modules / mocks
# This mock is part of official sof-bin releases because the CI that
# tests it can't use extra CONFIGs. See #9410, #8722 and #9386
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=m
CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK=y
CONFIG_COMP_STFT_PROCESS=y
# Google hotword needs the proprietary hotword_dsp_api.h and an ACE30 library build
CONFIG_COMP_GOOGLE_HOTWORD_DETECT=n
CONFIG_COMP_MIXIN_MIXOUT=y
CONFIG_COMP_WOV_ARBITER=y
CONFIG_COMP_KPB=y
CONFIG_COMP_ECNS=y
CONFIG_ECNS_TEST_SIGNAL=y
CONFIG_SOF_STAGING=y
CONFIG_COMP_MFCC=y
CONFIG_COMP_MFCC_PCAN=y
CONFIG_COMP_MWW=y
CONFIG_COMP_MWW_PCAN=y
CONFIG_COMP_MWW_DEBUG_TRACE=y
CONFIG_CPP=y
CONFIG_STD_CPP17=y
# Post-ECNS KPB is mono 16-bit: 2000 ms needs 64000 B, well within the DSP heap
CONFIG_KPB_MAX_BUFF_TIME=2000
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=n
CONFIG_COMP_STFT_PROCESS=n

# SOF / infrastructure
CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL=n
Expand All @@ -27,11 +49,7 @@ CONFIG_COLD_STORE_EXECUTE_DRAM=y

# SOF / loadable modules
CONFIG_INTEL_MODULES=y
CONFIG_LIBRARY_MANAGER=y
CONFIG_LIBRARY_AUTH_SUPPORT=y
CONFIG_LIBRARY_BASE_ADDRESS=0xa0688000
CONFIG_LIBRARY_BUILD_LIB=y
CONFIG_LIBRARY_DEFAULT_MODULAR=y
CONFIG_LIBRARY_MANAGER=n

# SOF / logging
CONFIG_SOF_LOG_LEVEL_INF=y
Expand All @@ -42,12 +60,12 @@ CONFIG_SOF_LOG_LEVEL_INF=y
# choices have to be selected per board.
CONFIG_DEBUG_COREDUMP_BACKEND_INTEL_ADSP_MEM_WINDOW=y
CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN=y
CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_LLEXT=y
CONFIG_LLEXT_STORAGE_WRITABLE=y
CONFIG_LLEXT_EXPERIMENTAL=y
CONFIG_LLEXT_EDK=n
CONFIG_MODULES=y
CONFIG_HEAP_MEM_POOL_SIZE=32768
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=32768
CONFIG_SYS_HEAP_RUNTIME_STATS=y
CONFIG_SOF_ZEPHYR_HEAP_SIZE=0x80000
# sof_init (POST_KERNEL) starts the core 0 IDC p4wq thread, needs it created first
CONFIG_P4WQ_INIT_STAGE_EARLY=y

# Zephyr / device drivers
CONFIG_DAI_INIT_PRIORITY=70
Expand All @@ -58,6 +76,7 @@ CONFIG_DMA_INTEL_ADSP_GPDMA=n
CONFIG_MEMORY_WIN_2_SIZE=12288
CONFIG_MM_DRV_INTEL_ADSP_TLB_REMAP_UNUSED_RAM=y
CONFIG_MM_DRV_INTEL_VIRTUAL_REGION_COUNT=3
CONFIG_XTENSA_MMU_NUM_L2_TABLES=16
CONFIG_SYS_CLOCK_TICKS_PER_SEC=12000

# Zephyr / power settings
Expand Down
20 changes: 20 additions & 0 deletions app/boards/intel_adsp_cavs25.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,25 @@ CONFIG_IPC_MAJOR_4=y
CONFIG_COMP_ARIA=y
CONFIG_COMP_CROSSOVER=y
CONFIG_COMP_DRC=y
CONFIG_COMP_MIXIN_MIXOUT=y
CONFIG_COMP_WOV_ARBITER=y
CONFIG_COMP_KPB=y
CONFIG_KPB_MAX_BUFF_TIME=2000
CONFIG_COMP_ECNS=y
CONFIG_ECNS_KPB_MONO_AVG_ALL=y
CONFIG_SOF_STAGING=y
CONFIG_COMP_MFCC=y
CONFIG_COMP_MFCC_PCAN=y
CONFIG_COMP_MWW=y
CONFIG_COMP_MWW_PCAN=y
CONFIG_COMP_MWW_DEBUG_TRACE=y
CONFIG_CPP=y
CONFIG_STD_CPP17=y
CONFIG_COMP_TENSORFLOW=n
CONFIG_COMP_MULTIBAND_DRC=y
CONFIG_COMP_VOLUME_WINDOWS_FADE=y
CONFIG_SAMPLES=y
CONFIG_SAMPLE_KEYPHRASE=y
CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_PCM_CONVERTER_FORMAT_S16LE=y
CONFIG_PCM_CONVERTER_FORMAT_S24LE=y
Expand All @@ -19,6 +35,7 @@ CONFIG_PCM_CONVERTER_FORMAT_S24_3LE=y

# SOF / infrastructure
CONFIG_AMS=y
CONFIG_IDC_TIMEOUT_US=100000
CONFIG_LP_MEMORY_BANKS=1
CONFIG_HP_MEMORY_BANKS=30

Expand All @@ -28,6 +45,8 @@ CONFIG_LIBRARY_MANAGER=n

# SOF / logging
CONFIG_SOF_LOG_LEVEL_INF=y
CONFIG_LOG_BUFFER_SIZE=32768
CONFIG_MTRACE_LOG_CACHE_BUF_SIZE=32768

# Zephyr / OS features
# note: CONFIG_DEBUG_COREDUMP is enabled for all Intel targets in
Expand All @@ -36,6 +55,7 @@ CONFIG_SOF_LOG_LEVEL_INF=y
CONFIG_DEBUG_COREDUMP_BACKEND_INTEL_ADSP_MEM_WINDOW=y
CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN=y
CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=65536

# Zephyr / device drivers
CONFIG_DAI_INIT_PRIORITY=70
Expand Down
2 changes: 2 additions & 0 deletions app/boards/intel_adsp_cavs25_tgph.conf
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ CONFIG_COMP_ARIA=y
CONFIG_COMP_CROSSOVER=y
CONFIG_COMP_DRC=y
CONFIG_COMP_MFCC=y
CONFIG_COMP_MFCC_PCAN=y
CONFIG_COMP_MULTIBAND_DRC=y
CONFIG_COMP_VOLUME_WINDOWS_FADE=y
CONFIG_FORMAT_CONVERT_HIFI3=n
Expand All @@ -18,6 +19,7 @@ CONFIG_PCM_CONVERTER_FORMAT_S32LE=y
CONFIG_PCM_CONVERTER_FORMAT_S24_3LE=y

# SOF / infrastructure
CONFIG_IDC_TIMEOUT_US=100000
CONFIG_LP_MEMORY_BANKS=1
CONFIG_HP_MEMORY_BANKS=30

Expand Down
21 changes: 21 additions & 0 deletions app/configs/ptl/modules.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
CONFIG_DTS_CODEC=m
CONFIG_SAMPLE_SMART_AMP=m
CONFIG_COMP_STUBS=y
CONFIG_COMP_MIXIN_MIXOUT=m
CONFIG_COMP_FIR=m
CONFIG_COMP_IIR=m
CONFIG_COMP_DRC=m
CONFIG_COMP_MUX=m
CONFIG_COMP_SEL=m
CONFIG_COMP_SRC=m
CONFIG_COMP_ARIA=m
CONFIG_COMP_ASRC=m
CONFIG_COMP_MFCC=m
CONFIG_COMP_TDFB=m
CONFIG_COMP_VOLUME=m
CONFIG_COMP_DCBLOCK=m
CONFIG_COMP_CROSSOVER=m
CONFIG_COMP_MULTIBAND_DRC=m
CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING=m
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=m
CONFIG_COMP_TESTER=m
21 changes: 21 additions & 0 deletions app/configs/wcl/modules.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
CONFIG_DTS_CODEC=m
CONFIG_SAMPLE_SMART_AMP=m
CONFIG_COMP_STUBS=y
CONFIG_COMP_MIXIN_MIXOUT=m
CONFIG_COMP_FIR=m
CONFIG_COMP_IIR=m
CONFIG_COMP_DRC=m
CONFIG_COMP_MUX=m
CONFIG_COMP_SEL=m
CONFIG_COMP_SRC=m
CONFIG_COMP_ARIA=m
CONFIG_COMP_ASRC=m
CONFIG_COMP_MFCC=m
CONFIG_COMP_TDFB=m
CONFIG_COMP_VOLUME=m
CONFIG_COMP_DCBLOCK=m
CONFIG_COMP_CROSSOVER=m
CONFIG_COMP_MULTIBAND_DRC=m
CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING=m
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=m
CONFIG_COMP_TESTER=m
13 changes: 13 additions & 0 deletions app/wov-d0i3-fake-wake.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# microWakeWord synthetic fake-wake test aid
# Synthesizes keyword detections after 5000 ms to enable automated
# Wake-on-Voice (WoV) S0 and D0i3 sleep-and-wake testing in lab environments
# without requiring physical audio hardware or a speaker/microphone.
CONFIG_COMP_MWW_FAKE_WAKE_MS=5000

# LLEXT relocatable ELF format for loadable modules on Intel ADSP ACE 3.0
CONFIG_LLEXT_TYPE_ELF_RELOCATABLE=y

# Disable USB Audio Offload (UAOL)
CONFIG_UAOL=n
CONFIG_DAI_INTEL_UAOL=n

Loading
Loading