Commit Graph

8785 Commits

Author SHA1 Message Date
Daniel Baluta e60caa0c0c topology1: Update documentation to reflect multicodec support
This updates documentation to reflect that now param id is only 2 bytes
followed by 2 bytes codec id.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2022-09-30 11:00:57 +03:00
Daniel Baluta 376d0520f8 module: cadence: Support params for more than 1 codec
We want to be able to play different compress stream types
using the same topology:

e.g

$ cplay -I MP3 -d 0 -c 0 sample.mp3
[ end of playback ]
$ cplay -I AAC -d 0 -c 0 sample.aac

Some static parameters for compress streams are set up in
topology bytes in the form:

[0:3]: param ID
[4:7]: size in bytes
[8:n-1]: data[]

We need now a way to specify codec ID, so we borrow 2 bytes from param
ID, like this:

[0:3]: (param ID, codec ID)
[4:7]: size in bytes
[8:n-1]: data[]

Using 0 for codec ID means 'dont care'. Topologies supporting just 1
codec are not affected and need not to be changed.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2022-09-30 11:00:57 +03:00
Jyri Sarha 29af2df766 tools/probe: Fix realloc condition
The allocated packet should accommodate the header, the data, and the
checksum. The header size was missing from the condition from the
beginning, even if its there in realloc parameter. The bug should be
harmless waste of cycles thou.

Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2022-09-28 14:04:39 +01:00
Jyri Sarha 548de64551 tools/probe: Move data_to_copy variable down in scope
Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2022-09-28 14:04:39 +01:00
Jyri Sarha e21be99ce6 tools/probe: Drop sync_word_at(), a simple == condition will do
The sync_word_at() only checks for two things, if the len parameter is
greater than sizeof(uint32_t) and if the memory pointed p parameter
holds PROBE_EXTRACT_SYNC_WORD value. Now that the available bytes is
checked just before sync_word_at() call, the whole function starts to
look a bit pointless.

Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2022-09-28 14:04:39 +01:00
Jyri Sarha 1a1a558ac0 tools/probe: Remove unused write_data() function
Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2022-09-28 14:04:39 +01:00
Jyri Sarha a940766d27 tools/probe: Fix realloc() usage
Realloc may change the location of memory and the code should
anticipate it.

Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2022-09-28 14:04:39 +01:00
Jyri Sarha 50caa7dc1a tools/probe: Several fixes and restructuring for demuxcode
Several fixes and restructuring for demuxcode to make it work with sub
32-bit word granularity.

Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2022-09-28 14:04:39 +01:00
Jyri Sarha 34d750d40b probe: Drop old IPC3 style probe DMA framing
Drop IPC3 probe DMA framing and use IPC4 framing for IPC3 mode
too. This change simplifies the code quite a bit. After this change
both the SOF firmware and sof-probe demux tool should be updated at
the same time.

Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2022-09-28 14:04:39 +01:00
Peter Ujfalusi a3b3c525d1 west: update to newer rimage baseline
tgl-h zephyr build is broken due to outdated rimage revision.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2022-09-27 17:19:15 +01:00
Marc Herbert 5694cfa012 scripts: add link to CMake envvars FAQ next to XTENSA_SYSTEM definition
Environment variables like XTENSA_SYSTEM are an absolute CMake
pain. Add a link to the CMake FAQ and a one-line description why.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-09-26 12:33:56 +01:00
Marc Herbert 0b757a594f Add sparse_always_green to Github Actions
The next step is to find how to extract the (too many?) errors.

In the mean time this already makes sure the build process never bitrots
and that it will always possible to use sparse. It also "documents" how
to use sparse: just copy/paste the commands run by CI.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-09-26 12:33:56 +01:00
Marc Herbert 2d2f5f6982 zephyr/docker-*.sh: pass REAL_CC through for sparse support
Other minor fixes

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-09-26 12:33:56 +01:00
Marc Herbert 3d69a7f69e .github: extend yamllint line-length to 100
Also run on west.yml

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-09-26 12:33:56 +01:00
Marc Herbert b19cd3f080 xtensa-build-zephyr.py: don't complain about cmake_args when pristine
Don't ask the user to delete the build directory when they are using the
option that deletes the build directory.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-09-26 12:33:56 +01:00
Muralidhar Reddy 586716e1b9 topology1: CMakeLists: add ADL support for ES83x6 & HDMI_In Capture
Add ADL support for ES83x6 on SSP1, LT_HDMI_In capture on SSP0 & SSP2.
Signed-off-by: Muralidhar Reddy <muralidhar.reddy@intel.com>
2022-09-26 11:24:23 +01:00
Muralidhar Reddy 187c845ddc topology1: CMakeLists: add ADL support for ES83x6
Added ADL support for ES83x6 on SSP1.
Signed-off-by: Muralidhar Reddy <muralidhar.reddy@intel.com>
2022-09-26 11:24:23 +01:00
Joe.Cheng a78fdcebc1 topology1:enable SOF EQ + DTS on AMD renoir
Period has to be 1ms to avoid playback noise issue on Renoir
when SOF EQ + DTS are both enabled.

Signed-off-by: Joe.Cheng <joe.cheng@xperi.com>
2022-09-26 11:03:29 +01:00
Serhiy Katsyuba b6b10af036 ipc4: block mixin pipeline if no active sink
In case mixin pipeline is running but mixout pipeline
is not -- do not discard source data but block source
pipeline until at least one sink (mixout) started.

A typical topology is to have mixin and mixout in separate
pipelines. Often, mixout pipeline is started a few milliseconds
later after mixin pipeline. In such case mixin pipeline should
be blocked until mixout pipeline started to do not loose any
audio periods.

Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
2022-09-25 09:59:48 +01:00
Marc Herbert cb656fe5cd .github/zephyr.yml: fix IPC3 / IPC4 comments
MTL is IPC4 by default.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-09-23 16:29:48 +01:00
Marc Herbert 9462baf8d4 xtensa-build-zephyr.py: remove misleading -i IPC3 option
`./xtensa-build-zephyr.py -i IPC3 mtl` builds the MTL default: IPC4.
This is wrong, remove the misleading "IPC3" option which never did
anything at all.

Fix the --help string to describe what actually happens. This is a build
script, no need for fancy abstractions and indirections that don't even
match reality. Just tell it like it is.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-09-23 16:29:48 +01:00
Peter Ujfalusi 2474fb48c6 topology2: Revert the conditional topology2 building for CAVS/ACE
The MTL support added conditional build for topology2 based on CONFIG_CAVS
or CONFIG_ACE.
This is wrong for several reasons:
There is not ace directory present
The Kconfig system is not used when building topologies, so we are ending
up not building topology2 files at all.

There is no reason why CAVS and ACE topologies should be exclusive.

Fixes: 784bce763c ("mtl: Added meteorlake platform to the build system")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2022-09-23 15:50:56 +01:00
Adrian Warecki 784bce763c mtl: Added meteorlake platform to the build system
Added new mtl platform to xtensa-build-zephyr.py.
Added ace directories to cmake files.
Added ACE to kconfig.
Add Meteorlake platform to be built with Zephyr under
CONFIG_ACE_VERSION_1_5 flag.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Signed-off-by: Konrad Leszczynski <konrad.leszczynski@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
Signed-off-by: Rafal Redzimski <rafal.f.redzimski@intel.com>
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
2022-09-21 15:15:26 +02:00
Rafal Redzimski e7120ce2a1 platform: ace: define a dedicated heap section
Define a dedicated .heap section in case of zephyr build.
Such explicit section is required to allow for unmapping
of unused physical pages which can be later used for
loadable library/modules support.

Signed-off-by: Rafal Redzimski <rafal.f.redzimski@intel.com>
2022-09-21 15:15:26 +02:00
Adrian Warecki 722134ec33 base_fw: Add support for multiple platforms
This commit defines a new value HW_CFG_VERSION containing
the hardware version of the platform.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2022-09-21 15:15:26 +02:00
Adrian Warecki 76e7f08281 mtl: Add dummy header/source files required by SOF
This commit adds empty header files required to build
a project successfully. The templates for the required
functions have also been added.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2022-09-21 15:15:26 +02:00
Adrian Warecki d5967d1913 platform: mtl: Add meteorlake plaftom
Added base files of meteorlake plaftom:
  Board configuration
  CPU, clock and memory configuration
  Platform bootstrap code
  IPC driver wrapper for Zephyr IPC API for ACE1.5 platforms.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Signed-off-by: Konrad Leszczynski <konrad.leszczynski@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
Signed-off-by: Rafal Redzimski <rafal.f.redzimski@intel.com>
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
2022-09-21 15:15:26 +02:00
Balakishorepati 1bca97ad4c drivers:amd: Fix aclk issue in standalone dmic usecase
Change aclk to max or minimum during playback,capture
usecases start and stop based on dmic status.

Signed-off-by: Balakishorepati <balaKishore.pati@amd.com>
2022-09-19 12:17:04 +01:00
Chao Song 998795c38d module_adapter: add helper for module config fragment position
This patch adds a helper to convert first_block/last_block
indicator to module_cfg_fragment_position enum, which is more
efficient than if-else test.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2022-09-16 17:02:49 +01:00
Balakishorepati 53b3bc6a95 module_adapter:Fix dangling pointer issue in module reset
During module_reset and module_free Calls, pointers are not
getting reset to NULL which causes dangling pointer exceptions.
Initialize pointers to NULL after deallocating the memory.

Signed-off-by: Balakishorepati <balaKishore.pati@amd.com>
2022-09-16 16:49:40 +01:00
Anas Nashif ddc104c66d zephyr: both BDW and BYT are not supported in zephyr
Both Broadwell and Baytrail are not supported in zephyr and those
Kconfigs are not defined anywhere, neither in SOF nor in zephyr.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2022-09-16 15:32:25 +01:00
Ranjani Sridharan 21587cee71 test: Add test infrastructure for module adapter
Add the test infrastructure for setting up and freeing a module and use
it in the volume unit test.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-09-15 16:41:55 +01:00
Ranjani Sridharan 68866f2c1f test: volume: remove unused code
Volume component no longer does format conversion. Remove the unused
test code.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-09-15 16:41:55 +01:00
Rander Wang 93d159d7fb topology2: add lp_mode as a attribute in pipeline
Currently lp_mode setting is not included by topology binary
since lp_mode is not defined as a attribute. This patch adds
it in pipeline.

Signed-off-by: Rander Wang <rander.wang@intel.com>
2022-09-15 14:15:08 +01:00
Kai Vehmanen d525235e0e west.yml: upgrade Zephyr to 3.2.0-rc1 level
Update Zephyr to 0956647aaf6bd2b1e840adcc86db503f274d84a9 (3.2.0-rc1
plus a few fixes merged to upstreamed after the tag).

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2022-09-15 13:54:24 +01:00
Damian Nikodem a823958a8d xtensa-build-zephyr: pass sof build version to rimage
Rimage expects to receive fw_ver_build to prepare the manifest.

Signed-off-by: Damian Nikodem <damian.nikodem@intel.com>
2022-09-15 09:19:16 +02:00
Joe.Cheng 87de994f49 topology1:remove runtime config from DTS topologies
Follow PR#5190, remove runtime config from DTS topologies

Signed-off-by: Joe.Cheng <joe.cheng@xperi.com>
2022-09-14 12:08:36 +01:00
Joe.Cheng ac7f8b0ae6 module_adapter:dts: revert the change "return zero when param is invalid"
This reverts commit d5f8cb9eab.

This commit is not required if the setup and runtime configs are unified

and the payload size is set to right value.

Signed-off-by: Joe.Cheng <joe.cheng@xperi.com>
2022-09-14 12:08:36 +01:00
Seppo Ingalsuo d3b58acab9 Test: cmocka: Add shift parameter to Mel filterbank reference
This patch adds to reference Mel filterbank the parameter
shift that is used to compensate in logarithmic power spectrum
the previously applied bitshift for linear spectrum values. The
added parameter is needed to test compatibility with C
implementation of the filterbank.

The test vectors were re-generated to include effect of shift
parameter values 0 - 3. The previous test used only value 0.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-09-14 12:06:32 +01:00
Seppo Ingalsuo 86c12c8630 Math: Auditory: Fix the use of bitshift parameter
This patch fixes a mistake in compensating linear spectrum bitshift
gain into logarithmic power spectrum. The bitshift done for linear
spectrum as needs to be squared for power spectrum. Due to
calculating in logarithmic domain the square converts to multiply
by two.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-09-14 12:06:32 +01:00
Guennadi Liakhovetski 1bd8635c0b buffer: fix notifier events
Buffer notifier events are registered with buffer's uncached address
as a key, so notifier events must use the same.

Fixes: 95485f05b5 ("buffer: pass locked buffers to notification
recipients")
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2022-09-12 16:52:37 +01:00
Kai Vehmanen 38d92effc4 ipc4: use delayed work queue for IPC resends
Continue changes in commit c194125b83 ("zephyr: add
notifier_register(ipc_send_queued_msg) in task_main_start()") and
implement the delayed IPC msg sending in Zephyr work queue.

The old implementation did not cover cases where IPC needed to be resent
when no active LL scheduler tasks were active.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2022-09-12 16:50:29 +01:00
Kai Vehmanen a815089a25 app: set CONFIG_SCHED_CPU_MASK_PIN_ONLY=y for all SOF builds
In many places of SOF code, assumption is that code is only run
on a specific core. This allows to reduce overhead of cache
coherency management. For example this is used in the IPC stack.

In Zephyr, we can force threads to be pinned by default using
the CONFIG_SCHED_CPU_MASK_PIN_ONLY setting. Enable this setting
for all SOF builds.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2022-09-12 16:50:29 +01:00
Liam Girdwood 27a3d7c2af header: rtos: use rtos specific version of cache.h
Code can now include <rtos/cache.h> which can wrap onto rtos cache
APIs. Will wrap onto Zephyr generic cache API when ready.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2022-09-12 11:44:27 +01:00
Liam Girdwood e8733b4f4c header: rtos: use rtos specific version of clk.h
Code can now include <rtos/clk.h>. API is not yet wrapped to Zephyr.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2022-09-12 11:44:27 +01:00
Liam Girdwood 4843516ab8 header: rtos: use rtos specific version of alloc.h
Code can now include <rtos/alloc.h> and uses thinly wrapped Zephyr
native for most uses. Wrapping can be removed over time.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2022-09-12 11:44:27 +01:00
Liam Girdwood e7d1b7bbf9 header: rtos: use rtos specific version of interrupt.h
Code can now include <rtos/interrupt.h> and uses native Zephyr IRQ API
for most uses. Some wrapping still exists which can be removed over
time. IMX is missing IRQ driver in Zephyr so falls back to xtos IRQ
driver.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2022-09-12 11:44:27 +01:00
Liam Girdwood e42f4a6e63 header: rtos: use rtos specific version of timer.h
Code can now include <rtos/timer.h> and uses native Zephyr timer API
for most uses. Some wrapping still exists which can be removed over
time.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2022-09-12 11:44:27 +01:00
Kai Vehmanen c950c6525e app: overlays: disable ADSP logging backend for IPC4 targets
Each logging backend has an overhead and we don't need two backends
writing to SRAM windows, so disable ADSP and keep MTRACE for IPC4
targets. Other targets will continue to use ADSP backend.

Due to a limitation in upstream Kconfig options, this change
will force a change in timestamp formatting as disabling ADSP
will disable CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP=y. Mitigate
this by enabling CONFIG_LOG_OUTPUT_FORMAT_LINUX_TIMESTAMP=y.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2022-09-12 10:33:43 +01:00
Seppo Ingalsuo 957cebf64c Test: cmocka: Add test for DCT library
This patch adds 16 bit DCT matrix generation tests. The reference
DCT matrices are generated with Matlab or Octave with script ref_dct.m.
The test in dct.c compares SOF DCT lib generated matrix to reference
matrix and checks absolute and RMS error.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-09-09 13:57:22 +01:00