zephyr: direct inclusion of the hooks file

This patch removes CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE option
which was used to point to hooks implementation file.
It is better that the project customization is up to add required
files instead. This gives more flexibility in provisioning these
sources (there may be multiple files).
This also simplifies Kconfig options.

In order to keep possibility for build-test the Hooks feature
hooks_sample.c will be included into the build if commandline
will specify -DTEST_BOOT_IMAGE_ACCESS_HOOKS=Y option.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
This commit is contained in:
Andrzej Puzdrowski 2022-07-07 14:55:22 +02:00
parent 09e2bd70fd
commit 1c150c6092
4 changed files with 9 additions and 34 deletions

View File

@ -17,27 +17,12 @@ zephyr_library_sources(
../src/bootutil_public.c
)
if(CONFIG_BOOT_IMAGE_ACCESS_HOOKS)
if(NOT CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE STREQUAL "")
if(IS_ABSOLUTE ${CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE})
if(EXISTS ${CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE})
set(HOOKS_FILE ${CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE})
endif()
elseif((DEFINED CONF_DIR) AND
(EXISTS ${CONF_DIR}/${CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE}))
set(HOOKS_FILE ${CONF_DIR}/${CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE})
else(EXISTS ${APPLICATION_SOURCE_DIR}/${CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE})
set(HOOKS_FILE ${APPLICATION_SOURCE_DIR}/${CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE})
endif()
endif()
if(DEFINED HOOKS_FILE)
zephyr_library_sources(
${HOOKS_FILE}
)
else()
message(STATUS "No hooks implementation file.")
endif()
# Sensitivity to the TEST_BOOT_IMAGE_ACCESS_HOOKS define is implemented for
# allowing the test-build with the hooks feature enabled.
if(TEST_BOOT_IMAGE_ACCESS_HOOKS)
zephyr_library_sources(
${APPLICATION_SOURCE_DIR}/hooks_sample.c
)
endif()
zephyr_library_link_libraries(MCUBOOT_BOOTUTIL)

View File

@ -569,18 +569,8 @@ config BOOT_IMAGE_ACCESS_HOOKS
help
Allow to provide procedures for override or extend native
MCUboot's routines required for access the image data and the image
update.
config BOOT_IMAGE_ACCESS_HOOKS_FILE
string "Hooks implementation file path"
depends on BOOT_IMAGE_ACCESS_HOOKS
help
Path to the file which implements hooks.
You can use either absolute or relative path.
In case relative path is used, the build system assumes that it starts
from the directory where the MCUBoot KConfig configuration file is
located. If the key file is not there, the build system uses relative
path that starts from the zephyr port cmake directory (boot/zephyr/).
update. It is up to the project customization to add required source
files to the build.
config MCUBOOT_ACTION_HOOKS
bool "Enable hooks for responding to MCUboot status changes"

View File

@ -4,4 +4,3 @@ CONFIG_FLASH_SIMULATOR=y
CONFIG_FLASH_SIMULATOR_UNALIGNED_READ=y
CONFIG_BOOT_IMAGE_ACCESS_HOOKS=y
CONFIG_BOOT_IMAGE_ACCESS_HOOKS_FILE="hooks_sample.c"

View File

@ -44,6 +44,7 @@ tests:
sample.bootloader.mcuboot.hooks_multi:
extra_args: DTC_OVERLAY_FILE=./boards/nrf52840dk_ram_multi.overlay
OVERLAY_CONFIG=./boards/nrf52840dk_hooks_sample_overlay.conf
TEST_BOOT_IMAGE_ACCESS_HOOKS=Y
platform_allow: nrf52840dk_nrf52840
integration_platforms:
- nrf52840dk_nrf52840