Skip to content

Commit

Permalink
[nrf fromtree] zephyr: direct inclusion of the hooks file
Browse files Browse the repository at this point in the history
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>
(cherry picked from commit 74b34fe)
  • Loading branch information
nvlsianpu authored and mbolivar-nordic committed Sep 6, 2022
1 parent 3895554 commit 91b3c6a
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 34 deletions.
27 changes: 6 additions & 21 deletions boot/bootutil/zephyr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
14 changes: 2 additions & 12 deletions boot/zephyr/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -571,18 +571,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"
Expand Down
1 change: 0 additions & 1 deletion boot/zephyr/boards/nrf52840dk_hooks_sample_overlay.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
1 change: 1 addition & 0 deletions boot/zephyr/sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 91b3c6a

Please sign in to comment.