Commit Graph

191 Commits

Author SHA1 Message Date
bleska
e33e3d1cff chore(core): binctl makefile target removal
The "headertool.py" script location has changed to "core/tools/trezor_core_tools/". Moreover, the "headertool_pq.py" has been introduced for PQ crypto based headers e.g. TS7 bootloader.bin at the moment.

Removing the Makefile binctl target as it's not used and the fix with the automatic script (i.e. headertool vs headertool_pq) selection would be complicated.

[no changelog]
2026-01-30 15:46:13 +01:00
cepetr
08f32990b2 feat(core): introduce EXTAPP_SUPPORT build option
[no changelog]
2026-01-16 09:20:57 +01:00
Roman Zeyde
cf5f1dc534 build(core): enable Tropic by default for non-emulator targets
Disable it by default only for at `SConscript.unix` (since currently `emu.py` doesn't start Tropic emulator).

[no changelog]
2025-11-20 10:13:26 +01:00
Roman Zeyde
db1fbaa0d5 test(core): use 10s timeout for make test_emu_sanity
[no changelog]
2025-11-13 16:59:20 +01:00
tychovrahe
353afc77b3 chore(core): add clean_prodtest_emu makefile target, add it to clean
[no changelog]
2025-09-29 20:36:45 +02:00
Suyash Shandilya
f51a8fe8bf feat(translations): allow dev-signed translation blobs in non-production builds
Changed the feature lock on accepting dev signed translation blobs from `debug` to `dev_keys` (new). This is enabled for all non-production builds so QA can test translations even on production ready, unsigned builds.
[no changelog]
2025-09-12 11:16:07 +02:00
cepetr
ca929574e8 feat(core): introduce DBG_CONSOLE build argument
[no changelog]
2025-08-28 15:25:56 +02:00
tychovrahe
e5bf739a90 chore(core): remove reflash tool
[no changelog]
2025-08-12 10:59:21 +02:00
tychovrahe
98692d5401 refactor(core): rename debug overlay to performance overlay
[no changelog]
2025-08-11 16:41:35 +02:00
Roman Zeyde
35ad35c37d test(core): don't use --slip0014 for sanity tests
It doesn't work on non-debug builds.

[no changelog]
2025-08-01 13:00:38 +03:00
Roman Zeyde
5f3e2d7393 build(core): enable THP for T3W1 by default
[no changelog]
2025-07-31 20:29:05 +02:00
romanz
d32710a61d test(core): adjust test_emu_sanity for THP emulators 2025-07-31 20:29:05 +02:00
Roman Zeyde
85e870e0b2 test(core): use update_fixtures.py local --remove-missing
[no changelog]
2025-07-28 12:49:09 +03:00
tychovrahe
918cae17eb chore(core): use precompiled and pre-signed secmon for unsafe FW
[no changelog]
2025-07-22 14:04:09 +02:00
tychovrahe
d38546e229 feat(core): add option to build dev FW with unsage vendorheader
[no changelog]
2025-07-22 14:04:09 +02:00
obrusvit
7cda7761ba chore: basic crowdin commands
- push english sources to crowdin
- pull translations from crowdin

[no changelog]
2025-07-15 19:23:04 +02:00
Roman Zeyde
4aadfa1f4f ci(core): make sure emulators are not failing on startup
[no changelog]
2025-06-30 18:43:42 +03:00
obrusvit
f0865e3b10 feat(eckhart): fuel gauge UI
- fuel gauge (battery state) with icons for charging/discharging state
and soc percentage
- on attach on Homescreen ActionBar
- permanently on the first DeviceMenu subscreen
- temporarily in the Header on charging state update

[no changelog]
2025-06-11 23:39:28 +02:00
cepetr
bbb74c03a4 feat(core): introduce secure monitor
[no changelog]
2025-06-04 16:58:15 +02:00
tychovrahe
9683efb5b9 feat(core/prodtest): add prodtest emulator
[no changelog]
2025-06-02 09:16:53 +02:00
tychovrahe
13a576c556 feat(core): add bin to hex conversion to Makefile
[no changelog]
2025-05-17 07:03:26 +02:00
Roman Zeyde
d91822938a feat(core): annotate Python code with execution stats
[no changelog]
2025-05-15 19:52:33 +03:00
Roman Zeyde
7cdb0cf244 feat(vendor): update MicroPython to allow excluding line numbers from bytecode
Setting `MICROPY_ENABLE_SOURCE_LINE=0` helps reducing the debug firmware size by ~2%:
```
$ TREZOR_MODEL=T3T1 MICROPY_ENABLE_SOURCE_LINE=0 PYOPT=0 make -C core build_firmware
<snip>
           FLASH:     1,629,456 B      1664 KB     95.63%
```

Before this PR:
```
           FLASH:     1,662,224 B      1664 KB     97.55%
```

[no changelog]
2025-05-13 17:07:37 +03:00
Roman Zeyde
65c34774a1 ci(core): run click tests in parallel
[no changelog]
2025-05-13 11:57:06 +03:00
Martin Milata
8a0cf0e29a build(core): remove LD_LIBRARY_PATH workaround from Makefile
Normal CI workflows seem to work fine with it and it broke
`make upload` on some setups.

[no changelog]
2025-05-05 18:14:03 +02:00
Martin Milata
8f37578408 ci(nix): update to latest nixpkgs-unstable, rustc
[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
04b9768faa build(core): allow passing HW_REVISION to make 2025-04-16 15:36:05 +02:00
Ioan Bizău
b1cd4cb469 chore(core/build): don't build with Tropic by default
[no changelog]

Co-authored-by: Martin Milata <martin@martinmilata.cz>
2025-03-26 10:32:31 +01:00
Roman Zeyde
90d7713592 build(core): fix RUST_PRINT_TYPES_SIZES passing to SConscript.firmware
Use a list to collect RUSTFLAGS, to prevent overwriting them.

Also:
- fix a typo in `SConscript.unix` (it was using `firmware` build directory)
- use keyword arguments for better readability
- reformat Rust library build command string

[no changelog]
2025-03-13 18:18:48 +02:00
Roman Zeyde
c95158751a build(core): allow increasing VCP write timeout
It should allow us exporting larger amounts of debug data.

[no changelog]
2025-03-13 16:07:09 +02:00
Roman Zeyde
6f3e5a6cd7 feat(core): estimate workflow stack usage
By zeroing the stack memory before the workflow runs,
we can estimate how much of it has been used (by reading
the stack memory and looking for the first non-zero value).

[no changelog]
2025-03-04 14:18:15 +02:00
cepetr
c57a59d123 feat(rust): introduce info overlay rendering
[no changelog]
2025-02-26 09:56:08 +01:00
Roman Zeyde
061e71213e test(core): don't fetch full DebugLinkState by default
In case the main workflow is restarting after a `DebugLinkDecision`,
sending the response of `DebugLinkGetState` may get interrupted.

We are making the state fetching explicit, in order to avoid the
"restart" race condition (as described in #4401).

Following the above change, text-based layout recording is removed.

[no changelog]
2025-02-07 11:21:44 +01:00
Roman Zeyde
830f038360 build(core): allow printing Rust types' sizes during build
https://nnethercote.github.io/perf-book/type-sizes.html#measuring-type-sizes

[no changelog]
2025-01-28 14:21:43 +02:00
Roman Zeyde
5e71ea355c chore(core): remove unused scons variable
Following #4337.

[no changelog]
2025-01-28 14:21:43 +02:00
tychovrahe
885c5b96d9 refactor(core/rust): move bindgen macros used for tests to model folder
[no changelog]
2025-01-23 10:22:00 +01:00
tychovrahe
26bde15429 refactor(core): extract model specific definitions from Makefile
[no changelog]
2025-01-23 10:22:00 +01:00
obrusvit
00740b560c refactor(core): consistent naming of UI layouts
- follow-up on 862c987779
- layout_bolt stays the same
- layout_samson -> layout_caesar
- layout_quicksilver -> layout_delizia
- use super for importing rust modules in layout code

[no changelog]
2025-01-20 12:29:24 +01:00
cepetr
2426e637b3 feat(core): introduce optiga deinit and suspending
[no changelog]
2025-01-14 07:52:15 +01:00
Martin Milata
dadff32f39 build(core): use internal model names everywhere
TREZOR_MODEL=T and TREZOR_MODEL=R

no longer work, please use

  TREZOR_MODEL=T2T1 and TREZOR_MODEL=T2B1

[no changelog]
2025-01-13 16:24:35 +01:00
obrusvit
862c987779 refactor(core): consistent naming of UI layouts
- UI layouts name changes:
  - model_tt -> layout_bolt
  - model_tr -> layout_samson
  - model_mercury -> layout_quicksilver
- rust features `model_xyz` freed for different use, now it's
`layout_xyz`
- input_flow function names are based on UI layout and not internal
model name (i.e. quicksilver instead of t3t1)
- directory names and commentary changed accordingly

[no changelog]
2025-01-09 22:57:14 +01:00
Andrew Kozlik
83a96f7a5a feat(core): Randomize SCM_REVISION address in firmware
[no changelog]
2025-01-03 10:23:41 +01:00
matejcik
ef02c4de5d feat(core): introduce storage insecure mode
reduces the number of PIN iterations and avoids erasing the other
storage bank -- if a test ever overruns, it will probably RSOD out, but
that's unlikely to happen
2024-12-03 11:02:17 +01:00
matejcik
835f7087c6 build(core): correctly propagate DISABLE_OPTIGA to kernel 2024-12-03 11:02:17 +01:00
matejcik
331e07b1e0 feat(core): disable animations in debug firmware by default
This makes it possible to run HW tests on the T3T1 where animations mess
things up. It also speeds up HW tests on other models slightly.

export TREZOR_DISABLE_ANIMATION=0 to build a debug firmware with
animations enabled
2024-12-03 11:02:17 +01:00
matejcik
44bd407c85 build(core): use PYOPT=0 for build_unix target
restoring behavior before #4234
2024-11-25 16:23:05 +01:00
matejcik
b3267625ca build(core): do not propagate PYOPT to kernel build to work around a build error
the error:

When built with PYOPT, Optiga will log its communication to the VCP. But
now that VCP config lives in coreapp and Optiga lives in kernel, there's
no way for Optiga to write to VCP, and the relevant calls simply don't
build.

We need a different method for logging inside the kernel.
2024-11-21 14:33:52 +01:00
cepetr
0977cb6b38 build(core): introduce quiet mode
[no changelog]
2024-11-21 14:33:52 +01:00
matejcik
cd65ba52fe build(core): introduce common definition of all makefile vars that get passed as scons vars
so that we don't have to write "USE_FOO=$(USE_FOO)" 20 times every time
we add such flag
2024-11-21 14:33:52 +01:00
tychovrahe
1d3e4aa8f4 fix(tests): fix sizecheck on U5 models
[no changelog]
2024-11-21 13:04:33 +01:00