Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
0c8adf7
schedule: zephyr_dp_schedule: use a mutex for the per-core DP lock
ujfalusi Oct 9, 2026
94b7380
platform: intel: cavs: initialize the DP scheduler
ujfalusi Oct 9, 2026
537c410
schedule: edf_schedule: cancel delayed work on task free
lrgirdwo Oct 14, 2026
8cbec56
audio: copier: guard against NULL pointers in copier_dai_free
lrgirdwo Oct 14, 2026
610f318
audio: pipeline: log component ID when comp_prepare fails
lrgirdwo Oct 14, 2026
f514a29
math: audio: add PCAN (Per-Channel AGC Normalization) support
singalsu Oct 9, 2026
bdd88c1
audio: mfcc: add 8-bit PCAN feature extraction support
singalsu Oct 9, 2026
5929822
ipc: notifier: add D0ix power state notifier
lrgirdwo Oct 9, 2026
be8bb60
ipc4: handler: support hostless pipelines and handle COMP_STATE_PREPARE
lrgirdwo Oct 9, 2026
c3085c0
audio: module_adapter: support DP-to-DP binding and virtual detect sinks
singalsu Oct 14, 2026
4a56c90
audio: kpb: add multi-client downstream triggering, 32-bit, and drain…
lrgirdwo Oct 14, 2026
42b5146
audio: wov_arbiter: add multi-slot Wake-on-Voice arbiter component
lrgirdwo Oct 9, 2026
143a4f9
audio: ecns: add 20ms DP dual-rate processing component
lrgirdwo Oct 14, 2026
ce0c5db
submanifests: tflm: add TensorFlow Lite Micro and ML submanifest
singalsu Oct 14, 2026
d95a757
zephyr: lib: add C++ LLEXT runtime support symbols
lrgirdwo Oct 14, 2026
409f496
cmake: microwakeword: add dynamic toolchain discovery and libc shim
singalsu Oct 9, 2026
8ebd6f9
audio: microwakeword: integrate multi-slot Wake-on-Voice architecture
singalsu Oct 9, 2026
011f685
boards: intel: enable multi-slot WoV, ECNS, and KPB on PTL, WCL, and …
lrgirdwo Oct 14, 2026
7df157c
topology2: include: add ECNS and WoV Arbiter component definitions
lrgirdwo Oct 9, 2026
7bb5014
topology2: include: add MicroWakeWord (MWW) component definitions
singalsu Oct 14, 2026
46000a8
topology2: dmic-wov-multi: implement dual-rate DMIC architecture and …
lrgirdwo Oct 9, 2026
da436dc
topology2: integrate multi-slot WoV into SoundWire and HDA topologies
lrgirdwo Oct 9, 2026
d6b6696
topology2: prebuilt: update 4-channel DMIC WoV topology binaries for …
lrgirdwo Oct 9, 2026
a0bfec1
audio: samples: add multi-slot detect_test keyword detector component
lrgirdwo Oct 14, 2026
01b67ab
tools: wov_capture: add blocking read utilities and 20-run S0/D0i3 va…
lrgirdwo Oct 9, 2026
3316bf6
tools: sof_ri_info: add Intel debug key signature mapping for Panther…
lrgirdwo Oct 9, 2026
97e0b79
doc: topology2/audio: document multi-slot WoV, dual-rate DMIC, and D0…
lrgirdwo Oct 14, 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
31 changes: 27 additions & 4 deletions app/boards/intel_adsp_ace30_ptl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ CONFIG_IPC_MAJOR_4=y
CONFIG_COMP_TESTER=m
CONFIG_COMP_SRC_IPC4_FULL_MATRIX=y
CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_COMP_DRC=m
CONFIG_COMP_TDFB=m
CONFIG_COMP_MULTIBAND_DRC=m
CONFIG_COMP_ARIA=m
CONFIG_COMP_MUX=m

# SOF / audio modules / mocks
# This mock is part of official sof-bin releases because the CI that
Expand All @@ -16,6 +21,23 @@ 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_PROBE=y
Expand Down Expand Up @@ -43,7 +65,8 @@ 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_HEAP_MEM_POOL_SIZE=32768
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=32768
CONFIG_LLEXT=y
CONFIG_LLEXT_STORAGE_WRITABLE=y
CONFIG_LLEXT_EXPERIMENTAL=y
Expand All @@ -60,9 +83,7 @@ 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_XTENSA_MMU_NUM_L2_TABLES=128
CONFIG_SYS_CLOCK_TICKS_PER_SEC=12000

# Zephyr / power settings
Expand All @@ -85,3 +106,5 @@ 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
28 changes: 27 additions & 1 deletion app/boards/intel_adsp_ace30_wcl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,32 @@ CONFIG_IPC_MAJOR_4=y
CONFIG_COMP_TESTER=m
CONFIG_COMP_SRC_IPC4_FULL_MATRIX=y
CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_COMP_DRC=m
CONFIG_COMP_TDFB=m
CONFIG_COMP_MULTIBAND_DRC=m
CONFIG_COMP_ARIA=m
CONFIG_COMP_MUX=m

# 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
# 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=m
CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK=y
CONFIG_COMP_STFT_PROCESS=y
Expand Down Expand Up @@ -42,7 +64,10 @@ 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_HEAP_MEM_POOL_SIZE=32768
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=32768
CONFIG_SYS_HEAP_RUNTIME_STATS=y
CONFIG_SOF_ZEPHYR_HEAP_SIZE=0x80000
CONFIG_LLEXT=y
CONFIG_LLEXT_STORAGE_WRITABLE=y
CONFIG_LLEXT_EXPERIMENTAL=y
Expand All @@ -58,6 +83,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

Binary file added build/sof-ptl-dmic-wov-multi-4ch.tplg
Binary file not shown.
Binary file added build/sof-tgl-dmic-wov-multi-4ch.tplg
Binary file not shown.
Binary file added build/sof-wcl-dmic-wov-multi-4ch.tplg
Binary file not shown.
Loading