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>
Add support to handle platform specific extensions with
platform_basefw_get_large_config() and
platform_basefw_set_large_config(). These functions are called when
get/set handled is called with a parameter type not handled
in generic code.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Some of the IPC4 FW_CONFIG fields are platform specific and cannot be
filled with generic code.
Handle this data by adding a call to platform_basefw_fw_config()
and add an implementation for all current platforms with IPC4
support.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Pulls in the following patches relevant to SOF:
799a456c2586 nxp: imx8ulp: add audio-related nodes
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Added support for ipc4 query no 16. This makes it possible to get
information about the current basefw library.
Signed-off-by: Grzegorz Bernat <grzegorzx.bernat@intel.com>
This commit includes all necessary changes for switching
to timer domain and Zephyr native drivers on imx8 and imx8x.
This consists of:
1) Switching all imx8 topologies to timer domain.
2) Disabling Zephyr DMA domain
3) Various interrupt-related fixes via Kconfig-related
ifdef logic.
This commit includes all necessary changes for switching
to native Zephyr drivers on imx8/imx8x.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Add entry for NXP's ESAI IP inside the "zephyr_dev" array.
What the entry does is it fetches all "struct device"s for
ESAI nodes marked as "okay".
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Add nodes for the following IPs: SAI, EDMA and ESAI. Also,
add node for HOST_DMA. These are all required for switching
to Zephyr native drivers.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>