Skip to content

Commit 8dbca43

Browse files
committed
[nrf noup] mgmt: mcumgr: Fix nRF5340 network core hook
Fixes an issue whereby just enabling hooks would enable the nrf5340 network core hook despite lacking other requirements Signed-off-by: Jamie McCrae <[email protected]>
1 parent d2534ea commit 8dbca43

File tree

4 files changed

+19
-19
lines changed

4 files changed

+19
-19
lines changed

subsys/mgmt/mcumgr/CMakeLists.txt

+7-6
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ add_subdirectory_ifdef(CONFIG_SMP_CLIENT smp_client)
1717

1818
zephyr_library_link_libraries(mgmt_mcumgr)
1919

20-
if (CONFIG_BOOT_IMAGE_ACCESS_HOOKS)
21-
zephyr_include_directories(
22-
${ZEPHYR_MCUBOOT_MODULE_DIR}/boot/bootutil/include
23-
${ZEPHYR_MCUBOOT_MODULE_DIR}/boot/zephyr/include
24-
)
25-
zephyr_library_sources(bootutil_hooks/nrf53_hooks.c)
20+
if(CONFIG_MCUMGR_GRP_IMG_NRF5340_BOOTUTIL_HOOK)
21+
zephyr_include_directories(
22+
${ZEPHYR_MCUBOOT_MODULE_DIR}/boot/bootutil/include
23+
${ZEPHYR_MCUBOOT_MODULE_DIR}/boot/zephyr/include
24+
)
25+
26+
zephyr_library_sources(bootutil_hooks/nrf53_hooks.c)
2627
endif()

subsys/mgmt/mcumgr/Kconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ menuconfig MCUMGR
66
bool "mcumgr Support"
77
depends on NET_BUF
88
depends on ZCBOR
9-
imply BOOT_IMAGE_ACCESS_HOOKS if (SOC_NRF5340_CPUAPP_QKAA && MCUMGR_GRP_IMG)
9+
imply BOOT_IMAGE_ACCESS_HOOKS if SOC_NRF5340_CPUAPP && MCUMGR_GRP_IMG && MCUBOOT_NETWORK_CORE_IMAGE_NUMBER > -1
1010
help
1111
This option enables the mcumgr management library.
1212

subsys/mgmt/mcumgr/bootutil_hooks/nrf53_hooks.c

+3-12
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,10 @@
88
#include <zephyr/device.h>
99
#include "bootutil/bootutil_public.h"
1010

11-
#if CONFIG_MCUBOOT_NETWORK_CORE_IMAGE_NUMBER != -1
12-
/* Sysbuild */
13-
#define NET_CORE_IMAGE CONFIG_MCUBOOT_NETWORK_CORE_IMAGE_NUMBER
14-
#else
15-
/* Legacy child/parent */
16-
#define NET_CORE_IMAGE 1
17-
#endif
18-
19-
int boot_read_swap_state_primary_slot_hook(int image_index,
20-
struct boot_swap_state *state)
11+
int boot_read_swap_state_primary_slot_hook(int image_index, struct boot_swap_state *state)
2112
{
22-
if (image_index == NET_CORE_IMAGE) {
23-
/* Pretend that primary slot of image 1 unpopulated */
13+
if (image_index == CONFIG_MCUBOOT_NETWORK_CORE_IMAGE_NUMBER) {
14+
/* Pretend that primary slot of the network core update image is unpopulated */
2415
state->magic = BOOT_MAGIC_UNSET;
2516
state->swap_type = BOOT_SWAP_TYPE_NONE;
2617
state->image_num = image_index;

subsys/mgmt/mcumgr/grp/img_mgmt/Kconfig

+8
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,14 @@ config MCUMGR_GRP_IMG_QSPI_XIP_SPLIT_IMAGE
224224
sysbuild if needed. This enables selecting the correct slot when running a QSPI XIP
225225
split image application in DirectXIP mode.
226226

227+
config MCUMGR_GRP_IMG_NRF5340_BOOTUTIL_HOOK
228+
bool "nRF5340 network core bootutil hook"
229+
depends on SOC_NRF5340_CPUAPP && BOOT_IMAGE_ACCESS_HOOKS && MCUBOOT_NETWORK_CORE_IMAGE_NUMBER > -1
230+
default y
231+
help
232+
This option will enable a bootutil hook that populates the network core update image
233+
slot with dummy data to allow for uploading a firmware update to the network core.
234+
227235
module = MCUMGR_GRP_IMG
228236
module-str = mcumgr_grp_img
229237
source "subsys/logging/Kconfig.template.log_config"

0 commit comments

Comments
 (0)