From 8ce89187459ec77dd9ffdffba3a2b77838d51b6d Mon Sep 17 00:00:00 2001 From: Nicolas Le Bayon Date: Mon, 18 Nov 2019 17:12:27 +0100 Subject: [PATCH] fix(plat/st): only check header major when booting An STM32 image with the awaited header major version shouldn't be forbid to boot. If the minor differs, then it means only non-mandatory options have been added in the reserved fields, and the header remains backward compatible. Change-Id: Iff16b67f95c728e2f1d128bd1760a4be497c5ca3 Signed-off-by: Yann Gautier --- plat/st/common/stm32mp_common.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plat/st/common/stm32mp_common.c b/plat/st/common/stm32mp_common.c index 17ac145ab..91204089b 100644 --- a/plat/st/common/stm32mp_common.c +++ b/plat/st/common/stm32mp_common.c @@ -17,6 +17,8 @@ #include #include +#define HEADER_VERSION_MAJOR_MASK GENMASK(23, 16) + uintptr_t plat_get_ns_image_entrypoint(void) { return BL33_BASE; @@ -93,7 +95,8 @@ int stm32mp_check_header(boot_api_image_header_t *header, uintptr_t buffer) return -EINVAL; } - if (header->header_version != BOOT_API_HEADER_VERSION) { + if ((header->header_version & HEADER_VERSION_MAJOR_MASK) != + (BOOT_API_HEADER_VERSION & HEADER_VERSION_MAJOR_MASK)) { ERROR("Header version\n"); return -EINVAL; }