Skip to content

developer_guides: firmware: update wov ecns pipeline guide to match wov-d0i3 - #543

Merged
lgirdwood merged 1 commit into
thesofproject:masterfrom
lgirdwood:topic/wov-d0i3-doc-update
Oct 27, 2026
Merged

lgirdwood merged 1 commit into
thesofproject:masterfrom
lgirdwood:topic/wov-d0i3-doc-update

Conversation

@lgirdwood

Copy link
Copy Markdown
Member

Align the developer guide and architecture diagrams with the latest
code changes in the wov-d0i3 branch:

  • Architecture & Endpoints:

    • Update from single-rate 4ch 16k DMIC to dual-rate DMIC architecture:
      48 kHz high-resolution ingest (Pipeline 110, dmic01 on PDM0) and
      16 kHz voice ingest (Pipeline 119, dmic16k on PDM1).
    • Update pipeline mapping: P110 (48k DAI), P119 (16k DAI), P115 (dual-rate
      ECNS DP), P116 (KPB), P111-P113 (MWW Slots 0-2), P114 (Arbiter),
      and P117 (ECNS Host Capture).
    • Update ALSA capture endpoints: PCM 11 (hw:0,11) for 48 kHz stereo clean
      speech and PCM 12 (hw:0,12) for 16 kHz mono WOV pre-roll + speech.
    • Document SoundWire headset multi-slot WoV alternative (Pipelines 140-148,
      PCM 13 and PCM 14).
    • Clarify platform support across Panther Lake (PTL), Tiger Lake (TGL),
      and Wildcat Lake (WCL uses PLATFORM=ptl via symlinks).
  • ECNS Module:

    • Document dual-rate multi-pin contract (Pin 0 In 16k 2ch, Pin 1 In 48k 2ch,
      Pin 0 Out 16k 1ch mono, Pin 1 Out 48k 2ch stereo).
    • Document 'DMIC ECNS boost' / 'Jack In ECNS boost' switch kcontrols
      selecting between boosted high-pass filters (+30 dB 100 Hz on Pin 0,
      +20 dB 40 Hz on Pin 1) and 0 dB gain with clickless coefficient pointer swapping.
    • Document 'DMIC ecns_kpb_test_signal' synthetic ramp generator.
    • Document single-producer 16 kHz fallback support.
  • Keyword Detector (microWakeWord):

    • Document 4-inference windowed average probability triggering (>= 50%).
    • Update Slot 1 keyword model to 'Hi Intel' (formerly 'banana').
    • Document 'wovdebug_1NN' test trigger kcontrol with 5-second arming delay
      and D0i3 state resilience.
    • Document per-operator CCOUNT cycle profiling (CONFIG_COMP_MWW_PROFILE).
    • Document real-time 2 Hz volatile scoring kcontrols (SOF_IPC4_MODULE_NOTIFICATION).
  • WOV Arbiter & KPB Coordination:

    • Rename active slot enum control to 'DMIC Phrase Detect ID' and
      'Jack In Phrase Detect ID'.
    • Enforce single active WoV PCM mutual exclusion rule.
    • Detail mandatory notification order: activate Arbiter before draining KPB.
    • Detail cross-core cache coherency (dcache writeback/invalidate) and
      blocking remote core notification delivery.
  • Diagnostics & Tools:

    • Document wov_capture_app, run_wov_10x.py, and wov_multi_slot_test.py.
  • Diagrams:

    • Update wov_ecns_pipeline_architecture.svg and wov_scheduling_periods.svg
      to match the dual-rate topology, pipeline IDs, and updated models.

Signed-off-by: Liam Girdwood liam.r.girdwood@linux.intel.com

…ov-d0i3

Align the developer guide and architecture diagrams with the latest
code changes in the wov-d0i3 branch:

- Architecture & Endpoints:
  * Update from single-rate 4ch 16k DMIC to dual-rate DMIC architecture:
    48 kHz high-resolution ingest (Pipeline 110, dmic01 on PDM0) and
    16 kHz voice ingest (Pipeline 119, dmic16k on PDM1).
  * Update pipeline mapping: P110 (48k DAI), P119 (16k DAI), P115 (dual-rate
    ECNS DP), P116 (KPB), P111-P113 (MWW Slots 0-2), P114 (Arbiter),
    and P117 (ECNS Host Capture).
  * Update ALSA capture endpoints: PCM 11 (hw:0,11) for 48 kHz stereo clean
    speech and PCM 12 (hw:0,12) for 16 kHz mono WOV pre-roll + speech.
  * Document SoundWire headset multi-slot WoV alternative (Pipelines 140-148,
    PCM 13 and PCM 14).
  * Clarify platform support across Panther Lake (PTL), Tiger Lake (TGL),
    and Wildcat Lake (WCL uses PLATFORM=ptl via symlinks).

- ECNS Module:
  * Document dual-rate multi-pin contract (Pin 0 In 16k 2ch, Pin 1 In 48k 2ch,
    Pin 0 Out 16k 1ch mono, Pin 1 Out 48k 2ch stereo).
  * Document 'DMIC ECNS boost' / 'Jack In ECNS boost' switch kcontrols
    selecting between boosted high-pass filters (+30 dB 100 Hz on Pin 0,
    +20 dB 40 Hz on Pin 1) and 0 dB gain with clickless coefficient pointer swapping.
  * Document 'DMIC ecns_kpb_test_signal' synthetic ramp generator.
  * Document single-producer 16 kHz fallback support.

- Keyword Detector (microWakeWord):
  * Document 4-inference windowed average probability triggering (>= 50%).
  * Update Slot 1 keyword model to 'Hi Intel' (formerly 'banana').
  * Document 'wovdebug_1NN' test trigger kcontrol with 5-second arming delay
    and D0i3 state resilience.
  * Document per-operator CCOUNT cycle profiling (CONFIG_COMP_MWW_PROFILE).
  * Document real-time 2 Hz volatile scoring kcontrols (SOF_IPC4_MODULE_NOTIFICATION).

- WOV Arbiter & KPB Coordination:
  * Rename active slot enum control to 'DMIC Phrase Detect ID' and
    'Jack In Phrase Detect ID'.
  * Enforce single active WoV PCM mutual exclusion rule.
  * Detail mandatory notification order: activate Arbiter before draining KPB.
  * Detail cross-core cache coherency (dcache writeback/invalidate) and
    blocking remote core notification delivery.

- Diagnostics & Tools:
  * Document wov_capture_app, run_wov_10x.py, and wov_multi_slot_test.py.

- Diagrams:
  * Update wov_ecns_pipeline_architecture.svg and wov_scheduling_periods.svg
    to match the dual-rate topology, pipeline IDs, and updated models.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
@lgirdwood
lgirdwood merged commit abfa007 into thesofproject:master Oct 27, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants