Skip to content

Commit 03bcafc

Browse files
MarekPietatomchy
authored andcommitted
[nrf noup] mcumgr: img_mgmt: Fix check for chosen code partition
The "zephyr-code-partition" chosen DTS node cannot be used when build uses Partition Manager. In that case, mcumgr must rely on the definitions provided by the Partition Manager. Jira: NCSDK-21381 Signed-off-by: Marek Pieta <[email protected]> Signed-off-by: Dominik Ermel <[email protected]> Signed-off-by: Tomasz Chyrowicz <[email protected]> (cherry picked from commit 6b04cee)
1 parent 9ef5467 commit 03bcafc

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

subsys/mgmt/mcumgr/grp/img_mgmt/src/img_mgmt.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,23 @@
4343

4444
#if !defined(CONFIG_MCUBOOT_BOOTLOADER_MODE_RAM_LOAD)
4545

46+
#if USE_PARTITION_MANAGER
47+
#include <flash_map_pm.h>
48+
49+
#ifdef PM_MCUBOOT_SECONDARY_PAD_SIZE
50+
BUILD_ASSERT(PM_MCUBOOT_PAD_SIZE == PM_MCUBOOT_SECONDARY_PAD_SIZE);
51+
#endif
52+
53+
#if CONFIG_BUILD_WITH_TFM
54+
#define PM_ADDRESS_OFFSET (PM_MCUBOOT_PAD_SIZE + PM_TFM_SIZE)
55+
#else
56+
#define PM_ADDRESS_OFFSET (PM_MCUBOOT_PAD_SIZE)
57+
#endif
58+
59+
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
60+
(FIXED_PARTITION_OFFSET(label) == (PM_ADDRESS - PM_ADDRESS_OFFSET))
61+
62+
#else /* ! USE_PARTITION_MANAGER */
4663
#ifndef CONFIG_FLASH_LOAD_OFFSET
4764
#error MCUmgr requires application to be built with CONFIG_FLASH_LOAD_OFFSET set \
4865
to be able to figure out application running slot.
@@ -51,6 +68,7 @@
5168
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
5269
(FIXED_PARTITION_OFFSET(label) <= CONFIG_FLASH_LOAD_OFFSET && \
5370
FIXED_PARTITION_OFFSET(label) + FIXED_PARTITION_SIZE(label) > CONFIG_FLASH_LOAD_OFFSET)
71+
#endif /* USE_PARTITION_MANAGER */
5472

5573
BUILD_ASSERT(sizeof(struct image_header) == IMAGE_HEADER_SIZE,
5674
"struct image_header not required size");

0 commit comments

Comments
 (0)