Skip to content

Commit 9ef5467

Browse files
committed
[nrf fromlist] dfu: Allow to use imgtool-based headers
It is possible to add MCUboot header through --pad-header option. In such cases, the FLASH_LOAD_OFFSET does not point to the beginning of the slot, but to the beginning of the executable area, thus the check for the active slot should use ranges instead of exact values. Upstream PR #: 96925 Signed-off-by: Tomasz Chyrowicz <[email protected]>
1 parent 0df9bb9 commit 9ef5467

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

subsys/dfu/img_util/flash_img.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ LOG_MODULE_REGISTER(flash_img, CONFIG_IMG_MANAGER_LOG_LEVEL);
2323
#include <bootutil/bootutil_public.h>
2424
#endif
2525

26-
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
27-
(FIXED_PARTITION_OFFSET(label) == CONFIG_FLASH_LOAD_OFFSET)
26+
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
27+
(FIXED_PARTITION_OFFSET(label) <= CONFIG_FLASH_LOAD_OFFSET && \
28+
FIXED_PARTITION_OFFSET(label) + FIXED_PARTITION_SIZE(label) > CONFIG_FLASH_LOAD_OFFSET)
2829

2930
#include <zephyr/devicetree.h>
3031
#if defined(CONFIG_TRUSTED_EXECUTION_NONSECURE) && (CONFIG_TFM_MCUBOOT_IMAGE_NUMBER == 2)

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@
4848
to be able to figure out application running slot.
4949
#endif
5050

51-
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
52-
(FIXED_PARTITION_OFFSET(label) == CONFIG_FLASH_LOAD_OFFSET)
51+
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
52+
(FIXED_PARTITION_OFFSET(label) <= CONFIG_FLASH_LOAD_OFFSET && \
53+
FIXED_PARTITION_OFFSET(label) + FIXED_PARTITION_SIZE(label) > CONFIG_FLASH_LOAD_OFFSET)
5354

5455
BUILD_ASSERT(sizeof(struct image_header) == IMAGE_HEADER_SIZE,
5556
"struct image_header not required size");

tests/subsys/dfu/img_util/src/main.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
#define SLOT0_PARTITION slot0_partition
1313
#define SLOT1_PARTITION slot1_partition
1414

15-
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
16-
(FIXED_PARTITION_OFFSET(label) == CONFIG_FLASH_LOAD_OFFSET)
15+
#define FIXED_PARTITION_IS_RUNNING_APP_PARTITION(label) \
16+
(FIXED_PARTITION_OFFSET(label) <= CONFIG_FLASH_LOAD_OFFSET && \
17+
FIXED_PARTITION_OFFSET(label) + FIXED_PARTITION_SIZE(label) > CONFIG_FLASH_LOAD_OFFSET)
1718

1819
#if FIXED_PARTITION_IS_RUNNING_APP_PARTITION(slot0_partition)
1920
#define UPLOAD_PARTITION_ID FIXED_PARTITION_ID(SLOT1_PARTITION)

0 commit comments

Comments
 (0)