v2.13
The SOF technical steering committee is pleased to announce the v2.13 release of SOF.
Signed binaries for selected platforms will be released at https://github.com/thesofproject/sof-bin/releases (sof-bin-2025.05).
🚀 Platform Support
- Intel Panther Lake (PTL):
- Full platform and topology support added.
- Intel Wildcat Lake (WCL):
- Initial support introduced with basic topology integration.
- NXP EAP (Essential Audio Processing):
- Support added for NXP’s EAP software library for advanced audio enhancement features.
🧱 Architecture & Topology
- Topology2 Enhancements:
- New topologies for AMD ACP7.0, Intel PTL/WCL/LNL/MTL and NXP i.MX8MP
- Expanded support for SoundWire codecs and multi-channel audio.
- Pipeline 2.0:
- Refactored components to use API-based access.
- Improved modularity and maintainability of audio pipelines.
🧠 DSP & Audio Processing
- HIFI4/HIFI5 Optimizations:
- Performance improvements for IIR, FIR, and DRC components.
- Reduced memory usage and improved runtime efficiency.
- NXP EAP Integration:
- Adds support for EAP audio effects such as EQ, bass boost, loudness, and more.
🧪 Debugging & Testing
- Telemetry & Trace:
- Enhanced performance monitoring tools.
- Improved trace handling in 64-bit POSIX builds.
- Bug Fixes:
- Improved IPC3 fuzz testing stability.
📦 Loadable Module (LLEXT) Support
- Continued expansion of dynamic module loading.
- Better support for modular firmware updates and customization.
🧹 Zephyr RTOS Integration
- Replaced legacy headers with Zephyr-native abstractions.
- Cleaned up DMA and clock interfaces for better portability.
What's Changed
- ring_buffer: Increase buffer size to prevent a DP module starvation by @softwarecki in #9724
- split lib/dma.h and start namespacing with DMA_ by @kv2019i in #9719
- crossover: use audio_stream_copy for passthrough by @johnylin76 in #9726
- west.yml: update Zephyr to 36517253160 by @LaurentiuM1234 in #9727
- Tools: Topology2: Fix DMIC TDFB blob in sof-lnl-cs42l43-l0-2ch by @singalsu in #9733
- PTL: add build testing (includes Zephyr west.yml update) by @lyakh in #9732
- Misc. Zephyrization fixups by @andyross in #9731
- [stable-v2.12] versions.json: set version to 2.12.0 by @kv2019i in #9745
- rimage: fix resource leak by @abonislawski in #9747
- Tools: Tplg2: cavs-sdw: Enable speaker and microphone processing by @singalsu in #9734
- versions.json: set version to 2.12.99 by @kv2019i in #9746
- Scripts: Add script to rebuild all configuration blobs for processing by @singalsu in #9751
- treewide: zephyr: add sof_ prefix to dma_get/put() by @kv2019i in #9753
- west.yml: update zephyr to 42701fdb272 by @tmleman in #9761
- Switch to native Zephyr support for imx8MP by @dbaluta in #9608
- [SKIP SOF-TEST] github: free some disc space by @lyakh in #9766
- src/platform: Add "mtk" Zephyr platform for MediaTek DSPs by @andyross in #9755
- support "cold" data and code by @lyakh in #9754
- zephyr: fix overflow and overlap checks in memcpy_s by @tmleman in #9769
- README.md: update Discord channel instructions by @DaveLak in #9762
- LLEXT: build libraries by @lyakh in #9702
- lib_manager: clean up logging by @lyakh in #9767
- audio: chain_dma: fix incorrect format specifier for error codes by @tmleman in #9774
- Mediatek: mt8196: add platform/core_config/build_config by @hailong-fan in #9758
- waves: add support for IPC4 compilation, including as LLEXT by @lyakh in #9775
- Audio: Tune: Cleanup for the setup scripts for audio processing components by @singalsu in #9749
- Mediatek: mt8196: add platform/afe driver and force enable DRAM cache by @yefei-a in #9778
- regions_mm: vmh_free: Prevent null pointer dereference by @softwarecki in #9776
- ipc4: Simplify ipc response sending memory allocations by @softwarecki in #9777
- tools: topology1: imx8mp: Switch to time domain timer by @dbaluta in #9782
- topology2: cavs-nocodec-bt: add Intel PTL support by @kv2019i in #9781
- topology2: Update deep buffer and BT offload for ptl rt722 topology by @udaymb in #9785
- topology2: add sof-lnl-cs42l43-l0-cs35l56-l23-2ch by @bardliao in #9770
- mt8196: add xtos/zephyr config overlay and topology for waves by @johnylin76 in #9789
- Tools: Topology2: Add build of 1ch DMIC topologies by @singalsu in #9763
- zephyr: enable HIFI_SHARING if DP scheduler is enabled with HIFI by @kv2019i in #9644
- Scripts: Fix path in script sof-testbench-build-profile.sh by @singalsu in #9794
- ipc4: mixin: Fix HiFi3 impl of 24-bit mixing by @serhiy-katsyuba-intel in #9792
- DRAM data by @lyakh in #9721
- [SKIP CI] .github/zephyr: simplify and fix the git describe performance hack by @marc-hb in #9801
- rimage: manifest: uuid: llext: Get loadable module UUID from uuid-registry and unify module manifest uuid type by @softwarecki in #9793
- Audio: Crossover / Multiband DRC: Change to HiFi4 and HiFi5 optimized IIR DF1 core type by @singalsu in #9806
- ipc: move delayed IPC sending to the primary core by @lyakh in #9764
- lib: dai: Fix dai_get_device by @dbaluta in #9807
- ipc4: mixin: Improve HiFi3 mix with gain impl by @serhiy-katsyuba-intel in #9810
- topology2: cavs-nocodec-bt: align Port0/1 configuration with Port2 by @kv2019i in #9796
- ipc4: mixin: Add "mix with gain" HiFi5 impl by @serhiy-katsyuba-intel in #9795
- scripts: gen-uuid-reg.py: Generate string identifier for toml files by @softwarecki in #9799
- rimage: config: add ptl to generic platform toml by @abonislawski in #9815
- Audio: Multiband DRC: Use optimized 4th order IIR filter version by @singalsu in #9808
- Update waves codec integration for Zephyr production builds by @andyross in #9820
- schedule: config to build LL without task rescheduling by @johnylin76 in #9816
- tools: topology2: ace3: Add rt712-l3-rt1320-l2 and rt713-l3-rt1320-l1… by @ujfalusi in #9822
- Tools: Testbench: Small improvements by @singalsu in #9805
- Math: Replace exp() function with more accurate and fast version by @singalsu in #9786
- DRAM:
fast_get()cache-handling improvements by @lyakh in #9817 - LLEXT: simple changes by @lyakh in #9818
- Revert "topology2: Update deep buffer and BT offload for ptl rt722 to… by @ujfalusi in #9827
- tools: demo-gui: improvements by @iuliana-prodan in #9819
- Audio: SRC: Optimize HiFi4 and HiFi5 version code by @singalsu in #9825
- Tools: Test: Audio: Add to src_test.m option for xt-run by @singalsu in #9826
- zephyr: alloc: virtual_heap_free: Panic on deallocations errors by @softwarecki in #9779
- topology2: intel: fix default BT clock for ACE1.5 and newer by @kv2019i in #9809
- Switch to NXP PDM MICFIL Zephyr native driver on i.MX8MP by @dbaluta in #9824
- Debug module framework by @marcinszkudlinski in #9787
- Tools: sof-ctl: Use same blob format as UCM2/cset-tlv by @singalsu in #9760
- smart-amp-test: remove obsolete build options by @lyakh in #9773
- Add Soundwire support for AMD platform ACP_7_0. by @saisurya-ch in #9836
- rimage: print cold data and text percentage by @lyakh in #9837
- llext: remove third-party modules from SOF lib by @abonislawski in #9841
- src: mark code as "cold" by @lyakh in #9838
- LLEXT: persistent dependency by @lyakh in #9804
- [SKIP SOF-TEST] audio: add Doxygen comments for cold / hot module methods by @lyakh in #9828
- topology2: Correct DMIC information in lnl cs42l43 cs35l56 variants by @simontrimmer in #9842
- topology2: add sof-lnl-cs42l43-l2-cs35l56x6-l13.tplg support by @bardliao in #9839
- library_manager: llext: don't try to copy .bss by @lyakh in #9846
- Add topology1 for CTC. by @eddy1021 in #9829
- llext: use the new inspection API by @pillo79 in #9831
- audio: volume: fix PEAKVOL UUID with LLEXT by @lyakh in #9851
- llext: export symbols, needed for aria by @lyakh in #9855
- Add DTS config and topology on MT8196 platform by @joechengxperi in #9854
- Tools: rimage / topology2: ASRC component related fixes by @singalsu in #9849
- llext: (cosmetic) rename a function by @lyakh in #9856
- Pipeline2.0 step 7: Make all the code use API to access comp_buffer lists by @marcinszkudlinski in #9802
- [SKIP SOF-TEST] llext: add a comment where builtin functions are exported by @lyakh in #9858
- modules: toml: Use values from uuid-registry in toml files by @softwarecki in #9861
- debug: tester: add simple DRAM execution test by @abonislawski in #9866
- schedule: add Tasks With Budget scheduler type by @abonislawski in #9075
- mt8196: Waves and Google CTC module integrated build by @johnylin76 in #9868
- ASRC: move to DRAM by @lyakh in #9844
- lib-manager: don't cast away "const" by @lyakh in #9869
- Add support for Mediatek mt8365 (xtos) platform by @andrew-mtk in #9830
- Topology2: add topologies for SDCA functions by @bardliao in #9668
- Math: FIR: Optimize filter core function for HiFi5 by @singalsu in #9833
- DRAM: add debugging for cold code violations by @lyakh in #9873
- Use unix domain sockets for IPC in the SOF plugin by @ranj063 in #9876
- tools/plugin: Fix broken README.md formatting by @SurajSonawane2415 in #9877
- west.yml: update zephyr to 658f9357b87 by @tmleman in #9881
- waves: avoid calling MaxxEffect_Message before MaxxEffect_Initialize by @barry-waves in #9882
- Audio: ASRC: HiFi5 optimizations by @singalsu in #9875
- Intel: FPGA: Disable SRAM Retention (FPGA only) by @serhiy-katsyuba-intel in #9889
- mic_privacy: initial implementation by @mbukowsk in #9788
- audio: chain_dma: don't mix link/host HDA DMA channel counts by @kv2019i in #9887
- config: adjust log flush sleep time for ACE boards by @tmleman in #9890
- kpb: KPB fixes by @serhiy-katsyuba-intel in #9885
- tools: mtrace-reader.c: add C version of mtrace-reader.py by @kv2019i in #9894
- llext: fix alignment of cold / detached sections by @lyakh in #9892
- tools: testbench: Add missing dependencies in README.md by @SurajSonawane2415 in #9895
- cmake/zephyr: decentralize src/schedule/ by @kv2019i in #9896
- PTL: enable openmodules by @lyakh in #9886
- cmake/zephyr: decentralize src/{debug/tester,math} by @kv2019i in #9901
- tools: plugin: Fix broken OpenVINO model link in README.md by @SurajSonawane2415 in #9903
- ipc4: handler: Kconfig option to add IPC processing timing prints by @jsarha in #9897
- DRAM: more cold functions by @lyakh in #9850
- cmake/zephyr: start deduplication of src/audio/CMakeLists.txt by @kv2019i in #9906
- math: enable modular IIR, minor update for FIR by @lyakh in #9848
- Audio: Volume: Add IPC4 native Q1.31 mode and optimize by @singalsu in #9900
- boards: ace30: align log timestamp format with other Intel boards by @kv2019i in #9915
- west.yml: update zephyr to 0837ad5be84 by @tmleman in #9913
- llext: add support for PTL DRAM detached sections with MMU enabled by @abonislawski in #9893
- cmake/zephyr: src/audio/CMakeLists.txt unification part 2 by @kv2019i in #9912
- Audio: EQIIR: Tune: Small fixes and improvements by @singalsu in #9919
- Math: Exp: Add contributor to sofm_exp_approx() by @singalsu in #9925
- fix IPC timeouts by @lyakh in #9926
- DRAM debug take 2 by @lyakh in #9907
- rimage: configs: imx95: use SRAM instead of DRAM by @LaurentiuM1234 in #9812
- topology2: add sof-lnl-cs42l43-l0-cs35l56-l23-4ch by @ujfalusi in #9934
- Logging: switch to delayed work by @lyakh in #9929
- [SKIP SOFCI-TEST] tools: plugin: Fix incorrect tilde expansion in environment variable by @SurajSonawane2415 in #9932
- cmake/zephyr: src/audio/CMakeLists.txt unification part 3 by @kv2019i in #9918
- [SKIP SOF-TEST] dram: (cosmetic) rename debugging with dbg_ by @lyakh in #9937
- Tools: Topology2: Build topology sof-mtl-max98360a-rt5682 by @singalsu in #9928
- chain-dma: move .init() and .free() into DRAM by @lyakh in #9921
- tools: plugin: Update README for OpenVino noise suppression by @SurajSonawane2415 in #9943
- LLEXT: fix a memory leak by @lyakh in #9946
- intel: idc: removal of xtos related Intel IDC code. by @lgirdwood in #9944
- Tools: Testbench: Add support for ALSA controls script by @singalsu in #9916
- bugfix in DP/Src: some audio formats have incorrectly estimate period by @marcinszkudlinski in #9927
- audio: move more code to DRAM by @lyakh in #9880
- cmake/zephyr: unify cmake rules for lib, probes and... by @kv2019i in #9931
- cmake/zephyr: unify cmake rules for src/idc by @kv2019i in #9950
- platform: mtk: Fix crash in DEBUG build on MTK platform by @andrew-mtk in #9947
- llext: remove unneeded data and functions by @lyakh in #9951
- library-manager: use Kconfig for INTEL_MODULES by @lyakh in #9936
- dram: enable on LNL by @lyakh in #9954
- audio: drc: clean up "inline" usage in .c by @lyakh in #9948
- llext: fix auxiliary module ordering by @lyakh in #9953
- Topology2: add sof-mtl-rt711-2ch support by @bardliao in #9910
- audio: volume: drop CONFIG_COMP_PEAK_VOL guards by @LaurentiuM1234 in #9960
- maths: builtins: move all llext builtins to their own file by @lgirdwood in #9956
- schedule: dp: (cosmetic) simplify a loop by @lyakh in #9949
- llext: let remaining modularised components select "m" on PTL by @lyakh in #9957
- llext: cmake: Add support for passing more config to llext build by @lgirdwood in #9955
- Audio: SRC: Add conversions to 11.025 and 22.05 kHz by @singalsu in #9945
- sof-docs: build out of source directory by @lgirdwood in #9878
- west.yml: Update zephyr to 8bdf533d7647 by @dbaluta in #9961
- scripts: vscode: add support for building SOF from vscode tasks by @lgirdwood in #9879
- Tools: CTL: Add high-pass IIR equalizer blobs with gain by @singalsu in #9963
- lib_manager: Set of small fixes for loadable modules (sp1) by @softwarecki in #9962
- kconfig: staging: add support for SOF staging features by @lgirdwood in #9965
- Tools: Topology: Fix TDFB blob for sof-mtl-rt711-2ch.tplg by @singalsu in #9966
- scripts: xtensa build: add support to build menuconfig by @lgirdwood in #9964
- Tools: Test: Audio: Fixes for TDFB component tests by @singalsu in #9967
- west.yml: update zephyr to e4c2cecb7d8 by @tmleman in #9976
- llext: export audio_stream_recalc_align() by @lyakh in #9975
- tools: demo-gui: fix CSS styling headerbar.titlebar by @Prjbond007 in #9974
- Topology2 sched domain support by @jsarha in #9959
- Topology2: Add sof-ptl-rt712-l3-rt1320-l3 support by @macchian in #9704
- Audio: template_comp: Add a new SOF template component by @singalsu in #9952
- staging: Add tensorflow micro module. by @lgirdwood in #9938
- audio: cadence: fix IPC4 build by @lyakh in #9986
- audio: check for NULL buffers in case of invalid IPC flows by @lyakh in #9985
- build: xtensa-build-zephyr.py: remove Intel ehl target by @kv2019i in #9984
- tools: topology2: cavs-nocodec: Fix PASSTHROUGH configuration for SSPs by @ujfalusi in #9981
- audio: cadence: ipc4: remove unused variables by @tmleman in #9989
- Audio: Template_comp: Add note about inputs and outputs number by @singalsu in #9990
- west.yml: update zephyr to 4aa1ac9f969 by @tmleman in #9988
- [SKIP SOFCI-TEST] topology: build using a local ALSA install by @lgirdwood in #9870
- ipc4: pipeline: Add notification pool and data process error notification by @softwarecki in #9972
- audio: check buffers before calling
.prepare()by @lyakh in #9987 - [stable-2.13] ptl: library-manager: enable library authentication by @kv2019i in #10010
- [stable-v2.13] west.yml: update zephyr to 4512cbf509cc by @kv2019i in #10015
- [stable-v2.13] backport of PRs by @kv2019i in #10020
- [stable-v2.13] hda-dma: Fix HDA DMA position regs going out of sync with w_ptr/r_ptr. by @kv2019i in #10023
- [stable-v2.13] audio: mic_privacy: Fix feature functionality after D3 resume by @kv2019i in #10037
- [stable-v2.13] audio: mic_privacy: Fix DSP panic during D3 entry with HW managed mode by @kv2019i in #10043
New Contributors
- @DaveLak made their first contribution in #9762
- @pillo79 made their first contribution in #9831
- @andrew-mtk made their first contribution in #9830
- @SurajSonawane2415 made their first contribution in #9877
- @Prjbond007 made their first contribution in #9974
Full Changelog: v2.12...v2.13