1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-04-21 17:49:02 +00:00
Commit Graph

4684 Commits

Author SHA1 Message Date
tychovrahe
ee9f42a8b2 fix(core/prodtest): add early return in case of otp batch reading error
[no changelog]
2025-03-08 12:26:41 +01:00
tychovrahe
6db5eaf850 fix(core/prodtest): fix otp device variant lock check
[no changelog]
2025-03-08 12:26:41 +01:00
kopecdav
f2054ff409 feat(core/prodtest): Introduce unit test extension into prodtest [no changelog] 2025-03-07 17:24:24 +01:00
obrusvit
acdf549fc4 chore(core): bump version to 2.8.10
[no changelog]
2025-03-07 11:44:29 +01:00
obrusvit
813620a4c5 chore(core): include signed translations for 2.8.9 2025-03-06 16:10:20 +01:00
Roman Zeyde
f67a506e9c fix(core): use correct fonts for staking confirmation on Delizia
[no changelog]
2025-03-05 12:23:03 +02:00
Roman Zeyde
0d522be842 fix(core): use TEXT_MONO_GREY_LIGHT for chunkified data on Delizia
[no changelog]
2025-03-05 10:35:41 +02:00
tychovrahe
46ec7298af chore(core): drop support for T3W1 rev A0 board
[no changelog]
2025-03-05 09:19:27 +01:00
tychovrahe
9c451bd6ea fix(core): fix BLE issue command return value
[no changelog]
2025-03-05 09:19:16 +01:00
cepetr
486bbca959 feat(core): double glyphs on t3w1 terminal
[no changelog]
2025-03-05 08:33:15 +01: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
Andrew Kozlik
b2701596cc chore: Add emulator warnings.
[no changelog]
2025-03-04 12:49:30 +01:00
Roman Zeyde
e08b15ecaf feat(core): use Account info instead of Send from in Delizia staking UI
[no changelog]
2025-03-04 13:35:08 +02:00
Roman Zeyde
7be53c4172 fix(core): update Czech translations for Ethereum
* "Přednostní poplatek" -> "Poplatek za prioritu"
* "Zrušit stakování" -> "Zrušit stakování"

[no changelog]
2025-03-04 12:45:21 +02:00
tychovrahe
4394992b81 chore(core): unify comment style in startup_init.c
[no changelog]
2025-03-04 11:23:55 +01:00
tychovrahe
4de403bbe1 feat(core): enable LSE on T3W1
[no changelog]
2025-03-04 11:23:55 +01:00
tychovrahe
d1c1503fa4 feat(core/prodtest): add tamper testing function
[no changelog]
2025-03-04 11:23:55 +01:00
tychovrahe
d535e725c0 fix(core): fix tamper setting
[no changelog]
2025-03-04 11:23:55 +01:00
cepetr
bf119fbee4 feat(core): improve display/dma2d syscall verifiers
[no changelog]
2025-03-04 08:08:10 +01:00
cepetr
8574289493 chore(core): remove unused display function
[no changelog]
2025-03-04 08:08:10 +01:00
cepetr
45417bf3bd feat(core): reduce overhead of syscall invocation
[no changelog]
2025-03-04 08:08:10 +01:00
cepetr
19ba854c69 feat(code): introduce dma2d syscalls
[no changelog]
2025-03-04 08:08:10 +01:00
cepetr
39245206f4 fix(core): fix coreapp applet memory definition
[no changelog]
2025-03-04 08:08:10 +01:00
cepetr
2961f6caf9 refactor(core): improve frame buffer interface
[no changelog]
2025-03-04 08:08:10 +01:00
cepetr
8b525de3c9 fix(core): fix jpeg decoder syscalls verifiers
[no changelog]
2025-03-04 08:08:10 +01:00
cepetr
80ce57c5c4 fix(rust): fix drawing of 1px bar shape
[no changelog]
2025-03-04 08:07:56 +01:00
cepetr
c0134518da fix(core): fix t3w1 revA prodtest build
[no changelog]
2025-03-04 08:07:56 +01:00
obrusvit
fad9682201 fix(core): fix delizia set brightness setting
[no changelog]

(cherry picked from commit 55101b8013)
2025-03-03 16:00:31 +01:00
obrusvit
55101b8013 fix(core): fix delizia set brightness setting
[no changelog]
2025-03-03 15:59:59 +01:00
matejcik
5f94715ca7 fix(core/rust): correctly extend SwipeAttach animation duration
so that it covers the interval from the Attach event until timer running
out.

Without this change, it is possible to slip in a TouchStart event before
the animation timer has had a chance to start, and lose the matching
TouchEnd.

(cherry picked from commit f59deebfba)
2025-03-03 15:55:15 +01:00
matejcik
f59deebfba fix(core/rust): correctly extend SwipeAttach animation duration
so that it covers the interval from the Attach event until timer running
out.

Without this change, it is possible to slip in a TouchStart event before
the animation timer has had a chance to start, and lose the matching
TouchEnd.
2025-03-03 15:42:09 +01:00
tychovrahe
dcf9002f00 feat(core/prodtest): add hw-revision command and driver 2025-03-03 13:28:10 +01:00
tychovrahe
a22c15663c chore(core): fix typo
[no changelog]
2025-03-03 13:28:10 +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
tychovrahe
a77f1f1a99 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]

(cherry picked from commit 0536ed6f50)
2025-02-28 15:22:32 +01:00
Ioan Bizău
dcf65b1d8f chore(core): remove unnecessary check
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
d0681212b0 fix(core): use BIP-340 to sign Nostr events
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
50879cd4da chore(core/nostr): remove Nostr from production build
[no changelog]
2025-02-28 14:15:45 +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
0b5dbcae1b feat(core): confirm multiple Solana Deactivate/Withdraw instructions
[no changelog]

(cherry picked from commit 1954c7cbc2)
2025-02-28 12:56:10 +01:00
Roman Zeyde
9321227ddb fix(core): fix ExtraInfo menu cancellation
[no changelog]

(cherry picked from commit ac49c3e284)
2025-02-28 12:55:47 +01:00
Roman Zeyde
1954c7cbc2 feat(core): confirm multiple Solana Deactivate/Withdraw instructions
[no changelog]
2025-02-28 13:51:37 +02:00
Roman Zeyde
ac49c3e284 fix(core): fix ExtraInfo menu cancellation
[no changelog]
2025-02-28 13:51:37 +02:00
Roman Zeyde
da6d4afc7d fix(core): use SwipeFlow::add_page to save stack memory
[no changelog]

(cherry picked from commit bd496a9e95)
2025-02-27 18:25:54 +01: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
Roman Zeyde
8568378a8a fix(core): confirm only visible Solana staking instructions
[no changelog]

(cherry picked from commit ee1cc4ae81)
2025-02-26 20:47:18 +01:00
Andrew Kozlik
91ee49c20b chore(core, crypto): Remove unused function mnemonic_generate().
[no changelog]
2025-02-26 17:20:58 +01:00
Roman Zeyde
ee1cc4ae81 fix(core): confirm only visible Solana staking instructions
[no changelog]
2025-02-26 15:25:31 +02: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
obrusvit
2c94dc24df docs(core): fix entries in changelog 2025-02-26 02:03:27 +01:00
obrusvit
f88ce9ac9a docs(core): changelog for 2.8.9
- command: ./tools/changelog.py generate --date "19th March 2025" core
2.8.9
2025-02-26 01:47:11 +01:00
obrusvit
331f71dc91 chore(common): set definitions timestamp 2025-02-26 01:24:30 +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
1857612a37 feat(core): add Solana staking layouts 2025-02-25 11:55:03 +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
Roman Zeyde
d33244912b refactor(core): separate base and priority Solana fees
Move fee calculation into `Transaction` class.

Also, replace floating-point division by integer division in fee calculation.

[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
0c77c5102a fix(core): update translated strings to fit the button on Delizia 2025-02-20 16:09:14 +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
matejcik
02190b5871 fix(core): do not repeat "cancel backup check" twice on screen 2025-02-20 16:09:14 +01:00
matejcik
87b7eccb6a fix(core): do not use local import for RecoveryAborted
This side-steps a double-import problem that is triggered when we
perform an unimport in a particularly unfortunate order. (don't ask)

The root cause of the problem still exists: we can get into a situation
where a live recovery_homescreen is running from an unimported module,
meaning that any new import of anything from the recovery_device
namespace will _also_ be a double-import. We don't have a fix for that
situation yet, so instead we avoid this particular local import, which
would cause homescreen_dialog to have its own copy of the `recover`
module.
2025-02-20 16:09:14 +01:00
matejcik
2ee0f7028c fix(core): update exception name in layout shutdown reporting
also return after the exception branch, so that the "value" is not
reported twice, once as an exception and a second time as a "non-none
return"
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
Ioan Bizău
609e14264f fix(core/ui): back button
[no changelog]
2025-02-19 16:14:08 +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
Roman Zeyde
f4ebc0d9d8 docs(core): fix get_bytes_as_str docstring
[no changelog]
2025-02-18 11:56:42 +01:00
tychovrahe
13c078f8af fix(core): bump T3W1 revB revision
[no changelog]
2025-02-15 18:44:48 +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
612d20b535 Merge branch 'release/translations/25.02' into obrusvit/merge-release-25.02 2025-02-13 11:42:08 +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
Ioan Bizău
b8e2709ca8 fix(core): fix br_code inconsistency in sign-tx
[no changelog]
2025-02-11 16:10:58 +01:00
Ioan Bizău
c8210056da fix(core/ui): fix back button
[no changelog]
2025-02-11 16:10:58 +01:00
Ioan Bizău
d487f97ecf feat(core): show ETH account info on model T 2025-02-11 16:10:58 +01:00
obrusvit
0d24ac4d79 refactor(core): remove C fonts generator
[no changelog]
2025-02-11 13:19:39 +01:00
tychovrahe
2774fb19de fix(core): enforce bolt UI for delizia-based models in prodtest
[no changelog]
2025-02-11 11:25:18 +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
tychovrahe
1700841856 refactor(core): unify way how rust is added to build
[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
obrusvit
bd304138a3 chore(core): include signed translations for 2.8.8 2025-02-10 15:39:21 +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
obrusvit
8fcf8b67a8 fix(core): fix italian copy for word quiz
- shortening the title ensures that instruction fits on the screen

[no changelog]
2025-02-08 22:14:49 +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
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
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
8c52f0d5e8 feat(core): add arg to gen_font.py to gen C data
- usage with `--gen-c`
- default is now Rust

[no changelog]
2025-02-06 13:32:29 +01:00
obrusvit
5bef8574b0 feat(core): add arg to gen_font.py to pick layout
[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
Martin Milata
bb5972b7e2 test(core): update monero tests binary
[no changelog]
2025-02-05 16:25:53 +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
Roman Zeyde
2a19b35f3e build(core): export Rust functions' stack sizes
It is useful to find the top-most stack consuming functions:

```
$ make build_firmware
$ arm-none-eabi-size -A build/firmware/firmware.elf | grep .stack_sizes
.stack_sizes          7523           0

$ cargo install stack-sizes@0.4.0
$ stack-sizes build/firmware/firmware.elf | grep trezor_lib | sort -k2 -n | tail -n10
0x081c1721	3536	trezor_lib::ui::api::firmware_micropython::new_confirm_properties::h2ab0feebaf154486
0x081c0e7d	3560	trezor_lib::ui::api::firmware_micropython::new_confirm_modify_output::h04465b97d57fafb6
0x081c6161	3688	trezor_lib::ui::api::firmware_micropython::new_show_checklist::he16b109bc4dff398
0x081c4089	4240	trezor_lib::ui::api::firmware_micropython::new_request_pin::h3280c5eff8900a22
0x081be3e1	4960	trezor_lib::ui::api::firmware_micropython::new_confirm_action::h860f874d714ace74
0x081bf545	5096	trezor_lib::ui::api::firmware_micropython::new_confirm_emphasized::h9ade56f5c88001c0
0x081c1ded	5736	trezor_lib::ui::api::firmware_micropython::new_confirm_summary::he2e1274bbc07703e
0x081c7ee9	6760	trezor_lib::ui::api::firmware_micropython::new_show_remaining_shares::h1f67cbfdfeb4c683
0x081c127d	6768	trezor_lib::ui::api::firmware_micropython::new_confirm_more::h107a4be9b5431bb4
0x081c5441	8312	trezor_lib::ui::api::firmware_micropython::new_show_address_details::h352e0b87c58914ce
```

[no changelog]
2025-01-31 06:28:15 +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
obrusvit
b8cf9daa2e docs(core): changelog for 2.8.8 2025-01-29 16:02:48 +01:00
obrusvit
fa9e5338c3 chore(common): set definition timestamps
[no changelog]
2025-01-29 11:55:35 +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
5cdd0e7e74 feat(python): check that translations are using correct layout names
[no changelog]
2025-01-28 15:18:12 +02:00
tomasklim
78768950fd chore(core): use label for evm networks generation 2025-01-28 14:17:46 +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
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
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
obrusvit
15967a312b fix(core): explicitly delete keyboard layout
- seems that keyboard LayoutObj was not properly deallocated resulting
in MemoryError. Fix by calling the dunder `del` method explicitly fixes
the issue
- the problem was on Model T (Bolt), but applying it for all layouts to
prevent similar problem
2025-01-27 23:43:33 +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
b9c98dba30 feat(core): allow splitting/merging translations for Crowdin
This way, each layout could be translated independently.

[no changelog]
2025-01-22 12:46:50 +02:00
Roman Zeyde
1dae795a94 feat(core): support per-layout untranslated text strings
[no changelog]
2025-01-22 10:41:35 +02:00
Roman Zeyde
8bccc7fd0a chore(core): resort translation JSONs by keys
Done by:
```
cd core/translations
python ./cli.py merge ??.json
```

[no changelog]
2025-01-22 10:41:35 +02:00
Roman Zeyde
7ee1259aaa refactor(core): use layout name for translation font keys
It would simplify `TranslationsDir.load_lang` method.

[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
matejcik
38e362cd5b fix(core): improve ButtonRequest.name in backup confirmation
[no changelog]
2025-01-17 11:28:12 +01:00
matejcik
8b6d8e7572 fix(all): make more protobuf fields required
[no changelog]
2025-01-17 11:28:12 +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
kopecdav
b726e1e203 fix(core/prodtest): add missing source file for revA0
[no changelog]
2025-01-14 07:52:15 +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
Martin Milata
57fa995b28 chore(core): include signed translations for 2.8.7 2025-01-09 14:49:04 +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
Martin Milata
e02fd0b698 docs(core): changelog for 2.8.7 2025-01-03 17:30:08 +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