Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/boards/intel_adsp_ace20_lnl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ CONFIG_COMP_KPB=y
CONFIG_COMP_TESTER=m
CONFIG_COMP_SRC_IPC4_FULL_MATRIX=y
CONFIG_COMP_UP_DOWN_MIXER=y
CONFIG_COMP_VOLUME=m
CONFIG_COMP_VOLUME_WINDOWS_FADE=y
CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_PCM_CONVERTER_FORMAT_S16_C16_AND_S16_C32=y
Expand Down
27 changes: 18 additions & 9 deletions src/library_manager/llext_manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,10 @@ static int llext_manager_load_data_from_storage(const struct llext_loader *ldr,
(uintptr_t)shdr->sh_addr >= (uintptr_t)vma + size)
continue;

tr_info(&lib_manager_tr, "reg %i: sect %u, %p <- %p, %u", region, i,
(void *)shdr->sh_addr,
(void *)((uintptr_t)region_addr + s_offset), shdr->sh_size);

ret = memcpy_s((__sparse_force void *)shdr->sh_addr, size - s_offset,
(const uint8_t *)region_addr + s_offset, shdr->sh_size);
if (ret < 0)
Expand Down Expand Up @@ -263,6 +267,8 @@ static int llext_manager_link(const char *name,
const elf_shdr_t *hdr;
int ret;

tr_info(&lib_manager_tr, "%s: reloc %i mapped %i", name, !*llext, mctx->mapped);

if (*llext && !mctx->mapped) {
/*
* All module instances have been terminated, so we freed SRAM,
Expand Down Expand Up @@ -297,27 +303,27 @@ static int llext_manager_link(const char *name,
mctx->segment[LIB_MANAGER_TEXT].addr = hdr->sh_addr;
mctx->segment[LIB_MANAGER_TEXT].size = hdr->sh_size;

tr_dbg(&lib_manager_tr, ".text: start: %#lx size %#x",
mctx->segment[LIB_MANAGER_TEXT].addr,
mctx->segment[LIB_MANAGER_TEXT].size);
tr_info(&lib_manager_tr, ".text: start: %#lx size %#x",
mctx->segment[LIB_MANAGER_TEXT].addr,
mctx->segment[LIB_MANAGER_TEXT].size);

/* All read-only data sections */
llext_get_region_info(ldr, *llext, LLEXT_MEM_RODATA, &hdr, NULL, NULL);
mctx->segment[LIB_MANAGER_RODATA].addr = hdr->sh_addr;
mctx->segment[LIB_MANAGER_RODATA].size = hdr->sh_size;

tr_dbg(&lib_manager_tr, ".rodata: start: %#lx size %#x",
mctx->segment[LIB_MANAGER_RODATA].addr,
mctx->segment[LIB_MANAGER_RODATA].size);
tr_info(&lib_manager_tr, ".rodata: start: %#lx size %#x",
mctx->segment[LIB_MANAGER_RODATA].addr,
mctx->segment[LIB_MANAGER_RODATA].size);

/* All writable data sections */
llext_get_region_info(ldr, *llext, LLEXT_MEM_DATA, &hdr, NULL, NULL);
mctx->segment[LIB_MANAGER_DATA].addr = hdr->sh_addr;
mctx->segment[LIB_MANAGER_DATA].size = hdr->sh_size;

tr_dbg(&lib_manager_tr, ".data: start: %#lx size %#x",
mctx->segment[LIB_MANAGER_DATA].addr,
mctx->segment[LIB_MANAGER_DATA].size);
tr_info(&lib_manager_tr, ".data: start: %#lx size %#x",
mctx->segment[LIB_MANAGER_DATA].addr,
mctx->segment[LIB_MANAGER_DATA].size);

/* Writable uninitialized data section */
llext_get_region_info(ldr, *llext, LLEXT_MEM_BSS, &hdr, NULL, NULL);
Expand Down Expand Up @@ -652,6 +658,9 @@ int llext_manager_free_module(const uint32_t component_id)
*/
int ret = llext_unload(&mctx->llext);

tr_info(&lib_manager_tr,
"mod_id: %#x: llext_unload(): %d",
component_id, ret);
if (ret <= 0) {
tr_err(&lib_manager_tr,
"mod_id: %#x: invalid return code from llext_unload(): %d",
Expand Down
6 changes: 4 additions & 2 deletions west.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ manifest:
remote: thesofproject

remotes:
- name: pillo79
url-base: https://github.com/pillo79
- name: thesofproject
url-base: https://github.com/thesofproject
- name: zephyrproject
Expand Down Expand Up @@ -43,8 +45,8 @@ manifest:

- name: zephyr
repo-path: zephyr
revision: 218de8dc676c424d81c3402e6262e5e326b84b28
remote: zephyrproject
revision: pr-llext-storage
remote: pillo79

# Import some projects listed in zephyr/west.yml@revision
#
Expand Down
Loading