Platforms that can only be built with Zephyr, can directly use
Zephyr cached/uncached functions in memory.h. It turns out the SRAM
address and size definitions were only needed for these duplicate
cache operations, so they can be removed as well.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
The paths to topology and sof-ctl blobs are updated. The paths
to other setup scripts (common, crossover, drc, eq) are set with
a new helper function multiband_drc_paths.m.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
To consolidate the audio moves the scripts are moved to the same
directory as the module. This first step only moves the files.
The next steps rename the scripts and fix possible issue to
directories move.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Currently LLEXT module starting addresses are hard-coded in their
respective CMakeLists.txt files. This is very wasteful, since it's
unknown in what order modules are loaded, inflexible and not easily
extendible to other platforms. Switch to calculating addresses
automatically based on a single per-platform Kconfig value.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Add a Kconfig option that can be used to flip all LLEXT-supporting
code to a modular build. Use that global flag for smart-amp-test,
mixin-mixout and eq-iir.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This change replaces 6th argument with show_plots. If it is
set to 1, the plots are not hidden. If set to 2, also the
temporary sound files are not deleted that is useful for
debugging.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The full process test fails due to changed paths of Octave
module setup scripts.
The path EQ blob decoder has changed after the EQ tool was moved
under the module. Also the SOF ABI version retrieve function
path need to be set to tune/common to use the generic function
instead of the first version that was made for EQ export.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The Zephyr documentation uses the term "overlay" for Device Tree, not
for Kconfig.
This commit does not change the wrongly named --overlay option not to
break anything but it stops that wrong name from leaking all over the
code. Also tweak the --help text.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
When using sink/src API and DP processing, there are no
comp_buffer based buffers on inputs and outputs
There must not be any usage of comp_buffer in the module
this commit changes a forgotten reference to comp_buffer
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
The ADL, ARL, LNL hardware board configurations are below:
ARL has the same dsp generiation as MTL. So set platform = mtl.
SoundWire#
├── link 0: cs42l43 Audio Jack and DMICs/Bridge to amplifiers.
| | -> sof-rpl-cs42l43-l0.tplg
│ │ -> sof-mtl-cs42l43-l0.tplg
│ │ -> sof-arl-cs42l43-l0.tplg
│ │ -> sof-lnl-cs42l43-l0.tplg
│ │
│ ├── link 2: cs35l56 Left and Right Amplifier.
│ -> sof-arl-cs42l43-l0-cs35l56-l2.tplg
│
├──── link 2: cs35l56 Right/Rightx2 Amplifier.
├──── link 3: cs35l56 Left/Leftx2 Amplifier.
-> sof-adl-cs42l43-l0-cs35l56-l23.tplg
-> sof-arl-cs42l43-l0-cs35l56-l23.tplg
-> sof-lnl-cs42l43-l0-cs35l56-l23.tplg
SoundWire#
├── link 2: cs42l43 Audio Jack and DMICs.
│ -> sof-arl-cs42l43-l2.tplg
│
├──── link 3: cs35l56 Left and Right Amplifier.
-> sof-arl-cs42l43-l2-cs35l56-l3.tplg
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
PLATFORM=tgl, can safely removed as it is not included in cavs-sdw and
does not affect the soundwire configurations.
Remove SDW_FMT_24 flag because it has become the fixed format for
soundwire configurations.
SDW_AMP_FEEDBACK is currently used for debugging purposes. So set false
to disable it.
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Add mixer component in module_adapter initialization function
otherwise, for IPC3, we get the following error:
"module_adapter_init_data() unsupported comp type 6".
Fixes: 0f4a246df1 ("module_adapter: fix switch case for spec parsing")
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Github artifact store allows to download packages already,
so no need to create tarballs in these builds. Also this avoids
problems comparing Windows and Linux builds as due to handling
of symbolic links, the resulting tarball are not comparable.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
With addition of loadable modules, SOF firmware installation depends
much more on symbolic links. Add a step to build script to create a
tarball of the installed firmware binaries in the build-staging-sof
tree. The created tarball (e.g. build-sof-staging/sof/sof.tar.gz)
provides a ready structure that can be unpacked to e.g. /lib/firmware on
Linux target machines.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
MOD_INIT_INSTANCE IPCs can be processed on different cores, different
cores can use the same modules. Make shared data uncached.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This patch introduces handling for the IPC4_DMA_CONTROL message type in
the base firmware. The implementation includes a new function
`basefw_vendor_dma_control` to process the DMA Control configuration for
any DAI type.
The `basefw_dma_control` function has been added to handle the
IPC4_DMA_CONTROL message. It ensures the message is atomic and contains
all necessary information before casting the data buffer to the
`ipc4_dma_control` structure and processing it. The function also calls
`basefw_vendor_dma_control` to apply the DMA Control configuration to
the hardware.
The `basefw_set_large_config` function in `src/audio/base_fw.c` has been
updated to call `basefw_dma_control` when an IPC4_DMA_CONTROL message is
received. If the `dai_config_update` operation is not implemented by the
DAI driver, the function will return `-ENOSYS`.
This change allows the base firmware to initialize or modify DMA gateway
configurations dynamically, improving the flexibility of DMA management
in response to IPC messages.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
This patch exposes the function to retrieve a pointer to the Zephyr
device structure for a DAI of a given type and index. Previously, the
function `dai_get_zephyr_device` was static and only usable within
`dai.c`. By introducing `dai_get_device`, other parts of the SOF
codebase can now access the Zephyr DAI device pointers, facilitating
integration with Zephyr native DAI drivers.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
This patch adds to "scripts/rebuild-testbench.sh -p ptl" option
to test processing components with PTL ACE3.0 DSP build.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This script is used to get detailed build parameters for
testbench-xt version build. The PLATFORM is in most cases
the same as the platform name in build command line so it
can be set as default. Only the cases when the name
is different need to be preserved.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Python implementation for receiving and decoding debug-stream records
from debug window slot transportation. Opens SOF debugfs file
"debug_stream" reads and decodes the records from the circular buffer
documented in soc_debug_window_slot.h. This initial version only knows
of DEBUG_STREAM_RECORD_ID_THREAD_INFO records.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Implementation for collecting Thread stack and CPU usage statistic from
Zephyr core and send the info and debug_stream records. The records
encoding is defined and documented in debug_stream_thread_info.c
source file.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Implementation for debug stream transportation over debug window
slot. The protocol details are documented in debug_stream_slot.h
header.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
This commit adds definition for abstract debug stream record and
stream header. The header file contains the necessary documentation.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
xt-clang uses UINT32_C() without importing it. Commit ef38a0c265
("arch: xtensa: core.h: Add define for UINT32_C") added it but only for
__ZEPHYR__, add it unconditionally.
Provide an alternative, assembly-compatible definition apparently needed
by XTOS ACP 7.0 compiled with xt-clang.
For C code, simply include <stdint.h>
Longer and convoluted story in #9413.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
UBSAN is complaining about the pointers being overflown given we haven't
checked the parameters. Move it behind the code that protects this to
satisfy the sanitizer.
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
If ext_data_length is > UINT32_MAX - sizeof(struct sof_ipc_comp) then it
will overflow the 32bit pointer in the second half of this error check
therefore bypassing the check.
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Re-enable normal INFO level log output for ace30_ptl target.
Move the limited log level setting to FPGA overlay.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Total of 191 commits, including following affecting SOF build
targets:
81977f2bff2e drivers: dma: intel_adsp_hda: fix intel_adsp_hda_unused() check
9fd2e119445e drivers: dma: intel-adsp-hda: Report total_copied bytes on ACE2/3
dd50ff558537 llext: add dependencies
c5e305fce6c4 llext: fix flag evaluation for section grouping
a8db637ead17 llext: export a symbol needed for immediate logging
fe609dd8e8e1 llext: look for symbols in other LLEXT objects too
19ccec6a0390 llext: use EXPORT_SYMBOL() universally
bd09a5c73921 llext: make EXPORT_SYMBOL() universal
92a7c772d90b llext: remove an unused variable
4902f189ae00 dts: xtensa: intel_adsp: Set soft-off state as disabled
b9a4900c3002 drivers: dma: intel_adsp_hda: change L1 exit defaults
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
CONFIG_COMP_STUBS=y was enabled in #8722 / commit 8e34109e10 ("AEC:
Enable Google AEC with Mock compliation").
CONFIG_COMP_STUBS indirectly enables
CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK which was the desired
effect. However it also automatically and silently "mocks" all other 3rd
party modules which is not desirable. So, replace it with the more
focused `CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK`. `src/audio/Kconfig`
says "CONFIG_STUBS: This should only be used in testing environments
like fuzzers or CI."
Official sof-bin releases include `google_rtc_audio_processing_mock.c`
because the CI that uses it can't use extra CONFIGS. That's another
topic for another day, see #9410.
build-mtl/zephyr.strip is identical before versus after this commit.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The goal of these new files is to:
1. Fuzz more code
2. Reduce the configuration gap between fuzzed SOF and the real thing.
See the fuzz_features.conf header for more details.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
comp_buffer is a legacy buffer, but currently is widely
used in SOF.
During transition to pipeline2.0 there's a need that comp_buffer
expose a common API, as any other buffer
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
comp_buffer, implemented in buffer.c file, should
be kept in the buffers directory, together with all
buffers
Also it has been renamed to comp_buffer.c
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
in struct audio_buffer there was only one virtual method
(free). There are probably more coming, so an ops structure
is introduced.
ring buffer which uses audio buffer as a base must adjust,
including using of an audio_buffer_init procedure, what implies
using audio_stream_params located in audio_buffer
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
secondary buffer mechanism is a feature independent of a buffer
implementation, therefore it should be located in a base class for
all buffers
this commit intentionally is not removing the same feature from
comp_buffer nor trying to use it anywhere
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
This patch renames with prefix sof_ all the top level functions
for dcblock blobs design.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The paths for exported blobs for topology and for sof-ctl need
to be fixed after directory move.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The change is done to consolidate the files belonging to the
module. This patch only moves the files to a new location.
Successive patches address the issues caused by this move.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The names are changed to avoid any collisions with multiple
Octave or Matlab paths enabled.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The paths to topology and sof-ctl blobs are updated. The paths
to other setup scripts (common, eq) are set with a new helper
function crossover_paths.m.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
To consolidate the audio moves the scripts are moved to the same
directory as the module. This first step only moves the files.
The next steps rename the scripts and fix possible issue to
directories move.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>