From 3115c760596c268ac4d7ef16f5862db168d470ba Mon Sep 17 00:00:00 2001 From: Naveen Manohar Date: Sat, 22 Aug 2026 12:07:06 +0530 Subject: [PATCH 1/3] topology2: add WoV feature topology targets and graph Add a standalone feature manifest (dmic-wov-feature.conf) for WoV/KPB pipeline loaded on top of the function topology via feature_topologies. Add feature topology targets for RT721, RT722 and WCL DMIC ID5 in tplg-targets-ace3.cmake. Signed-off-by: Naveen Manohar --- .../topology/topology2/dmic-wov-feature.conf | 33 +++++++++++++++++++ .../include/pipelines/cavs/wov-detect.conf | 2 ++ .../production/tplg-targets-ace3.cmake | 12 +++++++ 3 files changed, 47 insertions(+) create mode 100644 tools/topology/topology2/dmic-wov-feature.conf diff --git a/tools/topology/topology2/dmic-wov-feature.conf b/tools/topology/topology2/dmic-wov-feature.conf new file mode 100644 index 000000000000..fb698d3abcfb --- /dev/null +++ b/tools/topology/topology2/dmic-wov-feature.conf @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf b/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf index 0f4490525c83..ff192d4679ac 100644 --- a/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf +++ b/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf @@ -58,6 +58,8 @@ Class.Pipeline."wov-detect" { } micsel."1" { + num_input_audio_formats 1 + num_output_audio_formats 1 Object.Base.input_audio_format [ { in_rate 16000 diff --git a/tools/topology/topology2/production/tplg-targets-ace3.cmake b/tools/topology/topology2/production/tplg-targets-ace3.cmake index bb1c07a83356..248e80a8a2ca 100644 --- a/tools/topology/topology2/production/tplg-targets-ace3.cmake +++ b/tools/topology/topology2/production/tplg-targets-ace3.cmake @@ -39,6 +39,10 @@ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-rt721-4ch.bin,DMIC0_ENHANCED_CAPTU EFX_DMIC0_TDFB_PARAMS=line4_pass,EFX_DMIC0_DRC_PARAMS=dmic_default,\ DEEPBUFFER_FW_DMA_MS=10,DEEP_BUF_SPK=true" +# RT721 WoV feature topology, loaded on top of the function topology via feature_topologies +"dmic-wov-feature\;sof-ptl-rt721-4ch-wov\;PLATFORM=ptl,NUM_DMICS=4,\ +DMIC0_ID=5,DMIC1_ID=6,DMIC1_ENABLE=false,DMIC1_RATE=16000,INCLUDE_WOV=true" + # RT721 eval board with PCH-DMIC, sof_sdw_quirk_table with SOC_SDW_PCH_DMIC, DMIC1 with 96kHz "cavs-sdw\;sof-ptl-rt721-4ch-dmic1-96k\;PLATFORM=ptl,SDW_DMIC=1,NUM_SDW_AMP_LINKS=1,NUM_DMICS=4,\ PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,DMIC0_ID=5,DMIC1_ID=6,HDMI1_ID=7,HDMI2_ID=8,HDMI3_ID=9,\ @@ -108,6 +112,10 @@ SDW_JACK_OUT_STREAM=Playback-SimpleJack,SDW_JACK_IN_STREAM=Capture-SimpleJack,\ PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-rt722-4ch.bin,DMIC0_ENHANCED_CAPTURE=true,\ EFX_DMIC0_TDFB_PARAMS=line4_pass,EFX_DMIC0_DRC_PARAMS=dmic_default" +# RT722 WoV feature topology, loaded on top of the function topology via feature_topologies +"dmic-wov-feature\;sof-ptl-rt722-4ch-wov\;PLATFORM=ptl,NUM_DMICS=4,\ +DMIC0_ID=5,DMIC1_ID=6,DMIC1_ENABLE=false,DMIC1_RATE=16000,INCLUDE_WOV=true" + "cavs-sdw\;sof-ptl-rt722-2ch\;PLATFORM=ptl,SDW_DMIC=1,NUM_SDW_AMP_LINKS=1,NUM_DMICS=2,\ PDM1_MIC_A_ENABLE=0,PDM1_MIC_B_ENABLE=0,DMIC0_ID=5,DMIC1_ID=6,HDMI1_ID=7,HDMI2_ID=8,HDMI3_ID=9,\ SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,SDW_DMIC_STREAM=Capture-SmartMic,\ @@ -340,6 +348,10 @@ PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,DMIC0_ID=5,DMIC1_ID=6,PREPROCESS_PLUGINS NHLT_BIN=nhlt-sof-wcl-dmic-4ch-id5.bin,DMIC0_ENHANCED_CAPTURE=true,\ EFX_DMIC0_TDFB_PARAMS=line4_pass,EFX_DMIC0_DRC_PARAMS=dmic_default" +# WCL DMIC WoV feature topology, loaded on top of the function topology via feature_topologies +"dmic-wov-feature\;sof-wcl-dmic-4ch-id5-wov\;PLATFORM=wcl,NUM_DMICS=4,\ +DMIC0_ID=5,DMIC1_ID=6,DMIC1_ENABLE=false,DMIC1_RATE=16000,INCLUDE_WOV=true" + "cavs-es83x6\;sof-ptl-ssp1-jack-id0\;PLATFORM=ptl,PREPROCESS_PLUGINS=nhlt,\ NHLT_BIN=nhlt-sof-ptl-ssp1-jack-id0.bin,HEADSET_SSP_DAI_INDEX=1,\ HEADSET_CODEC=true,HEADSET_CODEC_NAME=SSP1-Codec,NUM_HDMIS=0,\ From 3ff666ee420dee494b4883bfb801e5b0b1ace5aa Mon Sep 17 00:00:00 2001 From: Naveen Manohar Date: Sat, 22 Aug 2026 12:07:06 +0530 Subject: [PATCH 2/3] rimage: wcl: wire google hotword module manifest Add Google hotword module manifest for WCL and include it when CONFIG_COMP_GOOGLE_HOTWORD_DETECT is enabled or all modular components are forced. Signed-off-by: Naveen Manohar --- src/audio/google/google_hotword_detect.toml | 23 +++++++++++++++++++++ tools/rimage/config/wcl.toml.h | 4 ++++ 2 files changed, 27 insertions(+) create mode 100644 src/audio/google/google_hotword_detect.toml diff --git a/src/audio/google/google_hotword_detect.toml b/src/audio/google/google_hotword_detect.toml new file mode 100644 index 000000000000..1c51b2f07eb3 --- /dev/null +++ b/src/audio/google/google_hotword_detect.toml @@ -0,0 +1,23 @@ +#ifndef LOAD_TYPE +#define LOAD_TYPE "0" +#endif + +[[module.entry]] +name = "HOTWORD" +uuid = UUIDREG_STR_GOOGLE_HOTWORD +affinity_mask = "0x1" +instance_count = "1" +domain_types = "0" +load_type = LOAD_TYPE +module_type = "10" +auto_start = "0" +sched_caps = [1, 0x00008000] + +REM # pin = [dir, type, sample rate, size, container, channel-cfg] +pin = [0, 0, 0x8, 0x2, 0x2, 0x3, + 1, 0, 0xfeef, 0xf, 0xf, 0x1] + +REM # mod_cfg [PAR_0 PAR_1 PAR_2 PAR_3 IS_BYTES CPS IBS OBS MOD_FLAGS CPC OBLS] +mod_cfg = [0, 0, 0, 0, 0, 4000000, 0, 0, 0, 0, 0] + +index = __COUNTER__ diff --git a/tools/rimage/config/wcl.toml.h b/tools/rimage/config/wcl.toml.h index 27d00f1444be..f239e063a459 100644 --- a/tools/rimage/config/wcl.toml.h +++ b/tools/rimage/config/wcl.toml.h @@ -126,6 +126,10 @@ index = __COUNTER__ #include