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
9a692fd
submanifests: tflm: add TensorFlow Lite Micro and ML submanifest
singalsu Oct 9, 2026
12a31ef
cmake: microwakeword: add dynamic toolchain discovery and libc shim
singalsu Oct 9, 2026
86b3e7e
schedule: zephyr_dp_schedule: use a mutex for the per-core DP lock
ujfalusi Oct 9, 2026
7c6b6d4
platform: intel: cavs: initialize the DP scheduler
ujfalusi Oct 9, 2026
c6e3d1d
ipc: notifier: add D0ix power state notifier
lrgirdwo Oct 9, 2026
70ea82b
ipc4: handler: support hostless pipelines and handle COMP_STATE_PREPARE
lrgirdwo Oct 9, 2026
3a41358
audio: module_adapter: support DP-to-DP binding and virtual detect sinks
singalsu Oct 9, 2026
63daa44
math: audio: add PCAN (Per-Channel AGC Normalization) support
singalsu Oct 9, 2026
08ad0ee
audio: mfcc: add 8-bit PCAN feature extraction support
singalsu Oct 9, 2026
9e8a00f
audio: kpb: add multi-client downstream triggering, 32-bit, and drain…
lrgirdwo Oct 9, 2026
784e37f
audio: wov_arbiter: add multi-slot Wake-on-Voice arbiter component
lrgirdwo Oct 9, 2026
3cd56f4
audio: ecns: add 20ms DP dual-rate processing component
lrgirdwo Oct 9, 2026
8a80ebc
audio: microwakeword: integrate multi-slot Wake-on-Voice architecture
singalsu Oct 9, 2026
4d774a5
boards: intel: enable multi-slot WoV, ECNS, and KPB on PTL, WCL, and …
lrgirdwo Oct 9, 2026
fe35776
topology2: include: add ECNS and WoV Arbiter component definitions
lrgirdwo Oct 9, 2026
def8be4
topology2: include: add MicroWakeWord (MWW) component definitions
singalsu Oct 9, 2026
df495d4
topology2: dmic-wov-multi: implement dual-rate DMIC architecture and …
lrgirdwo Oct 9, 2026
3693bca
topology2: integrate multi-slot WoV into SoundWire and HDA topologies
lrgirdwo Oct 9, 2026
07aa04d
topology2: prebuilt: update 4-channel DMIC WoV topology binaries for …
lrgirdwo Oct 9, 2026
96066cd
tools: wov_capture: add blocking read utilities and 20-run S0/D0i3 va…
lrgirdwo Oct 9, 2026
d68bd0f
tools: sof_ri_info: add Intel debug key signature mapping for Panther…
lrgirdwo Oct 9, 2026
d63b9b8
doc: topology2/audio: document multi-slot WoV, dual-rate DMIC, and D0…
lrgirdwo Oct 9, 2026
2dc55db
audio: samples: add multi-slot detect_test and DAI/DMA driver stabili…
lrgirdwo Oct 9, 2026
d26000e
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