From b7e483752f23d31d3d272ce5cae27dac3b80d08a Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Fri, 7 Jun 2024 09:11:41 +0200 Subject: [PATCH 01/12] llext: fix Windows builds Under windows the Python interpreter has to be called explicitly. Without it an attempt to execute a Python script fails silently. Signed-off-by: Guennadi Liakhovetski --- scripts/xtensa-build-zephyr.py | 14 +++++++++++++- zephyr/CMakeLists.txt | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/scripts/xtensa-build-zephyr.py b/scripts/xtensa-build-zephyr.py index 4914120170c3..240449681cf2 100755 --- a/scripts/xtensa-build-zephyr.py +++ b/scripts/xtensa-build-zephyr.py @@ -39,6 +39,7 @@ import gzip import dataclasses import concurrent.futures as concurrent +import re from west import configuration as west_config @@ -945,7 +946,18 @@ def install_lib(sof_lib_dir, abs_build_dir, platform_wconfig): llext_input = entry_path / (llext_base + '.llext') llext_output = entry_path / (llext_file + '.ri') - sign_cmd = [platform_wconfig.get("rimage.path"), "-o", str(llext_output), + # on Windows platform_wconfig.get("rimage.path") returns a string + # with multiple nested single and double quotes, which then break + # execution: + # In dir: D:\a\sof\sof\workspace; running command: + # ''"'"'D:\a\sof\sof\workspace\build-rimage\rimage.EXE'"'"'' -o + # 'D:\a\sof\sof\workspace\build-mtl\zephyr\eq_iir_llext\eq_iir.llext.ri' -e + # -c 'D:\a\sof\sof\workspace\build-mtl\zephyr\eq_iir_llext\rimage_config.toml' + # -k 'D:\a\sof\sof\workspace\sof\keys\otc_private_key_3k.pem' -l + # -r 'D:\a\sof\sof\workspace\build-mtl\zephyr\eq_iir_llext\eq_iir.llext' + # The regex below cleans them up + rimage_cmd = re.sub(r"[\"']", "", platform_wconfig.get("rimage.path")) + sign_cmd = [rimage_cmd, "-o", str(llext_output), "-e", "-c", str(rimage_cfg), "-k", str(signing_key), "-l", "-r", str(llext_input)] diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index c9de5f9b5cbb..ce04fee7a366 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -90,7 +90,7 @@ function(sof_llext_build module) get_target_property(proc_out_file ${module} pkg_input) add_llext_command(TARGET ${module} POST_BUILD - COMMAND ${SOF_BASE}scripts/llext_link_helper.py + COMMAND ${PYTHON_EXECUTABLE} ${SOF_BASE}scripts/llext_link_helper.py --text-addr="${SOF_LLEXT_TEXT_ADDR}" -f ${proc_in_file} ${CMAKE_C_COMPILER} -- -o ${proc_out_file} ${EXTRA_LINKER_PARAMS} $ From b95d626899cb878bbea01c46e3d8da0d23ef1d61 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Fri, 7 Jun 2024 16:29:09 +0200 Subject: [PATCH 02/12] ipc4: a failure to find a driver might not be fatal When ipc4_get_drv() fails to find a driver, it might mean, that the driver needs to be linked dynamically. Printing an error in such a case wrongly fails CI testing. Signed-off-by: Guennadi Liakhovetski --- src/ipc/ipc4/helper.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ipc/ipc4/helper.c b/src/ipc/ipc4/helper.c index f680feb47156..d427643ef3ea 100644 --- a/src/ipc/ipc4/helper.c +++ b/src/ipc/ipc4/helper.c @@ -946,11 +946,11 @@ const struct comp_driver *ipc4_get_drv(const uint8_t *uuid) } } - tr_err(&comp_tr, "get_drv(): the provided UUID (%08x %08x %08x %08x) can't be found!", - *(uint32_t *)(&uuid[0]), - *(uint32_t *)(&uuid[4]), - *(uint32_t *)(&uuid[8]), - *(uint32_t *)(&uuid[12])); + tr_warn(&comp_tr, "get_drv(): the provided UUID (%08x %08x %08x %08x) can't be found!", + *(uint32_t *)(&uuid[0]), + *(uint32_t *)(&uuid[4]), + *(uint32_t *)(&uuid[8]), + *(uint32_t *)(&uuid[12])); out: irq_local_enable(flags); From 95a0aeb17889bc49ebe3c2ae01d7d5ba947acfb7 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Thu, 13 Jun 2024 14:30:37 +0200 Subject: [PATCH 03/12] samples: (cosmetic) clean up Kconfig spacing Use consistent TABs and spaces in src/samples/audio/Kconfig Signed-off-by: Guennadi Liakhovetski --- src/samples/audio/Kconfig | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/samples/audio/Kconfig b/src/samples/audio/Kconfig index e853b0668f1a..0338ced15875 100644 --- a/src/samples/audio/Kconfig +++ b/src/samples/audio/Kconfig @@ -2,27 +2,27 @@ menu "Audio component samples" - config SAMPLE_SMART_AMP - tristate "Smart amplifier test component" - default y - help - Select for test smart amplifier component + config SAMPLE_SMART_AMP + tristate "Smart amplifier test component" + default y + help + Select for test smart amplifier component - config SAMPLE_KEYPHRASE + config SAMPLE_KEYPHRASE depends on CAVS || IMX || ACE - bool "Keyphrase test component" - default y - help - Select for Keyphrase test component. - Provides basic functionality for use in testing of keyphrase detection pipelines. + bool "Keyphrase test component" + default y + help + Select for Keyphrase test component. + Provides basic functionality for use in testing of keyphrase detection pipelines. config KWD_NN_SAMPLE_KEYPHRASE - depends on IMX - bool "KWD NN Keyphrase test component" - default n - help - Select for KWD NN Keyphrase test component based on neural network. - Provides ML functionality for use in testing of keyphrase detection pipelines. - Use KWD based on NN as alternative to the default KWD component. - Provides neural network as a library. + depends on IMX + bool "KWD NN Keyphrase test component" + default n + help + Select for KWD NN Keyphrase test component based on neural network. + Provides ML functionality for use in testing of keyphrase detection pipelines. + Use KWD based on NN as alternative to the default KWD component. + Provides neural network as a library. endmenu From 543272fd0a1bd70dd66a043d642c584c6cd5dfbb Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Fri, 14 Jun 2024 15:44:34 +0200 Subject: [PATCH 04/12] llext: add maximum instance count support Maximum instance count cannot be zero, they have to be supplied by respective modules. Signed-off-by: Guennadi Liakhovetski --- src/audio/eq_iir/eq_iir.c | 2 +- src/audio/mixin_mixout/mixin_mixout.c | 4 ++-- src/include/module/module/llext.h | 3 ++- src/samples/audio/smart_amp_test_ipc4.c | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/audio/eq_iir/eq_iir.c b/src/audio/eq_iir/eq_iir.c index f81a943a7928..44a665343c08 100644 --- a/src/audio/eq_iir/eq_iir.c +++ b/src/audio/eq_iir/eq_iir.c @@ -269,7 +269,7 @@ SOF_MODULE_INIT(eq_iir, sys_comp_module_eq_iir_interface_init); SOF_LLEXT_MOD_ENTRY(eq_iir, &eq_iir_interface); static const struct sof_man_module_manifest mod_manifest __section(".module") __used = - SOF_LLEXT_MODULE_MANIFEST("EQIIR", eq_iir_llext_entry, 1, UUID_EQIIR); + SOF_LLEXT_MODULE_MANIFEST("EQIIR", eq_iir_llext_entry, 1, UUID_EQIIR, 40); SOF_LLEXT_BUILDINFO; diff --git a/src/audio/mixin_mixout/mixin_mixout.c b/src/audio/mixin_mixout/mixin_mixout.c index 105ef9c8e131..8834327ab22b 100644 --- a/src/audio/mixin_mixout/mixin_mixout.c +++ b/src/audio/mixin_mixout/mixin_mixout.c @@ -980,8 +980,8 @@ SOF_LLEXT_MOD_ENTRY(mixout, &mixout_interface); static const struct sof_man_module_manifest mod_manifest[] __section(".module") __used = { - SOF_LLEXT_MODULE_MANIFEST("MIXIN", mixin_llext_entry, 1, UUID_MIXIN), - SOF_LLEXT_MODULE_MANIFEST("MIXOUT", mixout_llext_entry, 1, UUID_MIXOUT), + SOF_LLEXT_MODULE_MANIFEST("MIXIN", mixin_llext_entry, 1, UUID_MIXIN, 30), + SOF_LLEXT_MODULE_MANIFEST("MIXOUT", mixout_llext_entry, 1, UUID_MIXOUT, 30), }; SOF_LLEXT_BUILDINFO; diff --git a/src/include/module/module/llext.h b/src/include/module/module/llext.h index 61532e3fb70f..05b8f0ffb5f5 100644 --- a/src/include/module/module/llext.h +++ b/src/include/module/module/llext.h @@ -6,12 +6,13 @@ #ifndef MODULE_LLEXT_H #define MODULE_LLEXT_H -#define SOF_LLEXT_MODULE_MANIFEST(manifest_name, entry, affinity, mod_uuid) \ +#define SOF_LLEXT_MODULE_MANIFEST(manifest_name, entry, affinity, mod_uuid, instances) \ { \ .module = { \ .name = manifest_name, \ .uuid = {mod_uuid}, \ .entry_point = (uint32_t)(entry), \ + .instance_max_count = instances, \ .type = { \ .load_type = SOF_MAN_MOD_TYPE_LLEXT, \ .domain_ll = 1, \ diff --git a/src/samples/audio/smart_amp_test_ipc4.c b/src/samples/audio/smart_amp_test_ipc4.c index 9017408cf235..bec6634a7f25 100644 --- a/src/samples/audio/smart_amp_test_ipc4.c +++ b/src/samples/audio/smart_amp_test_ipc4.c @@ -415,6 +415,7 @@ static const struct sof_man_module_manifest main_manifest __section(".module") _ .uuid = {0x1E, 0x96, 0x7A, 0x16, 0xE4, 0x8A, 0xEA, 0x11, 0x89, 0xF1, 0x00, 0x0C, 0x29, 0xCE, 0x16, 0x35}, .entry_point = (uint32_t)smart_amp_test_llext_entry, + .instance_max_count = 1, .type = { #ifdef __SOF_MODULE_SERVICE_BUILD__ .load_type = SOF_MAN_MOD_TYPE_MODULE, From 8891fb2e6575ab0ab3a89047d08dc85b8df91808 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Fri, 14 Jun 2024 15:47:08 +0200 Subject: [PATCH 05/12] rimage: propagate maximum module instance counts Use maximum instance count from modules when building a manifest. Signed-off-by: Guennadi Liakhovetski --- tools/rimage/src/manifest.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/rimage/src/manifest.c b/tools/rimage/src/manifest.c index 5fb766c87173..b7c079015275 100644 --- a/tools/rimage/src/manifest.c +++ b/tools/rimage/src/manifest.c @@ -225,6 +225,7 @@ static int man_get_module_manifest(struct image *image, struct manifest_module * memcpy(man_module->name, sof_mod->module.name, SOF_MAN_MOD_NAME_LEN); memcpy(man_module->uuid, sof_mod->module.uuid, 16); man_module->affinity_mask = sof_mod->module.affinity_mask; + man_module->instance_max_count = sof_mod->module.instance_max_count; man_module->type.auto_start = sof_mod->module.type.auto_start; man_module->type.domain_dp = sof_mod->module.type.domain_dp; man_module->type.domain_ll = sof_mod->module.type.domain_ll; @@ -464,9 +465,6 @@ static int man_module_create_reloc(struct image *image, struct manifest_module * /* stack size ??? convert sizes to PAGES */ man_module->instance_bss_size = 1; - /* max number of instances of this module ?? */ - man_module->instance_max_count = 1; - module_print_zones(&module->file); /* main module */ From b06f65bd86d9b06ada19d131e3abe2dd310f1f44 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Mon, 17 Jun 2024 17:24:35 +0200 Subject: [PATCH 06/12] llext: remove logging during module freeing When pipelines are destroyed, component drivers' .reset() and .free() are called. If those drivers were loaded dynamically their memory is then unmapped. But logging takes place in a low priority task, so it is important that no logging is done from those methods. Signed-off-by: Guennadi Liakhovetski --- src/audio/eq_iir/eq_iir.c | 4 ---- src/audio/mixin_mixout/mixin_mixout.c | 8 -------- src/samples/audio/smart_amp_test_ipc4.c | 4 ---- 3 files changed, 16 deletions(-) diff --git a/src/audio/eq_iir/eq_iir.c b/src/audio/eq_iir/eq_iir.c index 44a665343c08..a5b04a418691 100644 --- a/src/audio/eq_iir/eq_iir.c +++ b/src/audio/eq_iir/eq_iir.c @@ -98,8 +98,6 @@ static int eq_iir_free(struct processing_module *mod) { struct comp_data *cd = module_get_private_data(mod); - comp_info(mod->dev, "eq_iir_free()"); - eq_iir_free_delaylines(cd); comp_data_blob_handler_free(cd->model_handler); @@ -232,8 +230,6 @@ static int eq_iir_reset(struct processing_module *mod) struct comp_data *cd = module_get_private_data(mod); int i; - comp_info(mod->dev, "eq_iir_reset()"); - eq_iir_free_delaylines(cd); cd->eq_iir_func = NULL; diff --git a/src/audio/mixin_mixout/mixin_mixout.c b/src/audio/mixin_mixout/mixin_mixout.c index 8834327ab22b..24f30ff31677 100644 --- a/src/audio/mixin_mixout/mixin_mixout.c +++ b/src/audio/mixin_mixout/mixin_mixout.c @@ -173,9 +173,7 @@ static int mixout_init(struct processing_module *mod) static int mixin_free(struct processing_module *mod) { struct mixin_data *md = module_get_private_data(mod); - struct comp_dev *dev = mod->dev; - comp_dbg(dev, "mixin_free()"); rfree(md); return 0; @@ -183,7 +181,6 @@ static int mixin_free(struct processing_module *mod) static int mixout_free(struct processing_module *mod) { - comp_dbg(mod->dev, "mixout_free()"); rfree(module_get_private_data(mod)); return 0; @@ -554,9 +551,6 @@ static int mixout_process(struct processing_module *mod, static int mixin_reset(struct processing_module *mod) { struct mixin_data *mixin_data = module_get_private_data(mod); - struct comp_dev *dev = mod->dev; - - comp_dbg(dev, "mixin_reset()"); mixin_data->mix = NULL; mixin_data->gain_mix = NULL; @@ -568,8 +562,6 @@ static int mixout_reset(struct processing_module *mod) { struct comp_dev *dev = mod->dev; - comp_dbg(dev, "mixout_reset()"); - /* FIXME: move this to module_adapter_reset() */ if (dev->pipeline->source_comp->direction == SOF_IPC_STREAM_PLAYBACK) { int i; diff --git a/src/samples/audio/smart_amp_test_ipc4.c b/src/samples/audio/smart_amp_test_ipc4.c index bec6634a7f25..e2e06db9ea6b 100644 --- a/src/samples/audio/smart_amp_test_ipc4.c +++ b/src/samples/audio/smart_amp_test_ipc4.c @@ -157,8 +157,6 @@ static inline int smart_amp_get_config(struct processing_module *mod, static int smart_amp_free(struct processing_module *mod) { - LOG_DBG("smart_amp_free()"); - #ifndef __SOF_MODULE_SERVICE_BUILD__ struct smart_amp_data *sad = module_get_private_data(mod); @@ -320,8 +318,6 @@ static int smart_amp_process(struct processing_module *mod, static int smart_amp_reset(struct processing_module *mod) { - LOG_DBG("smart_amp_reset()"); - return 0; } From 261dd246b825459c5aaafd0f106d869991b036aa Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Tue, 2 Jul 2024 10:53:07 +0200 Subject: [PATCH 07/12] llext: disable when testing reproducible builds So far we cannot build identical LLEXT modules under Linux and Windows, build a monolithic firmware for this test. Signed-off-by: Guennadi Liakhovetski --- app/overlays/repro-build.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/app/overlays/repro-build.conf b/app/overlays/repro-build.conf index d7b434c39660..25e49e619e6c 100644 --- a/app/overlays/repro-build.conf +++ b/app/overlays/repro-build.conf @@ -1,2 +1,3 @@ CONFIG_OUTPUT_DISASSEMBLY=y CONFIG_OUTPUT_DISASSEMBLY_WITH_SOURCE=n +CONFIG_MODULES=n From 918bf1334865f976cadba04385289dff3f2467f6 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Wed, 26 Jun 2024 10:18:43 +0200 Subject: [PATCH 08/12] kcps: fix 0 module CPC case If a module contains 0 as its CPC value, the consumption calculation routine will assign a "safe" maximum value to keep the DSP running at the maximum clock rate. This works when constructing a pipeline, but when a pipeline is torn down, returning the maximum clock rate leads to the clock being reduced to a small value. Fix this by detecting such cases in pipeline termination code. Signed-off-by: Guennadi Liakhovetski --- src/audio/pipeline/pipeline-stream.c | 13 +++++++++++++ src/include/sof/audio/pipeline.h | 1 + 2 files changed, 14 insertions(+) diff --git a/src/audio/pipeline/pipeline-stream.c b/src/audio/pipeline/pipeline-stream.c index 7077f5e30251..2025f908fe47 100644 --- a/src/audio/pipeline/pipeline-stream.c +++ b/src/audio/pipeline/pipeline-stream.c @@ -344,11 +344,18 @@ static int pipeline_calc_cps_consumption(struct comp_dev *current, if (cd->cpc == 0) { /* Use maximum clock budget, assume 1ms chunk size */ + if (!ppl_data->kcps_acc[comp_core]) + ppl_data->kcps_acc[comp_core] = ppl_data->kcps[comp_core]; ppl_data->kcps[comp_core] = CLK_MAX_CPU_HZ / 1000; tr_warn(pipe, "0 CPS requested for module: %#x, core: %d using safe max KCPS: %u", current->ipc_config.id, comp_core, ppl_data->kcps[comp_core]); + /* + * This return code indicates to the caller, that the kcps calue + * shouldn't be used for slowing down the clock when terminating + * the pipeline + */ return PPL_STATUS_PATH_STOP; } else { kcps = cd->cpc * 1000 / current->period; @@ -430,6 +437,12 @@ int pipeline_trigger(struct pipeline *p, struct comp_dev *host, int cmd) ret = walk_ctx.comp_func(p->source_comp, NULL, &walk_ctx, PPL_DIR_DOWNSTREAM); for (int i = 0; i < arch_num_cpus(); i++) { + if (ret == PPL_STATUS_PATH_STOP) { + /* Restore the value before maximization */ + data.kcps[i] -= data.kcps_acc[i]; + data.kcps_acc[i] = 0; + } + if (data.kcps[i] > 0) { core_kcps_adjust(i, -data.kcps[i]); tr_info(pipe, "Sum of KCPS consumption: %d, core: %d", core_kcps_get(i), i); diff --git a/src/include/sof/audio/pipeline.h b/src/include/sof/audio/pipeline.h index 0edb3305680c..a3d9a91cd670 100644 --- a/src/include/sof/audio/pipeline.h +++ b/src/include/sof/audio/pipeline.h @@ -124,6 +124,7 @@ struct pipeline_data { uint32_t delay_ms; /* between PRE_{START,RELEASE} and {START,RELEASE} */ #if CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL uint32_t kcps[CONFIG_CORE_COUNT]; /**< the max count of KCPS */ + uint32_t kcps_acc[CONFIG_CORE_COUNT]; /**< accumulated KCPS before maximization */ #endif }; From de7e4a7ed0f078bb3663ef9883cfda91951cfa4a Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Thu, 11 Jul 2024 08:35:01 +0200 Subject: [PATCH 09/12] llext: make 3 components modular by default on MTL Make smart-amp-test, mixin-mixout and eq-iir modular on MTL. Signed-off-by: Guennadi Liakhovetski --- app/boards/intel_adsp_ace15_mtpm.conf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/boards/intel_adsp_ace15_mtpm.conf b/app/boards/intel_adsp_ace15_mtpm.conf index f4a2e3165404..6dd30f35a856 100644 --- a/app/boards/intel_adsp_ace15_mtpm.conf +++ b/app/boards/intel_adsp_ace15_mtpm.conf @@ -88,6 +88,10 @@ CONFIG_LLEXT=y CONFIG_LLEXT_STORAGE_WRITABLE=y CONFIG_MODULES=y +CONFIG_COMP_MIXIN_MIXOUT=m +CONFIG_COMP_IIR=m +CONFIG_SAMPLE_SMART_AMP=m + # Temporary disabled options CONFIG_TRACE=n CONFIG_COMP_KPB=y From 2d727e5ec1b6269e21fb5dc08d79b720853abffe Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Thu, 11 Jul 2024 11:04:02 +0200 Subject: [PATCH 10/12] perf: fix SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS=n With CONFIG_SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS=n compilation is currently broken, fix it. Signed-off-by: Guennadi Liakhovetski --- src/audio/base_fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audio/base_fw.c b/src/audio/base_fw.c index ba695216a468..a32fe49ea72e 100644 --- a/src/audio/base_fw.c +++ b/src/audio/base_fw.c @@ -403,7 +403,7 @@ static int basefw_pipeline_list_info_get(uint32_t *data_offset, char *data) int set_perf_meas_state(const char *data) { -#ifdef CONFIG_SOF_TELEMETRY +#if CONFIG_SOF_TELEMETRY && CONFIG_SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS enum ipc4_perf_measurements_state_set state = *data; switch (state) { From 5a6214819016597acc2f9ff2fe264896bb6668f1 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Thu, 11 Jul 2024 11:05:38 +0200 Subject: [PATCH 11/12] llext: disable performance, it breaks llext When built with performance-measurement enabled, LLEXT fails to boot. Disable CONFIG_SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS until it's fixed. Signed-off-by: Guennadi Liakhovetski --- app/boards/intel_adsp_ace15_mtpm.conf | 1 - app/boards/intel_adsp_ace20_lnl.conf | 1 - 2 files changed, 2 deletions(-) diff --git a/app/boards/intel_adsp_ace15_mtpm.conf b/app/boards/intel_adsp_ace15_mtpm.conf index 6dd30f35a856..a50aa418dc69 100644 --- a/app/boards/intel_adsp_ace15_mtpm.conf +++ b/app/boards/intel_adsp_ace15_mtpm.conf @@ -46,7 +46,6 @@ CONFIG_MM_DRV_INTEL_ADSP_TLB_REMAP_UNUSED_RAM=y CONFIG_AMS=y CONFIG_COUNTER=y CONFIG_SOF_TELEMETRY=y -CONFIG_SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS=y CONFIG_HEAP_MEM_POOL_SIZE=8192 CONFIG_L3_HEAP=y diff --git a/app/boards/intel_adsp_ace20_lnl.conf b/app/boards/intel_adsp_ace20_lnl.conf index a0bdf81133b6..be7f1b4f9cff 100644 --- a/app/boards/intel_adsp_ace20_lnl.conf +++ b/app/boards/intel_adsp_ace20_lnl.conf @@ -41,7 +41,6 @@ CONFIG_MM_DRV_INTEL_ADSP_TLB_REMAP_UNUSED_RAM=y CONFIG_AMS=y CONFIG_COUNTER=y CONFIG_SOF_TELEMETRY=y -CONFIG_SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS=y CONFIG_HEAP_MEM_POOL_SIZE=8192 CONFIG_L3_HEAP=y From 8bb79f83ca496b1c9ed6347ca7f94e98dd5d18a3 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Wed, 26 Jun 2024 10:18:43 +0200 Subject: [PATCH 12/12] Disable KCPS_DYNAMIC_CLOCK_CONTROL to test speaker-test Disabling CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL appears to fix speaker-test failures with LLEXT. Signed-off-by: Guennadi Liakhovetski --- app/boards/intel_adsp_ace15_mtpm.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/boards/intel_adsp_ace15_mtpm.conf b/app/boards/intel_adsp_ace15_mtpm.conf index a50aa418dc69..f669faa3403d 100644 --- a/app/boards/intel_adsp_ace15_mtpm.conf +++ b/app/boards/intel_adsp_ace15_mtpm.conf @@ -109,4 +109,4 @@ CONFIG_LOG_TIMESTAMP_64BIT=y CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=y CONFIG_COMP_STUBS=y -CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL=y +CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL=n