1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-03-03 16:56:07 +00:00
Commit Graph

2114 Commits

Author SHA1 Message Date
obrusvit
711c4c0e54 feat(eckhart): implement a few show_xyz functions 2025-03-03 12:48:24 +01:00
obrusvit
d5449206bd feat(eckhart): implement confirm_value 2025-03-03 12:48:24 +01:00
obrusvit
6a5141338e feat(eckhart): implement confirm_action 2025-03-03 12:48:24 +01:00
obrusvit
ef442fb1ae feat(core): add color op to FormattedText
[no changelog]
2025-03-03 12:48:24 +01:00
obrusvit
a68bfb5bb6 feat(eckhart): full-screen textual component
- TextScreen is a full-screen component for (paginated) texts
- it's supposed to wrap FormattedText or Paragraphs
2025-03-03 12:48:24 +01:00
obrusvit
e40084ef9f feat(eckhart): action bar component 2025-03-03 12:48:24 +01:00
obrusvit
29d6ea3c02 feat(eckhart): hint component 2025-03-03 12:48:24 +01:00
obrusvit
4bcec8f11a feat(eckhart): header component 2025-03-03 12:48:24 +01:00
obrusvit
b1f920cee2 feat(eckhart): provisional homescreen 2025-03-03 12:48:24 +01:00
obrusvit
a5ea639bbd feat(eckhart): text styles 2025-03-03 12:48:24 +01:00
obrusvit
60d99f6912 feat(eckhart): add fonts 2025-03-03 12:48:24 +01:00
obrusvit
5b89c69591 feat(eckhart): icon set 2025-03-03 12:48:24 +01:00
obrusvit
14889364bf feat(eckhart): color palette 2025-03-03 12:48:24 +01:00
obrusvit
8910d57634 feat(eckhart): initial commit
- build
- directory structure
- bootloader UI and assets copied from delizia
- FirmwareUI trait functions are empty
- Python layout functions are copied from delizia except some of more
complicated ones which raise NotImplemented for now
2025-03-03 12:48:24 +01:00
Roman Zeyde
9b11cc7577 feat(core): use SwipeFlow::add_page to reduce stack usage
[no changelog]
2025-03-03 13:28:33 +02:00
tychovrahe
587b5e8eb8 fix(core): fix jump to old bootloader
Initialize systick before jump, as the old bootloaders may not initialize systick on start and rely on systick running from boardloader or firmware. Only relevant for F4, otherwise we are jumping through reset.

[no changelog]
2025-02-28 16:17:06 +01:00
tychovrahe
511a4f3b93 fix(core/prodtest): fix touch draw test
[no changelog]
2025-02-28 15:32:49 +01:00
Ioan Bizău
aabd4ee9b7 feat(core/ui): add basic confirmation for Nostr signing
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
073038771e feat(core): introduce Nostr
[no changelog]
2025-02-28 14:15:45 +01:00
Roman Zeyde
ac49c3e284 fix(core): fix ExtraInfo menu cancellation
[no changelog]
2025-02-28 13:51:37 +02:00
Roman Zeyde
674342b594 fix(core): use SwipeFlow::add_page to save stack memory
[no changelog]
2025-02-27 18:20:20 +02:00
tychovrahe
323107e6a8 fix(core): fix jpeg blurring and dimming area
[no changelog]
2025-02-27 10:12:53 +01:00
tychovrahe
4af18b66eb fix(core): fix rendering of outlined Bars
[no changelog]
2025-02-27 10:12:34 +01:00
Andrew Kozlik
91ee49c20b chore(core, crypto): Remove unused function mnemonic_generate().
[no changelog]
2025-02-26 17:20:58 +01:00
cepetr
f5a51b0671 feat(core): enable hw decoding of grayscale JPEGs
[no changelog]
2025-02-26 12:06:44 +01:00
tychovrahe
4221b8514b feat(core/prodtest): implement NRF test functions
[no changelog]
2025-02-26 10:27:14 +01:00
tychovrahe
c97dd18c2d fix(core): fix NRF communication long message check
[no changelog]
2025-02-26 10:27:14 +01:00
tychovrahe
93f20bead1 feat(core/prodtest): add BLE testing
[no changelog]
2025-02-26 10:27:14 +01:00
tychovrahe
1fd83a9584 fix(core): fix nrf reboot function
[no changelog]
2025-02-26 10:27:14 +01:00
cepetr
c57a59d123 feat(rust): introduce info overlay rendering
[no changelog]
2025-02-26 09:56:08 +01:00
cepetr
c72d85296d refactor(rust): improve time module
[no changelog]
2025-02-26 09:56:08 +01:00
tychovrahe
10f3011663 feat(core/prodtest): add touch-draw command to prodtest
[no changelog]
2025-02-26 08:53:36 +01:00
tychovrahe
32bf5d82ff feat(core/prodtest): add tropic01 HAL integration and basic production tests
[no changelog]
2025-02-26 08:53:16 +01:00
matejcik
cd6ad7312e fix(core): delizia tutorial should allow swipe-up from confirmation screens 2025-02-26 01:17:11 +01:00
matejcik
2dc14ad1e0 fix(core): modify Delizia tutorial to account for tap-to-continue 2025-02-26 01:17:11 +01:00
matejcik
6441d41646 fix(core): change "Swipe up" to "Tap to continue" everywhere 2025-02-26 01:17:11 +01:00
matejcik
f04b022662 refactor(core/rust): add a helper for a swipeup-footer 2025-02-26 01:17:11 +01:00
matejcik
b015eac9f7 style(core/rust): fix clippy complaints 2025-02-26 01:17:11 +01:00
matejcik
18fc7e1f82 refactor(core/rust): remove internal pager from SwipePage 2025-02-26 01:17:11 +01:00
matejcik
6906b532bb feat(core/rust): enlarge delizia footer touch area to make it easier to hit 2025-02-26 01:17:11 +01:00
matejcik
1f0ec4d3c0 fix(core/rust): respond to the correct button in Address info 2025-02-26 01:17:11 +01:00
matejcik
741731638b refactor(core/rust): force recalculate Paragraphs visibility when updating content 2025-02-26 01:17:11 +01:00
matejcik
2982f6db37 refactor(core/rust): propagate footer button message everywhere
this generally simplifies the mappings of Frame messages, but also
relies on the button actions being properly set up.
2025-02-26 01:17:11 +01:00
matejcik
f0746e44fe feat(core/rust): delizia hotfix - make footer act as a swipe-up button
We introduce a new variant FlowMsg::Next, used only internally (for
now). Sending FlowMsg::Next indicates we want to proceed to the next
screen of the flow.

If there is internal pagination, Next will play a simulated swipe to the
child component.
2025-02-26 01:17:11 +01:00
matejcik
51e796ee30 feat(core/rust): introduce trait PaginateFull throughout Delizia
PaginateFull uses Pager instead of reporting just the total number of
pages. Delizia will rely on this trait; going forward, we'll want
PaginateFull to replace Paginate, but this refactor would be too big if
we also needed to include Caesar and Bolt in it
2025-02-26 01:17:11 +01:00
matejcik
6c8391ab18 feat(core/rust): introduce Pager 2025-02-26 01:17:11 +01:00
Ioan Bizău
6c38f0d63d feat(core): friendlier way to confirm long messages 2025-02-25 22:51:16 +01:00
Ioan Bizău
64b9084b6c feat(core/ui): ability to cancel recovery on word count selector 2025-02-25 20:30:39 +01:00
matejcik
6d7b039e6a chore(core): update bundled bootloader for T3T1 to version 2.1.10 2025-02-25 18:53:21 +01:00
kopecdav
bdc8dbffe3 feat(core): Introduce nfc commands in prodtest & update NFC library [no changelog] 2025-02-25 18:29:54 +01:00
kopecdav
fc2cf1535e feat(core): Update NFC library and introduce NDEF parser [no changelog] 2025-02-25 18:29:54 +01:00
kopecdav
3ff18fb9bc refactor(core): Refactor DSI variable in RFAL library to avoid colision with STM HAL drivers. [no changelog] 2025-02-25 18:29:54 +01:00
kopecdav
e672cb08b4 feat(core): Introduce nfc module with rfal library [no changelog] 2025-02-25 18:29:54 +01:00
Roman Zeyde
19c9e502d7 feat(core): add new translation entries for Solana staking layouts
[no changelog]
2025-02-25 11:55:03 +01:00
Roman Zeyde
803955b047 feat(core): add description to Delizia confirm_output()
It will allow confirming the vote account for Solana staking.

[no changelog]
2025-02-25 11:55:03 +01:00
Roman Zeyde
8a5373c733 feat(core): add extra info item to summary menu on Delizia
It will allow confirming the blockhash for Solana transactions.

Also, simplify arguments passing into `new_confirm_output()`.

[no changelog]
2025-02-25 11:55:03 +01:00
Roman Zeyde
2284b338c8 feat(core): skip empty fee entry in UICaesar::confirm_summary
Otherwise, we may get an additional empty confirmation screen.

[no changelog]
2025-02-25 11:55:03 +01:00
kopecdav
9f03e0c37b feat(core): Add prodtest function which prints simple text log on the screen [no changelog] 2025-02-21 10:15:12 +01:00
matejcik
61a3382abd fix(core/rust): increase capacity of debug error message
slicing the str like before is wrong because we may just happen to hit
in the middle of an utf8 sequence, which will cause a silent panic.
this way we at least get a visible panic: either "Text too long: <full
text>", or "unwrap failed" if the text doesn't fit into the 128-byte
string instance
2025-02-20 16:09:14 +01:00
matejcik
68d979a513 fix(core): exclude unused strings from firmware
this will prevent Rust code from building if it relies on a removed
string, and raise an AttributeError in python
2025-02-20 16:09:14 +01:00
Martin Milata
d375db9fc2 fix(tools): changelog.py: stricter model list format 2025-02-19 22:05:32 +01:00
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