# SPDX-License-Identifier: BSD-3-Clause

# Library manager configs

menu "Library Manager"

config LIBRARY_MANAGER
	bool "Library Manager Support"
	default n
	depends on IPC_MAJOR_4
	help
	  This is support for dynamic modules loading.
	  Externally developed modules both for SOF and Zephyr
	  could be used if enabled.
	  If unsure say N.

config LIBCODE_MODULE_SUPPORT
	bool "Add support for libcode modules"
	default n
	depends on LIBRARY_MANAGER
	help
	  A loadable library can contain a several modules marked
	  as lib_code. This modules contains code shared by
	  a multiple modules. This option adds support for modules
	  of this type.

config LIBRARY_AUTH_SUPPORT
	bool "Library Authentication Support"
	default n
	help
	  This is support for dynamic modules authentication.
	  Externally developed modules both for SOF and Zephyr
	  could be used if enabled.
	  If unsure say N.

config LIBRARY_DEFAULT_MODULAR
	bool "Build LLEXT modules by default"
	depends on LLEXT
	help
	  Build code, that can be built as LLEXT modules as such. Usually such
	  code has tristate Kconfig entries, they will default to "m" if this
	  option is selected.

config LIBRARY_BUILD_LIB
	bool "Pack LLEXT modules into a library"
	depends on LLEXT
	help
	  The first option to build LLEXT modules is to pack one module per
	  file. This option enables packing of all enabled modules into a single
	  module library.

config LIBRARY_BASE_ADDRESS
	hex "Base address for memory, dedicated to loadable modules"
	default 0
	help
	  When initializing modules SOF will allocate memory for them and map
	  it to a predefined per-module address. Those addresses are calculated
	  automatically but the beginning of that area is platform-specific and
	  should be set by this option.

config LIBRARY_REGION_SIZE
	hex "Size of memory region dedicated to loadable modules"
	default 0x100000
	help
	  Size of the virtual memory region dedicated for loadable modules

endmenu
