mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-03-06 10:16:07 +00:00
feat(core/prodtest): add tamper testing function
[no changelog]
This commit is contained in:
parent
d535e725c0
commit
d1c1503fa4
@ -120,6 +120,7 @@ SOURCE_PRODTEST = [
|
|||||||
'embed/projects/prodtest/cmd/prodtest_reboot.c',
|
'embed/projects/prodtest/cmd/prodtest_reboot.c',
|
||||||
'embed/projects/prodtest/cmd/prodtest_rgbled.c',
|
'embed/projects/prodtest/cmd/prodtest_rgbled.c',
|
||||||
'embed/projects/prodtest/cmd/prodtest_sdcard.c',
|
'embed/projects/prodtest/cmd/prodtest_sdcard.c',
|
||||||
|
'embed/projects/prodtest/cmd/prodtest_tamper.c',
|
||||||
'embed/projects/prodtest/cmd/prodtest_sbu.c',
|
'embed/projects/prodtest/cmd/prodtest_sbu.c',
|
||||||
'embed/projects/prodtest/cmd/prodtest_touch.c',
|
'embed/projects/prodtest/cmd/prodtest_touch.c',
|
||||||
'embed/projects/prodtest/cmd/prodtest_tropic.c',
|
'embed/projects/prodtest/cmd/prodtest_tropic.c',
|
||||||
|
@ -759,6 +759,17 @@ powerctl-hibernate
|
|||||||
OK
|
OK
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### tamper-read
|
||||||
|
Reads the state of the tamper detection inputs.
|
||||||
|
Up to 8 inputs can be read, each represented by a single bit in the response.
|
||||||
|
A set bit indicates active inputs.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
tamper-read
|
||||||
|
OK 2
|
||||||
|
```
|
||||||
|
|
||||||
### tropic-get-riscv-fw-version
|
### tropic-get-riscv-fw-version
|
||||||
|
|
||||||
Reads the version of the RISC-V firmware. The command returns `OK` followed by the version.
|
Reads the version of the RISC-V firmware. The command returns `OK` followed by the version.
|
||||||
|
55
core/embed/projects/prodtest/cmd/prodtest_tamper.c
Normal file
55
core/embed/projects/prodtest/cmd/prodtest_tamper.c
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the Trezor project, https://trezor.io/
|
||||||
|
*
|
||||||
|
* Copyright (c) SatoshiLabs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef USE_TAMPER
|
||||||
|
|
||||||
|
#include <trezor_rtl.h>
|
||||||
|
|
||||||
|
#include <rtl/cli.h>
|
||||||
|
#include <sys/tamper.h>
|
||||||
|
|
||||||
|
static void prodtest_tamper_read(cli_t* cli) {
|
||||||
|
if (cli_arg_count(cli) > 0) {
|
||||||
|
cli_error_arg_count(cli);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool init_ok = tamper_init();
|
||||||
|
|
||||||
|
if (!init_ok) {
|
||||||
|
cli_error(cli, CLI_ERROR, "Cannot initialize tamper driver.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t val = tamper_external_read();
|
||||||
|
|
||||||
|
cli_ok(cli, "%d", val);
|
||||||
|
}
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
PRODTEST_CLI_CMD(
|
||||||
|
.name = "tamper-read",
|
||||||
|
.func = prodtest_tamper_read,
|
||||||
|
.info = "Read current status of external tamper inputs",
|
||||||
|
.args = ""
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user