Skip to content

SOF v1.2

Compare
Choose a tag to compare
@lgirdwood lgirdwood released this 20 Sep 12:48
7dd4b1d

SOF v1.2 has been released. Thanks to everyone for the hard work this time. Great effort from all !

New features

o Docker - SOF and SDK can now all be built inside a Docker container. This
removes the need to install git versions of ALSA dependencies locally.
o Cmocka tests added now for most of the core APIs.
o Support for Intel Cannonlake, Haswell and Broadwell platforms.
o Travis CI added to build test each commit.
o DMA tracing mechanism added to provide high frequency trace output.
o Support for running SOF as a userspace application for test benching
processing algorithms.
o Tone generator added.
o Intel DMIC support added.
o Xtensa HiFi SIMD optimisations for Volume, FIR, IIR and SRC processing
components.
o Numerous stress test hardening patches added.

Changes


Bartosz Kokoszko (8):
Added comp_set_state function UT's
test: component: change to use 1 assert per test
test: component: change comp_set_state test cases
uapi: ipc: add new fields in ssp struct
apl-ssp: setting additional bits in ssp registers
drivers: apl-ssp: code optimization for DSP_A/B
drivers: apl-ssp: handle tdm mode in ssp
drivers: apl-ssp: refinement in DSP_A and I2S mode.

Dylan Reid (3):
scripts: Add #! headers to shell scripts
scripts: Add ability to build in a container
scripts: Add build-soft.sh

Jakub Dabek (3):
test: added pipeline tests
tests: pipeline_complete
list: added list_item_del_init

Janusz Jankowski (6):
test: enable cmocka unit tests for SOF
test: use AC_CHECK_LIB instead of PKG_CHECK_EXISTS in configure.ac to drop dependency on pkg-config Signed-off-by: Janusz Jankowski [email protected]
autotools: replace user variables with automake variables
test: fix CFLAGS and LDFLAGS warnings
doc: remove README.rst, it's in sof-docs now
configure: fix flags for unit tests

Kamil Kulesza (5):
version.sh: fix FW version parsing
arch: xtensa: set SRAM window error codes during bootloader
volume: Set max volume value from sof_ipc_comp_volume IPC for volume module
format: add align up/down macros
hda-dma fix: align DGMBS value to 32 bytes

Keqiao.Zhang (1):
dist: fix make dist compiling issue for HSW, APL and CNL

Keyon Jie (7):
apl-ssp: change and wrap status transition into ssp_stop
byt-ssp: change and wrap status transition into ssp_stop
byt-ssp: fix status transition for ssp_stop
host: remove first_copy workaround for HDA DMA
platform: apl: expand max stream number to be 16
apl: memory: expand number of 256 Bytes block to be 64
buffer: refine write-back and invalidate logic for produce/consume

Liam Girdwood (161):
hsw: timer: HSW/BDW use DSP core timers and have no ext timer.
Merge branch '1.1-stable'
Merge branch '1.1-stable'
trace: dma: remove disable DMA trace option
Merge branch '1.1-stable'
Merge tag 'v1.1'
drivers: ssp: rename ssp.c to byt-ssp.c
ipc: core: rename intel-ipc.c to handler.c
scripts: checkpatch: dont complain about missing MAINTAINERS
scripts: checkpatch: don't complain about int_t uint_t types
core: atomic: Add atomic addition and subtraction APIs
clean: dos2unix: baytrail.x.in
clean: dos2unix: haswell.x.in
clean: dos2unix: broadwell.x.in
dist: fix make dist for SRC
Merge branch '1.1-stable'
lib: string: Add rstrcmp() string compare.
rimage: display ELF section names.
core: sof.h: remove unused code.
host: build fix for missing string.h
host: string: remove xthal references.
rimage: fix formatting and alignment of manifest section printf
ipc: page tables: Make page table API generic for use outside IPC core
rimage: add support to build and sign runtime modules
uapi: ipc: Add executable memory flag
configure: check for doxygen and graphviz to build docs
rimage: openssl: fix build for openssl 1.1.0
ssp: hsw: Initial HSW SSP driver (WiP)
Merge remote-tracking branch 'sof/master'
docker: Add details on running docker as non sudo user.
scripts: xtensa-build-all.sh. Fix bash error.
scripts: xtensa-build-all.sh: Support BXT/APL compiler alias
scripts: xtensa-build: fix alias detection for bxt/apl gcc
Merge branch 'master' into cavs_common
Merge pull request #4 from thesofproject/cavs_common
Merge pull request #8 from xiulipan/master
Merge pull request #11 from tlauda/issue-6
Merge pull request #12 from tlauda/issue-7
Merge pull request #13 from tlauda/topic/vol_ut
Merge pull request #14 from ranj063/tone
Merge pull request #15 from keyonjie/master
Merge pull request #16 from tlauda/issue-9
Merge pull request #20 from tlauda/topic/buffer_l1_cache_handling
Merge pull request #21 from ranj063/temp
Merge pull request #34 from xiulipan/master
Merge pull request #31 from tlauda/topic/irq_core
Merge pull request #36 from keqiaozhang/rimagefix
Merge pull request #33 from zhigang-wu/master
Merge pull request #23 from RanderWang/master
Merge pull request #32 from ranj063/topic/host
Merge pull request #49 from slawblauciak/alloc_free_fix
Merge pull request #47 from xiulipan/ipcfix
Merge pull request #55 from slawblauciak/alloc_ut
Merge pull request #59 from slawblauciak/test_fixes
Merge pull request #73 from tlauda/topic/hda-bf
Merge pull request #72 from RanderWang/ipc_overflow
Merge pull request #71 from RanderWang/dmatrace
Merge pull request #67 from jajanusz/extraflags
Merge pull request #77 from jajanusz/test-flags-fix-warnings
Merge pull request #84 from tlauda/topic/issue-69
Merge pull request #82 from RanderWang/dmatrace
Merge pull request #35 from zhigang-wu/topic/capture-resume-failure
Merge pull request #85 from jajanusz/remove-cmocka-docs
Merge pull request #91 from tlauda/topic/vol_condition_fix
Merge pull request #87 from keyonjie/master
configure: gcc: make sure CFLAGS and LDFLAGS are set correctly.
configure: rimage: Make sure rimage CFLAGS are strict.
configure: host: Host CFLAGS should be strict
build: host: Fix versioning for libtool.
Merge pull request #105 from thesofproject/lrg/gcc-fixes
Merge pull request #112 from tlauda/topic/volume_ut_fix
Merge pull request #109 from bkokoszx/test_component_set_state
Merge pull request #110 from jajanusz/ut-makefile-fix
Merge pull request #111 from tlauda/topic/issue-74
Merge pull request #117 from tlauda/topic/dai_write_back_buffer
Merge pull request #118 from bkokoszx/test_component_set_state
Merge pull request #124 from tlauda/topic/issue-19
Merge pull request #123 from zhigang-wu/topic/state-machine-change1
Merge pull request #125 from tlauda/topic/xrun_allow_recovery
Merge pull request #108 from zhigang-wu/topic/remove-useless-code1
Merge pull request #127 from zhigang-wu/topic/state-machine-change2
Merge pull request #104 from zhigang-wu/topic/platform-stable1
Merge pull request #133 from xiulipan/xtensaexc
Merge pull request #134 from bkokoszx/test_component_set_state
Merge pull request #132 from xiulipan/bufferinc
Merge pull request #131 from zhigang-wu/topic/state-machine-change1
Merge pull request #137 from tlauda/topic/dw_dma_lli_current
Merge pull request #136 from tlauda/topic/host_pointer_init
Merge pull request #138 from ranj063/ctx-restore
Merge pull request #144 from RanderWang/exception
Merge pull request #142 from tlauda/topic/dw_dma_use_done
Merge pull request #143 from tlauda/topic/dai_capture_xrun
Merge pull request #140 from xiulipan/daiindex
Merge pull request #139 from RanderWang/ipc_4bytes
Merge pull request #126 from RanderWang/volume
Merge pull request #149 from singalsu/mixer_attenuation_fix_proposal
Merge pull request #146 from slawblauciak/mixer_ut
Merge pull request #148 from singalsu/volume_zipper_fix_proposal
Merge pull request #120 from kakulesza/set-max-volume-from-ipc-for-volume-module
Merge pull request #151 from slawblauciak/mixer_ut
Merge pull request #147 from slawblauciak/slave_fix
Merge pull request #155 from slawblauciak/test_fixes
Merge pull request #145 from zhigang-wu/topic/test
Merge pull request #156 from singalsu/fix_dmic_ipc_typo_proposal
Merge pull request #158 from ranj063/dai_config
Merge pull request #159 from zhigang-wu/topic/capture-noise
Merge pull request #169 from xiulipan/llifix
Merge pull request #171 from tlauda/topic/apl_ownership
Merge pull request #178 from tlauda/topic/issue-168
Merge pull request #177 from tlauda/topic/issue-48
Merge pull request #176 from zhigang-wu/topic/fw-panic
Merge pull request #179 from tlauda/topic/dai_dma_release_not_needed
ci: travis-ci: add initial travis.ci configuration file.
ci: travis: remove \ as they dont pass yaml parsing
ci: travis: Update path to DockerFile
ci: travis: setup apt.conf
Merge pull request #170 from xiulipan/hostfix
Merge pull request #188 from kakulesza/add-align-up-down-macros
Merge pull request #193 from kakulesza/fix-hda-dma-config-dgmbs-align-bits
Merge pull request #189 from tlauda/topic/dai_xrun
Merge pull request #190 from tlauda/topic/interrupt_get_level
Merge pull request #201 from mwierzbix/unitTest-lib-rstrcmp
Merge pull request #196 from tlauda/topic/issue-195
Merge pull request #199 from mwierzbix/rstrcmp_nullTerminatorCheck
Merge pull request #205 from xiulipan/dockerupdate
Merge pull request #207 from xiulipan/travisciupdate
Merge pull request #183 from dabekjakub/pipeline_test
Merge pull request #208 from plbossart/fix/trigger_stop_fail
Merge pull request #203 from mwierzbix/unitTest-lib-bzero
Merge pull request #211 from xiulipan/shfix
Merge pull request #204 from RanderWang/dma_trace_apl
Merge pull request #223 from plbossart/fix/ipc-header
Merge pull request #214 from bkokoszx/ssp_slot_padding
Merge pull request #235 from RanderWang/cnl_ipc_fw
Merge pull request #234 from RanderWang/apl_fw_ipc
Merge pull request #240 from singalsu/src_use_short_coef_with_gcc_proposal
Merge pull request #243 from bkokoszx/master
Merge pull request #256 from dabekjakub/pipeline_complete
Merge pull request #229 from mrajwa/master
Merge pull request #268 from xiulipan/ipcsch
Merge pull request #269 from singalsu/src_prefill_proposal
Merge pull request #298 from xiulipan/archtask
Merge pull request #294 from RanderWang/dw-dma-lli
Merge pull request #297 from xiulipan/dmatraceworkaround
Merge pull request #304 from dabekjakub/stable-1.2
Merge pull request #292 from RanderWang/loop-1.2
Merge pull request #313 from xiulipan/schfix
Merge pull request #315 from xiulipan/waitchk
Merge pull request #316 from RanderWang/trace-1.2
Merge pull request #314 from RanderWang/waiti-1.2
Merge pull request #300 from xiulipan/listfix
Merge pull request #320 from xiulipan/dairmwait
Merge pull request #321 from xiulipan/daiptrfix
Merge pull request #322 from RanderWang/pmc-1.2
ipc: pm: don't WFI when waiting for PM D3
Merge pull request #333 from RanderWang/list-loop-1.2
Merge pull request #355 from xiulipan/taskpri
Merge pull request #369 from xiulipan/12irqlistfix
Merge pull request #335 from RanderWang/waiti_1.2
Merge pull request #342 from RanderWang/byt
Merge pull request #360 from xiulipan/schfix2

Marcin Maka (7):
Makefile support for doc target.
Removing unneeded XTOS sections from boot_ldr and main fw.
Replacing #define for WAITI behavior.
makefile: link reset vector to main image if there is no boot ldr
arch: sw task irq handlers de-duplicated.
platform: extract common API from platform headers.
dma: fixed writebacks when operating via L1 on dma buffer in L2 mem

Marcin Rajwa (1):
volume: Fix for min/max parameters of the volume component.

Michal Jerzy Wierzbicki (3):
test: lib/rstrcmp: Added unit tests for lib/rstrcmp.
lib: rstrcmp: Added null terminator check for comapring cstring of different lengths.
test: lib/bzero: Added unit tests for lib/bzero.

Pan Xiuli (43):
mailbox: use mailbox function for SW_REG
platform: panice: Send exception memory offset via IPC
rimage: fix wrong error message
rimage: add error handler for localtime call
rimage: openssl: add compatibility for openssl 1.1.0
APL: dw-dma: fix interrupt clear
makefile: add reset vector back
scripts: docker: Add proxy settings
configure: Change install prefix for bin and keys
scripts: refine build all script
scripts: docker: change to Ubuntu 18.04
scripts: docker: simplify docker build
scripts: docker: merge commands and remove src after build
scripts: docker: remove sudo command
configure: add OBJCOPY and OBJDUMP log
scripts: fix xt-xcc build with wrong config
scripts: xtensa-build: fix ROOT var alais for BXT/APL gcc
rimage: fix function returns address of local variable bug
ipc: fix list uninit in handler
xtensa: add exception handler for all exception
apl: memory: expand number of 256 Bytes block to be 128
ipc: make dai index name unified
dw-dma: save lli_current on dma stop
host: remove reset in stop to keep status
scripts: docker: update gcc cross compiler to 8.1
ci: travis: update to use docker hub image
scripts: version: fix version error when have no tags
ipc: use scheduler task for IPC process
task: refine task to avoid double task function run
dma-trace: workaround reschedule work fail
schedule: fix edf reschedule
schedule: fix schedule list double add
wait: add check for waiti
list: refine list_item_del to avoid make list chaos
dai: fix dai pointer for START
wait: add list_item_insert function
task: add task priority into arch task
scheduler: add task priority into scheduler
ipc: set IPC process task to lower priority
interrupt: fix unsafe list del
scheduler: chagne ipc process task priority
task: clear interrupt earlier
scheduler: refine schedule_edf function to handle multiple task

Pierre Bossart (5):
Merge pull request #99 from tlauda/topic/issue-97
Merge pull request #89 from mmaka1/glk-fix-kw
Merge pull request #81 from tlauda/topic/volume_processing
Merge pull request #181 from plbossart/fix/mdivc
Merge pull request #150 from bkokoszx/ssp_master_slave_hwd

Pierre-Louis Bossart (26):
sof: scripts: build rimage in xtensa scripts
interrupts: fix non-sensical macro
interrupts: harden macros with parenthesis
clean: fix style warning before big SOF rename
clean: dos2unix: baytrail.x.in (take2, really clean)
clean: dos2unix: haswell.x.in (take2, really clean)
clean: dos2unix: broadwell.x.in (take2, really clean)
sof: global replacement of 'reef' by 'sof'
uapi: ipc: align ipc.h with kernel
uapi: ipc: change DAI sample_valid_bits definition
uapi: ipc: align SSP IPC with kernel
uapi: ipc: remove zero-length array for DAI IPC
uapi: ipc: start moving SSP-specific fields into ssp structure
uapi: ipc: move sample_valid_bits to SSP definitions
apl-ssp: fix padding bit issues in I2S/LEFT_J mode
apl-ssp: allow for 19.2 MHz SSP reference
apl-ssp: use macros instead of hard-coded shifts/masks
ipc: trap dma_start() return value, bail on error
ssp: rename clk_id as mclk_id, remove dead code
apl-ssp: fix MCLK and BCLK source selection
byt-ssp: fixes for DSP modes
byt-ssp: fix frame sync polarity for DSP modes
byt-ssp: minor changes to test slave mode
apl-ssp: do not override common MDIVCTRL register
dai: fix error handling when DMA is stuck
uapi: ipc: align with kernel

Prashant Malani (1):
scripts: Modify Docker Ubuntu version

Rander Wang (28):
interrupt: core: refine irq structure and algorithm
cnl-dma: remove special dma code for cnl
SSP: refine padding bit setting on Broadwell
BDW: init HW registers at setup time
BDW: refine ssp start function
SSP: refine ssp config function
SSP: refine ssp stop function
DMA-Trace: fix dma-trace overflow issue
trace: Refine trace function in irq function
trace: fix dma trace with repeated data bug on APL&CNL
trace: fix IPC timeout issue on APL
volume: fix range check for max channels
ipc: Refine some IPC data structures to make its size 4bytes aligned
exception: fix ipc timeout issue on bdw
trace: refine dma trace algorithm for apl
trace: refine reschedule time for dma trace
apl: check host status before sending ipc msg in fw
cnl: check status of both host & fw before sending ipc msg in fw
dw-dma: refine dw_dma_stop to clear done bit in all lli
pipe: fix a infinite loop issue in schedule module
dma-trace: tune the dma trace reschedule time
pipe: remove waiti when task is cancelled
byt: remove waiti on byt
dma-trace: kill a infinite loop in dma_trace_config
playback: kill a infinite loop in pcm_param
ipc: remove waiti running in IRQ level higher than passive level
wait: add a function to wait for a register ready by pulling method
dma: fix dma issue on BYT

Ranjani Sridharan (41):
volume: fix bug pertaining to volume ramp down
host build: include arch/string.h
scripts: remove prefix for host build
pipeline: fix typo in pipeline disconnect
host: add host testbench common source and header files
host: add new component for file IO
host: add testbench program
host: include host testbench directory for compilation
scripts: add script for building host library and invoking the testbench
doc: add README for host testbench
DMIC: configure DMIC with parameters from ipc instead of hardcoded params
host: add missing include directories and library dependencies
platform: dma: move dmac initialization
dma: update platform DMAC definitions with the supported dev types, dir and capabilities
dma: introduce parameter to store the number of channels draining
dma: Introduce new API for dma_get()
dma:trace: dma_copy_new() does not need DMAC ID anymore
dma: fix comment for num_channels_busy
ipc: remove dmac id and dmac chan members from host and dai ipc comp def
pipeline: remove dmac id and dmac chan from static pipeline host and dai defs
scripts: use xt-xcc for compiling if available
dmic: fix size while copying DMIC params
ipc: skip host page table set up for hostless tone pipeline
tone: add get command handler to return tone state
ipc: add sample_rate member to ipc tone comp def
tone: set sample rate from topology
tone: fix calculation for period_bytes
tone: fix default frequency and gain to match AES17 requirement
host: remove unused variable
host: update header files for host library build
host: set up shared library table
host: add support for src component in topology parser
host: redirect errors to stderr
host: move common testbench input parameters to header file
host: allow overriding input and output sample rates through command line args
host: move command line args parsing to a separate function
host: fix rzalloc function
scripts: update host testbench script with src topology example
host: return error message while setting up trace table
ipc: fix ipc reply for CTX_RESTORE
ipc: set config only if the config dai_index matches comp dai_index

Seppo Ingalsuo (34):
DMIC: Add SOF DMIC definitions
DMIC: Add SOF DMIC IPC definitions
DMIC: Add DMIC DMA setting to DAI
DMIC: Add DMIC registers bit fields handling macros
DMIC: Change math library link order
DMIC: Add min/max, ceil divide, find number, and normalize utils
DMIC: Fix compilation issue with SSP by removing duplicate macro
DMIC: Fix compilation issue with SRC
DMIC: Add decimator raw coefficients tables
DMIC: Add SOF DMIC trace definitions
DAI: Check DAI type in dai_get() in APL platform
DAI: Check DAI type in dai_get() in CNL platform
SHIM: Correction for the APL header file macro
DMIC: Add PDM microphones (DMIC) support to DAI
DMIC: Add configure command switch to disable DMIC
DMIC: DMIC: Add dmic.c to drivers Makefile.am
DMIC: Changes to APL platform
DMIC: Changes to CNL platform
DMIC: Add for format.h conversion from fractional to float
DMIC: Move ceil_divide from numbers.c to numbers.h as static inline
DMIC: Add robustness against erroneous configuration parameters
SSP: Add trace print for config->format value into ssp_set_config()
README: Fix a typo in the example SOF configure command
DMIC: Bug fix for IPM value calculation for HW version 2
DMIC: Set TH and BFTH bit fields via the variables in HW version 2 code
DMIC: Rename HW version 2 bitfield to follow specification
DMIC: Bug fix for HW version 2 IPM setup
DMIC: Use gain ramp and delayed filters unmute in start sequence
DMIC: Set DAI parameters from topology parameters instead of hardwired
Volume: Mitigate zipper noise by adjusting gain ramp parameters
Mixer: Remove attenuation and apply saturation to mixed audio
DMIC: Fix mistake in comment and add check for supported word lengths
SRC: Use 16 bit coefficients when FW is built with gcc
SRC: Prevent downstream pipeline xruns with sink buffer pre-fill

Slawomir Blauciak (13):
math: Comment for the innerworkings of ceil_divide() Signed-off-by: Slawomir Blauciak [email protected]
test: Math unit tests
buffer: corrected check in comp_buffer_get_copy_bytes Signed-off-by: Slawomir Blauciak [email protected]
test: incorrect param for one of norm_int32 tests Signed-off-by: Slawomir Blauciak [email protected]
test: audio buffer unit tests Signed-off-by: Slawomir Blauciak [email protected]
lib: fix free_block for memory allocated in the last block map
test: alloc tests
test: missing header
test: missing header
test: mixer unit tests
drivers: i2s frame clock slave mode
test: update mixer ut
test: unify ut names

Tomasz Lauda (43):
configure: Fix --with-dsp-core flag
atomic: add atomic_read and atomic_set
ipc: remove duplicated sof_ipc_chmap from sof_ipc_pcm_params
ipc: remove duplicated sof_ipc_hdr from sof_ipc_dai_ssp_params
rimage: add correct FW version to binary
rimage: add support for automatic MEU signing
apl: core: enable boot loader path for Apollolake
test: unit tests for list.h
ipc: add parameters validation
volume: add HiFi3 implementation
pm_runtime: add runtime power management initial implementation
volume: add doxygen comments
platform: extract number of available cores
arch: spinlock: fix value sharing between cores
cavs: platform: clear memory windows
cavs: pm_runtime: scale down host dma l1 exit times
test: volume tests
core: fix wrong inclusion of core-isa.h
buffer: L1 cache operations handling
interrupt: use core id from interrupt value
klocwork: fix initialization of HiFi3 variables
hda-dma: wait for buffer full after starting render
buffer: do not writeback cache for passthrough ppl
volume: fix condition in volume_ctrl_set_cmd
volume: fix processing size in HiFi3 implementation
hda-dma: wait for L1 exit instead of buffer full
test: fix volume cmocka tests
ssp: clear out FIFO stale samples
dai: capture buffer should also be flushed from cache
dai: do not initialize pointer every trigger start
pipeline: allow render pipeline to recover from xrun
host: do not initialize pointer every trigger start
dw-dma: use ll_current on dma start
dw-dma: use done bit for linked list transfers
dai: ignore data on capture stop
apl: platform: set ownership to DSP
cnl: pm_runtime: increase L1 exit time
dai: dma_release is no longer needed
pipeline: schedule capture pipeline also after stop
interrupt: arch_interrupt_get_level
dai: stop DMA unconditionally on xrun
dw-dma: fix compilation for BYT, BDW and HSW
dai: remove wait on stop

Wu Zhigang (20):
FIX: Add dma_stop when receive trigger stop cmd in host
SOF: FIX: adjust the SSC3's TFT/RFT field in SSP
host: xrun: During XRUN recover process, host dma should be stopped first.
component: fix typo in trigger macro ids
volume: support 8-channel feature
mixer: fix typo error
platform: the apl must support 8-channel
platform: the capture pipeline should be scheduled in resume.
buffer: add the buffer_zero() function
dai: zero the dai dma buffer when capture pipeline paused
component:state check should be ahead of state set.
[RFC]host:remove the useless state set.
component:refine the state machine for state transform.
pipeline:make the IPC API atomic.
component: draw the state machine flow chart
cnl:platform: define the ssp fifo depth macro
apl:platform: define the ssp fifo depth macro
ssp:replace the constant value with macro
byt:ssp:porting the patch dcc6149 to clear fifo.
Revert "dai: ignore data on capture stop"

Yan Wang (1):
FIX: Remove unused variable.

Zhang Keqiao (2):
dist: fix make dist compiling issue
rimage: adding an include for all gcc version build