1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-01-22 05:10:56 +00:00
Commit Graph

4177 Commits

Author SHA1 Message Date
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
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
Martin Milata
f2718b60be Merge branch 'release/24.12' 2025-01-03 15:08:09 +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
e0b4cab2db fix(core): retry creation of homescreen layout
For reasons unknown, a previous homescreen layout can sometimes survive
a GC cycle in main's unimport loop. Two homescreen layouts can't exist
simultaneously, so creating a new one would fail.

It _seems_ that after restarting the session, the homescreen object
still exists but is not reachable anymore, so a second GC cycle properly
disposes of it.

So what we do is simply catch the possible MemoryError, invoke GC
explicitly, and try again.
2025-01-03 14:15:14 +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
Ondřej Vejpustek
1a62cc8a59 fix(core): fix serialization of signatures and witnesses in multisig
[no changelog]
2025-01-02 15:07:25 +01:00
Andrew Kozlik
01a1f479a0 feat(core): Implement entropy check workflow in ResetDevice. 2025-01-02 13:44:36 +01:00
Andrew Kozlik
df97d8d958 feat(common): Add messages for entropy check workflow.
[no changelog]
2025-01-02 13:44:36 +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
Martin Milata
2f20cba314 docs(core): fix changelog 2024-12-19 13:00:31 +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
obrusvit
9caf540e16 refactor(core): remove trezorui2 module
- also remove "check" scripts which seem outdated

[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
ad9618c282 refactor(core): cleanup layout.rs
- last functions of all models moved out
- imports formatted
- tests moved

[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
dd9ac038d0 refactor(core): port functions to FirmwareUI
- keyboards
- standalone functions
  - disable_animations
  - check_homescreen_format
- confirm_action
- selectors
- confirm_firmware_update
- show_homescreen/lockscreen
- confirm_homescreen
- confirm_homescreen of mercury changed according to Figma
- set_brightness
- show_wait_text
- show_progress
- request_number
- show_checklist
- show_mismatch
- confirm_reset
- tutorial
- confirm_coinjoin
- confirm_modify_output/fee
- show_group_share_success
- show_remaining_shares
- show_success/warning/error/danger
- show_simple
- continue_recovery
  - confirm_recovery of model_t and model_r merged with
flow_continue_recovery of mercury into a continue_recovery_homepage
trait function, parameters renamed to be more descriptive
- show_share_words moved and refactored
  - model_t version was moved from using plain Paragraph to a dedicated
component `ShareWords` so that it's consistent with other models. This
allowed to move formatting to Rust and allowed the trait function to
have `words` parameter of type `Vec<TString, 33>`
  - model_r ShareWords::render slightly refactored to be consistent with
the new model_t version
  - mercury uses a unique version. The reason is that mercury SwipeFlow
contains also the initial screen with instructions and prompt screen at
the end.
- confirm_with_info
- show_info_with_cancel
- confirm_blob
- confirm_value
- confirm_properties
- confirm_more
- confirm_address
- prompt_backub
- confirm_emphasized
- show_address_details
- confirm_summary
- TR removed:
  - confirm_output_address and confirm_output_amount replaced with
confirm_blob. UI diff is minimal.
  - confirm_joint_total, replaced a TR-specific function with a generic
`confirm_properties` with no UI changes
- confirm_multiple_pages_texts
  - the function is TR specific and is used only in confirm_set_new_pin,
it would be better to use something different
- remaining mercury flows with no counterpart
  - confirm_blob_intro
  - flow_confirm_set_new_pin
  - flow_confirm_output
  - flow_get_address

[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
b2c6b09bfc feat(core): introduce FirmwareUI trait
- the commit introduces a trait defining high level UI building blocks,
common for all models.
- trezorui_api module exposes these functions to MicroPython world.
- `show_info` is implemented as a first function.

[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
091a0e8550 feat(core): introduce trezorui_api
- the new module is the place for type definitions of the interface
between rust and micropython world.
- the new module will replace `trezorui2` with `trezorui_api`

[no changelog]
2024-12-19 00:09:20 +01:00
obrusvit
78cce0ba04 fix(core): font generator padding
[no changelog]
2024-12-16 13:54:27 +01:00
obrusvit
5d1401ef4f refactor(core): safe iface for get_glyph_data
[no changelog]
2024-12-16 13:54:27 +01:00
obrusvit
5a9c8c81ae refactor(core): remove UTF-8 support from C
- re-implement some fonts handling functions in Rust and delete them
from C
- C code only needs to handle ASCII characters

[no changelog]
2024-12-16 13:54:27 +01:00
obrusvit
0c4225491b refactor(core): change gen_font.py and regen fonts
Change to the new structures and preserve manual changes. This commit
also removes duplicated definition of nonprintable glyph for _UPPER
fonts.

[no changelog]
2024-12-16 13:54:27 +01:00
obrusvit
db0e8e8421 refactor(core): simplify font handling
This commit removes the usage of macros for font data definitions.
Instead, it includes data as const structs of newly introduced
font_info_t type.

[no changelog]

refactor(core): use font_id_t instead of plain int

[no changelog]
2024-12-16 13:54:27 +01:00
obrusvit
b5ea26eb7a refactor(core): separate concerns of FONT macros
Introduce a new flag `_NAME` for each font and reduce the usage of
`_ENABLE` flag to purely compilation guard.

[no changelog]
2024-12-16 13:54:27 +01:00
cepetr
e196413bb7 feat(core): initialize powerclt in boardloader
[no changelog]
2024-12-13 17:24:03 +01:00
tychovrahe
3bc13b5707 refactor(core): switch DISC2 display driver to universal LTDC DSI implementation
[no changelog]
2024-12-13 17:24:03 +01:00
tychovrahe
03a296f815 feat(core): display driver for T3W1
[no changelog]
2024-12-13 17:24:03 +01:00
tychovrahe
dac6c17f73 refactor(core): extract framebuffer queue for reuse
[no changelog]
2024-12-13 17:24:03 +01:00
tychovrahe
791340cc6b fix(core): restore RSOD info
[no changelog]
2024-12-13 10:35:03 +01:00
tychovrahe
0bc729a3da refactor(core): streamline RAM layout
[no changelog]
2024-12-11 21:41:52 +01:00
tychovrahe
0d3407b075 fix(core): resolve crashes when running without display or with uninitialized display
[no changelog]
2024-12-11 21:41:36 +01:00
Ioan Bizău
e6802bdd09 fix(core/ui): don't swipe left if there is no menu 2024-12-11 16:33:15 +02:00
cepetr
a0bd4860ca feat(core/prodtest): add npm1300 buck control commands
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
9d2d96f832 feat(core): add npm1300 buck regulator control
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
27b27df17d feat(core/prodtest): add suspend command
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
dda9d2ba36 feat(core/prodtest): add wpc control commands
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
bfe36fd8db feat(core/prodtest): add pmic control commands
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
a6acabd917 refactor(core): introduce drivers init/deinit in boot/boardloader
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
e456e2ad27 feat(core): add power button wakeup functionality
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
519a1a0f7b feat(core): introduce powerctl module
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
97dbf2fab3 feat(core): introduce stwlc38 driver
[no changelog]
2024-12-11 14:45:16 +01:00
cepetr
1da149f129 feat(core): introduce npm1300 driver
[no changelog]
2024-12-11 14:45:16 +01:00
Lukas Bielesch
6de0e5de0f chore(core): change display orientation labels [no changelog] 2024-12-09 15:03:57 +01:00
Martin Milata
dd27166dcb chore(core): include signed translations for 2.8.6.1 2024-12-09 12:37:51 +01:00
Ondřej Vejpustek
8bf23696e1 style(core/tests): apply formatting
[no changelog]
2024-12-06 16:14:54 +01:00
Ondřej Vejpustek
97b2e6c751 style(core/tests): fix warnings
[no changelog]
2024-12-06 16:14:54 +01:00
Ondřej Vejpustek
345eaf79f9 style(core/tests): silent star import warnings
[no changelog]
2024-12-06 16:14:54 +01:00
tychovrahe
17f2a3256b fix(core): fix translation area access from coreapp applet
[no changelog]

(cherry picked from commit b4ba056a39)
2024-12-05 17:20:12 +01:00
tychovrahe
b4ba056a39 fix(core): fix translation area access from coreapp applet
[no changelog]
2024-12-05 17:17:08 +01:00
Martin Milata
768f86f56f chore(core): bump version to 2.8.6.1 2024-12-05 17:01:30 +01:00
Martin Milata
99b2c2a820 chore(core): include signed translations for 2.8.6 2024-12-05 12:52:18 +01:00
Martin Milata
0d90b510e7 build(core): use deterministic git rev-parse
The output may differ in shallow vs. full repo.

[no changelog]

(cherry picked from commit 2635e4c7fd)
2024-12-04 16:37:32 +01:00
Martin Milata
2635e4c7fd build(core): use deterministic git rev-parse
The output may differ in shallow vs. full repo.

[no changelog]
2024-12-04 16:36:19 +01:00
obrusvit
61ebb19515 refactor(core): mercury confirm_summary
- old confirm_total removed
- flow_confirm_summary refactored to confirm_summary

[no changelog]
2024-12-04 14:47:53 +01:00
obrusvit
af6240b52c refactor(core): model_r confirm_summary
- altcoin_tx_summary removed and replaced with confirm_summary

[no changelog]
2024-12-04 14:47:53 +01:00
obrusvit
6e94748e92 refactor(core): model_t confirm_summary
- model_t confirm_total refactored to confirm_summary
- parameter set changed to pave the way for unification across models

[no changelog]
2024-12-04 14:47:53 +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
Ioan Bizău
13df961317 refactor(core/ui): introduce show_danger
This is a unified interface for flow_warning_hi_prio,
which was available only on Mercury before.

[no changelog]
2024-12-02 22:28:00 +01:00
Ioan Bizău
aa58ea7158 fix(core/ui): make cancel the last menu item
[no changelog]
2024-12-02 19:52:56 +01:00
Ioan Bizău
5c8ee873c6 chore(core/ui): remove new_confirm_address on Mercury
[no changelog]
2024-12-02 19:52:56 +01:00
obrusvit
deb5ce3f48 refactor(core): remove flow confirm_with_info
- usage of `flow::confirm_with_info` is replaced with
`flow::confirm_action` which is parameterized accordingly

[no changelog]
2024-12-02 19:52:56 +01:00
tychovrahe
ef5ed2ee72 fix(core): fix haptic driver with reset pin initialization
[no changelog]
2024-12-02 17:18:59 +01:00
tychovrahe
8f4268229a feat(core): use SMPS on T3W1
[no changelog]
2024-12-02 15:06:32 +01:00
tychovrahe
2c87d43b51 fix(core): fix option bytes settings for U5G models
[no changelog]
2024-12-02 15:06:09 +01:00
tychovrahe
46eebd23a4 fix(core/prodtest): fix BOOTLOADER VERSION command 2024-12-02 15:05:55 +01:00
M1nd3r
01cf58f2a1 docs(core): add and modify docs to context and cache
[no changelog]
2024-12-02 12:39:15 +01:00
M1nd3r
2eab963862 test(core): replace __init__ in unit tests with setUpClass and tearDownClass
[no changelog]
2024-12-02 12:39:15 +01:00
M1nd3r
22a7ba7070 test(core): add setUpClass and tearDownClass to core unit tests
[no changelog]
2024-12-02 12:39:15 +01:00
M1nd3r
b1f07fec4f chore(core): update core to reflect cache and context refactor
[no changelog]
2024-12-02 12:39:15 +01:00
M1nd3r
8eb62fdeca refactor(core): abstract cache and context
[no changelog]
2024-12-02 12:39:15 +01:00
M1nd3r
0643d95a67 style: fix article
[no changelog]
2024-12-02 12:39:15 +01:00
M1nd3r
a3c275f19a test(core): update tests to reflect cache refactor
[no changelog]
2024-12-02 12:39:15 +01:00
Ondřej Vejpustek
ae32a23002 fix(core): disallow per-node paths in change outputs 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
45a029edcc fix(core): disallow per-node paths in getaddress 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
adc7cef49c feat(core): display sortedmulti 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
4dce3d0099 feat(core):: support sortedmulti 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
94cf3a29a0 feat(core,python,rust): add autogenerated files 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
0a9c4ba4ec feat(core)): forbid multisig to singlesig change outputs 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
53b5d62623 fix(core): make sorting of pubkeys fully deterministic 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
f3983486d1 feat(core): remove deprecated path 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
d8c15837cb test(core): add unit tests for ChangeDetector 2024-12-02 12:21:24 +01:00