From f17c6bfe1836f570c4eff71a27a1a265b68fc229 Mon Sep 17 00:00:00 2001 From: tychovrahe Date: Mon, 17 Mar 2025 08:35:00 +0100 Subject: [PATCH] bootloader update in prodtest --- core/SConscript.prodtest | 20 +++++++++++++++++- .../T3W1/bootloaders/bootloader_T3W1_qa.bin | Bin 157184 -> 158720 bytes .../T3W1/bootloaders/bootloader_hashes.h | 10 ++++----- core/embed/models/T3W1/model_T3W1.h | 2 +- core/embed/projects/prodtest/main.c | 7 ++++++ core/embed/sys/linker/stm32u5g/prodtest.ld | 3 +++ core/tools/bootloader_hashes.py | 2 +- 7 files changed, 36 insertions(+), 8 deletions(-) diff --git a/core/SConscript.prodtest b/core/SConscript.prodtest index da2bcaebb7..ebbf395b03 100644 --- a/core/SConscript.prodtest +++ b/core/SConscript.prodtest @@ -6,6 +6,7 @@ import tools, models, ui TREZOR_MODEL = ARGUMENTS.get('TREZOR_MODEL', 'T2T1') CMAKELISTS = int(ARGUMENTS.get('CMAKELISTS', 0)) PRODUCTION = ARGUMENTS.get('PRODUCTION', '0') == '1' +BOOTLOADER_QA = ARGUMENTS.get('BOOTLOADER_QA', '0') == '1' BOOTLOADER_DEVEL = ARGUMENTS.get('BOOTLOADER_DEVEL', '0') == '1' HW_REVISION = ARGUMENTS.get('HW_REVISION', None) UI_DEBUG_OVERLAY = ARGUMENTS.get('UI_DEBUG_OVERLAY', '0') == '1' @@ -41,6 +42,7 @@ SOURCE_MOD_CRYPTO += [ 'vendor/trezor-crypto/aes/aeskey.c', 'vendor/trezor-crypto/aes/aestab.c', 'vendor/trezor-crypto/bignum.c', + 'vendor/trezor-crypto/blake2s.c', 'vendor/trezor-crypto/buffer.c', 'vendor/trezor-crypto/chacha_drbg.c', 'vendor/trezor-crypto/chacha20poly1305/chacha_merged.c', @@ -72,6 +74,7 @@ SOURCE_MOD += [ 'embed/gfx/gfx_draw.c', 'embed/gfx/terminal.c', 'embed/io/display/display_utils.c', + 'embed/util/bl_check/bl_check.c', 'embed/util/image/image.c', 'embed/util/rsod/rsod.c', 'embed/util/scm_revision/scm_revision.c', @@ -88,7 +91,7 @@ ui.init_ui(TREZOR_MODEL, "prodtest", RUST_UI_FEATURES) env = Environment( ENV=os.environ, - CFLAGS='%s -DPRODUCTION=%s' % (ARGUMENTS.get('CFLAGS', ''), ARGUMENTS.get('PRODUCTION', '0')), + CFLAGS=f"{ARGUMENTS.get('CFLAGS', '')} -DPRODUCTION={ARGUMENTS.get('PRODUCTION', '0')} -DBOOTLOADER_QA={int(BOOTLOADER_QA)}", CPPDEFINES_IMPLICIT=[], CPPDEFPREFIX="-D'", CPPDEFSUFFIX="'", @@ -150,6 +153,7 @@ ALLPATHS = [ 'embed/models', 'embed/gfx/inc', 'embed/sys/bsp/inc', + 'embed/util/bl_check/inc', 'embed/util/image/inc', 'embed/util/rsod/inc', 'embed/util/scm_revision/inc', @@ -243,6 +247,20 @@ else: VENDORHEADER = f'embed/models/{TREZOR_MODEL}/vendorheader/vendorheader_unsafe_signed_prod.bin' +BOOTLOADER_SUFFIX = TREZOR_MODEL +if BOOTLOADER_QA or BOOTLOADER_DEVEL: + BOOTLOADER_SUFFIX += '_qa' + +tools.embed_compressed_binary( + obj_program, + env, + 'bootloader', + 'embed/projects/bootloaders/bootloader.o', + f'embed/models/{TREZOR_MODEL}/bootloaders/bootloader_{BOOTLOADER_SUFFIX}.bin', + 'prodtest', + 'bootloader', + ) + tools.embed_raw_binary( obj_program, env, diff --git a/core/embed/models/T3W1/bootloaders/bootloader_T3W1_qa.bin b/core/embed/models/T3W1/bootloaders/bootloader_T3W1_qa.bin index 3befe077685ca09e4ff630ab72359da39425ea33..14c3ada86c616e27c4884eee1ba8b690a5681a20 100755 GIT binary patch delta 18721 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 delta 17056 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 g>3M4SL-9c+e;7o9$r@(Pq diff --git a/core/embed/projects/prodtest/main.c b/core/embed/projects/prodtest/main.c index 8bbdc97673..9e20580610 100644 --- a/core/embed/projects/prodtest/main.c +++ b/core/embed/projects/prodtest/main.c @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include #include #include @@ -228,6 +230,11 @@ static void drivers_init(void) { #ifdef USE_HW_REVISION hw_revision_init(); #endif + +#if BOOTLOADER_QA + parse_boardloader_capabilities(); + check_and_replace_bootloader(); +#endif } #define BACKLIGHT_NORMAL 150 diff --git a/core/embed/sys/linker/stm32u5g/prodtest.ld b/core/embed/sys/linker/stm32u5g/prodtest.ld index 3da2123298..96ba222f76 100644 --- a/core/embed/sys/linker/stm32u5g/prodtest.ld +++ b/core/embed/sys/linker/stm32u5g/prodtest.ld @@ -61,6 +61,9 @@ SECTIONS { . = ALIGN(4); *(.rodata*); . = ALIGN(4); + KEEP(*(.bootloader)); + *(.bootloader*); + . = ALIGN(4); _prodtest_cli_cmd_section_start = .; KEEP(*(.prodtest_cli_cmd)) diff --git a/core/tools/bootloader_hashes.py b/core/tools/bootloader_hashes.py index 6683d87908..a410d63be4 100755 --- a/core/tools/bootloader_hashes.py +++ b/core/tools/bootloader_hashes.py @@ -7,7 +7,7 @@ from hashlib import blake2s from trezorlib.firmware.core import FirmwareImage, Model -ALIGNED_SIZE = 128 * 1024 +ALIGNED_SIZE = 192 * 1024 HERE = Path(__file__).parent BOOTLOADERS = HERE / ".." / "embed" / "models"