v2.3
SOF v2.3 Release
The SOF technical steering committee are pleased to announce the v2.3 release of SOF. This is the first release using Zephyr as the RTOS on selected platforms !
Signed binaries for selected Intel platforms should land in next few days.
Highlights
- Support for next generation AMD Rembrandt and Intel Raptorlake platforms.
- Zephyr RTOS on Intel Tigerlake platform as user "opt-in", defaults is TGL (xtos) on v2.2
- SIMD (Hifi3/4) Performance improvements on mixer, copier, PCM converter and volume components with up to 25-60% speed improvement depending on use case.
- SPARSE support added to codebase and used to partition memory pointers into cache and uncache types.
What's Changed
- topology1: remove setup config info from further codec_adapter topolo… by @paulstelian97 in #5826
- Build mt8195 mt8186 into SOF docker image by @tinghan-shen in #5388
- ipc4: use buffer_free to free buffer by @RanderWang in #5843
- MT8195: RTNR-related commits by @johnylin76 in #5849
- ipc4: cavs: power_down: Send SET_DX reply on power down by @ujfalusi in #5853
- audio: fix ipc tx timed out for 0x60060000 by @andrula-song in #5857
- dai: fix potential NULL dereference by @lyakh in #5859
- ipc4: set component direction if it is not set by @RanderWang in #5854
- topology: add dmic1 dai for topology2 default dmic by @juimonen in #5837
- OWNERS: move google files to team reference by @cujomalainey in #5864
- intel: dmic: set plat_data fifo depth for capture by @tmleman in #5862
- audio: fix the unsymmetrical order of lock and unlock. by @andrula-song in #5868
- xtensa-build-zephyr.py: pass SOF firmware file version string to rimage by @mengdonglin in #5846
- dma: switch to native Zephyr API for dw-dma & HDA by @abonislawski in #5610
- topology1: sof-icl-rt711-rt1308-rt715-hdmi: fix typo by @libinyang in #5874
- Audio: Dcblock: Optimize dcblock read/write frags by @andrula-song in #5871
- [SKIP CI] github: add mt8186 and mt8195 by @marc-hb in #5882
- mixer: produce only period bytes when paused by @ranj063 in #5873
- Fixes for module adapter by @ranj063 in #5872
- testbench: fix UUID declaration for file by @ranj063 in #5881
- ipc: ipc4: correct the sleep time back to 250usec by @kv2019i in #5887
- xtensa-build-zephyr.py: try to rmdir zephyrproject before cloning by @marc-hb in #5896
- [SKIP CI] .github: independent strict and non-strict runs of check patch by @marc-hb in #5891
- rtnr: passthrough audio by stream copy by @MingJenTai in #5838
- Math: Select BINARY_LOGARITHM_FIXED if log() or log10() is enabled by @singalsu in #5886
- ipc: dai: extend Zephyr native drivers api to ipc/dai.c by @abonislawski in #5899
- Fix performance counter regression by @serhiy-katsyuba-intel in #5728
- topology2: cavs: simplify/clarify topologies by @plbossart in #5552
- IPC4: DAI: Add sampling frequency to ipc_config_dai by @kfrydryx in #5900
- xtensa-build-zephyr.py: add option to change output file layout for different platforms and keys by @mengdonglin in #5883
- xtensa-build-zephyr.py: fix find_west_workspace() to return west topdir by @marc-hb in #5906
- copier: remove get_attribute op by @ranj063 in #5903
- Convert volume to use the new module interface by @ranj063 in #5766
- ipc4: setdx: message completion delay by @tmleman in #5907
- [CACHE] generic code: IPC, DMA, DAI, host, pipeline by @lyakh in #5801
- DMIC: eliminate the gain ramping task by @lyakh in #5852
- Trim some fat for unicore. by @lgirdwood in #5884
- comp_make_shared() is mostly a NOP by @lyakh in #5670
- module_adapter: change the buffer size of waves_codec by @CyKuei in #5851
- buffer: fix wrong coherent_shared() call with Zephyr by @lyakh in #5914
- module_adapter: add zephyr logging support by @juimonen in #5916
- module-adapter: fix prohibitively verbose log message by @lyakh in #5923
- Enabling SOF Support For AMD Rembrandt platform by @balakishorepati in #5833
- host-zephyr: add zephyr logging support by @juimonen in #5919
- dai: groups: Add group ifdef also to ipc4 dai by @juimonen in #5924
- Probes dma fix by @jsarha in #5925
- [RFC] Dai zephyr stub by @juimonen in #5731
- cmake: make sure sha1 is computed without filters by @plbossart in #5920
- bdw: use legacy conp drv interface for volume by @ranj063 in #5927
- part 1 of 4 of #5793 by @lyakh in #5937
- zephyr: panic: switch to __ASSERT_NO_MSG() for assert() by @kv2019i in #5933
- rimage: update to version by @juimonen in #5932
- component: add initial Google post processing component and topology by @kehuangli in #5890
- Fixes for AMD platforms by @balakishorepati in #5942
- part 2 of 4 of #5793 by @lyakh in #5938
- Math: FFT: Save RAM in bit reverse lookup and fix a potential build issue by @singalsu in #5941
- volume: free volume config data during free by @ranj063 in #5943
- part 3 of 4 of #5793 by @lyakh in #5939
- xtensa-build-zephyr.py: add tgl-h ipc4 overlay by @juimonen in #5946
- part 4 of 4 of #5793 by @lyakh in #5940
- topology2: add src support by @RanderWang in #5913
- topology1: sof-tgl-rt711-rt1308: add missing switch by @plbossart in #5951
- tools:topology: Add HS topology by @balakishorepati in #5936
- zephyr_ll: add task_cancel function state judgement by @lenghonglin in #5910
- Add DTS support on Renoir by @joechengxperi in #5944
- Audio: Google RTC Audio Proc: fixed repeated word by @LaurentiuM1234 in #5953
- ipc4: dai: host: Support for setting DMA buffer size & updated ipc4_fw_registers by @softwarecki in #5949
- platform: mtk: add clib memory layout for mt8195 by @yaochunhung in #5961
- cache / sparse: next lot by @lyakh in #5957
- topology2: cavs: hda: add tplg build for mtl by @yongzhi1 in #5931
- topology2: add num_audio_formats for gain by @bardliao in #5971
- pipeline-schedule: clear aborted flag for non-host connected pipelines by @ranj063 in #5967
- xtensa-build-zephyr: copy ALL cavstool*.py scripts by @marc-hb in #5968
- Audio: Copier: optimize the usage of read frag by @andrula-song in #5969
- [SKIP CI] .github: add sof-docs build to Github Actions by @marc-hb in #5990
- xtensa-build-zephyr: add option to build FW in cavs naming style by @XiaoyunWu6666 in #5959
- [SKIP CI] .github: doxygen: upgrade to Ubuntu 22.04 by @marc-hb in #5979
- [SKIP CI] Exclude dai-legacy.h from doxygen to avoid clashes with dai-zephyr.h by @marc-hb in #5995
- sof_ri_info: explain why memory layout is unknown + widen search to directory names by @marc-hb in #5935
- topology2: cavs-sdw: add DMIC and HDMI support by @bardliao in #5875
- [SKIP CI] docker: log git hashes for each projects by @fredoh9 in #5880
- google_rtc: Do not rely on component type. by @lkoenig in #5982
- xtensa-build-zephyr.py: speed up thanks to an actually shallow clone by @marc-hb in #5998
- dai-zephyr: add a DAI PRE_COPY trigger by @abonislawski in #5963
- topology1: re-add support for HDAudio+ 2ch DMIC-PDM1 configurations by @plbossart in #5992
- dai: host: copier: component: New pipeline latency calculation algorithm by @softwarecki in #5985
- volume: Update outdated function parameter documentation by @ujfalusi in #5988
- topology1: add support for HP Omen 16 by @plbossart in #5974
- AMD Platform fixes by @balakishorepati in #6002
- mixin/mixout all topologies support by @serhiy-katsyuba-intel in #6001
- Audio: copier: add hifi version implementation of apply_attenuation by @andrula-song in #5981
- ipc_get_ppl_comp: Prefer returning a dai component by @softwarecki in #6008
- Add mixer based hda topology for MTL by @fredoh9 in #5991
- trace: fix build with zephyr logging by @abonislawski in #6006
- Implement mclk always on feature by @brentlu in #5952
- Move the SOF app from zephyr to where it belongs by @nashif in #6004
- Convert the EQ IIR component to use the module interface by @ranj063 in #5926
- [SKIP CI] doc/CMakeLists.txt: build by default by @marc-hb in #6019
- ipc4: Fix wrong condition statement in set_pipeline_state by @libinyang in #6023
- topology1: CMakeLists: add missing APL/GLK support for ES8336 with DMIC. by @plbossart in #6018
- Removed obsolete xtensa-build-zephyr.sh by @aborisovich in #6016
- Revert the EQ IIR conversion by @ranj063 in #6029
- zephyr: rename timer kconfig by @nashif in #6028
- cached buffer: part one of #5976 by @lyakh in #6027
- module_adapter: Add support for IPC4 in module_adapter_new by @ranj063 in #5994
- Intel modules adapter implementation by @jxstelter in #5848
- Audio: Copier: Fix the potential risk of memory overrun by @andrula-song in #6043
- dai-zephyr: Set dai rate in config by @kfrydryx in #6045
- Audio: Pcm_converter: Optimize the signed type converter functions by @andrula-song in #6024
- Kconfig visual fixes by @paulstelian97 in #6046
- Bug Fixes and code optimizations for AMD platforms by @balakishorepati in #6052
- ipc4: set pipeline components dir based on source component by @kfrydryx in #6048
- src: enable hifi4 optimized src build with zephyr by @kfrydryx in #6049
- timer: Introduce sof_cycle_get_64 by @dbaluta in #6053
- [SKIP CI] Tools: Tune: SRC: Add to coefficients data doxygen cond comments by @singalsu in #6050
- Add new submanifests/sof-ci-jenkins/zephyr-override.yml by @marc-hb in #6064
- rtnr: fix a bad commit by @lyakh in #6067
- Get updated dai posn by @LaurentiuM1234 in #6054
- ipc4: add mixin gain support by @serhiy-katsyuba-intel in #6063
- ipc4: setdx: error checking on core disabling by @tmleman in #6055
- logger: allow starting before the driver is loaded by @marc-hb in #5027
- RTNR: Modify used static libraries by @MingJenTai in #6059
- [SKIP CI] Use west manifest in SOF by @aborisovich in #6005
- installer: add rpl and rpl-s aliases to tgl and tgl-h by @marc-hb in #6070
- zephyr: update for recent Zephyr include path changes by @lyakh in #6071
- Cache / Sparse: fix rest and enable by @lyakh in #5976
- docker-build.sh: don't switch versions when already initialized by @marc-hb in #6074
- [SKIP CI] .github: compile-test multiple zephyr revisions + IPC4 by @marc-hb in #6080
- topology: add Intel Raptor Lake tplgs by @kv2019i in #6081
- Revert "Audio: SRC: Increase length of internal buffer" by @dbaluta in #6088
- Native driver build fixes by @juimonen in #6086
- zephyr: ll-schedule: remove unnecessary next_tick logic by @abonislawski in #6083
- [SKIP CI] .github/zephyr.yml: separate platforms a bit by @marc-hb in #6089
- Audio: Pcm_converter: add hifi3 version new functions by @andrula-song in #6060
- Revert "TGL: enable CONFIG_INCOHERENT correctly" by @plbossart in #6094
- topology1: add SSP1 for all ES8336, SSP5 for APL/GLK by @plbossart in #6078
- imx: clk: Fix zephyr header include by @dbaluta in #6098
- west: update to newer Zephyr baseline by @kv2019i in #6079
- xtensa-build-zephyr.py: p ristine deletes STAGING_DIR by @marc-hb in #6096
- [SKIP CI] .github/zephyr.yml: cosmetic matrix re-ordering by @marc-hb in #6099
- topology: Fix setup control bytes comments by @dbaluta in #6105
- fix incoherent buffer regression #6075 by @lyakh in #6084
- probe: support Zephyr logging subsystem by @kv2019i in #6106
- probe: fix compiler warning on uninitialized data in probe_gen_format() by @kv2019i in #6107
- several cosmetic, simplification and optimisation patches by @lyakh in #6103
- kconfig: remove undefined kconfig NUMBERS_GCD by @nashif in #6108
- Topology1: Allow S24_4LE and S32_LE playback with PCM4 by @singalsu in #6109
- Audio: SRC: Cleanup traces in src_params() by @singalsu in #6110
- [SKIP CI] docker: add AMD/Rembrandt gcc toolchain by @fredoh9 in #5897
- [SKIP CI] .github: add rmb to gcc build only platform by @fredoh9 in #6119
- [RFC] ipc: find components on other cores too by @lyakh in #6113
- mixin-mixout: fix a firmware exception by @lyakh in #6133
- scripts: xtensa-build-zephyr.py fix for windows by @aborisovich in #6123
- topology1: codec_adapter: Remove ca_config bytes by @dbaluta in #6129
- Probes: pass locked buffers by @lyakh in #6137
- Mixin: fix binding by @lyakh in #6138
- probe-app: add support for non-audio probe buffers by @kv2019i in #6130
- probe: add backend for logging via probes by @kv2019i in #6072
- module_adpater: correct the way to get the scheduling period by @CyKuei in #6125
- topology: Add Waves codec to mt8186 topology config: Add Waves overri… by @barry-waves in #6044
- Add new topologies for PCM capture/playback using compress API by @LaurentiuM1234 in #6142
- rtnr: Set process_enabled by default and keep its value in rtnr_reset() by @MingJenTai in #6148
- make buffer_release() and coherent_release() return void by @lyakh in #6149
- app: update UpDwMix reset function by @ArsenEloglian in #6160
- Disable some invalid doxygen by @marc-hb in #6143
- topology2: build only when alsatplg is v1.2.7 or greater by @marc-hb in #6153
- dai-zephyr: rename a device pointer to "dev" by @lyakh in #6158
- xtensa-build-zephyr.py: require python 3.8 by @marc-hb in #6162
- copier_hifi: fix Zephyr logging by @kv2019i in #6176
- module_adapter: get the actual period_bytes by @johnylin76 in #6167
- lib: alloc: Add missing format specifier by @dbaluta in #6177
- Audio: copier: Fix copier params setting by @jxstelter in #6169
- Audio: Mixer: Add hifi version processing functions for mixer by @andrula-song in #6134
- Fix pause-release not working on i.MX by @LaurentiuM1234 in #6151
- rtnr: Modify used static libraries for MT8195 by @MingJenTai in #6164
- ipc4: add basic ipc4 support in selector by @RanderWang in #5973
- platform: imx: Set PLATFORM_DCACHE_ALIGN to 32 by @dbaluta in #6182
- [SKIP CI] .github actions: testbench clean up by @marc-hb in #6188
- module adapter: pass config size to module for ipc4 by @jxstelter in #6183
- ipc4: remove report dsp properties to host driver by @dnikodem in #6144
- Misc zephyr native drivers fixes by @juimonen in #6132
- topology2: add stream token by @RanderWang in #6180
- topology1: remove mt8186 unused topologies by @chunxu-li in #6190
- mixin: fix a NULL dereference by @lyakh in #6175
- Math: FFT: Add 16 bit FFT and IFFT version by @singalsu in #6061
- Revert "copier_hifi: copier logging fix" by @juimonen in #6195
- rtnr: Fix used library naming by @MingJenTai in #6201
- intel: drivers: dmic refactor - move DMIC_HW_IOCLK to Kconfig by @aborisovich in #6156
- pipeline: let selector terminate the pipeline when stopping by @lyakh in #6197
- sof-logger: make inotify optional by @marc-hb in #6191
- topology2: add special pin binding support for multiple IO queue by @aiChaoSONG in #6174
- tplg parser refactoring to support other IPC versions by @lgirdwood in #6009
- Math: Add window functions library by @singalsu in #6139
- pipeline: don't re-add active tasks and copy immediately by @lyakh in #6165
- xtensa: configs: Enable comp legacy on i.MX platforms by @LaurentiuM1234 in #6206
- Fixes for v2.3-rc1 by @lgirdwood in #6270
- [stable-v2.3] scripts: remove byt-jsl from default builds by @marc-hb in #6273
New Contributors
- @kehuangli made their first contribution in #5890
- @LaurentiuM1234 made their first contribution in #5953
- @barry-waves made their first contribution in #6044
Full Changelog: v2.2...v2.3