Skip to content

Commit e539d5e

Browse files
committed
mfcc: enable building as an llext module
Add support for LLEXT building to mfcc. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
1 parent 44656d4 commit e539d5e

7 files changed

Lines changed: 53 additions & 9 deletions

File tree

app/configs/lnl/modules.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ CONFIG_COMP_SEL=m
99
CONFIG_COMP_SRC=m
1010
CONFIG_COMP_ARIA=m
1111
CONFIG_COMP_ASRC=m
12+
CONFIG_COMP_MFCC=m
1213
CONFIG_COMP_RTNR=m
1314
CONFIG_COMP_TDFB=m
1415
CONFIG_COMP_IGO_NR=m

app/configs/mtl/modules.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ CONFIG_COMP_SEL=m
99
CONFIG_COMP_SRC=m
1010
CONFIG_COMP_ARIA=m
1111
CONFIG_COMP_ASRC=m
12+
CONFIG_COMP_MFCC=m
1213
CONFIG_COMP_RTNR=m
1314
CONFIG_COMP_TDFB=m
1415
CONFIG_COMP_IGO_NR=m

src/audio/mfcc/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: BSD-3-Clause
22

33
config COMP_MFCC
4-
bool "MFCC component"
4+
tristate "MFCC component"
55
depends on COMP_MODULE_ADAPTER
66
select CORDIC_FIXED
77
select MATH_16BIT_MEL_FILTERBANK
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Copyright (c) 2024 Intel Corporation.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
sof_llext_build("mfcc"
5+
SOURCES ../mfcc.c
6+
../mfcc_setup.c
7+
../mfcc_common.c
8+
../mfcc_generic.c
9+
../mfcc_hifi3.c
10+
../mfcc_hifi4.c
11+
)

src/audio/mfcc/llext/llext.toml.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include <tools/rimage/config/platform.toml>
2+
#define LOAD_TYPE "2"
3+
#include "../mfcc.toml"
4+
5+
[module]
6+
count = __COUNTER__

src/audio/mfcc/mfcc.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,3 +259,22 @@ static const struct module_interface mfcc_interface = {
259259

260260
DECLARE_MODULE_ADAPTER(mfcc_interface, mfcc_uuid, mfcc_tr);
261261
SOF_MODULE_INIT(mfcc, sys_comp_module_mfcc_interface_init);
262+
263+
#if CONFIG_COMP_MFCC_MODULE
264+
/* modular: llext dynamic link */
265+
266+
#include <module/module/api_ver.h>
267+
#include <module/module/llext.h>
268+
#include <rimage/sof/user/manifest.h>
269+
270+
#define UUID_MFCC 0x73, 0xA7, 0x10, 0xDB, 0xA4, 0x1A, 0xEA, 0x4C, 0x1F, 0xA2, \
271+
0x2D, 0x57, 0xA5, 0xC9, 0x82, 0xEB
272+
273+
SOF_LLEXT_MOD_ENTRY(mfcc, &mfcc_interface);
274+
275+
static const struct sof_man_module_manifest mod_manifest __section(".module") __used =
276+
SOF_LLEXT_MODULE_MANIFEST("MFCC", mfcc_llext_entry, 1, UUID_MFCC, 40);
277+
278+
SOF_LLEXT_BUILDINFO;
279+
280+
#endif

zephyr/CMakeLists.txt

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,14 +1005,20 @@ zephyr_library_sources_ifdef(CONFIG_COMP_MUX
10051005
${SOF_AUDIO_PATH}/mux/mux_${ipc_suffix}.c
10061006
)
10071007

1008-
zephyr_library_sources_ifdef(CONFIG_COMP_MFCC
1009-
${SOF_AUDIO_PATH}/mfcc/mfcc.c
1010-
${SOF_AUDIO_PATH}/mfcc/mfcc_setup.c
1011-
${SOF_AUDIO_PATH}/mfcc/mfcc_common.c
1012-
${SOF_AUDIO_PATH}/mfcc/mfcc_generic.c
1013-
${SOF_AUDIO_PATH}/mfcc/mfcc_hifi3.c
1014-
${SOF_AUDIO_PATH}/mfcc/mfcc_hifi4.c
1015-
)
1008+
if(CONFIG_COMP_MFCC STREQUAL "m")
1009+
add_subdirectory(${SOF_AUDIO_PATH}/mfcc/llext
1010+
${PROJECT_BINARY_DIR}/mfcc_llext)
1011+
add_dependencies(app mfcc)
1012+
elseif(CONFIG_COMP_MFCC)
1013+
zephyr_library_sources_ifdef(CONFIG_COMP_MFCC
1014+
${SOF_AUDIO_PATH}/mfcc/mfcc.c
1015+
${SOF_AUDIO_PATH}/mfcc/mfcc_setup.c
1016+
${SOF_AUDIO_PATH}/mfcc/mfcc_common.c
1017+
${SOF_AUDIO_PATH}/mfcc/mfcc_generic.c
1018+
${SOF_AUDIO_PATH}/mfcc/mfcc_hifi3.c
1019+
${SOF_AUDIO_PATH}/mfcc/mfcc_hifi4.c
1020+
)
1021+
endif()
10161022

10171023
zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_HOTWORD_DETECT
10181024
${SOF_AUDIO_PATH}/google/google_hotword_detect.c

0 commit comments

Comments
 (0)