Commit Graph

9 Commits

Author SHA1 Message Date
Adrian Warecki 3bd9991121 lmdk: Instruct linker to keep .buildinfo section
At the beginning of the .text section there must be a structure containing
information about the version of the api used by the library. It's absence
will cause sof to interpret a random literal as a version and incorrectly
load a library.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-11-09 11:28:30 +02:00
Adrian Warecki 0c2069c2c3 lmdk: Remove content of the .module section from final module image
The .module section contains the module manifest read by rimage. It should
not be included in the final loadable module image. Flags of this section
are now modified using objcopy to ignore it by rimage.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-11-09 11:28:30 +02:00
Adrian Warecki d0931d3af5 lmdk: Remove align of .rodata section
The .data and .rodata sections are placed by rimage into one segment of
a resulting firmware image. So aligning the .rodata section to the page
boundary is just a waste of memory.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-11-09 11:28:30 +02:00
Adrian Warecki 581cfdf3cc lmdk: Enable linking with standard libraries
Changed linker options to enable linking with libgcc and libc. This change
is required to allow use compiler builtins functions (like __divdi3) and
dynamic memory allocation functions.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-11-09 11:28:30 +02:00
Adrian Warecki ad2123dd42 lmdk: Add support for dynamic memory allocation by a loadable modules
This commit adds a necessary symbols in the linker script which allows use
a memory allocation functions from libc (malloc, calloc, etc.) in loadable
modules.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-11-09 11:28:30 +02:00
Adrian Warecki 1b3403a4a9 lmdk: Update rimage include path
As rimage was moved to sof repository it is necessary to update path to
rimage include directory in lmdk build system.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-11-09 11:28:30 +02:00
Adrian Warecki 294a4b94b1 lmdk: Switch to a clang compiler
Changed the compiler used to build loadable modules to clang. It has been
used for a long time to build sof. The latest xtensa toolchain no longer
has xcc compiler.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-11-09 11:28:30 +02:00
Andrey Borisovich a675edf8e7 LMDK: fixed rimage and key paths and discovery
Path to rimage and private key had been failing to be used while
provided in form of relative path using dots.
Changed how rimage is discovered in the scripts:
* rimage is searched for using find_program with paths and hints provided
* changed RIMAGE_COMMAND to RIMAGE_INSTALL_DIR so end-user may specify
directory where rimage executable is placed. It will be used by
find_program.
* If RIMAGE_INSTALL_DIR is not provided, find_program will try to
search for rimage in the directory where SOF project installs it
(west_dir/build-rimage).
* Updated README.md with instructions on how to build:
  - simplified configure and build commands
  - updated explanations on how to use RIMAGE_INSTALL_DIR
  - added information on how to use toolchain file
* private key path was parsed incorrectly when provided windows path
style using backslashes. It was passed to rimage as is resulting in the
invalid path as the last slash was made by rimage as forward slash.
Added path normalization what fixed the problem.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2023-05-16 14:04:32 +03:00
Serhiy Katsyuba c00354b46d LMDK: Loadable Modules Dev Kit build scripts
Initial commit with set of cmake and linker scripts to build loadable
modules binary.

Things yet TODO:
  add all necessary Dev Kit header files to include dir,
  replace dummy example with somewhat useful module example.

Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
2023-05-12 10:56:34 +02:00