From 5fc7f7101536da929483609524b9dcc4835497df Mon Sep 17 00:00:00 2001 From: Naveen Manohar Date: Sat, 22 Aug 2026 08:41:03 +0530 Subject: [PATCH 1/3] topology2: enable WoV function targets and graph Include WoV & KPB class, pipeline definitions in cavs-sdw function topology to enable WoV routes, widgets preprocess. Add WoV split-capture function topology targets for RT721, RT722 and WCL DMIC ID5 platforms. Signed-off-by: Naveen Manohar --- tools/topology/topology2/cavs-sdw.conf | 5 ++++ .../production/tplg-targets-ace3.cmake | 25 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/tools/topology/topology2/cavs-sdw.conf b/tools/topology/topology2/cavs-sdw.conf index 311e0376b333..0aa9b2b8bc42 100644 --- a/tools/topology/topology2/cavs-sdw.conf +++ b/tools/topology/topology2/cavs-sdw.conf @@ -32,6 +32,9 @@ + + + @@ -64,6 +67,8 @@ + + Define { PLATFORM "none" diff --git a/tools/topology/topology2/production/tplg-targets-ace3.cmake b/tools/topology/topology2/production/tplg-targets-ace3.cmake index bb1c07a83356..9c5e5ddec2f1 100644 --- a/tools/topology/topology2/production/tplg-targets-ace3.cmake +++ b/tools/topology/topology2/production/tplg-targets-ace3.cmake @@ -39,6 +39,15 @@ 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 eval board with PCH-DMIC and WoV split-capture enabled +"cavs-sdw\;sof-ptl-rt721-4ch-wov\;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,\ +SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,SDW_DMIC_STREAM=Capture-SmartMic,\ +SDW_JACK_OUT_STREAM=Playback-SimpleJack,SDW_JACK_IN_STREAM=Capture-SimpleJack,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-rt721-4ch.bin,DMIC0_ENHANCED_CAPTURE=false,\ +EFX_DMIC0_TDFB_PARAMS=line4_pass,EFX_DMIC0_DRC_PARAMS=dmic_default,INCLUDE_WOV=true,\ +DMIC1_ENABLE=false,DMIC1_RATE=16000" + # 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 +117,15 @@ 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 eval board with PCH-DMIC and WoV split-capture enabled +"cavs-sdw\;sof-ptl-rt722-4ch-wov\;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,\ +SDW_AMP_FEEDBACK=false,SDW_SPK_STREAM=Playback-SmartAmp,SDW_DMIC_STREAM=Capture-SmartMic,\ +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=false,\ +EFX_DMIC0_TDFB_PARAMS=line4_pass,EFX_DMIC0_DRC_PARAMS=dmic_default,INCLUDE_WOV=true,\ +DMIC1_ENABLE=false,DMIC1_RATE=16000" + "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 +358,13 @@ 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" +# Split function topology: WCL DMIC Raw + WoV/Soundtrigger for ID5 +"cavs-sdw\;sof-wcl-dmic-4ch-id5-wov\;PLATFORM=wcl,SDW_JACK=false,NUM_HDMIS=0,NUM_DMICS=4,\ +PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,DMIC0_ID=5,DMIC1_ID=6,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-wcl-dmic-4ch-id5.bin,DMIC0_ENHANCED_CAPTURE=false,\ +EFX_DMIC0_TDFB_PARAMS=line4_pass,EFX_DMIC0_DRC_PARAMS=dmic_default,INCLUDE_WOV=true,\ +DMIC1_ENABLE=false,DMIC1_RATE=16000" + "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 88c99e464f166b94776a733ab80e4c9556f87f96 Mon Sep 17 00:00:00 2001 From: Naveen Manohar Date: Sat, 22 Aug 2026 11:21:18 +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