Skip to content

doc: comprehensive modernization of developer guides, toolchain architectures, and release catalog - #527

Merged
lgirdwood merged 64 commits into
thesofproject:masterfrom
lgirdwood:topic/developer-guides-modernization
Sep 20, 2026
Merged

lgirdwood merged 64 commits into
thesofproject:masterfrom
lgirdwood:topic/developer-guides-modernization

Conversation

@lgirdwood

Copy link
Copy Markdown
Member

Summary

Comprehensive documentation modernization across Sound Open Firmware developer guides, processing module architectures, testing frameworks, toolchains, and release catalog:

  1. Developer Guides & Processing Modules Architecture:

    • Comprehensive high-level and detailed architecture guides for core firmware frameworks (init/boot, IPC, buffer management, scheduler, module framework, pipeline architecture, LLEXT dynamic linking, and hostless operation).
    • In-depth architecture guides for all audio processing modules: Volume, Mixin/Mixout, SRC/ASRC, EQ (FIR/IIR), DRC & Multiband DRC, Crossover Filter, DC Blocker, TDFB Beamformer, TFLM, MFCC Feature Extraction, Smart Amp / DSM, Sound Dose Evaluator, Copier/Mux/Selector, PCM Converter, RTNR, KPB/WOV, Tone Generator, Up/Down Mixer, ARIA AGC, Level Multiplier, Phase Vocoder, STFT Process, and Media Codecs.
    • 8 comprehensive acoustic tuning and calibration guides (Runtime Blobs, DRC/mDRC, Crossover Filter, Smart Amp, Sound Dose, DMIC, Level Multiplier & ARIA AGC, and MFCC).
  2. Testing, Simulation & Debugging:

    • Modernized guides for ALSA Topology 2.0, ktest kernel bisection, Zephyr ztest & twister unit tests, hardware audio loopback verification, testbench pipeline simulation, Cadence Xtensa simulator (xtrun), and firmware protocol fuzzing.
    • Unified DSP telemetry, coredump, direct probes, and shell diagnostic guides with consistent UUID subsystem referencing.
  3. Hardware Generalization & Interconnect Safety:

    • Sanitized all references to internal lab hardware hostnames and board aliases, generalizing DUT instructions and presenting wiring connections as illustrative examples.
    • Generalized hostless test scripts to remove out-of-tree assumptions.
    • Documented mandatory 1.8V to 3.3V bidirectional level shifting requirements between Panther Lake (1.8V IO) and ESP32-P4 (3.3V IO) across pinout tables, warning callouts, and vector diagrams.
    • Removed deprecated logic analyzer sections in favor of standard hardware loopback verification workflows.
  4. CMake 3-Toolchain Architecture Guide:

    • Modernized developer_guides/tech/cmake.rst to document the 3 supported toolchain backends:
      • Cadence Xtensa Tools (xt-clang / xcc): Production default for Xtensa DSP targets with full HiFi SIMD vectorization.
      • Zephyr SDK Cross-Compilers: Standard for ARM/RISC-V, produces structurally compliant binaries for every Xtensa target (scalar C fallback, no Xtensa SIMD).
      • LLVM / Clang Toolchain: Experimental open-source compiling HiFi for Xtensa SIMD with mandatory Integrated Assembler (IAS).
    • Provided complete environment variables and build recipes (west build and xtensa-build-zephyr.py) for each toolchain backend.
  5. Release Catalog & Firmware Version Mapping:

    • Updated release parser in scripts/generate_matrices.py to handle SOF Version v... string formatting in GitHub release bodies.
    • Correctly populated firmware version v2.15 for latest binary release v2026.09 in data/sof_bin_releases.json, hero card, and recent releases table.

Verification

  • Strict Sphinx Documentation Build: sphinx-build -b html -W --keep-going . _build/html passes with 0 warnings and 0 errors.
  • Inclusive Language: Scanned against rules-woke.yaml with 0 infractions.
  • Visual Inspection: Verified rendered HTML across dark and light modes with responsive layouts and vector SVGs.

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

Reorganize the Developer Guides portal into five modern technical
pillars:
1. Firmware Development (FW)
2. Kernel & Host Driver Development (Kernel)
3. Hardware & Platform Bringup (HW)
4. Testing, Simulation & Toolchains (SDK & Test)
5. Telemetry, Probes & Diagnostics (Debug)

Key updates include:
- Add Linux driver architecture guide (sound/soc/sof/, IPC3/IPC4,
  SRAM mailboxes, runtime PM).
- Add ASoC machine drivers, ACPI/NHLT/DISCO, and DMI quirk guide.
- Add hostless embedded firmware guide (sof_static_pipeline, static
  topologies, Teensy 4.1, ESP32-P4/C6, Zephyr shell).
- Add hardware audio loopback verification guide (test_p4_loopback.py,
  test_c6_loopback.py, test_teensy_loopback.py).
- Modernize unit tests guide for Zephyr Ztest & Twister runner.
- Modernize rimage documentation for the modern Rust tool and TOML configs.
- Modernize DSP traces for Zephyr logging, smex, and TCP probe server.
- Modernize CMake build guide for Zephyr RTOS and West.
- Add legacy notice to Topology 1.0 pointing to Topology 2.0.
- Remove obsolete guides (lmdk_user_guide, setup_up_2_board, compile_wsl,
  fuzzing_in_docker).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Create comprehensive, high-level documentation explaining the SOF
pipeline architecture without delving into low-level C code:
- Explain pipeline containers, boundaries, and multi-core affinity.
- Detail audio modules, sink/source pins, and topology models.
- Contrast Low-Latency (LL) periodic timer scheduling against
  Data Processing (DP) asynchronous Zephyr RTOS threads.
- Detail data movement through circular ring buffers and
  producer/consumer pointer mechanics.
- Document the end-to-end construction, parameter propagation,
  streaming, and destruction lifecycle.
- Detail the runtime state machine (INIT, READY, PRE_ACTIVE,
  ACTIVE, PAUSED, SUSPEND, XRUN_PAUSED) and trigger flows.
- Explain audio XRUN detection and self-healing recovery.
- Include 7 vector Graphviz diagrams illustrating each subject.
- Cross-reference upstream src/audio/pipeline/README.md for
  implementation details and C struct definitions.
- Update architectures/index.rst and developer_guides/index.rst.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Create comprehensive, high-level documentation explaining the SOF
Audio Processing Module Framework and Module Adapter without delving
into low-level C code:
- Document the Three-Tier architecture: Pipeline Schedulers,
  Module Adapter system layer, and Standardized Module Interface.
- Detail the Module Adapter proxy and sandboxing container.
- Explain the decoupled Source and Sink APIs (Get -> Manipulate ->
  Commit/Release pattern).
- Detail pin topologies (SISO, MISO, SIMO) and dynamic graph binding.
- Document the module runtime state machine (MODULE_DISABLED,
  MODULE_INITIALIZED, MODULE_IDLE, MODULE_PROCESSING).
- Detail runtime parameter management (initialization blobs,
  large coefficient blobs, scalar controls via IPC).
- Explain memory sandboxing (dp_heap_user, objpool) and automated
  leak protection (mod_free_all).
- Include 7 vector Graphviz diagrams illustrating each concept.
- Cross-reference upstream src/module/README.md and
  src/audio/module_adapter/README.md.
- Update developer_guides/index.rst and pipeline_architecture.rst.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Create developer_guides/firmware/scheduler_architecture.rst providing a
comprehensive, high-level overview of SOF's real-time scheduling
infrastructure on top of the Zephyr RTOS:
- Three-tier scheduling model: Low-Latency (LL), Data Processing (DP),
  and Thread With Budget (TWB)
- Hardware interrupt sources (1ms/10ms timers, DMA buffer interrupts)
- Thread-per-task architecture and dynamic Earliest Deadline First (EDF)
- Cycle accounting, priority demotion, and LL tick replenishment in TWB
- Multi-core scheduling topology, core affinity, and IDC messaging
- Real-time task prioritization and deadline tie-breaking
- Power management duty cycles, autonomous wait states, and tickless idle
- 7 vector Graphviz diagrams illustrating all architectural concepts
- Cross-references to upstream thesofproject/sof: src/schedule/README.md

Update developer_guides/index.rst, pipeline_architecture.rst, and
module_framework.rst with cross-references.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Create developer_guides/firmware/audio_buffer_management.rst providing
a comprehensive, high-level overview of SOF's audio buffer subsystem:
- Lockless Single-Producer Single-Consumer (SPSC) ring buffer mechanics
- Modulo offset wrap-around arithmetic resolving empty vs full states
- Buffer sizing criterion (2 * max(IBS, OBS)) and asynchronous decoupling
- Multi-tier DSP memory hierarchy (L1 TCM, L2 HP-SRAM, LP-SRAM, Host DRAM)
- Local mode vs cross-core shared mode with cache write-back/invalidation
- Sample container formats (S16_LE, S24_4LE, S32_LE, FLOAT) and SIMD/DMA alignment
- In-place zero-copy processing vs intermediate buffering
- Buffer overrun/underrun (XRUN) detection and automated self-healing recovery
- 7 vector Graphviz diagrams illustrating all architectural concepts
- Cross-references to upstream thesofproject/sof: src/audio/buffers/README.md

Update developer_guides/index.rst, pipeline_architecture.rst,
module_framework.rst, and scheduler_architecture.rst with cross-references.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer guide covering the Sound
Open Firmware (SOF) Inter-Processor Communication (IPC) infrastructure
across IPC3 and IPC4 generations.

The guide covers:
- The dual planes of inter-processor communication (control vs telemetry).
- Shared memory mailbox architecture (Windows 0 to 3) and doorbell
  handshake protocols.
- Core framework and deferred Zephyr k_work queue thread handoff.
- Protocol generational comparison (IPC3 flat scalar model vs IPC4
  dynamic compound object model).
- Dynamic pipeline lifecycle and pin binding in IPC4.
- Firmware-initiated asynchronous notifications (stream positions,
  XRUNs, panic dumps).
- Multi-core IPC routing and Inter-Domain Communication (IDC)
  with Core 0 as the host gateway.
- Upstream code references and related architecture links.

Includes 7 custom vector Graphviz SVG diagrams illustrating
system architecture, mailbox handshakes, Zephyr queue handoffs,
IPC3 vs IPC4 structure, pipeline binding sequences, async telemetry,
and multi-core IDC topology.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer architecture guide covering
the Sound Open Firmware (SOF) initialization and boot subsystem.

The guide covers:
- End-to-end boot lifecycle across host staging, hardware boot ROM,
  Zephyr kernel initialization, SOF primary core bringup, and host
  ready synchronization.
- Extended firmware manifest (.fw_metadata) structure and pre-boot
  host discovery.
- Zephyr RTOS multi-stage kernel initialization levels (EARLY,
  PRE_KERNEL_1, PRE_KERNEL_2, POST_KERNEL, APPLICATION) and the
  rationale for SYS_INIT(sof_init, POST_KERNEL, 99).
- Primary core platform bringup (primary_core_init) covering context
  allocation, DMA trace buffering, system notifiers, runtime PM,
  schedulers, DMACs, IPC, and AltBootManifest LP-SRAM unpacking.
- Host-firmware boot synchronization and FW Ready handshake protocols
  (IPC3 vs IPC4) in Mailbox Window 0, along with boot timeout detection.
- Multi-core secondary core boot flow, dynamic power state assessment
  (check_restore for cold boot vs D0ix retention wake), and IDC.
- Power state lifecycles and wake transitions (D3 cold boot, D0 active,
  D0ix low-power retention, and S0ix/S3 suspend), including LLEXT
  dynamic library preservation.
- Upstream code references and related architecture links.

Includes 7 custom vector Graphviz SVG diagrams illustrating all boot
phases, binary manifest structures, Zephyr hook levels, platform bringup,
mailbox handshakes, secondary core activation, and power states.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer architecture guide covering
the Sound Open Firmware (SOF) Volume Control module (PGA widget).

The guide covers:
- System-level architecture & signal flow across asynchronous control
  plane (ALSA mixer, IPC3/IPC4) and hard real-time data plane.
- Fixed-point gain scaling and saturation arithmetic across protocol
  generations (IPC3 Q8.16 vs IPC4 Q1.31) and audio formats.
- Smooth volume ramping and zipper noise elimination comparing linear
  ramping with smooth Windows S-curve / Hann fades and adaptive
  update rate selection (125 µs to 1000 µs).
- Zero-crossing muting and pop suppression mechanics using lookahead
  waveform analysis, plus stateful unmuting.
- Zero-overhead unity gain passthrough mode decision flow for 0 dB
  unmodified playback.
- Real-time in-line peak meter telemetry (COMP_PEAK_VOL) and shared
  Mailbox Window 0 synchronization for zero-IPC host VU meters.
- SIMD vector processing parallelism comparing portable generic C with
  Tensilica Xtensa HiFi 3, HiFi 4 (4-way vector), and HiFi 5 (8-way vector).
- Upstream code references and related architecture links.

Includes 7 custom vector Graphviz SVG diagrams illustrating architecture,
fixed-point math, ramping curves, zero-crossing muting, passthrough logic,
peak telemetry, and SIMD vector bandwidth.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer architecture guide covering
the Sound Open Firmware (SOF) Mixin / Mixout audio processing subsystem.

The guide covers:
- Decoupled mixing paradigm comparing legacy monolithic mixers (rigid
  scheduling, single-core bottlenecks) with the asynchronous Mixin
  and Mixout decoupled architecture.
- Multi-stream fan-out (up to 3 output sinks per Mixin for speakers,
  headphones, and AEC reference loopbacks) and fan-in (up to 8 input
  sources per Mixout).
- Direct-to-sink zero-intermediate-buffer in-place accumulation
  mechanics, eliminating intermediate FIFO allocations and halving
  memory bus bandwidth.
- Asynchronous scheduling coordination and pending frames tracking
  across independent pipeline rates, with autonomous silence generation
  on source stream starvation.
- Per-sink gain scaling (10-bit fractional precision) and flexible
  channel remapping nibble masks.
- SIMD vector accumulation and hardware saturation clamping comparing
  generic C with Tensilica Xtensa HiFi 3 and HiFi 5 (8-way vector).
- Mixin telemetry, rate-limited underrun reporting to prevent IPC
  message flooding, and End-of-Stream (EOS) DAI latency flushing.
- Upstream code references and related architecture links.

Includes 7 custom vector Graphviz SVG diagrams illustrating architecture,
routing topologies, in-place accumulation, pending frames state machine,
per-sink engine, SIMD vector saturation, and telemetry workflows.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer architecture guide for
Sample Rate Conversion (SRC & ASRC) in Sound Open Firmware.

Covers:
- Architectural taxonomy: Synchronous SRC (locked rational ratios M/N)
  vs Asynchronous ASRC (independent crystals and continuous drift).
- Synchronous polyphase FIR filter bank decomposition, subfilter phase
  commutator, and zero-elimination optimization.
- Multi-stage conversion and latency optimization (factoring 44.1 kHz
  to 48 kHz into two stages with halfband filters to reduce latency
  by >75%).
- Asynchronous Farrow filter structure with polynomial approximation
  and continuous fractional sample delay parameter mu.
- Closed-loop drift estimation and buffer watermark tracking controller.
- Push-mode (playback/transmit) vs pull-mode (capture/receive) execution
  topologies across audio endpoints.
- SIMD vector acceleration across Cadence Xtensa HiFi 3, HiFi 4, HiFi 5,
  and generic scalar C implementations.
- 7 native vector Graphviz SVG diagrams.
- Cross-references in developer_guides/index.rst, pipeline_architecture.rst,
  and algorithms/src/sample_rate_conversion.rst.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer architecture guide for
Equalizers (EQ FIR & EQ IIR) in Sound Open Firmware.

Covers:
- Filter taxonomy and architectural trade-offs: feedforward transversal
  FIR (linear phase, constant group delay, unconditional stability)
  vs recursive cascaded biquad IIR (ultra-low latency, minimum phase,
  analog filter emulation).
- Finite Impulse Response (FIR) architecture: discrete-time convolution,
  circular delay line buffer management, and linear phase symmetric tap
  folding optimization (reducing multiplications by 50%).
- Infinite Impulse Response (IIR) architecture: sensitivity of high-order
  monolithic polynomials, cascaded Second-Order Sections (SOS / biquads),
  and Direct Form I (DF1) with 64-bit accumulators preventing limit
  cycles and internal overflow on low-frequency poles.
- Parametric equalizer topologies based on the Audio EQ Cookbook:
  peaking bells, shelving filters, high-pass/low-pass roll-offs,
  surgical notch filters, and flat passthrough sections.
- Real-time dynamic parameter updates via IPC configuration blobs,
  fragment reassembly with comp_data_blob_handler, safety validation,
  and atomic pointer swapping for glitchless filter updates.
- Multi-channel processing with per-channel independent response mapping
  (assign_response[]) and ALSA Topology 2 component integration.
- SIMD vector acceleration across Cadence Tensilica Xtensa HiFi 3,
  HiFi 4, HiFi 5, and generic portable scalar C fallbacks.
- 7 native vector Graphviz SVG diagrams.
- Cross-references in developer_guides/index.rst, pipeline_architecture.rst,
  and algorithms/eq/equalizers_tuning.rst.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…ture guide

Add a comprehensive, high-level developer architecture guide for
Dynamic Range Compression (DRC & Multi-Band DRC) in Sound Open Firmware.

Covers:
- Dynamic range compression principles and use cases: speaker excursion
  protection, dialogue intelligibility, and microphone capture dynamics.
- Static transfer characteristic: threshold, quadratic soft knee,
  compression ratio, and makeup gain.
- Single-band DRC processing architecture: signal path vs sidechain
  detector path, lookahead pre-delay circular buffers (up to 512 frames),
  and division-based sub-block processing (32 frames).
- Envelope ballistics and adaptive multi-segment release curve: fast
  attack transient capture vs adaptive non-linear recovery (kA through kE)
  preventing harmonic distortion and audible pumping/breathing.
- The spectral pumping hazard and the multi-band DRC paradigm: frequency
  partitioning to eliminate wideband ducking caused by heavy bass energy.
- Multi-band compound 4-stage processing pipeline: Emphasis EQ (2-biquad
  IIR), Linkwitz-Riley 4th-order (LR4) crossover bank (flat 0 dB sum,
  zero phase error), parallel independent DRC band engines, and De-emphasis
  summation filter.
- Dynamic parameter updates via IPC configuration blobs, multi-packet
  staging, and ALSA Topology 2 component widgets (drc.conf, multiband_drc.conf).
- SIMD vector acceleration across Tensilica Xtensa HiFi 3, HiFi 4, HiFi 5,
  and generic portable scalar C fallbacks.
- 7 native vector Graphviz SVG diagrams.
- Cross-references in developer_guides/index.rst and pipeline_architecture.rst.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…guide

Add a comprehensive, high-level developer architecture guide for
the Crossover Filter in Sound Open Firmware.

Covers:
- Electro-acoustic motivations: physical transducer frequency limits
  (subwoofers, woofers, midrange, tweeters) and active digital DSP
  crossovers vs passive analog crossovers.
- Linkwitz-Riley 4th-order (LR4) filter theory: flaws of conventional
  Butterworth crossovers (+3 dB acoustic bump and 90 degree phase
  quadrature), cascaded Butterworth pairs (-6 dB at fc), flat 0 dB
  magnitude summation, and 360/0 degree in-phase acoustic alignment.
- Crossover split topologies: 2-way splitting, 3-way splitting with
  the LR4 all-pass phase equalization trick (crossover_generic_lr4_merge),
  and 4-way symmetrical tree decomposition.
- Direct Form I (DF1) cascaded biquad implementation mechanics with
  64-bit accumulators and Q2.30 coefficient formatting.
- 1-to-N multi-sink buffer distribution (bsinks[], assign_sinks[]),
  ALSA Topology 2 component integration (crossover.conf), and IPC4
  dynamic pin indexing (init_config = 1).
- System-level deployment: standalone multi-amplifier bi-amping/tri-amping
  vs embedded spectral splitting within Multi-Band DRC.
- SIMD vector acceleration across Cadence Tensilica Xtensa HiFi 3,
  HiFi 4, HiFi 5, and generic portable scalar C fallbacks.
- 7 native vector Graphviz SVG diagrams.
- Cross-references in developer_guides/index.rst and pipeline_architecture.rst.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer architecture guide for the
DC Blocker subsystem (developer_guides/firmware/dcblock.rst).

Topics covered:
- Physical origins of DC bias (ADC preamplifier offset, PDM decimation
  leakage, thermal ground drift, synthetic non-linear algorithms) and
  system hazards (headroom penalty, asymmetric clipping, loudspeaker
  voice coil thermal destruction, cone excursion displacement, clicks/pops,
  and downstream DSP corruption in AEC, DRC, and VAD).
- Digital filter theory and pole-zero mechanics of the first-order
  recursive high-pass DC blocker (H(z) = (1 - z^-1) / (1 - R z^-1)),
  exact 0 Hz transmission nulling, flat passband behavior, and cutoff
  frequency formulation.
- Transient step response (y[n] = Delta_dc * R^n), exponential decay
  time constants (tau = 1 / (2*pi*fc)), settling times, and the
  engineering trade-off between sub-bass fidelity and transient recovery.
- High-precision fixed-point arithmetic (Q2.30 coefficients, Q1.31
  states, 64-bit Q3.61 intermediate accumulation), symmetric rounding,
  saturation clamping, and limit cycle oscillation elimination.
- Multi-channel stream processing with independent per-channel state
  isolation, heterogeneous per-channel cutoff tuning, interleaved buffer
  traversal, and sample depth adaptability (S16, S24, S32).
- Architecture-specific SIMD vector acceleration across Tensilica
  Xtensa HiFi 3, HiFi 4 (dual circular buffer registers for branchless
  processing), HiFi 5, and portable generic scalar C.
- ALSA Topology 2 component configuration (dcblock.conf), Module Adapter
  lifecycle, LLEXT dynamic linking, IPC3/IPC4 control blobs, and
  pipeline deployment topologies in capture, playback, and post-effects.
- GNU Octave / MATLAB tuning workflow and upstream code references.
- Seven native vector Graphviz SVG architecture diagrams.
- Clean Sphinx build with zero warnings under -W --keep-going and
  zero inclusive language violations.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer architecture guide for the
Time-Domain Fixed Beamformer (TDFB) subsystem
(developer_guides/firmware/tdfb.rst).

Topics covered:
- Spatial acoustics and microphone array principles: Far-field planar
  wavefront propagation, Time Difference of Arrival (TDOA), and
  advantages of Filter-and-Sum over Delay-and-Sum beamforming.
- Filter-and-Sum FIR architecture and multi-channel mixing: Up to 16
  FIR filter instances (<= 256 taps), input_channel_select,
  output_channel_mix, output_stream_mix, multi-beam simultaneous
  extraction (dual-beam stereo capture, speech + noise reference),
  and Q5.27 fixed-point headroom management.
- Microphone array geometries: Uniform/non-uniform linear arrays (1D),
  circular ring arrays (2D 360-degree coverage), planar/rectangular
  arrays (azimuth + elevation 3D), and Q4.12 meter coordinates.
- Direction of Arrival (DOA) tracking and acoustic localization:
  Pre-emphasis IIR filtering (500 Hz - 4 kHz speech band), ambient noise
  floor tracking with primitive VAD gate, pairwise cross-correlation lag
  extraction, 8-iteration geometric error minimization, and two-pole
  angle smoothing.
- Host IPC control plane: ALSA mixer controls (process switch, direction
  tracking switch, steer azimuth enum, azimuth estimate enum), and
  asynchronous rate-limited host notifications (>= 200 ms).
- SIMD vector acceleration across Tensilica Xtensa HiFi 3 (dual 32x16
  MAC, circular buffer auto-wrapping), HiFi 2 EP, and portable scalar C.
- System capture pipeline integration: Ingestion after DC Blocker,
  supplying high-SNR directional speech to AEC, RTNR, and VAD/TFLM.
- Tuning workflows and upstream source code references.
- Seven native vector Graphviz SVG architecture diagrams.
- Clean Sphinx build under -W --keep-going and zero woke violations.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add a comprehensive, high-level developer architecture guide for the
TensorFlow Lite Micro (TFLM) embedded AI subsystem
(developer_guides/firmware/tflm.rst).

Topics covered:
- Edge Audio AI Paradigm: Cloud offload vs. Host CPU processing vs.
  On-DSP microcontroller inference trade-offs (latency, privacy, power).
- TensorFlow Lite Micro (TFLM) Component Architecture: Zero-heap static
  tensor arena (g_arena, kArenaSize), two-ended memory planning,
  zero-copy FlatBuffer model ingestion, and selective operator resolution
  via MicroMutableOpResolver<N>.
- End-to-End Audio Machine Learning Pipeline: Raw PCM capture, framing,
  windowing, FFT, Mel-scale filterbank, and 2D spectrogram feature matrix.
- Asymmetric Int8 Affine Quantization: Mathematical formulation
  (r = S * (q - Z)), fixed-point matrix multiplication kernel mechanics,
  effective scaling factor decomposition (M = M_0 * 2^-n), and 32-bit
  integer accumulation without floating-point emulation.
- Continuous Sliding Window Inference: 49-frame buffer maintenance and
  20 ms temporal stride advancement for continuous 50 Hz evaluation.
- Hardware Neural Network Acceleration: Tensilica NNLib (xa_nnlib)
  SIMD vector routines (depthwise convolution, matrix-vector dot products,
  vector softmax) and circular buffer addressing.
- Host IPC Control Plane & Dynamic LLEXT Packaging: ALSA Topology 2
  widget declaration, runtime model updates via IPC3/IPC4 blobs, and
  LLEXT modular packaging.
- Microphone Voice AI Pipeline Integration: Capture chain from DMIC/I2S
  through DC Blocker, TDFB, MFCC, TFLM, and Host Wake trigger.
- Upstream source references and tuning guide links.
- Seven native vector Graphviz SVG architecture diagrams.
- Clean Sphinx build under -W --keep-going and zero woke violations.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add comprehensive high-level Mel-Frequency Cepstral Coefficients (MFCC)
feature extraction architecture developer guide, covering:
- Psychoacoustic auditory perception & homomorphic source-filter separation
- 5-stage transformation pipeline (pre-emphasis, framing/windowing, 32-bit real-to-complex FFT, auditory Mel filterbanks, DCT-II & sinusoidal cepstral lifter)
- Slaney area normalization & uniform Mel filterbank synthesis
- OpenAI Whisper feature extraction integration (80 Mel channels, dynamic m_max leaky tracking, top_db clamping, host offload)
- Integrated Mel-domain VAD & Discontinuous Transmission (DTX) state machine
- Fixed-point scratch overlay memory architecture (dual complex FFT buffers) & decoupled staging buffer
- Cadence Tensilica HiFi 3/4/5 SIMD vector acceleration primitives
- ALSA Topology 2 configuration (Class.Widget.mfcc) & Compress/Legacy PCM streaming modes
- End-to-end edge AI audio pipeline with 7 native vector Graphviz SVG diagrams

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add comprehensive high-level Smart Amplifier Protection & Physics
developer guide, covering:
- Physical electro-acoustic foundations & speaker damage mechanisms (thermal burnout vs excursion bottoming)
- Current & voltage (I/V) sense telemetry, back-EMF isolation & continuous voice coil temperature tracking
- Two-layer architecture (generic component middleware vs solution-specific inner models: PASSTHRU_AMP, MAXIM_DSM)
- Three-block structured memory hierarchy (MOD_MEMBLK_PRIVATE, MOD_MEMBLK_FRAME, MOD_MEMBLK_PARAM) & double-buffering
- Dual-pipeline asynchronous scheduling (playback feed-forward vs capture I/V feedback stream synchronization)
- Multi-band excursion limiting, slow broadband thermal limiting, dynamic bass extension & psychoacoustic harmonic synthesis
- IPC3/IPC4 configuration blobs, volatile telemetry readback & factory assembly line calibration
- ALSA Topology 2 declaration (Class.Widget.smart_amp) & end-to-end audio graph with 7 native vector Graphviz SVG diagrams

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Create a comprehensive developer guide for the Sound Dose Evaluator
subsystem in Sound Open Firmware.

Key topics covered:
- Auditory health physiology, Temporary/Permanent Threshold Shift (TTS/PTS),
  and international regulatory frameworks (IEC 62368-1 Clause 10.6,
  WHO-ITU H.870, and Calculated Sound Dose / 3 dB exchange rule).
- IEC 61672-1 Class 1 A-weighting acoustic transfer function and
  cascaded Direct Form I (DF1) biquad realization in SOF.
- Fixed-point real-time energy accumulation in 64-bit precision.
- 1-second interval periodic trigger and logarithmic mean dBFS conversion.
- Momentary Exposure Level (MEL) calculation and acoustic sensitivity mapping.
- Unsolicited IPC4 asynchronous event notifications to host exposure daemons.
- Closed-loop dynamic protection via smooth exponential per-frame gain ramping.
- ALSA Topology 2 widget configuration, byte controls, and end-to-end graph.
- 7 native vector Graphviz SVG diagrams (Figures 167-173).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…itecture guide

Add comprehensive high-level architecture documentation for Copier,
Multiplexer/Demultiplexer, and Channel Selector components under
developer_guides/firmware/copier_mux_selector.rst.

Key topics covered:
- Separation of concerns between boundary movers (Copier), multi-stream
  crossbars (Mux/Demux), and intra-stream mixers (Selector).
- Copier subsystem deep dive: Host Copier, DAI Copier, IPC Gateway Copier,
  four binding topologies, and Fast Mode.
- 4-way stream fan-out and dynamic per-sink format conversion pipeline.
- Linear Link Position (LLP) telemetry and DSP wall-clock hardware
  timestamping synchronizer.
- Integrated Copier Gain and static bit-shift attenuation.
- Multiplexer & Demultiplexer binary bitmask routing matrices and
  pre-compiled lookup table optimizations.
- IPC4 Echo Cancellation (AEC) reference stream aggregation with
  autonomous zero-padding fallback for missing reference streams.
- Channel Selector intra-stream channel extraction and 8x8 Q10 matrix
  mixing (downmixing, upmixing, and channel swapping).
- ALSA Topology 2 widget declarations (UUIDs, node types, and controls).
- End-to-end system audio graph walkthrough integrating simultaneous
  media playback, speaker loopback, microphone capture, and AEC.
- 7 native Graphviz vector diagrams (Figures 174 through 180).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…cture guide

Author a comprehensive, modern architectural guide for the Sound Open
Firmware (SOF) PCM Format Converter subsystem.

Key architectural concepts and sections:
- Supported formats matrix covering U8, G.711 A-law/mu-law, S16_LE,
  S24_3LE, S24_4LE, S24_4LE_MSB, S32_LE, and IEEE-754 single-precision float.
- Container geometry vs valid bit depth resolution, sign-extension, and
  dual dispatch tables (pcm_func_map and pcm_func_vc_map).
- Linear fragmentation engine (pcm_convert_as_linear) and circular
  buffer boundary resolution.
- Tensilica HiFi3/HiFi4 vector SIMD acceleration using AE_LA16X4_IP,
  AE_CVT32X2F16, AE_SRAI32R, AE_SLAI32S, and AE_SA32X2_IP.
- G.711 logarithmic companding curves (13-segment A-law, 15-segment
  mu-law), inversion masks, and bit packing.
- Channel remapping and selective zero-fill muting architecture (0xF
  mute nibble and out-of-bounds protection).
- Fixed-to-float normalization and float-to-fixed denormalization bridge.
- Seven native vector Graphviz SVG diagrams (Figures 181 through 187).
- Integrated into developer_guides/index.rst toctree and modules list.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…tnr) architecture guide

Author a comprehensive, modern architectural guide for the Sound Open
Firmware (SOF) Real-Time Noise Reduction (RTNR) subsystem.

Key architectural concepts and sections:
- Principles of acoustic noise reduction: stationary background hum,
  non-stationary transient interference, diffuse ambient babble, and
  musical noise suppression trade-offs.
- Mathematical foundations: Short-Time Spectral Analysis (STFT),
  recursive PSD estimation, minimum statistics noise floor tracking,
  decision-directed a priori/a posteriori SNR estimation, Wiener
  filtering, and spectral floor clamping.
- Component architecture: audio_stream_rtnr circular buffer adapter,
  format dispatch table (S16_LE, S24_4LE, S32_LE), sub-block quantum
  processing (RTNR_BLK_LENGTH = 4), and internal FIFO queueing.
- Dual sampling rate operation: 16 kHz voice communications/AI path
  (speech core formant optimization, low MIPS) vs 48 kHz high-fidelity
  full audio bandwidth media capture path.
- Runtime configuration: dual IPC3/IPC4 parameter delivery, ALSA mixer
  switch control, preset blobs (ID 12345678) via comp_data_blob_handler,
  and zero-overhead bypass gate.
- Open-source CI stub (rtnr_stub.c, cir_buf_copy passthrough) vs
  commercial production LLEXT dynamic module packaging.
- End-to-end multi-stage capture audio pipeline: DMIC -> DC Blocker ->
  TDFB -> AEC -> RTNR -> Copier -> Host Recording & MFCC/TFLM AI.
- Seven native vector Graphviz SVG diagrams (Figures 188 through 194).
- Integrated into developer_guides/index.rst toctree and modules list.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Author a comprehensive, modern architectural guide for the Sound Open
Firmware (SOF) Key Phrase Buffer (KPB) and Wake-on-Voice (WoV) subsystem.

Key architectural concepts and sections:
- Low-power wake-on-voice principles: Host CPU deep sleep (ACPI S0ix /
  Modern Standby / S3 / S4) vs DSP autonomous D0ix listening.
- The Pre-Roll Dilemma: Acoustic keyword recognition latency and host
  resume latency, and how circular buffering prevents data loss of spoken
  activation commands.
- KPB Component State Machine: Ten lifecycle states covering creation,
  buffering, keyword trigger, accelerated draining, host copy hand-off,
  and reset.
- Circular History Ring Buffer: Linked-list buffer chaining, buffer sizing
  equations (sample width, channels, buffering duration), and backward
  read pointer calculation.
- Dual-Sink Architecture: Real-time selector sink (Pin 0) for on-DSP keyword
  spotters (TFLM/MFCC) with integrated microphone channel selection
  (MicSelector bitmask) vs host capture sink (Pin 1).
- Accelerated Burst Draining: Asynchronous draining task, synchronized
  pacing, dynamic interval adjustment (adjust_drain_interval) via DSP
  wall-clock cycles, and Fast Mode Task (FMT) execution.
- Event Notification Framework: IPC3 Notifier callbacks vs IPC4 Asynchronous
  Message Service (AMS) and ALSA DAPM control sequencing.
- End-to-End WoV Audio Pipeline: DMIC array, DC Blocker, KPB, Keyword Spotter,
  and Host DMA Copier with ALSA Topology 2 configuration.
- Seven native vector Graphviz SVG diagrams (Figures 195 through 201).
- Integrated into developer_guides/index.rst toctree and modules list.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…guide

Author a comprehensive, modern architectural guide for the Sound Open
Firmware (SOF) Tone Generator (Tone) subsystem.

Key architectural concepts and sections:
- Signal synthesis & diagnostic roles: Hostless audio pipeline bringup,
  THD+N & linearity calibration, acoustic transducer profiling, AEC
  zero-reference fallback, and automated manufacturing line screening.
- Mathematical foundations & fixed-point synthesis: Phase accumulator
  in Q4.28 format, Q16.16 frequency representation, Q1.31 pre-computed
  angular step coefficients, and 31-bit CORDIC sine calculation
  achieving >110 dB SFDR and <-105 dB THD without floating-point units.
- Envelope & sweep modulation dynamics: 125-microsecond sub-block
  quantization, anti-click phase reset at zero amplitude, linear
  attack/sustain/decay ramping, and logarithmic frequency/amplitude
  sweeping with Q2.30 scale multipliers.
- Tri-mode operational engine: TONE_MODE_TONEGEN (autonomous generator
  when nb_input_pins == 0), TONE_MODE_PASSTHROUGH (zero-overhead copy
  when bound as sink), and TONE_MODE_SILENCE (clean zero-fill AEC
  reference stream when uncoupled or in capture direction).
- Multi-channel architecture: Independent struct tone_state instances
  per channel supporting stereo separation, phase-inversion testing,
  and selective channel muting.
- Runtime control & parameter delivery: IPC3 enumerated controls (indices
  0-7) vs IPC4 base module configuration and LLEXT dynamic module
  packaging (SOF_LLEXT_MODULE_MANIFEST).
- Bringup & testbench runbook: Topology 1 M4 macro (W_TONE), ALSA control
  command sequences, and closed-loop host loopback verification via
  ESP32-P4 and Teensy 4.1 audio bridges.
- Seven native vector Graphviz SVG diagrams (Figures 202 through 208).
- Integrated into developer_guides/index.rst toctree and modules list.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…uide

Author a comprehensive, modern architectural guide for the Sound Open
Firmware (SOF) Up/Down Channel Mixer (up_down_mixer) subsystem.

Key topics covered:
- Spatial acoustic conversion across Mono, Stereo, 2.1, 3.0, 3.1, Quatro (4.0 surround), 4.0 (L/C/R/Cs), 5.0, 5.1, and 7.1.
- Architectural comparison with Mixin/Mixout, Selector, and Copier.
- ITU-R BS.775 standard downmixing formulation and mathematical derivation of headroom-scaled anti-clipping coefficients (1/(1+sqrt(2)) ≈ 0.4142).
- Half-scaled coefficients for 3.0/3.1 and Quatro-to-Mono fold-down.
- 32-bit (Q1.31) and 16-bit (Q1.15) pre-computed fixed-point tables.
- 32-bit channel_map format with 4-bit nibble encoding and dynamic slot resolution.
- Mono/Stereo to 5.1 and 7.1 upmixing engines with side-channel fallback.
- Tensilica HiFi3/HiFi4 SIMD vector acceleration: Vector coefficient packing via AE_SEL32_LL saving 3 registers to overcome the 8-register constraint, pipelined AE_L32_IP, AE_MULF32S_LH, AE_MULAF32S_LH, and 64-to-32-bit symmetric rounding.
- IPC4 module interface (struct ipc4_up_down_mixer_module_cfg) with 4 coefficient selection modes.
- Intel platform performance profiles (MTL, LNL, PTL).
- ALSA Topology 2 widget definition and end-to-end 5.1 downmixing playback pipeline.
- Automated audio quality verification runbook.
- 7 native vector Graphviz SVG diagrams (Figures 209-215).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Author a comprehensive, modern architectural guide for the Sound Open
Firmware (SOF) Aria (Automatic Regressive Input Amplifier) subsystem.

Key topics covered:
- Intelligent dynamic range pre-amplification and peak-limiting amplifier design.
- Mathematical derivation of input headroom threshold (A_thresh = A_FS / 2^att) and regressive back-off factor (g = A_FS * 2^31 / (max_data * 2^att)) guaranteeing 0 dBFS peak clamping without clipping.
- Target pre-amplification modes (0, +6, +12, +18 dB) across att parameter (0, 1, 2, 3).
- 1 ms lookahead circular delay buffer and phased execution cycle maintaining invariant 1 ms latency across active and bypass modes.
- 10-state sliding gain tracking table (sof_aria_index_tab), lookahead minimum-envelope follower, and continuous per-sample linear interpolation eliminating zipper noise.
- Tensilica HiFi3/HiFi4 SIMD vectorization with single-cycle AE_MAXABS32S, odd/even channel specialization, and symmetric rounding (AE_ROUND24X2F48SSYM).
- Tensilica HiFi5 hardware circular addressing registers (AE_SETCBEGIN0/1, AE_SETCEND0/1, AE_L32X2_XC, AE_S32X2_XC1) and 128-bit vector pipelines.
- IPC4 module interface (struct ipc4_aria_module_cfg), runtime control (ARIA_SET_ATTENUATION), and Zephyr Loadable Linkable Extension (LLEXT) dynamic ELF packaging.
- Platform performance profiles (aria.toml) and ALSA Topology 2 widget definition and pipeline graph.
- Engineering verification and factory bringup runbook.
- 7 native vector Graphviz SVG diagrams (Figures 216-222).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…e guide

Author a comprehensive, modern architectural guide for the Sound Open
Firmware (SOF) Level Multiplier subsystem.

Key topics covered:
- Ultra-low-latency, zero-overhead digital linear gain and attenuation component architecture.
- Q9.23 fixed-point number system (9 integer bits, 23 fractional bits) covering dynamic range from -138.47 dB to +48.17 dB with 1.19e-7 quantization resolution.
- Dynamic range extremes, decibel-to-linear conversion formula, and unity gain definition (LEVEL_MULTIPLIER_GAIN_ONE = 0x00800000).
- Universal PCM frame format support: 16-bit (SOF_IPC_FRAME_S16_LE), 24-bit (SOF_IPC_FRAME_S24_4LE), and 32-bit (SOF_IPC_FRAME_S32_LE) with unified 23-bit right-shift constant.
- Ring buffer wrap segmentation algorithm for contiguous sample processing.
- Zero-overhead fast-path bypass: direct memory block copy (source_to_sink_copy) at unity gain (0 dB), eliminating arithmetic multiplication loops and conserving active DSP cycles.
- Tensilica HiFi3/HiFi4 SIMD vectorization with dual 64-bit vector registers, 16-bit parallel load/multiplication (AE_LA16X4_IP, AE_MULFP32X16X2RS_H/L), and symmetric rounding (AE_ROUND16X4F32SSYM).
- Tensilica HiFi5 128-bit vector pipelines: octal 16-bit (AE_LA16X4X2_IP, AE_MULF2P32X16X4RS) and quad 32-bit (AE_LA32X2X2_IP, AE_MULF2P32X4RS) SIMD MAC acceleration.
- IPC4 modular interface (level_multiplier_set_config), Zephyr Loadable Linkable Extension (LLEXT) dynamic packaging (level_multiplier.llext), and UUID registration.
- Platform performance profiles (level_multiplier.toml), ALSA Topology 2 widget definition, and Octave/MATLAB blob generation script (sof_level_multiplier_blobs.m).
- Factory bringup, precision linearity and gain accuracy test runbook.
- 7 native vector Graphviz SVG diagrams (Figures 223-229).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…uide

Author a comprehensive, modern architectural guide for the Sound Open
Firmware (SOF) Phase Vocoder subsystem.

Key topics covered:
- Real-time frequency-domain Time-Scale Modification (TSM) architecture spanning 0.5x to 2.0x playback speed without pitch shifting.
- Short-Time Fourier Transform (STFT) analysis & Overlap-Add (OLA) synthesis: rectangular, Blackman, Hamming, and Hann windows; Constant Overlap-Add (COLA) conditions; power-of-two frame sizing (256, 512, 1024) and hop geometry.
- Exact reconstructive window gain compensation (g_comp = R_a / sum(w[n]^2)) in 32-bit Q1.31 format ensuring unity gain (0 dBFS) reconstruction.
- Polar domain coordinate transformation (Q2.30 magnitude, Q5.27 phase angle), modulo-2pi phase unwrapping (unwrap_angle_q27), and continuous synthesis phase accumulation preventing comb filtering, tremolo, and phasiness.
- Variable playback speed engine: 32-bit signed fixed-point Q3.29 format, ALSA discrete 16-step enum control grid (0.5x to 2.0x in 0.1x steps), and dual-domain linear interpolation across magnitude and phase deltas.
- Exact Greatest-Common-Divisor (GCD) frame counter normalization (phase_vocoder_normalize_counters) preventing 32-bit counter overflow during indefinite streaming without timeline fraction drift.
- Interactive transient-preserving phase re-anchoring state machine (phase_vocoder_reset_for_new_speed) avoiding cold-start reset, volume drop, and transient smearing during live tempo adjustments.
- Multi-channel processing and Mono Downmix Optimization (mono_mix_coef = 2^31 / stream_channels) slashing DSP cycles and memory footprint by up to 75%.
- Universal PCM frame format support (S16_LE, S24_4LE, S32_LE) and zero-overhead bypass fast-path (source_to_sink_copy).
- IPC4 runtime configuration handler, Zephyr LLEXT dynamic module packaging (phase_vocoder.llext), component UUID registration, and ALSA Topology 2 graph.
- Factory bringup runbook, GNU Octave offline blob generation (setup_phase_vocoder.m), testbench automated verification scripts (phase_vocoder_s16.sh, phase_vocoder_s32.sh), and acoustic pitch invariance validation.
- 7 native vector Graphviz SVG diagrams (Figures 230-236).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Author an in-depth, authoritative architectural and developer guide for
the SOF Short-Time Fourier Transform (STFT) Process subsystem:
- Mathematical formulation: discrete STFT/iSTFT, convolution theorem,
  and frequency-domain filtering vs time-domain filters and phase vocoder.
- Ring buffer ingress/egress, framing geometry, and hop sizing.
- Five configurable window profiles (Rectangular, Blackman, Hamming,
  Hann, and Kaldi-compatible Povey) with COLA condition and exact
  Q1.31 synthesis gain compensation.
- Dual-domain Cartesian complex vs polar magnitude/phase processing
  with conjugate Hermitian symmetry restoration.
- Single contiguous memory allocation and zero-copy polar buffer overlay.
- Cadence Tensilica HiFi3 SIMD vectorization (AE_MULFP32X2RS, AE_MULAFP32X2RS).
- Intel IPC4 64-byte configuration blob, Zephyr LLEXT packaging, and
  ALSA Topology 2 graph integration.
- Factory bringup runbook: Octave blob synthesis, standalone testbench,
  and acoustic linearity validation.
- 7 native vector Graphviz SVG architecture diagrams (Figures 237-243).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Author an in-depth, authoritative architectural and developer guide for
the SOF Media Codecs: Audio Encoders & Decoders subsystem:
- Architectural foundations: DSP compress-offload, host CPU C10/D3 deep sleep
  residency, deep buffer DMA, and low-power audio pipeline comparison.
- Cadence Xtensa Audio (XA) API standard and lifecycle state machine:
  size query, pre/post-config, memory negotiation, and execution protocol.
- Standard memory management: 4 XA memory classes (PERSIST, SCRATCH,
  INPUT, OUTPUT), two-phase allocation, and circular buffer linearization.
- Supported codecs: MP3 dec/enc (1152 samples), AAC ADTS dec (1024 samples),
  Vorbis, SBC, in-tree PCM reference (xa_pcm_dec.c with EOS safety counter),
  and DTS Audio spatializer integration (dts.c).
- Control plane integration: legacy IPC3 snd_codec vs modern IPC4 unified
  module architecture, DP scheduling domain, and asynchronous unsolicited
  compress EOS notifications (SOF_IPC4_NOTIFY_MODULE_EVENTID_COMPR_MAGIC_VAL).
- ALSA Topology 2 deep-buffer pipeline graph: decoder.conf, encoder.conf,
  compr-playback.conf, format adaptors, and mixin lp_mode 1.
- Factory bringup runbook: tinycompress (cplay, crecord), capabilities query,
  turbostat C10 power telemetry verification, and testbench validation.
- 7 native vector Graphviz SVG architecture diagrams (Figures 244-250).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…odernization

Modernize and significantly expand the Rimage developer documentation
to establish an authoritative, deeply technical reference for firmware
packaging, cryptographic signing, and hardware boot handshakes:

- Author comprehensive developer_guides/rimage/index.rst covering:
  * Dual implementations: production C99 toolchain (tools/rimage/) and
    the upstream Rust port (thesofproject/rimage).
  * Byte-level binary image layout (.ri) from offset 0x0000 to EOF,
    covering XMan, CSE (), CSS (), Signed Pkg metadata,
    Firmware Descriptor (), and Module Table ().
  * Platform memory matrix comparing cAVS (1.5, 1.8, 2.5) and ACE
    (1.5, 2.0, 3.0) addressing, cached/uncached SRAM aliases, IMR
    staging windows, L2 cache bypass, and alignment rules.
  * Dual cryptographic signing workflows (native RSA PKCS#1 v1.5 vs
    Intel MEU/HSM) and Silicon Root-of-Trust (RoT) eFuse authentication.
  * Zephyr LLEXT dynamic module packaging (-l).
  * Declarative TOML configuration (platform-*.toml and *.toml.h).
  * Complete CLI reference, CMake/west integration, and troubleshooting
    matrix with hexdump and readelf diagnostic recipes.
- Rewrite developer_guides/rimage/extended_manifest.rst into an
  in-depth architectural specification of the Extended Manifest (XMan),
  documenting header invariants, all element types (0 through 6),
  alignment constraints (EXT_MAN_ALIGN = 16), Linux kernel host driver
  handshake flow (loader.c), and step-by-step element extension guide.
- Replace legacy PlantUML .pu diagrams with 5 publication-quality
  native vector SVG diagrams:
  * rimage_pipeline_architecture.svg (5-stage packaging pipeline)
  * rimage_binary_layout.svg (byte-level binary layout)
  * rimage_extended_manifest_handshake.svg (XMan element taxonomy & handshake)
  * rimage_crypto_signing_flow.svg (signing workflows & hardware RoT)
  * rimage_platform_memory_matrix.svg (cAVS vs ACE memory & virtual addressing)

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Elevate developer_guides/firmware/hostless_firmware.rst into an authoritative
technical reference for hostless embedded firmware operation.

Key additions and updates:
- Host-driven vs hostless paradigm comparative matrix.
- Detailed static topology architecture with C structures (sof_static_topology,
  sof_static_comp, sof_static_buffer, sof_static_route, sof_static_kcontrol)
  and static_pipeline_loader initialization flow.
- Supported platform architectural breakdown covering Teensy 4.1 (i.MX RT1062,
  Audio PLL4, SAI1, S/PDIF), ESP32-P4 (dual RISC-V @ 400 MHz, FPU/SIMD,
  High-Speed USB UAC2), and ESP32-C6 (wireless coprocessor bridge).
- Digital endpoint subsystem integration for USB Audio Class 2.0 (UAC2) with
  asynchronous rate feedback and Feature Unit binding, plus Bluetooth LE Audio
  and Auracast streaming.
- Clocking topologies and hardware test bridges across Clock Provider, Clock
  Consumer, and DMIC injector modes, with Header J1 cross-jumper interconnect
  wiring table for Pallas/Ceres loopback testing.
- Zephyr interactive shell command reference and terminal session walk-through.
- 5-step tutorial for authoring custom static topologies in C and Kconfig.
- Troubleshooting matrix and terminal diagnostic recipes.
- Three vector SVG diagrams: hostless_system_architecture.svg (Fig 218),
  hostless_static_pipeline_graph.svg (Fig 219), and
  hostless_clocking_audio_bridges.svg (Fig 220).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Elevate developer_guides/linux_driver/architecture.rst into an authoritative
technical reference for the Sound Open Firmware Linux kernel driver subsystem.

Key technical additions and coverage:
- Layered system architectural hierarchy from user-space daemons (PipeWire,
  PulseAudio, ALSA lib, UCM2) through ALSA Core/ASoC, SOF Core, IPC protocols,
  platform DSP drivers, and physical hardware buses.
- Subsystem responsibility matrix (Table 44).
- Core device registration, struct snd_sof_dev, Extended Manifest parsing,
  firmware downloading, and DSP boot notification flow.
- Dynamic PCM (DPCM) Front-End and Back-End decoupling, full ALSA PCM
  stream operations lifecycle (Table 46), and sub-microsecond position
  reporting (hardware DMA position vs DSP Linear Link Position).
- Inter-Processor Communication (IPC) subsystem architecture comparing
  Classic IPC3 (fixed-envelope SRAM mailboxes) against Modern IPC4 (64-bit
  bitpacked register envelopes) in Table 45, with unified driver transaction
  lifecycle, completion waitqueues, and timeout watchdog recovery.
- Dynamic topology parsing (topology.c) translating ALSA binary topology
  (.tplg) into DSP runtime component pipelines, ring buffers, and kcontrols.
- Dual-axis power management state machine (pm.c) detailing transitions
  across D0, D0ix (autonomous active idle with WAITI clock gating), D3hot
  (runtime suspend), and D3cold (system suspend S0ix/S3 with LLEXT DRAM staging).
- Modular auxiliary client driver framework (sof-client.c, snd_sof_client_dev)
  covering probes/tracing (snd-sof-probes.ko), dynamic LLEXT module injection
  (snd-sof-llext-load.ko), remote GDB stub, and IPC injectors.
- Platform DSP operations abstraction (struct snd_sof_dsp_ops) and platform
  dispatch matrix (Table 47) across Intel cAVS/ACE, NXP i.MX, and AMD ACP.
- Debugfs telemetry hierarchy (/sys/kernel/debug/sof/), ftrace events,
  troubleshooting matrix (Table 48), and terminal diagnostic recipes.
- Three custom vector SVG diagrams: driver_layered_architecture.svg,
  driver_ipc_lifecycle_flow.svg, and driver_pcm_power_state_machine.svg.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Remove the obsolete third-party feature pages under
developer_guides/linux_driver/third_party/ and the VirtIO virtualization
guides under developer_guides/virtualization/. Clean up parent toctrees,
cross-references in developer_guides/index.rst, and woke configuration.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…r guide

Comprehensive modernization of the ALSA Topology 2.0 developer guide:
- Complete language primitive specification: Classes, Objects, Attributes,
  Qualifiers (!constructor, !mandatory, !immutable, unique), Constraints,
  Arguments (@Args), and Conditional Includes (IncludeByKey, Define).
- Decoupled Front-End (PCM) and Back-End (DAI) pipeline architecture with
  mixin/mixout dynamic routing and dynamic index resolution.
- Standardized PCM ID and Pipeline ID allocation conventions (SoundWire
  stride-10 rule and HDMI stride-10 patterns).
- Detailed 5-step developer tutorials for:
  1) Creating a new module (widget/component)
  2) Creating a new pipeline template
  3) Adding a new silicon platform
- Deep dive on Split Topologies: Functional Topologies (single-function
  hardware endpoint graphs) vs Feature Topologies (orthogonal DSP feature
  overlays) and dynamic kernel assembly (sof-function-topology-lib.c).
- Four high-resolution dark-themed publication-grade SVG diagrams.
- Building, decompiling (alsatplg -P), and DUT diagnostic recipes.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Comprehensively update and expand the ktest developer guide to match the
publication standards of the SOF documentation suite:
- Modernize introduction and architecture overview for SOF kernel testing
- Add 2 native dark-themed SVGs: automated testing loop architecture and
  automated regression bisection workflow
- Detail complete target setup: ed25519 SSH keys, GRUB2 saved_entry and
  grub-reboot boot-once fail-safe lifecycle, and BLS support
- Provide Git worktrees workflow for multi-DUT and multi-branch testing
- Include complete production-grade ktest.conf and directive reference table
- Provide a robust automated audio smoke test script (test_sof_audio.sh)
  validating DSP firmware boot, ALSA cards, PCM playback, and dmesg guards
- Detail automated regression bisection (TEST_TYPE = bisect, BISECT_TYPE = git)
- Include network boot (PXE/TFTP/NFS) and hardware relay power control
- Add comprehensive troubleshooting and maintenance runbook
- Pass strict Sphinx build (-W --keep-going) and woke inclusive language checks

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Comprehensively overhaul and expand the unit testing developer guide:
- Document the 5-tier firmware verification hierarchy comparing Ztest,
  Host Testbench, QEMU simulation, hardware loopbacks, and ktest
- Add 2 native dark-themed SVGs: Ztest & Twister architecture and Ztest v3
  suite execution fixture lifecycle flow
- Detail Ztest v3 fixture hooks: suite_setup, test_before, test_after,
  suite_teardown, and comprehensive assertion macros
- Document Fake Function Framework (FFF) hardware and subsystem mocking
- Complete testcase.yaml configuration specification and directive table
- Comprehensive Twister CLI execution recipes, filtering, and options
- Detail Gcov/lcov code coverage, AddressSanitizer (ASan), and Valgrind
- Provide 3 step-by-step developer tutorials: core math routine suite,
  audio component test with mocked pipeline, and interactive GDB debugging
- Include legacy CMocka to Ztest v3 migration mapping table
- Pass strict Sphinx build (-W --keep-going) and woke inclusive language checks

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Comprehensively modernize and expand the Hardware Audio Loopback
Verification guide in developer_guides/testing/hardware_loopback.rst.

- Document physical silicon verification rationale, bridging host
  automated test runners to target DUTs via embedded microcontrollers.
- Detail 5-tier hardware loopback system architecture with custom SVG diagram
  (developer_guides/testing/images/hardware_loopback_system_architecture.svg).
- Provide complete hardware wiring and pinout specifications for ESP32-P4
  (Pallas Provider Tx to Ceres Consumer Rx 7-wire J1 header cross-connect,
  Spider I2S0 40-pin header mapping, Aphid PDM DMIC capture injector).
- Document Teensy 4.1 Audio Bridge (NXP i.MX RT1062, Audio PLL4 688.128 MHz,
  fast slew S/PDIF BMC on Pins 14/15, SAI1 I2S).
- Add persistent /dev/serial/by-id/ device mapping table and explicit
  safety isolation instructions for /dev/ttyACM1 power relay controller.
- Explain Clock Provider vs Clock Consumer roles with custom SVG diagram
  (developer_guides/testing/images/hardware_loopback_clocking_modes.svg),
  Philips I2S bit-alignment timing waveforms, TDM-8 slot allocation,
  and PDM dual-microphone edge multiplexing.
- Include multi-rate, multi-format, multi-channel verification matrix
  (I2S, TDM, PDM, S/PDIF across 16 kHz to 384 kHz).
- Detail automated test runners (test_p4_loopback.py, test_teensy_loopback.py,
  and capmat capture matrix) with mandatory pre-commit policies.
- Formulate acoustic analysis algorithms (FFT dominant tone detection,
  SNR, THD+N, and bit-exact differential testing).
- Cover Saleae Logic Pro 8 high-speed bus analysis with saleae-tool CLI
  and Python automation scripts with I2S protocol decoder.
- Add comprehensive hardware troubleshooting and diagnostic matrix.
- Ensure strict compliance with rules-woke.yaml (0 non-inclusive terms).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Comprehensively modernize, rewrite, and expand the SOF Host Audio
Pipeline Testbench documentation suite under developer_guides/testbench/:
- Modernize index.rst into an authoritative master architecture and user
  manual covering offline simulation, dual IPC4/IPC3 execution engines,
  fast offline audio processing, dynamic control scripting, and cycle-
  accurate Xtensa simulation.
- Rewrite build_testbench.rst with scripts/rebuild-testbench.sh, CMake,
  host-testbench.sh, sof-testbench-helper.sh, and Xtensa targets (-p mtl).
- Overhaul debug_in_testbench.rst with GDB/LLDB component lifecycle hooks,
  circular audio buffer inspection, Valgrind, sanitizers, and xt-gprof.
- Rewrite prepare_new_component.rst replacing obsolete 2018 hardcoded UUID
  tables and m4 macros with modern Module Adapter API and Topology 2.0.
- Overhaul test_audio_quality.rst with AES17 electroacoustic validation,
  GNU Octave process_test.m, chirp spectrograms, and CI automation.
- Author two native dark-themed SVGs: testbench_system_architecture.svg
  (Figure 316) and testbench_pipeline_execution_flow.svg (Figure 317).
- Full compliance with rules-woke.yaml (0 infractions).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…ication guide

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…curity guide

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
In Figure 327 (fuzzing_architecture_overview.svg) and Figure 325
(xtrun_system_architecture.svg), horizontal and vertical sub-cards
were offset while their internal <text> elements retained local
coordinate origins without enclosing translate groups, causing text
from multiple cards to overlap in the top/leftmost box.

Wrap each sub-card in dedicated <g transform="translate(...)"> groups
with local origins, cleanly separating all cards across:
- Figure 327: Section 1 input mutators, Section 2 libFuzzer/AFL++
  engines, and Section 3 sanitizers/triage pipelines.
- Figure 325: Section 1 CLI/orchestrator tools, Section 2 core
  descriptors/LSP, Section 3 memory hierarchy, and Section 4 backends.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…ll guides

Comprehensively modernize the SOF debugability and telemetry documentation suite:
- Overhaul master debugability portal with tool comparison matrix and diagnostic decision tree.
- Detail DSP trace architecture, smex token dictionary (.ldc), DMA buffer, debugfs, sof-logger, and TCP probe server (Figure 329).
- Modernize coredump post-mortem debugging for Zephyr RTOS (CONFIG_DEBUG_COREDUMP, Intel ADSP memory window backend, coredump_gdbserver.py, and GDB analysis) (Figure 330).
- Deep-dive dynamic audio buffer probes, injection/extraction, crecord compress capture, probe server :9999, and differential acoustic analysis (Figure 331).
- Document interactive in-memory Zephyr shell (CONFIG_SHELL_BACKEND_ADSP_MEMORY_WINDOW, cavstool.py terminal bridge, thread/stack analysis, D0ix/D3 resilience).
- Update hardware performance counters guide (Xtensa CCOUNT, MCPS calculation formula, pipeline budgeting).
- Expand firmware binary manifest guide ($CPD, $AM1, $AME, $AE1, XMan, Intel signing certificates).
- Enforce strict SVG coordinate grouping (<g transform='translate(...)'>) across all diagrams.
- Clean audit against rules-woke.yaml (0 infractions).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Comprehensively modernize the SOF UUID developer guide:
- Document architectural rationale: ABI fragility, 8-way combination matrix, enum collisions, and dynamic LLEXT module support.
- Detail the end-to-end subsystem lifecycle across Specification/Registry, Firmware Core/Linker Placement, Topology/Host Kernel Driver, and Telemetry/Logger tiers (Figure 332).
- Formulate wire format translation and little-endian word swap rules from RFC 4122 canonical string to memory bytes and Topology 2 tokens (Figure 333).
- Document the global registry (uuid-registry.txt), gen-uuid-reg.py, and automated module allocation with sdk-create-module.py.
- Explain Zephyr RTOS iterable sections (STRUCT_SECTION_ITERABLE in .rodata) and garbage collection of unused UUIDs.
- Detail ALSA Topology 2.0 (.conf) token syntax (DefineAttribute.uuid, comp.uuid, SOF_TKN_COMP_UUID).
- Detail host kernel parsing (ipc*-topology.c) and on-demand dynamic module loading (ipc4-loader.c with %pUL.bin).
- Cover smex dictionary extraction (.static_uuid_entries), compact 32-bit trace DMA pointers, and live sof-logger decoding.
- Provide step-by-step developer checklist and troubleshooting runbook.
- Clean audit against rules-woke.yaml (0 infractions).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…bility subsection toctree

Align the DSP telemetry and diagnostic documentation with the other Developer Guides pillars:
- Expand Section 6 (DSP Telemetry, Logging & Diagnostics) in developer_guides/index.rst into four functional categories with annotated descriptions and references.
- Configure direct toctree entries for all telemetry, coredump, probes, shell, performance counters, ri-info, and uuid subsystem guides.
- Remove the redundant Subsystem Developer Guides section and nested toctree from developer_guides/debugability/index.rst, replacing it with clean cross-references.
- Clean audit against rules-woke.yaml (0 infractions).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…links

- Configure :hidden: on the Section 6 .. toctree:: directive in developer_guides/index.rst.
- Eliminates redundant bulleted document link list rendered directly beneath the annotated subsections while preserving sidebar navigation hierarchy.
- Clean audit against rules-woke.yaml (0 infractions).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
- Replace specific DUT hostnames (Spider, Aphid, Dragon Fly) with generalized target DUT references (<dut>, Target DUT).
- Reframe specific board GPIO wiring and pinout tables as concrete reference examples.
- Update SVG system diagrams and platform YAML matrices.
- Preserve legitimate electro-acoustic loudspeaker suspension terminology in tuning guides.
- Clean audit against rules-woke.yaml (0 infractions).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
- Generalize loopback test script references (test_p4_loopback.py, test_teensy_loopback.py) to generic test runners and standard ALSA utilities.
- Reframe J1 loopback wiring tables as illustrative examples, replacing private board names (Pallas, Ceres) with generic bridge card designations.
- Generalize SVG system architecture and clocking diagrams.
- Clean up lingering hardcoded user paths in ktest, stft_process, and phase_vocoder guides.
- Clean audit against rules-woke.yaml (0 infractions).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
… and ESP32-P4

- Add prominent hardware warning and pinout table showing 1.8V to 3.3V bidirectional level translation between Panther Lake and ESP32-P4.
- Update hostless clock consumer mode notes and hardware loopback architecture SVG.
- Clean audit against rules-woke.yaml (0 infractions) and strict Sphinx build (0 warnings/errors).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
- Remove Saleae Logic Pro 8 High-Speed Bus Analysis section from hardware_loopback.rst.
- Generalize instrumentation, timing, and troubleshooting checks across loopback and dmic tuning guides.
- Update hardware loopback system architecture SVG to highlight power telemetry and remote relay control.
- Verify 0 saleae occurrences remain across documentation repository.
- Comply with rules-woke.yaml (0 infractions) and pass strict Sphinx build.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
- Clarify Cadence Xtensa tools as the production default for Xtensa DSP targets.
- Document Zephyr SDK compiling compliant binaries without Xtensa SIMD.
- Document experimental LLVM/Clang compiling HiFi for Xtensa SIMD with mandatory IAS.
- Provide explicit environment setup and build commands (west and xtensa-build-zephyr.py) for each toolchain.
- Update CMake build pipeline architecture SVG to match the 3-toolchain hierarchy.
- Pass strict Sphinx build (0 warnings/errors) and audit against rules-woke.yaml (0 infractions).

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Update parse_fw_version regex in generate_matrices.py to match 'SOF Version v...'
as formatted in the v2026.09 release body on GitHub. Update cached release data
and installation guide download example to reflect firmware v2.15.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
- Sanitize non-inclusive terms in developer guides, diagrams, and testbench documentation.
- Replace c code-block with text in rimage toml.h excerpt to resolve Pygments token failure.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
@lgirdwood
lgirdwood merged commit 870f458 into thesofproject:master Sep 20, 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