diff --git a/src/include/sof/lib_manager.h b/src/include/sof/lib_manager.h index ba1f8eadbfb0..96915cb639e8 100644 --- a/src/include/sof/lib_manager.h +++ b/src/include/sof/lib_manager.h @@ -96,13 +96,14 @@ struct lib_manager_segment_desc { }; struct lib_manager_module { - unsigned int start_idx; + unsigned int start_idx; /* Index of the first driver from this module in + * the library-global driver list */ const struct sof_man_module_manifest *mod_manifest; struct lib_manager_segment_desc segment[LIB_MANAGER_N_SEGMENTS]; }; struct lib_manager_mod_ctx { - void *base_addr; + void *base_addr; /* library cold storage address (e.g. DRAM) */ unsigned int n_mod; struct lib_manager_module *mod; }; diff --git a/src/ipc/ipc-common.c b/src/ipc/ipc-common.c index 6557fdd50b59..244a218d5be8 100644 --- a/src/ipc/ipc-common.c +++ b/src/ipc/ipc-common.c @@ -252,6 +252,7 @@ void ipc_msg_send(struct ipc_msg *msg, void *data, bool high_priority) k_spin_unlock(&ipc->lock, key); } +EXPORT_SYMBOL(ipc_msg_send); #ifdef __ZEPHYR__ static void ipc_work_handler(struct k_work *work) diff --git a/src/library_manager/llext_manager.c b/src/library_manager/llext_manager.c index 0aaa0797419f..c2cd5254ed76 100644 --- a/src/library_manager/llext_manager.c +++ b/src/library_manager/llext_manager.c @@ -230,7 +230,7 @@ static bool llext_manager_section_detached(const elf_shdr_t *shdr) } static int llext_manager_link(struct llext_buf_loader *ebl, const char *name, - struct lib_manager_module *mctx, struct module_data *md, + struct lib_manager_module *mctx, struct llext **llext, const void **buildinfo, const struct sof_man_module_manifest **mod_manifest) { @@ -240,7 +240,7 @@ static int llext_manager_link(struct llext_buf_loader *ebl, const char *name, .pre_located = true, .section_detached = llext_manager_section_detached, }; - int ret = llext_load(&ebl->loader, name, &md->llext, &ldr_parm); + int ret = llext_load(&ebl->loader, name, llext, &ldr_parm); if (ret) return ret; @@ -284,9 +284,10 @@ static int llext_manager_link(struct llext_buf_loader *ebl, const char *name, } static int llext_manager_mod_init(struct lib_manager_mod_ctx *ctx, - const struct sof_man_fw_desc *desc, - const struct sof_man_module *mod_array) + const struct sof_man_fw_desc *desc) { + struct sof_man_module *mod_array = (struct sof_man_module *)((uint8_t *)desc + + SOF_MAN_MODULE_OFFSET(0)); unsigned int i, n_mod; size_t offs; @@ -356,7 +357,7 @@ uintptr_t llext_manager_allocate_module(struct processing_module *proc, tr_dbg(&lib_manager_tr, "mod_id: %#x", ipc_config->id); if (!ctx->mod) - llext_manager_mod_init(ctx, desc, mod_array); + llext_manager_mod_init(ctx, desc); if (entry_index >= desc->header.num_module_entries) { tr_err(&lib_manager_tr, "Invalid driver index %u exceeds %d", @@ -407,7 +408,7 @@ uintptr_t llext_manager_allocate_module(struct processing_module *proc, struct llext_buf_loader ebl = LLEXT_BUF_LOADER((uint8_t *)dram_base + mod_offset, mod_size); /* LLEXT linking is only needed once for all the drivers in each module */ - ret = llext_manager_link(&ebl, mod_array[entry_index - inst_idx].name, mctx, md, + ret = llext_manager_link(&ebl, mod_array[entry_index - inst_idx].name, mctx, &md->llext, (const void **)&buildinfo, &mod_manifest); if (ret < 0) { tr_err(&lib_manager_tr, "linking failed: %d", ret); diff --git a/src/math/sqrt_int16.c b/src/math/sqrt_int16.c index 0d62e8145187..9068717d638d 100644 --- a/src/math/sqrt_int16.c +++ b/src/math/sqrt_int16.c @@ -6,6 +6,7 @@ // // +#include #include #define SQRT_WRAP_SCHAR_BITS 0xFF @@ -145,3 +146,4 @@ uint16_t sqrt_int16(uint16_t u) return y; } +EXPORT_SYMBOL(sqrt_int16); diff --git a/src/math/trig.c b/src/math/trig.c index ee5014cf91d2..32613d393034 100644 --- a/src/math/trig.c +++ b/src/math/trig.c @@ -7,6 +7,7 @@ // Keyon Jie // Shriram Shastry +#include #include #include #include @@ -99,6 +100,7 @@ void cordic_approx(int32_t th_rad_fxp, int32_t a_idx, int32_t *sign, int32_t *b_ /* Q2.30 format -sine, cosine*/ *th_cdc_fxp = th_rad_fxp; } +EXPORT_SYMBOL(cordic_approx); /** * CORDIC-based approximation for inverse cosine diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index ed4f7e904d2e..ac70953d8dec 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -650,7 +650,7 @@ endif() if(CONFIG_COMP_FIR STREQUAL "m") add_subdirectory(${SOF_AUDIO_PATH}/eq_fir/llext ${PROJECT_BINARY_DIR}/eq_fir_llext) - add_dependencies(app eq_iir) + add_dependencies(app eq_fir) elseif(CONFIG_COMP_FIR) zephyr_library_sources( ${SOF_AUDIO_PATH}/eq_fir/eq_fir_hifi3.c