1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-02-28 23:32:05 +00:00
Commit Graph

2103 Commits

Author SHA1 Message Date
matejcik
ca78c01e28 build(core/rust): fix cargo build without envvars
...restoring functionality of rust-analyzer
2025-02-19 19:21:38 +01:00
obrusvit
45adcd963a refactor(core): remove unused delizia component
[no changelog]
2025-02-18 13:04:44 +01:00
Roman Zeyde
ae3b6434fc feat(core): allow more paragraphs in ShowInfoParams
Otherwise, it fails when showing 4 items.

Note that each item results in 2 paragraphs (key and value).
Also, items are separated by an empty paragraph.

So 3 items use 8 (2*3+2) paragraphs and 4 items use 11 (2*4+3) paragraphs.

[no changelog]
2025-02-18 12:32:35 +01:00
Roman Zeyde
0abfc7b1f9 fix(core): correct Delizia loader completion detection
This issue was found while debugging a flaky click test:
`tests/click_tests/test_lock.py::test_hold_to_lock`

Sample failures:
https://github.com/trezor/trezor-firmware/actions/runs/13209659963/job/36880750418
https://github.com/trezor/trezor-firmware/actions/runs/13189762414/job/36820368643
https://github.com/trezor/trezor-firmware/actions/runs/13146713535/job/36686537519
https://github.com/trezor/trezor-firmware/actions/runs/13124809110/job/36619045092
https://github.com/trezor/trezor-firmware/actions/runs/13103415015/job/36554567296
https://github.com/trezor/trezor-firmware/actions/runs/13093382180/job/36532710349

[no changelog]
2025-02-18 12:29:32 +01:00
Roman Zeyde
ffc4b57e70 docs(core): fix micropython GC arena analysis tool name
[no changelog]
2025-02-18 11:56:42 +01:00
cepetr
aa29681939 doc(prodtest): document pmic and wpc commands
[no changelog]
2025-02-14 22:22:33 +01:00
cepetr
de73b38aae feat(core): introduce hibernate mode
[no changelog]
2025-02-14 16:43:22 +01:00
tychovrahe
79d14b8907 fix(core): fix TS5 bootloader font
[no changelog]
2025-02-14 09:51:45 +01:00
tychovrahe
e47b604c48 fix(core): fix stwlc38 deinitialization
[no changelog]
2025-02-13 13:25:34 +01:00
obrusvit
c69d2c9aff Merge branch 'release/25.02' into obrusvit/merge-release-25.02 2025-02-13 11:42:08 +01:00
cepetr
ef51ea7801 fix(core): fix touch activity detection in bootloader
[no changelog]
2025-02-13 11:21:04 +01:00
cepetr
850b52c1fe fix(core): fix hw jpegdec issue with grayscale images
[no changelog]
2025-02-13 08:28:08 +01:00
obrusvit
45394f2b26 chore(core): bump bootloader version to 2.1.11
[no changelog]
2025-02-12 14:25:26 +01:00
obrusvit
2d20d43944 chore(core): bump version to 2.8.9
[no changelog]
2025-02-12 14:25:26 +01:00
Roman Zeyde
ae9e0281df refactor(core): separate clear_unused_stack() from sys/linker module
Following https://github.com/trezor/trezor-firmware/pull/4595#pullrequestreview-2609833271.

[no changelog]
2025-02-12 12:53:27 +01:00
Roman Zeyde
d38b52c0c4 refactor(core): simplify fade_backlight_duration
- IIUC, casting to and from `i32` can be removed.
- `timer.elapsed()` can be evaluated once per loop iteration.

[no changelog]
2025-02-12 12:33:14 +01:00
kopecdav
f1db0e6906 feat(core/prodtest): Allow prodtest to exit from interactive mode [no changelog] 2025-02-12 10:50:48 +01:00
cepetr
0456fdb826 fix(core): fix reboot_device function behaviour
[no changelog]
2025-02-11 17:02:31 +01:00
tychovrahe
57789c7121 refactor(core): remove fonts and no longer used drawing functions from C
[no changelog]
2025-02-11 11:25:18 +01:00
tychovrahe
c3981cdebe refactor(core): render prodtest UI in rust
[no changelog]
2025-02-11 11:25:18 +01:00
cepetr
7c7e8c8eb7 feat(core): add simple downscaling for bitmap copy ops
[no changelog]
2025-02-11 09:38:49 +01:00
cepetr
c2125f433e feat(core): implement rgba8888 canvas blur
[no changelog]
2025-02-11 09:38:49 +01:00
cepetr
0345c1dfed feat(core): introduce hardware jpeg decoder
[no changelog]
2025-02-11 09:38:49 +01:00
cepetr
e7c773bdd0 chore(core): remove unused code
[no changelog]
2025-02-11 09:38:49 +01:00
cepetr
08d55ea3f4 refactor(core): improve dma2d driver init/deinit
[no changelog]
2025-02-11 09:38:49 +01:00
tychovrahe
92da4d5d5a fix(core): fix default (out of range) color used by gfxmmu
[no changelog]
2025-02-10 15:58:22 +01:00
cepetr
ee13872e90 fix(prodtest): remove haptic-test duration limit
[no changelog]
2025-02-10 14:12:15 +01:00
cepetr
117eec798c fix(core): fix optiga pairing issue
[no changelog]
2025-02-10 10:43:54 +01:00
cepetr
d35f062866 fix(prodtest): fix haptic test
[no changelog]
2025-02-10 08:12:38 +01:00
Roman Zeyde
e3a9f71069 fix(core): correct a small typo
[no changelog]
2025-02-08 19:39:54 +01:00
cepetr
e23074f9d3 fix(core): wakeup touch controller from monitor mode
[no changelog]
2025-02-07 19:03:06 +01:00
obrusvit
592590cf66 docs(core): changelog for bootloader 2.1.10 2025-02-07 17:13:45 +01:00
tychovrahe
85bbc89eed fix(core): don't use RSOD_INFINITE_LOOP on models using DSI/LTDC displays
[no changelog]
2025-02-06 13:53:31 +01:00
cepetr
ef1f44cb38 feat(core): extra clear of memory during device halt
[no changelog]
2025-02-06 13:53:31 +01:00
tychovrahe
0dbb31f04a fix(core): fully initialize display driver at the start of bootloader
[no changelog]
2025-02-06 13:53:31 +01:00
tychovrahe
0b9d2e3ac9 feat(core): lazy initialize display driver in boardloader
[no changelog]
2025-02-06 13:53:31 +01:00
tychovrahe
6102e10e91 refactor(core): reorganize boardloader code
[no changelog]
2025-02-06 13:53:31 +01:00
obrusvit
bfa73d615b refactor(core): feature-gate non-bootloader fonts
- a crutch to preserve code which depends on specific fonts
- see https://github.com/trezor/trezor-firmware/issues/4574

[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
626a56a702 refactor(core): remove unused fonts
[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
991b3662f0 refactor(core): do not expose fonts outside layouts
- common components now take Font as a parameter, e.g. shape::Text
- FormattedText now does not have `text_normal(txt)`, `text_bold(txt)`
methods etc. but we use `text(txt, font)` instead

[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
e73ca8b481 refactor(core): map FontInfo to translation idx
[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
be459019b8 refactor(core): switch fonts from C to Rust
- switch common and individual layout components to Rust fonts
- font usage changed from enum Font to pointers to FontInfo structs

[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
9638c7e28a refactor(core): remove some fonts from C and build
- the C fonts handling will be private impl used only in `prodtest` and
`bootloader_ci`
- use "bootloader_ci" as a separate stage to distinguish fonts

[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
2e44bf07fd feat(core): add manual font mods to Rust font data
- see https://github.com/trezor/trezor-firmware/issues/3771

[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
9f9c640648 feat(core): add Rust font data
[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
cf5b89f90a refactor(core): get rid of font IDs in micropython
- application layer should not deal with fonts at all
- distinction between MONO and others is preserved by bool argument in
`should_show_more` interpreted as `is_data`

[no changelog]
2025-02-06 13:32:29 +01:00
tychovrahe
566f82ccd8 refactor(core): make homescreen max size model dependent
[no changelog]
2025-02-06 12:40:23 +01:00
tychovrahe
3bdd7f661e fix(core/prodtest): fix QR code display 2025-02-06 07:56:15 +01:00
tychovrahe
148c11d9e5 fix(core/prodtest): fix text rendering 2025-02-06 07:56:15 +01:00
tychovrahe
ad8c34e825 feat(core): introduce TPS61062 backlight driver
[no changelog]
2025-02-02 22:41:17 +01:00
tychovrahe
a70c57d228 fix(core/bootloader): add fade-out before jumping to FW if backlight will be reset
[no changelog]
2025-02-02 22:41:17 +01:00
tychovrahe
411e8779f7 fix(core): add fade-in to boot stage 2 screen if backlight was reset
[no changelog]
2025-02-02 22:41:17 +01:00
tychovrahe
e2035e1c06 refactor(core): introduce separate backlight pin driver
[no changelog]
2025-02-02 22:41:17 +01:00
tychovrahe
368d41902d refactor(core): cleaner backlight switch-off in PVD IRQ
[no changelog]
2025-02-02 22:41:17 +01:00
tychovrahe
4e74d2852b refactor(core): extract backlight driver to separate module
[no changelog]
2025-02-02 22:41:17 +01:00
tychovrahe
64d8c18865 fix(core): adjust T3W1 display refresh rate
[no changelog]
2025-01-31 10:04:26 +01:00
tychovrahe
06a722cc74 fix(core): fix boot screen background color when showing no-warning vendor info
[no changelog]
2025-01-31 10:04:06 +01:00
cepetr
2eb1e5b3ca feat(prodtest): refactor and improve prodtest 2025-01-31 08:15:20 +01:00
cepetr
5adb8ef997 refactor(core): rename memory_area to applet_memory
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
f99030938e feat(core): reset peripherals during handovers
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
236c377e20 refactor(core): remove unused linker script symbols
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
6719eeb376 refactor(core): simplify shutdown/handover code
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
2697c06642 refactor(core): rewrite rescue code in C
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
95afa34f27 refactor(core): rewrite startup code in C
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
70c577b67b refactor(core): add new linker scripts consts for memory cleanup
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
7613fe310a refactor(core): rename linker script section constants
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
2671404e44 refactor(core): rename stack related linker script symbols
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
bdb3d486e3 refactor(core): rename jump_to function
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
2ecf335349 refactor(core): use memset_reg in asm code only
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
c30233b832 refactor(core): stop using shutdown_privileged directly
[no changelog]
2025-01-30 14:07:25 +01:00
cepetr
d8e7dc8cd9 chore(core): remove unused secure_shutdown syscall
[no changelog]
2025-01-30 14:07:25 +01:00
tychovrahe
d9c547c590 fix(core): calculate image hash including padding between header and code
[no changelog]
2025-01-29 16:56:11 +01:00
tychovrahe
b75c0a844d feat(core): set haptic actuator for T3W1
[no changelog]
2025-01-29 16:55:56 +01:00
tychovrahe
4ad326aa73 chore(core): add support for T3W1 revB
[no changelog]
2025-01-29 16:55:56 +01:00
tychovrahe
7f53b34b8e feat(core): introduce RGB LED driver with low power TIM
[no changelog]
2025-01-29 16:55:56 +01:00
tychovrahe
671c3e2a65 fix(core): unify size of enums between rust and C
[no changelog]
2025-01-29 09:10:35 +01:00
tychovrahe
399aa4f2ea fix(core): adjust jpeg cache size to allow work on larger displays
[no changelog]
2025-01-29 09:10:10 +01:00
Roman Zeyde
96ac4e263c refactor(core): reduce ui::layout_delizia::component::header::Header size
[no changelog]
2025-01-28 14:21:43 +02:00
Martin Milata
7c06363fea chore(core/prodtest): bump version to 0.2.13
[no changelog]
2025-01-28 12:27:05 +01:00
Martin Milata
b0e39dbe6f chore(core): bump version to 2.8.8
[no changelog]
2025-01-28 12:27:05 +01:00
tychovrahe
8bad0c8675 fix(core): fix flashing old display content on model T
[no changelog]
2025-01-24 21:59:01 +01:00
Andrew Kozlik
27ed1fd49e fix(core): Fix displayed batch number in prodtest.
[no changelog]
2025-01-23 16:48:00 +01:00
tychovrahe
69a61e98e0 feat(core): adjust codec_v1 to work with differently sized RX and TX packets
[no changelog]
2025-01-23 16:46:12 +01:00
tychovrahe
a682555574 fix(core): add missing interrupt disable to NRF driver
[no changelog]
2025-01-23 16:46:12 +01:00
tychovrahe
e8eb48cd0d chore(core): add T3W1 production keys vendorheaders
[no changelog]
2025-01-23 15:42:56 +01:00
tychovrahe
5fd773757c fix(core): fix fading issues 2025-01-23 15:24:00 +01:00
tychovrahe
a5809c872e feat(core): add support for setting BLE name from Trezor firmware
[no changelog]
2025-01-23 13:27:59 +01:00
Ioan Bizău
5a13b4560d fix(core): get rid of colon in some TS5 descriptions
[no changelog]
2025-01-23 12:46:54 +01:00
Ioan Bizău
e99beaf486 refactor(core): merge confirm_blob and confirm_value
[no changelog]
2025-01-23 12:46:54 +01: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
bdc054235c refactor(core): define model-specific include files in site-scons
[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
cepetr
a920b92ad3 fix(core): fix gfx_bitblt initialization
[no changelog]
2025-01-22 17:21:41 +01:00
Roman Zeyde
e78f6d2d6d fix(core): fix a few "unused" Rust warnings
[no changelog]
2025-01-22 15:09:08 +02:00
Martin Milata
ae853bb821 Merge branch 'release/25.01' 2025-01-22 12:14:10 +01:00
Roman Zeyde
1dae795a94 feat(core): support per-layout untranslated text strings
[no changelog]
2025-01-22 10:41:35 +02:00
Roman Zeyde
e9aca68612 docs: make sure changelog fragments end with a period
Also, run `generate-changelog.py` over prodtest changelog.

[no changelog]
2025-01-20 14:54:27 +02: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
Ioan Bizău
30e88f4641 fix(core/ui): make button press cancel current hold 2025-01-17 13:04:56 +01:00
Ioan Bizău
dd3bf253f8 fix(core): disallow canceling on uncancelable pages 2025-01-16 13:54:13 +01:00
tychovrahe
8207b9ffe5 feat(core): add BLE to t3w1 board
[no changelog]
2025-01-14 09:15:12 +01:00
tychovrahe
b2a4db1463 feat(core): expose BLE functionality to micropython
[no changelog]
2025-01-14 09:15:12 +01:00
tychovrahe
8ca51be020 feat(core): expose BLE functionality to rust
[no changelog]
2025-01-14 09:15:12 +01:00
tychovrahe
3fae6b23cf feat(core:): introduce BLE driver
[no changelog]
2025-01-14 09:15:12 +01:00
tychovrahe
34e033fd4e fix(core): fix wrong RSOD color on some older Model T devices 2025-01-14 08:21:37 +01:00
cepetr
280b1e9b79 fix(core): reset peripherals in emergency mode
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
2426e637b3 feat(core): introduce optiga deinit and suspending
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
80e2cea2b5 feat(core): improve button driver init/deinit
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
fc2f9c5949 feat(core): add powerctl_suspend syscall
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
f3793fd8c4 fix(core): panic on invalid syscall number
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
63fe21b6cb feat(core): improve dma2d/gfx_bitblt init/deinit
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
3165443dfe feat(core): improve t3w1 display driver init/deinit
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
1f3e640dd9 feat(core): add display_init return value
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
47f618c640 feat(core): decrease t3w1 backlight pwm frequency
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
7a603b8717 feat(core): improve haptic driver peripherals init/deinit
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
a881401e4d feat(core): improve pwm backlight driver peripherals init/deinit
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
22f132c935 fix(core): fix suspending to STOP2 mode
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
4fda1c4dfb feat(core): introduce USE_USB feature
[no changelog]
2025-01-14 07:52:15 +01:00
cepetr
27e37de695 fix(core): fix incorrect macro name
[no changelog]
2025-01-13 19:03:28 +01:00
tychovrahe
eef2f4113f refactor(core): improve USB events handling, more extensible implementation
[no changelog]
2025-01-13 18:46:11 +01:00
tychovrahe
e4f4985584 refactor(core): split polling can_read and reading from USB
[no changelog]
2025-01-13 17:42:30 +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
Lukas Bielesch
1ef62aaf0b fix(core): rework 'too many PIN attempts' RSOD
Also, allow multi-line title in `model_samson` `ErrorScreen`.

Co-authored-by: Roman Zeyde <roman.zeyde@satoshilabs.com>
2025-01-10 13:31:00 +01:00
Roman Zeyde
849af38f5e refactor(core): remove an unused member from ErrorScreen
Also, rename `ErrorScreen::place` argument to `_bounds`,
similarly to how it's done in `model_quicksilver` and `model_bolt`.
2025-01-10 13:31:00 +01:00
tychovrahe
43721ab396 feat(core/prodtest): add RGB LED test
[no changelog]
2025-01-10 11:32:49 +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
tychovrahe
22ab7e98f5 perf(core): optimize LTDC-DSI ram usage by properly utilizing LTDC window
[no changelog]
2025-01-06 11:42:40 +01:00
tychovrahe
1c59442f89 feat(core): use lx250a2401a display panel on T3W1
[no changelog]
2025-01-06 11:42:40 +01:00
tychovrahe
b97390a73a refactor(core): make display resolution constants global, board specific
[no changelog]
2025-01-06 11:42:40 +01:00
tychovrahe
6e2486a2e2 feat(core): add LX250A2401A panel to ltdc_dsi display driver
[no changelog]
2025-01-06 11:42:40 +01:00
tychovrahe
33bb7ef410 fix(core): increase framebuffer section size on U5G models
[no changelog]
2025-01-06 11:42:40 +01:00
tychovrahe
d235ed3d3d fix(core): properly limit the display area used in application (ltdc_dsi driver)
[no changelog]

wip: use only part of display area
2025-01-06 11:42:40 +01:00
tychovrahe
36d0ce79f9 refactor(core): use function to get GFXMMU LUT in ltdc_dsi driver
[no changelog]
2025-01-06 11:42:40 +01:00
tychovrahe
b76a2161a1 fix(core): fix terminal background for unaligned display size
[no changelog]
2025-01-06 11:42:40 +01:00
tychovrahe
973d4ab2b2 fix(core): make TT UI homescreen respect screen size
[no changelog]
2025-01-06 11:42:40 +01:00
tychovrahe
2d051ffefd fix(core): fix jpeg size parsing
[no changelog]
2025-01-06 11:42:40 +01:00
Martin Milata
8a254aa8ea chore(core): add signed bootloader 2.1.8 for T2T1, T2B1 2025-01-03 19:47:34 +01:00
Martin Milata
f2aeea159f docs(core/prodtest): changelog for 0.2.12 2025-01-03 17:35:34 +01:00
kopecdav
35c0ada42b refactor(core/prodtest): Put patch_and_update function to separate source file 2025-01-03 16:30:14 +01:00
kopecdav
4c312aabfe feat(core/prodtest): Add stwlc38 update from host feature [no changelog] 2025-01-03 16:30:14 +01:00
tychovrahe
20aad3ef8d feat(core/prodtest): change resolution of TOUCH_POWER command parameter to milliseconds. 2025-01-03 14:29:20 +01:00
matejcik
897f5b355f fix(core/ui): fix a bug causing marquee on model TR to not start 2025-01-03 14:24:32 +01:00
matejcik
e424fd8d3b refactor(core): make imagebuffer allocation fallible 2025-01-03 14:15:14 +01:00
Andrew Kozlik
83a96f7a5a feat(core): Randomize SCM_REVISION address in firmware
[no changelog]
2025-01-03 10:23:41 +01:00
tychovrahe
c26d9f4227 chore(core): increase size of assets area for U5G models
[no changelog]
2025-01-02 11:42:00 +01:00
tychovrahe
04a1b3943f chore(core): re-balance distribution in flash on F4 models
[no changelog]
2025-01-02 11:41:48 +01:00
tychovrahe
594445c1f9 fix(core): TS5 - wait for frame to appear on display before raising backlight
[no changelog]
2025-01-02 11:41:33 +01:00
obrusvit
e9ecbbc5e8 refactor(core): consistent use of confirm_address
- use `confirm_address` trait fn in both `confirm_output` and
`confirm_address` layout functions

[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
7e1f160dba refactor(core): consistent naming for UI traits
[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
0e1696b3ed chore(core): cleanup warnings and clippy errors
[no changelog]
2024-12-19 00:09:20 +01:00