mfcc: enable building as an llext module

Add support for LLEXT building to mfcc.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit is contained in:
Guennadi Liakhovetski 2024-06-03 10:49:52 +02:00 committed by Kai Vehmanen
parent 661c05dfc5
commit 1b38612460
7 changed files with 53 additions and 9 deletions

View File

@ -9,6 +9,7 @@ CONFIG_COMP_SEL=m
CONFIG_COMP_SRC=m
CONFIG_COMP_ARIA=m
CONFIG_COMP_ASRC=m
CONFIG_COMP_MFCC=m
CONFIG_COMP_RTNR=m
CONFIG_COMP_TDFB=m
CONFIG_COMP_IGO_NR=m

View File

@ -9,6 +9,7 @@ CONFIG_COMP_SEL=m
CONFIG_COMP_SRC=m
CONFIG_COMP_ARIA=m
CONFIG_COMP_ASRC=m
CONFIG_COMP_MFCC=m
CONFIG_COMP_RTNR=m
CONFIG_COMP_TDFB=m
CONFIG_COMP_IGO_NR=m

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: BSD-3-Clause
config COMP_MFCC
bool "MFCC component"
tristate "MFCC component"
depends on COMP_MODULE_ADAPTER
select CORDIC_FIXED
select MATH_16BIT_MEL_FILTERBANK

View File

@ -0,0 +1,11 @@
# Copyright (c) 2024 Intel Corporation.
# SPDX-License-Identifier: Apache-2.0
sof_llext_build("mfcc"
SOURCES ../mfcc.c
../mfcc_setup.c
../mfcc_common.c
../mfcc_generic.c
../mfcc_hifi3.c
../mfcc_hifi4.c
)

View File

@ -0,0 +1,6 @@
#include <tools/rimage/config/platform.toml>
#define LOAD_TYPE "2"
#include "../mfcc.toml"
[module]
count = __COUNTER__

View File

@ -259,3 +259,22 @@ static const struct module_interface mfcc_interface = {
DECLARE_MODULE_ADAPTER(mfcc_interface, mfcc_uuid, mfcc_tr);
SOF_MODULE_INIT(mfcc, sys_comp_module_mfcc_interface_init);
#if CONFIG_COMP_MFCC_MODULE
/* modular: llext dynamic link */
#include <module/module/api_ver.h>
#include <module/module/llext.h>
#include <rimage/sof/user/manifest.h>
#define UUID_MFCC 0x73, 0xA7, 0x10, 0xDB, 0xA4, 0x1A, 0xEA, 0x4C, 0x1F, 0xA2, \
0x2D, 0x57, 0xA5, 0xC9, 0x82, 0xEB
SOF_LLEXT_MOD_ENTRY(mfcc, &mfcc_interface);
static const struct sof_man_module_manifest mod_manifest __section(".module") __used =
SOF_LLEXT_MODULE_MANIFEST("MFCC", mfcc_llext_entry, 1, UUID_MFCC, 40);
SOF_LLEXT_BUILDINFO;
#endif

View File

@ -1005,14 +1005,20 @@ zephyr_library_sources_ifdef(CONFIG_COMP_MUX
${SOF_AUDIO_PATH}/mux/mux_${ipc_suffix}.c
)
zephyr_library_sources_ifdef(CONFIG_COMP_MFCC
${SOF_AUDIO_PATH}/mfcc/mfcc.c
${SOF_AUDIO_PATH}/mfcc/mfcc_setup.c
${SOF_AUDIO_PATH}/mfcc/mfcc_common.c
${SOF_AUDIO_PATH}/mfcc/mfcc_generic.c
${SOF_AUDIO_PATH}/mfcc/mfcc_hifi3.c
${SOF_AUDIO_PATH}/mfcc/mfcc_hifi4.c
)
if(CONFIG_COMP_MFCC STREQUAL "m")
add_subdirectory(${SOF_AUDIO_PATH}/mfcc/llext
${PROJECT_BINARY_DIR}/mfcc_llext)
add_dependencies(app mfcc)
elseif(CONFIG_COMP_MFCC)
zephyr_library_sources_ifdef(CONFIG_COMP_MFCC
${SOF_AUDIO_PATH}/mfcc/mfcc.c
${SOF_AUDIO_PATH}/mfcc/mfcc_setup.c
${SOF_AUDIO_PATH}/mfcc/mfcc_common.c
${SOF_AUDIO_PATH}/mfcc/mfcc_generic.c
${SOF_AUDIO_PATH}/mfcc/mfcc_hifi3.c
${SOF_AUDIO_PATH}/mfcc/mfcc_hifi4.c
)
endif()
zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_HOTWORD_DETECT
${SOF_AUDIO_PATH}/google/google_hotword_detect.c