boot: bootutil: loader: Let image version comparison use build number
Change allows using build number in image version comparison. Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>
This commit is contained in:
parent
3cbb79c25f
commit
a95a41b3e1
|
@ -622,15 +622,17 @@ boot_check_header_erased(struct boot_loader_state *state, int slot)
|
|||
defined(MCUBOOT_RAM_LOAD) || \
|
||||
defined(MCUBOOT_DOWNGRADE_PREVENTION)
|
||||
/**
|
||||
* Compare image version numbers not including the build number
|
||||
* Compare image version numbers
|
||||
*
|
||||
* By default, the comparison does not take build number into account.
|
||||
* Enable MCUBOOT_VERSION_CMP_USE_BUILD_NUMBER to take the build number into account.
|
||||
*
|
||||
* @param ver1 Pointer to the first image version to compare.
|
||||
* @param ver2 Pointer to the second image version to compare.
|
||||
*
|
||||
* @retval -1 If ver1 is strictly less than ver2.
|
||||
* @retval 0 If the image version numbers are equal,
|
||||
* (not including the build number).
|
||||
* @retval 1 If ver1 is strictly greater than ver2.
|
||||
* @retval -1 If ver1 is less than ver2.
|
||||
* @retval 0 If the image version numbers are equal.
|
||||
* @retval 1 If ver1 is greater than ver2.
|
||||
*/
|
||||
static int
|
||||
boot_version_cmp(const struct image_version *ver1,
|
||||
|
@ -657,6 +659,16 @@ boot_version_cmp(const struct image_version *ver1,
|
|||
return -1;
|
||||
}
|
||||
|
||||
#if defined(MCUBOOT_VERSION_CMP_USE_BUILD_NUMBER)
|
||||
/* The revisions are equal, continue comparison. */
|
||||
if (ver1->iv_build_num > ver2->iv_build_num) {
|
||||
return 1;
|
||||
}
|
||||
if (ver1->iv_build_num < ver2->iv_build_num) {
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -522,6 +522,15 @@ config UPDATEABLE_IMAGE_NUMBER
|
|||
help
|
||||
Enables support of multi image update.
|
||||
|
||||
config BOOT_VERSION_CMP_USE_BUILD_NUMBER
|
||||
bool "Use build number while comparing image version"
|
||||
depends on (UPDATEABLE_IMAGE_NUMBER > 1) || BOOT_DIRECT_XIP || \
|
||||
BOOT_RAM_LOAD || MCUBOOT_DOWNGRADE_PREVENTION
|
||||
help
|
||||
By default, the image version comparison relies only on version major,
|
||||
minor and revision. Enable this option to take into account the build
|
||||
number as well.
|
||||
|
||||
choice BOOT_DOWNGRADE_PREVENTION_CHOICE
|
||||
prompt "Downgrade prevention"
|
||||
optional
|
||||
|
|
|
@ -93,6 +93,10 @@
|
|||
#define MCUBOOT_IMAGE_NUMBER 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER
|
||||
#define MCUBOOT_VERSION_CMP_USE_BUILD_NUMBER
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SWAP_SAVE_ENCTLV
|
||||
#define MCUBOOT_SWAP_SAVE_ENCTLV 1
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue