1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-01-31 01:41:18 +00:00
Commit Graph

1945 Commits

Author SHA1 Message Date
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
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
tychovrahe
b4ba056a39 fix(core): fix translation area access from coreapp applet
[no changelog]
2024-12-05 17:17:08 +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
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
0643d95a67 style: fix article
[no changelog]
2024-12-02 12:39:15 +01:00
tychovrahe
16a8b1f9da chore(core): delete processed changelog entries for prodtest
[no changelog]
2024-12-01 20:19:44 +01:00
Martin Milata
895ff1e522 chore(core): bump version to 2.8.6
[no changelog]
2024-11-28 14:45:24 +01:00
Lukas Bielesch
7e9aba63c8 fix(core) Fix auto-mover hitting wall scenario 2024-11-27 19:26:04 +01:00
Ioan Bizău
ee0d6ded27 chore(core): remove unused confirm_more on TS5
[no changelog]
2024-11-26 22:38:06 +01:00
Ioan Bizău
04c89555cd chore(core/ui): use different copy on TS3 and TT
[no changelog]
2024-11-26 22:38:06 +01:00
Ioan Bizău
9c918aaeb8 feat(core/ui): tweak blob first page appearance
This commit adds a margin and footer description to the first page of
the paginated blobs to be confirmed on Mercury. It also extracts the
part of confirm_blob that deals with the first page to a separate
function in order to keep confirm_blob simple.
2024-11-26 22:38:06 +01:00
Ioan Bizău
929ffa73bd feat(core/ui): add cancel button to paginated blobs 2024-11-26 22:38:06 +01:00
Ioan Bizău
97c9f84f8d feat(core/ui): add page counter to paginated blobs 2024-11-26 22:38:06 +01:00
Lukáš Bielesch
ebc302959b
fix(core): fix broken flow for changing brightness [no changelog] (#4378)
* fix(core): fix broken flow for changing brightness [no changelog]

* fixup! fix(core): fix broken flow for changing brightness [no changelog]

* fixup! fix(core): fix broken flow for changing brightness [no changelog]

* fixup! fix(core): fix broken flow for changing brightness [no changelog]

* fixup! fix(core): fix broken flow for changing brightness [no changelog]

* fixup! fix(core): fix broken flow for changing brightness [no changelog]
2024-11-26 19:35:40 +01:00
obrusvit
6f7fccaac2 fix(core/mercury): info at bitcoin signmessage 2024-11-26 16:23:50 +01:00
obrusvit
88ca9ae988 fix(core/mercury): info at bitcoin fee bump 2024-11-26 16:23:50 +01:00
obrusvit
8a2a381949 fix(core/mercury): tap to cancel UX
- fixed UI bug in tap to cancel screen of `flow_confirm_output`

[no changelog]
2024-11-26 11:42:37 +01:00
matejcik
b9fb9ce243 fix(core): use the filtered event for subsequent processing
That way we won't pass raw touch events to underlying component if that
touch is already part of a swipe.
2024-11-25 19:15:45 +01:00