docs: developer_guides: add how-to guide on creating and integrating audio modules - #530
Merged
lgirdwood merged 1 commit intoSep 20, 2026
Conversation
…audio modules Add a comprehensive, step-by-step developer how-to guide under Section 1 (Firmware Development) detailing the complete lifecycle for creating a new audio processing module or integrating third-party algorithms into Sound Open Firmware: - Directory structure, file taxonomy, and standard module file roles. - struct module_interface lifecycle callbacks (init, prepare, process, set_configuration, get_configuration, reset, free) and state machine. - RFC 4122 UUID generation, uuid-registry.txt integration, and critical little-endian word-swapping rules required for ALSA Topology 2.0 / IPC4. - DSP memory tiering, __cold attribute placement, assert_can_be_cold(), and strict zero-allocation rules in real-time audio paths. - Hardware SIMD vector alignment across Tensilica HiFi3/4/5, ARM Helium/Neon, and RISC-V, mod_balloc_align(), and alignment exception prevention. - Kconfig definitions, CMakeLists.txt dispatch (in-tree vs dynamic LLEXT), and 3-toolchain compatibility (Cadence, Zephyr SDK, LLVM with IAS). - ALSA Topology 2.0 component widget definitions and mixer/byte controls. - Offline pipeline simulation with Host Testbench, dynamic control scripts, and memory leak validation with Valgrind. - Cycle-accurate DSP simulation with Cadence xt-run and call-graph profiling with xt-gprof for MCPS budget calculations. - Target firmware compilation, deployable staging, filesystem transfer, and Linux kernel driver reloading. - Includes high-resolution SVG diagrams for the engineering lifecycle and runtime module lifecycle state machine. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
lgirdwood
requested review from
deb-intel,
intelkevinputnam,
mmaka1 and
mwasko
as code owners
September 20, 2026 15:16
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.
Description
This PR adds a comprehensive, step-by-step developer How-To guide under Section 1 (Firmware Development) detailing the full lifecycle for creating a new audio processing module or integrating third-party algorithms into Sound Open Firmware.
Key Coverage & Topics:
<module>.h,<module>.c,<module>-generic.c,<module>-ipc4.c,<module>.toml,CMakeLists.txt,Kconfig, andllext/).struct module_interfacecallbacks (init,prepare,process,set_configuration,get_configuration,reset,free).uuid-registry.txt, and critical little-endian word-swapping rules for ALSA Topology 2.0 / IPC4 wire protocol.__coldon initialization and teardown routines,assert_can_be_cold(), and strict zero-allocation rules in real-time audio paths.mod_balloc_align(), avoiding alignment exceptions.alsatplg.-s controls.sh), and Valgrind memory leak verification.xt-gprof.--deployable-build, filesystem staging, driver reload, and live ALSA verification.Verification:
woke -c rules-woke.yaml: 0 findingssphinx-build -b html -W --keep-going: 0 warnings, 0 errorsSigned-off-by: Liam Girdwood liam.r.girdwood@linux.intel.com