From 8507335806f6417faf0599373f52398e1caceeb8 Mon Sep 17 00:00:00 2001 From: tychovrahe Date: Mon, 9 Sep 2024 18:09:13 +0200 Subject: [PATCH] fix(core): fix f4 monoctr in non-production builds [no changelog] --- core/embed/trezorhal/stm32f4/monoctr.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/core/embed/trezorhal/stm32f4/monoctr.c b/core/embed/trezorhal/stm32f4/monoctr.c index 70b58faa9..4907fc0f9 100644 --- a/core/embed/trezorhal/stm32f4/monoctr.c +++ b/core/embed/trezorhal/stm32f4/monoctr.c @@ -22,6 +22,12 @@ #include "model.h" #include "string.h" +#if !PRODUCTION +// we don't want to override OTP on development boards +// lets mock this functionality +static uint8_t dummy_version = 0; +#endif + #if PRODUCTION static int get_otp_block(monoctr_type_t type) { switch (type) { @@ -71,7 +77,10 @@ secbool monoctr_write(monoctr_type_t type, uint8_t value) { } ensure(flash_otp_write(block, 0, bits, FLASH_OTP_BLOCK_SIZE), NULL); - +#else + if (value >= dummy_version) { + dummy_version = value; + } #endif return sectrue; } @@ -124,9 +133,7 @@ secbool monoctr_read(monoctr_type_t type, uint8_t* value) { return secfalse; } #else - - *value = 0; - + *value = dummy_version; #endif return sectrue;