Skip to content

Commit 5f4afb5

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 3a6420b commit 5f4afb5

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
#ifdef CONFIG_USE_DT_CODE_PARTITION
4764
#define FLASH_LOAD_OFFSET DT_REG_ADDR(DT_CHOSEN(zephyr_code_partition))
4865
#elif defined(CONFIG_FLASH_LOAD_OFFSET)
@@ -55,6 +72,7 @@
5572
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
5673
(FIXED_PARTITION_OFFSET(label) <= FLASH_LOAD_OFFSET && \
5774
FIXED_PARTITION_OFFSET(label) + FIXED_PARTITION_SIZE(label) > FLASH_LOAD_OFFSET)
75+
#endif /* USE_PARTITION_MANAGER */
5876

5977
BUILD_ASSERT(sizeof(struct image_header) == IMAGE_HEADER_SIZE,
6078
"struct image_header not required size");

0 commit comments

Comments
 (0)