Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
ccea803
submanifests: tflm: add TensorFlow Lite Micro and ML submanifest
singalsu Oct 9, 2026
eeb0443
cmake: microwakeword: add dynamic toolchain discovery and libc shim
singalsu Oct 9, 2026
e3ada46
schedule: zephyr_dp_schedule: use a mutex for the per-core DP lock
ujfalusi Oct 9, 2026
10c6dde
platform: intel: cavs: initialize the DP scheduler
ujfalusi Oct 9, 2026
344b6d9
ipc: notifier: add D0ix power state notifier
lrgirdwo Oct 9, 2026
debe8fa
ipc4: handler: support hostless pipelines and handle COMP_STATE_PREPARE
lrgirdwo Oct 9, 2026
0b5e642
audio: module_adapter: support DP-to-DP binding and virtual detect sinks
singalsu Oct 9, 2026
bb2e220
math: audio: add PCAN (Per-Channel AGC Normalization) support
singalsu Oct 9, 2026
4da3113
audio: mfcc: add 8-bit PCAN feature extraction support
singalsu Oct 9, 2026
e18ed1e
audio: kpb: add multi-client downstream triggering, 32-bit, and drain…
lrgirdwo Oct 9, 2026
636d368
audio: wov_arbiter: add multi-slot Wake-on-Voice arbiter component
lrgirdwo Oct 9, 2026
8e7def8
audio: ecns: add 20ms DP dual-rate processing component
lrgirdwo Oct 9, 2026
ffb006f
audio: microwakeword: integrate multi-slot Wake-on-Voice architecture
singalsu Oct 9, 2026
4a1623f
boards: intel: enable multi-slot WoV, ECNS, and KPB on PTL, WCL, and …
lrgirdwo Oct 9, 2026
4f37380
topology2: include: add ECNS and WoV Arbiter component definitions
lrgirdwo Oct 9, 2026
d49d45b
topology2: include: add MicroWakeWord (MWW) component definitions
singalsu Oct 9, 2026
b718451
topology2: dmic-wov-multi: implement dual-rate DMIC architecture and …
lrgirdwo Oct 9, 2026
5ae43f8
topology2: integrate multi-slot WoV into SoundWire and HDA topologies
lrgirdwo Oct 9, 2026
dc7ced8
topology2: prebuilt: update 4-channel DMIC WoV topology binaries for …
lrgirdwo Oct 9, 2026
015734a
tools: wov_capture: add blocking read utilities and 20-run S0/D0i3 va…
lrgirdwo Oct 9, 2026
4d056e7
tools: sof_ri_info: add Intel debug key signature mapping for Panther…
lrgirdwo Oct 9, 2026
d374734
doc: topology2/audio: document multi-slot WoV, dual-rate DMIC, and D0…
lrgirdwo Oct 9, 2026
ce562e5
audio: samples: add multi-slot detect_test and DAI/DMA driver stabili…
lrgirdwo Oct 9, 2026
dda490c
zephyr: lib: add C++ LLEXT symbols and DP_TO_DP_BIND configuration
lrgirdwo Oct 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
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
Loading