From a6fda4d814fe19abb060ecbb4761a0b725ab0c4d Mon Sep 17 00:00:00 2001 From: tychovrahe Date: Tue, 27 May 2025 11:31:42 +0200 Subject: [PATCH] feat(core/prodtest): add reboot to bootloader command [no changelog] --- core/embed/projects/prodtest/README.md | 11 ++++++++++ .../projects/prodtest/cmd/prodtest_reboot.c | 20 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/core/embed/projects/prodtest/README.md b/core/embed/projects/prodtest/README.md index 9f289bb91e..10311ce248 100644 --- a/core/embed/projects/prodtest/README.md +++ b/core/embed/projects/prodtest/README.md @@ -113,6 +113,17 @@ reboot OK ``` + +### reboot-to-bootloader +This command initiates device reboot to bootlaoder. + +Example: +``` +reboot-to-bootloader +OK +``` + + ### boardloader-version Retrieves the version of the boardloader. The command returns `OK` followed by the version in the format `..`. diff --git a/core/embed/projects/prodtest/cmd/prodtest_reboot.c b/core/embed/projects/prodtest/cmd/prodtest_reboot.c index c16aaf6eaa..5dae7b86d6 100644 --- a/core/embed/projects/prodtest/cmd/prodtest_reboot.c +++ b/core/embed/projects/prodtest/cmd/prodtest_reboot.c @@ -36,6 +36,19 @@ static void prodtest_reboot(cli_t* cli) { reboot_device(); } +static void prodtest_reboot_to_bootloader(cli_t* cli) { + if (cli_arg_count(cli) > 0) { + cli_error_arg_count(cli); + return; + } + + cli_ok(cli, ""); + + // Reboot with a delay to allow the response to be sent + systick_delay_ms(1000); + reboot_to_bootloader(); +} + // clang-format off PRODTEST_CLI_CMD( @@ -45,4 +58,11 @@ PRODTEST_CLI_CMD( .args = "" ); +PRODTEST_CLI_CMD( + .name = "reboot-to-bootloader", + .func = prodtest_reboot_to_bootloader, + .info = "Reboot the device to bootloader", + .args = "" +); +