To make volume an LLEXT module it should have a single TOML
configuration file named volume.toml. This is easy to do, using
respective Kconfig options.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The MFCC component is not loading in these platforms due to
missing edit to <platform>.toml.h.
As editorial change the missing newline in the end of
ptl.toml.h is fixed.
Fixes: f7715b814b
("Audio: MFCC: Fix build of component for current SOF")
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
It has not been possible to build the component earlier for Zephyr
IPC4 systems. This patch makes the next fixes:
- Add SOF_MODULE_INIT() and include of rtos/init.h
- For unit test fix the init function to
sys_comp_module_mfcc_interface_init()
- To Zephyr/CMakeLists.txt add the needed math library sources
- Add .toml files for rimage for IPC4 systems
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
src_lite uses all the code as src only with a different set of
coefficients. Make this obvious in Kconfig and in TOML.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The code in tdfb_params() was incorrect for a component that can
have different number of channels in source and sink. The update
of sink format can it worst case crash the successive component
in pipeline if the source channels count has changed from the
value the component has been initialized for.
The channels count need to be retrieved from input and output pins
information in extended IPC4 base config. To get the extension the
rimage toml files need to add for TDFB component the line
init_config = "1".
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Convert LNL to a modular TOML layout. Many modules have different
configurations for different platforms. In this version we put them
all in respective TOML files directly. If desired, they can be later
extracted into per-platform files. This can be done on a per-module
basis, in which case individual commits will be small.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Relocatable ELF objects don't contain segments, update rimage to
prevent it from aborting in such cases.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Instead of including TOML files for each platform explicitly, add a
generic platform.toml, that will contain all respective platform
TOML files, and select the correct one, based on build configucation.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
A part of mtl.toml.h is also needed for loadable modules, built for
MTL. Extract it into a separate file.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
We need to be able to distinguish LLEXT loadable dynamically linkable
modules at run-time. Add a new type for them. Compatibility is
preserved.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The image header contains a bitfield with flags specifying a image type.
This commit sets correct image type depending on whether firmware or
a loadable module is being signed.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Split TOML configuration files into platform and module parts. Use
the C preprocessor to merge them back together.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Rename:
- tgl-cavs.toml to tgl.toml
- tgl-h-cavs.toml to tgl-h.toml
Remove the IPC3/IPC4 switch added by commit 6f71808e3e
("xtensa-build-zephyr.py: add ipc4 build support for tgl")
This brings back consistency which is required for the .toml
split (#8490)
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The main branch hasn't supported IPC3 for tgl for a long time.
Follow-up to commit a17c2823d3 ("xtensa-build-zephyr: remove ipc
option")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Added limit of a number of input modules provided in a command line to the
maximum number of supported modules (size of module array / MAX_MODULES)
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
If the RODATA segment does not contain any data, its type is marked as
empty. Cleared the readonly flag because this segment also contains .data
sections.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
If a given output segment type did not contain any input section
(was empty), its size was incorrectly calculated as 1 and then rounded to
the page size (4096). This resulted in an unnecessary segment in a output
file.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
By oversight, the error message did not use the file name passed as a
parameter to the module_write_whole_elf function.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
If more modules are provided in a command line than defined in a toml file,
the program outputs an error message. It frees the module structures
even though they have not been opened before. This resulted in an error
when trying to close a file that was not previously open. Added a check to
ensure that a file has been opened before trying to close it.
Error handling in the elf_open function has been simplified.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Loadable libraries do not need to have a .bss section. After this change,
its absence will be ignored when generating a image of the loadable module.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Clean cherry-picks of two commits from separate rimage repo
https://github.com/thesofproject/rimage/commits/stable-v2.7
This will properly setup partition_usage field
and remove fixed 0x23 value from MTL toml
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
(cherry picked from commit fbea59358d06ffa86645cdf4ce0996e352742eb5)
Second, squashed LNL commit:
config/lnl.toml: drop now invalid signed_pkg.partition_usage
Fixes commit fbea59358d06 ("rimage: mtl: fix key slot setup based on imr
type") which broke LNL compilation like this:
```
error: 1 unparsed keys left in 'signed_pkg'
error: key 'signed_pkg' parsing error
```
This commit does not change the final image (compared to before rimage
commit fbea59358d06) because the default value is now 0x20 + IMR type.
Fixes are normally submitted to the main branch first and then cherry
picked to stable branches. However MTL fbea59358d06 has been made in
stable-v2.7 first so the LNL change was also in stable-v2.7 first for
consistency.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
(cherry picked from commit 469102a8f6052ce6a374b870ea945a84d04c3b1a)
Fixed the order in which sections are placed in the output firmware image
for platforms using a simple manifest.
Fixes: #8336
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Fixes compilation failure with clang 15:
rimage/src/toml_utils.c:297:67: error: taking address of packed member
'd0' of class or structure 'uuid_t' may result in an unaligned pointer
value [-Werror,-Waddress-of-packed-member]
sscanf(buf, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", &id.d0,
^~~~
This also aligns indexes.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Addition of SRC Lite module,
which only supports a subset of conversions
supported by the SRC module.
Purpose of SRC Lite module is memory optimization.
Code of SRC Lite is drastically reduced and requires
significantly less memory. When needed one of
defined conversions, driver can choose SRC Lite
module instead of SRC module to optimize memory utilization.
48 -> 16kHz
44.1 -> 16 kHz
32 -> 16 kHz
44.1 -> 48
Signed-off-by: Fabiola Kwasowiec <fabiola.kwasowiec@intel.com>
This patch adds same RTC_AEC module entry as added earlier
to config/mtl.toml. The purpose is enable testing the component
in other platforms.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Migrate rimage build and cppcheck workflows from
sof/tools/rimage/.github/workflows/ (where they're ignored) to
sof/.github/workflows/
Signed-off-by: Marc Herbert <marc.herbert@intel.com>