Two configurations for sof-mtl-rt713-l0-rt1318-l12-rt1713-l3 and
sof-mtl-rt713-l0-rt1318-l1-rt1713-l3.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
In commit 14c4e86757 ("audio: base_fw: add platform layer to IPC4
hw_config data"), the platform specific code was moved to platform
layer.
This commit implements a lighter weight abstraction for the moved
code. Instead of using the platform layer, the Intel specific vendor
code is added directly in base_fw_intel.c and guarded by a Kconfig.
All other IPC4 build targets will use an empty implementation.
This avoids the need to add a platform definition for all IPC4 targets.
The common implementation in base_fw.c is sufficient to cover all
mandatory functionality required e.g. by the upstream SOF Linux driver's
IPC4 implementation.
The interfaces are renamed to refer to "vendor" instead of "platform",
to avoid any confusion with the platform layer with the new
implementation.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Install loadable LLEXT modules into the deployment tree and
create symbolic links for them.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
When building smart-amp-test as a module, we also need to
preprocess its TOML configuration file. Add it to cmake.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
To be able to build and sign multiple modules within one build we
need to unify name generation. For signing we invoke something like
west sign -i smart_amp_test
which means, that the west sign utility must be able to locate the
module binary directory and recognise files in it using only that
input file name. It will then create signed llext images inside those
binary directories too, so that deployment scripts can find and
recognise them there. We unify the naming as
${MODULE}_llext - for the binary directory,
${MODULE}.so - ELF file for signing in that directory
${MODULE}.llext - final signed extension
llext.uuid - a file with a list of UUIDs, provided by this extension
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
When installing modular components we need to create UUID-based soft
links. Create a separate file with a list of UUIDs to assist in that.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
When an ELF section isn't found .get_section_by_name() raises an
AttributeError exception, catch it specitically instead of catching
any exception.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
0x8000 is the manifest .text offset, use an existing macro instead of
open-coding it.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Pure comment fix, zero code change.
Fixes miss in commit f55338a985 ("Switch Zephyr build to new
sof/tools/rimage location")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The new lnl.conf is copy of mtl.conf but DMIC_DRIVER_VERSION needs
to be increased by one for a small registers change.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This allows more freedom to scale the equalizers. Common criteria
resulted with safe scaling to unnecessarily silent result or
risk for audible clipping in the equalizer.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Fixed redefinition warning spotted by chance while testing various CMake
combinations.
Fixes commit 07d401af9d ("drivers:amd:four channel dmic
configurations") which added the duplicate.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Commit a4c8d4ef79 ("Intel: remove XTOS support") stopped building
anything by default.
All Intel firmware in this branch is now Zephyr-based. So this Makefile
is NOT used anymore for sof-bin releases. However it is still useful as
a single command, fully parallelized and much faster alternative to
build everything at once in just a few seconds.
See source comment for more.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
No one needs a imx -> imx8 symbolic link.
Fixes misguided search/replace from commit a4c8d4ef79 ("Intel: remove
XTOS support")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Commit a4c8d4ef79 ("Intel: remove XTOS support") stopped
installer/GNUmakefile from building all XTOS firmware by default:
nothing unless either SIGNED_list or UNSIGNED_list is passed on the
command line. This didn't break CI which sets one of these parameters.
But it resulted in a cryptic "test -e staging/sof" failure and lack of
error message when trying to build by default.
Add a one-line, explicit check. The comment doubles as an error message.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Fixes initial commit fb229b9cc1 (".github/tools.tml: add build of SOF
ALSA plugin")
Github free runners don't have that many cores but let's build in
parallel and use them all.
Perhaps even more useful: let's give people who copy the build steps
from this file a much faster build.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Add support to handle IPC4_MODULES_INFO_GET message.
This make it possible to get information about the current loaded modules.
Signed-off-by: Grzegorz Bernat <grzegorzx.bernat@intel.com>
Dropping logs is bad but it should not be fatal in itself.
This ERROR is one of the last remaining errors in stable-v2.2, see
https://github.com/thesofproject/sof-test/pull/1075#issuecomment-2049051006
Also switch to the "etrace": drop the dubious recursion and stop using
the DMA trace when it's already saturated.
Disclaimer: this was (successfully) tested only on stable-v2.2, see #9036
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This patch moves blobs for crossover component into
sub-directory "crossover" to clean up clutter from
ctl/ipc3 and ipc4 level.
The patch also adds export of blobs for IPC4 mode that
was missing.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
To remove clutter from upper level this patch changes
generated files naming from e.g. "ipc4/eq_fir_loudness.blob" to
"ipc4/eq_fir/loudness.blob". It helps to find the blob files
from directory that has same name as the target component.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
We have both .bin and .blob file name suffixes in use for
similar byte controls initialize files. The scripts those
generate files with .bin are changed to .blob.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
There were no bytes control binary blobs for highpass filters.
This patch adds export of them and adds a 100 Hz filter option.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The sof_ucm_blob_write.m is an updated copy of blob_write that
exports binary blobs with header that is suitable for ALSA UCM's
cset-tlv command. The UCM requires binary files so the default
binary export is changed for every component setup script to this
format.
The ASCII decimal numbers .txt format export remains suitable for
sof-ctl tool.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Remove unneeded `include` statements. An `include` statement
is deemed as unneeded if, by removing it, the build process
will not fail.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
`platform_wait_for_interrupt()` is an XTOS-only construct
so it's not needed for imx8 which is a Zephyr-only platform.
Remove it.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Commit b0cc9dc7b5 ("cleanup: platform: imx8: remove redundant
calls in platform_init()") removes function call that uses the
`timer_shared` structure so it can be dropped.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
XTOS is no longer supported on imx8. As a consequence,
some calls from imx8's platform_init() have become
redundant. Remove these calls/initializations as well
as those who are redundant because of some configurations
that are not enabled (e.g: `CONFIG_TRACE`, or `CONFIG_HAVE_AGENT`).
This is a followup for #8863.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Fadeout curve had inaccurate shape due to incorrect computation of ramp
function.
Suggested by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
Commit c77a4feb2f ("topology2: pcm_caps: Remove defaults for
rate_min/rate_max") changed how rate constraints are described in
topology. After this change, the rate_min/max was ignored by SOF Linux
driver and the rate was incorrectly limited to 48000Hz for these
topologies.
Fix this issue by enumerating the supported sampling rates with "rates".
Link: https://github.com/thesofproject/sof/issues/9067
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
This commit updates the copier DAI creation logic for I2S links to use
the `v_index` field from the `node_id` structure as the DAI index. This
change ensures that the correct DAI index is used when creating I2S links,
aligning with the new SSP link management mechanism.
West update to necessary SSP changes:
driver: ssp: update Intel SSP DAI driver to support dynamic SSP management
Signed-off-by: Damian Nikodem <damian.nikodem@intel.com>
Dp_queue is currently used only as a comp_buffer "shadow"
for DP modules.
Shadow buffers must have the very same param set as main
buffers.
Problem: till now the complete vector of params was
copied from comp_buffer to dp_queue inm prepare method.
Problem is that if anything will change any of params
afterwards, the change won't propagate.
This commit introduces sharing the param vector between
comp_buffer and its shadow
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
the backdoor removed in this commit has never been used
A new backdoor will be introduced in new commit
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Switch to Zephyr native drivers and timer domain. This
includes:
1) Switching all imx8ulp topologies to timer domain.
2) Disabling Zephyr DMA domain
3) Various interrupt-related fixes via Kconfig-related
ifdef logic.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
There is no benefit on changing the period/buffer size_max as it is set
by default to a reasonably large value already.
What matters is the buffer_size_min: it needs to be larger than the
amount of data that one DMA burst will transfer, which is equal to the
DeepBuffer size. For safety reasons the minimum buffer size has to be
larger than this.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Increase the default period_size_max to a much larger value which is
commonly used by sound cards from 16384 to 2097152.
Adjust the buffer_size limits to minimum 384 (2 * period_size_min) and the
maximum to 4194304 (2 * period_size_max).
Applications do not need to use these large buffers, but there is no
technical reason to not allow them, like they available on other sound
hardware.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
There is no technical reason to limit how many periods applications use.
Generic sound cards tends to allow 32768 periods (period size range
is 16 - 524288) but that is an overshot, let's raise the limit to 1024.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Move implementation of IPC4_EXTENDED_SYSTEM_TIME from generic
to platform specific code. The implementation depends on specific
ART counter that is not available on all platforms, so it is better
to handle this in platform specific code.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
The implementation for IPC4_MEMORY_STATE_INFO_GET requires
reading direct register contents to fill out the structure,
so this is by definition platform specific code. Move this
to platform implementation.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Move the Intel specific L1_EXIT control handling from base_fw.c
to Intel specific platform code.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>