Skip to content

docs: developer_guides: add ALSA Use Case Manager v2 (UCM2) guide and runbook - #536

Merged
lgirdwood merged 1 commit into
thesofproject:masterfrom
lgirdwood:topic/ucm2-developer-guide
Sep 21, 2026
Merged

lgirdwood merged 1 commit into
thesofproject:masterfrom
lgirdwood:topic/ucm2-developer-guide

Conversation

@lgirdwood

Copy link
Copy Markdown
Member

Summary

Adds an authoritative developer guide and practical runbook for ALSA Use Case Manager v2 (UCM2) under Pillar 3 of Developer Guides.

Highlights

  • Architectural Motivation: Deep dive into bridging kernel ASoC mixer controls/PCMs with modern user-space sound servers (PipeWire, WirePlumber, PulseAudio).
  • UCM1 vs UCM2 Comparison Matrix: Comprehensive breakdown of structural improvements, resolution schemes, variant handling, and firmware blob tuning injection.
  • Directory Hierarchy & Dynamic Matching: Explains lookup precedence (conf.d -> sysfs fallback -> card name) and regex matching against ${CardComponents} exported by kernel machine drivers.
  • Syntax 2–7 Specification: In-depth explanations and syntax examples for SectionUseCase, SectionVerb, SectionDevice, and the Value block reference table.
  • Step-by-Step Profile Authoring: Complete walkthrough from hardware enumeration and raw ALSA CLI testing to top-level card configuration, HiFi verb definition, and modular codec/HDMI includes.
  • User-Space Integration: WirePlumber SPA-ACP engine mechanics, node creation, and priority arbitration.
  • Diagnostic Runbooks: 4 actionable runbooks covering Dummy Output fallback, muted audio / missing controls, headphone jack auto-switching failures, and in-system hot-reloading.
  • High-Resolution Architecture Diagram: Embedded vector SVG (ucm2_architecture_flow.svg) detailing the 4-tier audio stack and 6-step CLI diagnostic track.

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

… runbook

Add a comprehensive developer guide and practical runbook for ALSA
Use Case Manager v2 (UCM2) under Pillar 3 of Developer Guides.

Topics covered:
- Architectural role of UCM2 in bridging kernel mixer controls/PCMs
  to user-space sound servers (PipeWire, WirePlumber, PulseAudio).
- Evolution from legacy UCM1 to UCM2 comparison matrix.
- Directory hierarchy, lookup precedence, and dynamic CardComponents
  hardware variant parsing via DefineRegex and If conditions.
- UCM2 syntax specification (syntax versions 2 through 7), core
  primitives (SectionUseCase, SectionVerb, SectionDevice, Value blocks),
  and transition sequences.
- Step-by-step authoring walkthrough: hardware enumeration, manual ALSA
  CLI bringup, card master entry, HiFi verb definition, and codec/HDMI
  modularization.
- PipeWire/WirePlumber SPA-ACP engine integration and priority arbitration.
- In-depth diagnostic runbooks for dummy output fallback, muted routing,
  jack detection failures, and live in-system hot-reloading.
- Production readiness checklist and high-resolution architecture diagram.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
@lgirdwood
lgirdwood force-pushed the topic/ucm2-developer-guide branch from ab09d66 to 55446f5 Compare September 21, 2026 07:20
@lgirdwood
lgirdwood merged commit ea33663 into thesofproject:master Sep 21, 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