From 8feb0472ba6030e0ea4daca1bc7caf72d2d8ad75 Mon Sep 17 00:00:00 2001 From: Adam BZH Date: Fri, 14 Feb 2025 17:49:51 +0800 Subject: [PATCH] bootloader logic minor fix Signed-off-by: Adam BZH --- core/embed/bootloader/main.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/embed/bootloader/main.c b/core/embed/bootloader/main.c index bf03fae5b0..a0828c7bd6 100644 --- a/core/embed/bootloader/main.c +++ b/core/embed/bootloader/main.c @@ -603,6 +603,13 @@ static BOOT_TARGET decide_boot_target(vendor_header* const vhdr, BOOT_TARGET boot_target = *BOOT_TARGET_FLAG_ADDR; // cache flag *BOOT_TARGET_FLAG_ADDR = BOOT_TARGET_NORMAL; // consume(reset) flag + // verify at the beginning to ensure results are populated + char err_msg[64]; + set_handle_flash_ecc_error(sectrue); + secbool all_good = verify_firmware(vhdr, hdr, vhdr_valid, hdr_valid, + code_valid, err_msg, sizeof(err_msg)); + set_handle_flash_ecc_error(secfalse); + // if boot target already set to this level, no more checks if (boot_target == BOOT_TARGET_BOOTLOADER) return boot_target; @@ -619,13 +626,6 @@ static BOOT_TARGET decide_boot_target(vendor_header* const vhdr, } // check firmware - char err_msg[64]; - - set_handle_flash_ecc_error(sectrue); - secbool all_good = verify_firmware(vhdr, hdr, vhdr_valid, hdr_valid, - code_valid, err_msg, sizeof(err_msg)); - set_handle_flash_ecc_error(secfalse); - if (all_good != sectrue) { boot_target = BOOT_TARGET_BOOTLOADER; return boot_target;