Repository navigation
Conversation
Add topology2 support for generating and deploying IPC3 topology files alongside the existing IPC4 production set. Describe the Yoga Book RT5677 SSP2 playback, capture, low-latency and deep-buffer paths while preserving the Cherry Trail memory, scheduler and hardware configuration required by the legacy IPC3 firmware. Signed-off-by: Maurizio Casciano <mauriziocasciano7@gmail.com> (cherry picked from commit fb12497) Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
SOF IPC3 derives the DAI channel count from the population count of the active TDM slot mask. The original topology enabled all four frame slots with mask 0xf while exposing two-channel PCM streams, so STREAM_PCM_PARAMS failed with -EINVAL. Keep the required four-slot, 25-bit frame geometry but activate only the two stereo slots with mask 0x3. Use the defined default_hw_config_id attribute and add a general topology artifact verifier. The verifier checks PCM and backend-link properties and accepts command-line overrides for use with other configurations. Tested on a Lenovo Yoga Book YB1-X91L with PCM0 playback and capture in S16_LE, S24_LE and S32_LE at 48 kHz stereo, plus PCM1 deep-buffer playback. Signed-off-by: Maurizio Casciano <mauriziocasciano7@gmail.com> (cherry picked from commit 7c26d2b) Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The verifier rejects matching nonzero hardware configuration IDs and accepts mismatched default references.
1 open finding
What changed in this PR
Forward-ports Cherry Trail RT5677 IPC3 support to topology2 for the Lenovo Yoga Book.
Changes:
- Adds board topology and reusable IPC3 pipeline components.
- Separates IPC3 ABI generation, build outputs, and deployment from IPC4.
- Adds artifact verification and usage documentation.
| File | Description |
|---|---|
| tools/topology/topology2/verify-topology.py | Verifies compiled backend-link and PCM contracts. |
| tools/topology/topology2/README.md | Documents Cherry Trail support and verification. |
| tools/topology/topology2/production/tplg-targets-ipc3.cmake | Registers the RT5677 IPC3 target. |
| tools/topology/topology2/production/CMakeLists.txt | Builds IPC3 targets separately. |
| tools/topology/topology2/platform/intel/cht-hw-config.conf | Defines Cherry Trail SSP configuration attributes. |
| tools/topology/topology2/include/pipelines/ipc3/volume-playback.conf | Adds host volume playback pipelines. |
| tools/topology/topology2/include/pipelines/ipc3/volume-dai-capture.conf | Adds combined DAI-to-host capture. |
| tools/topology/topology2/include/pipelines/ipc3/pipeline-common.conf | Defines shared IPC3 pipeline attributes. |
| tools/topology/topology2/include/pipelines/ipc3/mixer-volume-dai-playback.conf | Adds mixer-to-DAI playback. |
| tools/topology/topology2/include/components/widget-common.conf | Adds optional IPC3 period counts. |
| tools/topology/topology2/include/components/ipc3/mixer.conf | Defines the IPC3 mixer widget. |
| tools/topology/topology2/include/components/buffer.conf | Adds Cherry Trail-compatible buffer capabilities. |
| tools/topology/topology2/CMakeLists.txt | Generates IPC3 ABI data and separates deployment. |
| tools/topology/topology2/cht-rt5677.conf | Defines board routing, SSP2 settings, and stereo PCMs. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| ) | ||
|
|
||
| hw = record[676 : 676 + HW_CONFIG_SIZE] | ||
| if u32(hw, 0) != HW_CONFIG_SIZE or u32(hw, 4) != 0: |
PR 11279: test resultsRun date: 2026-10-07 17:58 UTC Tested commit: c093ab6e6ae0c3aff0fcccb944fd21b3301274ec |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Forward port #11129
This was a bit of a process gap. We shouldn't normally merge patches to stable branches that don't first go via "main", but in this case this happened. The new topologies are already released in 2026.09.2, so let's forward-port these to main.
The tools/topology/topology2/verify-topology.py needs more work, but we can do that in a follow-up.