Commit Graph

310 Commits

Author SHA1 Message Date
Adrian Warecki 99195d2ee6 rimage: manifest: Rename struct module to manifest_module
Changing the name of the structure type is a prelude to separating
information about the elf file from the information used during creation
of a manifest.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-04-05 14:06:01 +01:00
Adrian Warecki 9ecae53e28 rimage: Moved memory alias configuration to a new struct
A new memory_alias structure containing memory address alias configurations
has been created. It was placed in the memory_config structure.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-04-05 14:06:01 +01:00
Adrian Warecki b9ecb0072d rimage: adsp_config: Create new memory_config structure.
Moved mem_zone field from adsp structure to the new memory_config structure

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-04-05 14:06:01 +01:00
Adrian Warecki d20916066e misc_utils: Added functions to print enum and flags value
Added name_val structure representing name/value tuple. Added function
print_enum which displays the name of the enum corresponding to a given
value. Added print_flags function which display names of flags constituting
a given value.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-04-05 14:06:01 +01:00
Adrian Warecki c21018335a Remove unused dram_offset field / config option
There was no dram_offset value in any configuration file. It also wasn't
used anywhere in the code. So the code reading it from the tolm file has
been removed.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-04-05 14:06:01 +01:00
Adrian Warecki 9633c3b66f manifest: Check return value of man_create_modules
The man_create_modules function may return an error that was ignored. Added
check of a return value.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-04-05 14:06:01 +01:00
Adrian Warecki b2177e5585 elf: Add header guard to elf.h
Added header guard in elf.h file to allow safe include this header by
multiple units.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-04-05 14:06:01 +01:00
Kwasowiec, Fabiola 9643a986dd kpb: update UUID
Change of uuid
regarding Windows compatibility

Signed-off-by: Kwasowiec, Fabiola <fabiola.kwasowiec@intel.com>
2023-04-03 14:03:47 +02:00
Jaroslaw Stelter 01fd742605 lnl: Add LNL configuration file
Add base LNL config derived from MTL.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
2023-04-03 14:43:07 +03:00
Kai Vehmanen 1bf447c8c2 config: tgl-h-cavs: align modules to tgl-cavs config
Update the list of modules to match that of "tgl-cavs".

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-04-03 14:42:37 +03:00
Guennadi Liakhovetski 63eb6ffb0a cAVS: add alias definitions to cAVS 1.5-2.0
cAVS 1.5, 1.8 and 2.0 are supported by Zephyr, their configurations
need alias definitions.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-03-21 17:44:57 +02:00
Guennadi Liakhovetski 343b6d863d Revert "config:tgl/tglh: Do not set cached/uncached address aliases"
Now that rimage can distinguish between Zephyr and XTOS builds, we
can use memory alias specifiers with both.

This reverts commit 1e0a85b44a.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-03-17 18:33:52 +02:00
Adrian Warecki 125745bcad file_utils: Fix error detection in get_file_size function
The fseek function returns -1 to signal an error. Return value was assigned
to a variable without a sign, so the error could not be detected.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-08 14:46:46 +01:00
Adrian Warecki 4aacac3460 Use file_error function to print file related errors
Added error handling where it was missing. According to the documentation,
the fseek function returns a non-zero value on error. The conditions for
checking this value have been corrected.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-08 14:46:46 +01:00
Adrian Warecki 32a5388c10 file_utils: Add file_error function
Added a generic function that displays a file operation error message.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-08 14:46:46 +01:00
Adrian Warecki dd15443129 file_utils: Removed duplicated function descriptions
Functions are already described in the header file.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-08 14:46:46 +01:00
Przemyslaw Blaszkowski d32db50b61 mtl: add Aria module to extended manifest
Add ARIA module to MTL extended manifest.

Signed-off-by: Przemyslaw Blaszkowski <przemyslaw.blaszkowski@intel.com>
2023-03-06 13:20:34 +00:00
Chao Song 5bc201039d rimage: fix build error
Recent changes introduce build error, fix the build
error.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-03-06 13:17:21 +00:00
Rander Wang 35bc64467a mtl: add eq-iir and fir support
Port from tgl-cavs.toml

Signed-off-by: Rander Wang <rander.wang@intel.com>
2023-03-06 12:23:48 +00:00
Adrian Warecki 6fad35625f rimage: Removed hash context from image structure
Fields related to hash computing have been removed from the image
structure. Removed openssl headers from rimage.h, which made it necessary
to add some missing includes in several files.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-02 15:55:03 +01:00
Adrian Warecki 6c7a1512c6 hash: Remove old hash functions
Removed currently unused functions.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-02 15:55:03 +01:00
Adrian Warecki d258ea23fc manifest: pkcs1_5: Use new hash functions
Switched to use new hash functions. The parameter list for the rimage_sign
and rimage_verify functions has been simplified. The necessary information
is now included in the hash_context structure. In addition, code fragments
that may be common to different versions of the manifest have been
separated.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-02 15:55:03 +01:00
Adrian Warecki 2bd8be35d2 hash: New hash functions
Prepared a new set of functions for computing digest with error handling.
The hash context has been placed into a separate structure. This allows
to conveniently pass the calculated digest along with its length and used
algorithm.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-02 15:55:03 +01:00
Adrian Warecki 93c5e8b51f misc_utils: Move byte_swap function to new misc_utils.c file
This function will be used in different places in the code, so I moved it
to a separate file.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-02 15:55:03 +01:00
Adrian Warecki 9ce1cc8988 ext_manifest: Fix fw_ext_man_cavs_header version
The version fields in the fw_ext_man_cavs_header structure describe version
of the structure itself, not the image. The correct version number has been
set.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-02 07:42:43 +01:00
Adrian Warecki a4ca53c9f1 toml_utils: Adding support for decimal numbers in hex parser
Modified the strtoul function parameter to automatically recognize
the value format. This will avoid the situation when a decimal value
is parsed as hexadecimal.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-02-27 11:22:11 +01:00
Rander Wang 5ebbd6530c rimage: use hex number
Module type is interpreted as hex number

Signed-off-by: Rander Wang <rander.wang@intel.com>
2023-02-27 10:04:54 +01:00
Adrian Warecki 36c0c90769 elf: Use the get_file_size function
Simplified retrieval of file size by using the function get_file_size.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-02-27 07:23:07 +01:00
Adrian Warecki 98c7f7b567 manifest: Use the get_file_size function
Simplified retrieval of file size by using the function get_file_size.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-02-27 07:23:07 +01:00
Adrian Warecki 6a64cb9c1b file_utils: Add a new get_file_size function
The get_file_size function allows to conveniently get the size of the file.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-02-27 07:23:07 +01:00
Adrian Warecki 055ea7eca8 file_utils: manifest: ext_manifest: Add new create_file_name function
A new function create_file_name has been created that prepares the name
of the output file with the given extensions. Unlike the previous solution,
it checks whether the new name will fit in the output buffer.

A new file_utils.c file has been prepared, into which generic functions to
simplify the use of files will be moved.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-02-27 07:23:07 +01:00
Adrian Warecki fed69d453f toml_utils: adsp_config: Moved generic parser functions to toml_utils
A set of functions which make it easier to parse toml files has been
separated into a new file.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-02-24 07:29:55 +01:00
Adrian Warecki 0931d9cc4b main: heap_adsp release fix
In image re-signing mode or if there are no input files, the memory
allocated for heap_adsp was not released.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-02-23 10:43:40 +01:00
Chao Song 3aa199fb07 config: mtl: set init_config for micsel
The micsel module will use base config extension,
init_config should be one for it.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-02-16 20:57:47 +02:00
Chao Song d48ad6b67b adsp_config: add dump for init_config
This patch adds dump for init_config for debug.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-02-14 16:23:24 +00:00
Chao Song ffd0542127 adsp_config: make the default value zero for init_config
The init_config is used to indicate if base config extension is
used (1) or not (0). Its default value is used if not specified
in module config, the default value for init_config should be zero
instead of one.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-02-14 16:23:24 +00:00
Libin Yang cb9c880b6e config: tgl-cavs: add kpb, selector and kd support
Add KPB, Selector and KD module config

Signed-off-by: Libin Yang <libin.yang@intel.com>
2023-02-14 16:23:06 +00:00
Libin Yang bf23b5ea00 config: mtl: set KDTEST module_type to 8
KDTEST module_type should be 8

Signed-off-by: Libin Yang <libin.yang@intel.com>
2023-02-14 16:23:06 +00:00
Guennadi Liakhovetski 3863e94fa5 Don't convert ROM addresses to cached aliases
We don't include ROM sections into the output image. If conversion is
applied to them, they end up in the SRAM address range, which then
generates corrupted images.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-02-14 09:58:11 +02:00
Ranjani Sridharan 1e0a85b44a config:tgl/tglh: Do not set cached/uncached address aliases
tgl.toml and tgl-h.toml are only used for xtos builds.

Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-10 19:00:14 +02:00
Guennadi Liakhovetski 9b507ecc82 config: set cached and uncached aliases for affected platforms
Set cached and uncached address aliases for all Intel ADSP platforms,
supported by Zephyr.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-02-10 15:06:15 +00:00
Guennadi Liakhovetski def9d51d7d Fix regression - make default return code an error
A recent commit ec649f37d6 ("Convert all ELF addresses to cached
for calculations") had a bug: it assumed a call to
parse_uint32_hex_key() for an absent key would return an error by
default, which isn't the case. To force it set the default return
code to an error value.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-02-10 15:06:15 +00:00
Ranjani Sridharan d48ae7aada config: mtl: Set init_config for smart amp
Smart amp needs the base config extension during module init.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-09 12:06:52 +00:00
Ranjani Sridharan b5d762290f config: tgl-cavs: set init_config for smart test
Smart amp needs the base config extension during init.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-09 12:06:52 +00:00
Ranjani Sridharan 15ea48177a src: adsp_config: Use reserved bits for module init config
Use some of the reserved bits to add a new field, init_config, in struct
sof_man_module_type. This will be used to specify the type of payload
that the module expects. For now, the 2 options are to have the base
config only or the base config with an extension that contains the pin
formats. This can be extended in the future to support additional
options for modules that need more than the base config or base config +
extension.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-09 12:06:52 +00:00
Guennadi Liakhovetski ec649f37d6 Convert all ELF addresses to cached for calculations
Rimage calculates sizes of ELF sections, for which it has to use
addresses from the same address space: either all cached or all
uncached. The ELF image itself can contain mixed addresses. Convert
all to cached for internal calculations.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-02-09 12:03:58 +00:00
Chao Song 7bc3cfc946 config: mtl: add smart amp test module config
This patch adds smart amp test module config for mtl.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-02-01 14:50:59 +02:00
Chao Song 3da7739b5f config: correct module config load_type
The load_type in extended manifest is used to indicate
if a module is a built-in module(0) or a loadable(1)
module.

We don't have loadable module yet, so load_type should
be zero for all modules.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-02-01 14:50:14 +02:00
Chao Song bc7d49dcfc config: align module_type with mtl for tgl and tgl-h
The module_type member in module config should be assigned
according to the mod_type enum. Previously, for tgl and tgl-h,
it is assigned in an incremental way, which is wrong. MTL assigns
module_type in the correct way, so align the module_type with
mtl for tgl and tgl-h in this patch.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-02-01 14:50:14 +02:00
Jaska Uimonen bdf48ee7e6 config: tgl-cavs: add fir and iir eq module config
This patch adds module config for fir and iir eq module.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2023-01-24 15:37:41 +00:00