tychovrahe
37687f1815
feat(core): add BLE to bootloader
2025-05-07 14:54:28 +02:00
tychovrahe
8aaf68f39f
feat(core): add BLE pairing complete event
...
[no changelog]
2025-05-07 14:54:28 +02:00
Roman Zeyde
5aa5d01c71
perf(core): use lookup tables for untranslated strings
...
Also, simplify `generated/translated_string.rs.mako` a bit.
[no changelog]
2025-05-07 14:15:22 +03:00
Roman Zeyde
2e9dfab8d1
style(core): simplify Rust translation conversions
...
[no changelog]
2025-05-07 12:40:42 +03:00
Roman Zeyde
7661c13a22
feat(vendor): reimplement utils.presize_module()
in C
...
[no changelog]
2025-05-07 12:18:52 +03:00
Roman Zeyde
ffea765a85
fix(core): disable check_free_heap
also in debug firmware
...
Currently, it may misdetect on-heap buffers' data as valid heap
pointers (resulting in `gc_mark_subtree` false-positives).
[no changelog]
2025-05-07 10:37:38 +03:00
cepetr
010c5adf89
refactor(core): remove firmware_calc_hash callback
...
[no changelog]
2025-05-06 16:33:36 +02:00
obrusvit
4005e136e0
feat(emu): add LED capability to emulator
...
[no changelog]
2025-05-06 15:47:04 +02:00
tychovrahe
50411367af
refactor(core): unify button polling functionality
...
[no changelog]
2025-05-06 12:57:39 +02:00
tychovrahe
6860c4be0a
refactor(core): unify touch polling functionality
...
[no changelog]
2025-05-06 12:57:39 +02:00
obrusvit
2a65d18200
fix(core): fix Delizia request_number dialog
...
- NumberInputDialog now reacts to tap to continue
- change the types there to u16 to be consistent with NumberInputSlider
(cherry picked from commit 8ba5b4b6b2
)
2025-05-06 08:45:16 +02:00
Roman Zeyde
ed89a99fa6
fix(core): handle empty 'info_items' in Caesar 'confirm_value'
...
[no changelog]
(cherry picked from commit bf2a588a25
)
2025-05-06 08:41:40 +02:00
Roman Zeyde
749c0bc8b2
chore(core): use systick_us
for mp_hal_ticks_us
...
[no changelog]
2025-05-06 09:37:17 +03:00
Martin Milata
8a0cf0e29a
build(core): remove LD_LIBRARY_PATH workaround from Makefile
...
Normal CI workflows seem to work fine with it and it broke
`make upload` on some setups.
[no changelog]
2025-05-05 18:14:03 +02:00
obrusvit
8ba5b4b6b2
fix(core): fix Delizia request_number dialog
...
- NumberInputDialog now reacts to tap to continue
- change the types there to u16 to be consistent with NumberInputSlider
2025-05-05 14:58:36 +02:00
Roman Zeyde
bf2a588a25
fix(core): handle empty 'info_items' in Caesar 'confirm_value'
...
[no changelog]
2025-05-05 15:31:11 +03:00
Roman Zeyde
d3df16e84e
fix(core): propagate exceptions via unimport.__exit__
...
[no changelog]
2025-05-02 10:45:55 +03:00
tychovrahe
c6dedea7b3
chore(core/prodtest): improve CLI parameter documentation
...
[no changelog]
2025-05-01 19:53:00 +02:00
tychovrahe
e9b47d1116
chore(core/prodtest): fix time units in readme for NFC commands
...
[no changelog]
2025-05-01 19:53:00 +02:00
tychovrahe
a22563c01a
chore(core/prodtest): fix typos in prodtest
...
[no changelog]
2025-05-01 19:53:00 +02:00
tychovrahe
3a9315cc58
feat(core/prodtest): allow infinite testing of NFC functionalities
...
[no changelog]
2025-05-01 19:53:00 +02:00
Ioan Bizău
8ad1069166
chore(core): bump version to 2.8.11
...
[no changelog]
2025-05-01 08:53:26 +02:00
Ioan Bizău
1dc9942acf
docs: add Solana to changelogs
2025-04-30 15:47:54 +02:00
kopecdav
aa16fa71d6
fix(core): remove backup ram deinit outside of FIXED_HW_DEINIT
...
[no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
ab8aeaa102
fix(core): let LDO selection to sattle before BREN bit is being set [no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
c9984fabb2
fix(core): fix backup ram prodtest argument parsing
...
[no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
ae02677ca2
feat(core): add backup ram global initialization in bootloader, prodtest and kernel
...
[no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
dec252df77
fix(core): Enable Backup SRAM in VBAT mode [no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
dba76ea3e8
feat(core): Add backup ram driver to T3W1 rev A and B [no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
bece935d67
refactor(core): Remove backup ram section from linker [no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
eea75534e5
fix(core): Remove initialized check from backup ram erase function [no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
5ae5d97328
feat(core): Add backup_ram header, version and consistency checks + minor refactor [no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
7f27730b5d
feat(core): Add backup driver prodtest [no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
edd72eeaa0
feat(core): Introduce backup_ram driver [no changelog]
2025-04-30 15:18:02 +02:00
Martin Milata
e21c80bfcb
docs: fix changelogs
2025-04-30 14:18:26 +02:00
kopecdav
bfd78c8d6e
feat(core): Update fuel gauge charging mode + Update battery model to separate battery data in standalone header file. [no changelog]
2025-04-30 12:55:49 +02:00
kopecdav
3b407e8dc8
feat(core): Add fuel_gauge prodtest [no changelog]
2025-04-30 12:55:49 +02:00
kopecdav
76cffbc5c6
feat(core): Introduce fuel gauge library [no changelog]
2025-04-30 12:55:49 +02:00
Ioan Bizău
de81d59aca
chore(build): changelog
2025-04-30 09:58:21 +02:00
Ioan Bizău
23058e10df
chore(build): update definitions timestamps
2025-04-30 09:15:20 +02:00
Martin Milata
ac9dec3eb7
chore(core): update bundled bootloader for T3B1 to version 2.1.10
2025-04-29 19:03:09 +02:00
Ioan Bizău
38f51f40b2
chore(core/ui): use better font on Delizia properties
...
[no changelog]
2025-04-29 16:09:28 +02:00
matejcik
17990e1c80
style: fix linter complaints
2025-04-29 14:54:41 +02:00
matejcik
ff1c9b9f9a
tests(core): run make test
headless
...
don't spam the emulator window ^_^
2025-04-29 14:54:41 +02:00
matejcik
f10588b2b6
tests(core): split up definition unit tests and add Solana cross-parseability check
2025-04-29 14:54:41 +02:00
matejcik
c21cc2034b
fix(core/protobuf): properly fail on wire type mismatch
...
otherwise we'd happily mis-parse a length-delimited field as a varint
one, accepting the length as the varint value and consuming garbage from
the length-delimited data for the next fields
2025-04-29 14:54:41 +02:00
matejcik
4e7d265312
fix(core/solana): fix UI for Solana transactions after recent changes
2025-04-29 14:54:41 +02:00
matejcik
7e10e25514
fix(core/solana): improve token info display
2025-04-29 14:54:41 +02:00
matejcik
dd5a3365a9
fix(core/solana): avoid looking at not-exposed instruction ids
2025-04-29 14:54:41 +02:00
matejcik
e4e6d60e64
refactor(core/solana): restructure programs.json and related code
2025-04-29 14:54:41 +02:00
Eugene Rossokha
e3af93e89f
feat(core): display correct rent information
2025-04-29 14:54:41 +02:00
Eugene Rossokha
ffbdea202a
feat(core): add loadable solana tokens
2025-04-29 14:54:41 +02:00
Eugene Rossokha
1d444c3845
fix(core): add display_name for missing token_mint
2025-04-29 14:54:41 +02:00
obrusvit
71cc10a72a
fix(delizia): fix a peek-a-boo label
...
- this commit fixes a minor UX bug in which "Tap to unlock" gesture
showed the device name label for a very brief moment before PIN keyboard
was rendered
- the label is now showed if a user taps outside the lockscreen circles,
"Tap to unlock" gesture is now registered only in the middle similarly
to "Tap to confirm"
[no changelog]
2025-04-29 12:52:05 +02:00
obrusvit
cdc08d1075
feat(delizia): homescreen improvements
...
- dim inner logo
- show "Unlocked" on Homescreen under device name
- show instruction "Continue in the app"
- register "Tap to unlock" gesture in the middle similarly to "Tap to
confirm". Tapping outside shows the label on lockscreen
- play haptic on "Tap to unlock"
2025-04-29 12:52:05 +02:00
M1nd3r
10f9254f7a
chore(core): remove wire_log from non-debug builds
...
[no changelog]
2025-04-28 23:52:47 +02:00
M1nd3r
b420f1d434
chore(core): add wire logging with interface
...
[no changelog]
2025-04-28 23:52:47 +02:00
M1nd3r
b6e0940ad7
chore(core): simplify exception func in log.py
...
[no changelog]
2025-04-28 23:52:47 +02:00
obrusvit
be3a7cec62
chore(core): shorten some foreign copy
...
- shorten some strings related to reset/recovery flows of Delizia
[no changelog]
2025-04-28 19:53:43 +02:00
Roman Zeyde
09a323e578
fix(core): remove debug-related data from PYOPT=1 firmware builds
...
It reduces T3T1 release universal firmware size by ~2kB:
```
Memory region Used Size Region Size %age Used
FLASH: 1580304 B 1664 KB 92.74%
```
Before this PR:
```
Memory region Used Size Region Size %age Used
FLASH: 1578256 B 1664 KB 92.62%
```
(Tested with `TREZOR_MODEL=T3T1 PYOPT=1 make -C core build_firmware`)
[no changelog]
2025-04-24 17:27:21 +03:00
Roman Zeyde
65e8f96428
chore(core): update main_clean_exit
comment
...
We are not using `atexit()` handler following #4892 .
[no changelog]
2025-04-24 16:26:36 +03:00
Roman Zeyde
41db573ef9
feat(core): check that GC restores free heap memory
...
Enabled only for frozen debug builds.
[no changelog]
2025-04-24 16:26:36 +03:00
Roman Zeyde
a787d21b3f
fix(core): preallocate save_screen_directory
to allow heap checking
...
Otherwise, free heap memory will decrease after handling `DebugLinkRecordScreen`.
[no changelog]
2025-04-24 16:26:36 +03:00
Roman Zeyde
bd9d303310
perf(core): optimize AddressDetails::xpubs
layout
...
[no changelog]
2025-04-24 16:17:17 +03:00
kopecdav
f9dfb3ef1b
feat(core): Add max backlight limit to backlight driver. [no changelog]
2025-04-24 12:19:57 +02:00
Roman Zeyde
46d6732462
feat(core): don't use heap for storing coverage data
...
[no changelog]
2025-04-24 07:39:46 +03:00
Roman Zeyde
2e635a04fc
chore(core): fix a few clippy warnings
...
[no changelog]
2025-04-24 07:39:46 +03:00
cepetr
8b0736c360
fix(prodtest): increase vcp ring buffer size
...
[no changelog]
2025-04-23 13:32:21 +02:00
Roman Zeyde
f20c2d551d
perf(core): encode Timer
using a single u32
...
[no changelog]
2025-04-23 12:38:34 +03:00
Pavol Rusnak
9037c398eb
chore(crypto): use new email for stick
2025-04-20 22:04:38 +02:00
Roman Zeyde
f89e7670c5
fix(core): update EIP-1559 fee-related labels
...
Translations will be updated in a separate PR.
2025-04-18 20:29:47 +03:00
Roman Zeyde
75700d9f7f
fix(core): dump allocated QSTRs also in debug firmware
...
Otherwise, it's hard to understand which QSTR causes the assertion error.
[no changelog]
2025-04-17 15:59:08 +03:00
cepetr
a05ce8aa70
fix(core): fix USB VCP freeze on T3W1 in prodtest
...
[no changelog]
2025-04-17 11:45:26 +02:00
Martin Milata
04aeaf0607
build(core/unix): use -g instead of -g3
...
Prevents flood of warnings on macos.
[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
0ec2dbd583
fix(core/unix): HIDPI on macOS 15
...
[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
e81617e1c6
build(core): fix build for GCC14
...
[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
8f37578408
ci(nix): update to latest nixpkgs-unstable, rustc
...
[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
04b9768faa
build(core): allow passing HW_REVISION to make
2025-04-16 15:36:05 +02:00
Roman Zeyde
c48cfbc59e
chore(core): update coverage
to 5.5
...
Because `coverage` 4.5.4 requires Python <=3.8 (EOL).
[no changelog]
2025-04-16 15:14:53 +03:00
Roman Zeyde
d50181b7f9
fix(core): check QSTR run-time allocations only for frozen debug builds
...
[no changelog]
2025-04-15 14:22:47 +03:00
Martin Milata
2a40d91790
refactor(core): convert modtrezorio.ble to rust
...
[no changelog]
2025-04-15 13:08:37 +02:00
Martin Milata
b35d2f4000
refactor(core/rust): expose RuntimeError
...
[no changelog]
2025-04-15 13:08:37 +02:00
Martin Milata
1c09490f3b
refactor(core/io): add pairing_code to ble_command_data_t
...
[no changelog]
2025-04-15 13:08:37 +02:00
matejcik
a50e49afa9
chore(core): include T3B1 certificate for the emulator
2025-04-15 12:37:25 +02:00
matejcik
0db727b21b
chore(core): include T3W1 certificate for the emulator
2025-04-15 12:37:25 +02:00
Roman Zeyde
9bd81926af
feat(core): check for runtime QSTR allocations
...
[no changelog]
2025-04-14 22:42:16 +03:00
Roman Zeyde
2975a07f1f
chore(core): remove unused path
definitions from MicroPython emulator
...
[no changelog]
2025-04-14 22:42:05 +03:00
Roman Zeyde
c2dd63a6bd
chore(core): move core/prof
into core/src/prof
...
It would allow interning profiling-related QSTRs in debug emulator builds.
[no changelog]
2025-04-14 22:40:52 +03:00
Roman Zeyde
04f9ada9bc
style(core): annotate prof.py
...
Also, fix a few style lints.
[no changelog]
2025-04-14 22:39:24 +03:00
Roman Zeyde
c90b30fbf7
chore(core): intern Monero-related QSTRs
...
[no changelog]
2025-04-14 22:39:24 +03:00
Roman Zeyde
599c17cd29
build(core): refactor qstrdefsport.h
generation
...
Allow excluding debug-related QSTRs.
[no changelog]
2025-04-14 22:39:24 +03:00
Roman Zeyde
6473b3ca48
feat(vendor): update MicroPython to support sorted qstr pools
...
Requires https://github.com/trezor/micropython/pull/20 .
[no changelog]
2025-04-14 21:20:08 +03:00
Andrew Kozlik
e80e979fdd
docs(core): Document Optiga configuration.
...
[no changelog]
2025-04-14 17:10:07 +02:00
cepetr
8a636bd9cf
fix(core): make mod_trezorio_poll return False only on timeout
...
[no changelog]
2025-04-14 12:30:52 +02:00
Roman Zeyde
07ad01220c
perf(core): remove imports from hot path
...
[no changelog]
2025-04-10 14:19:34 +03:00
Martin Milata
3c08ce62b3
build(core): default T3W1 to revision C
...
[no changelog]
2025-04-09 23:44:12 +02:00
cepetr
75f9821cf1
fix(core): improve rgb_led driver deinitialization
...
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
0b673c2772
fix(core): fix ft6x36 interrupt pin deinitialization
...
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
ad80d5c1de
fix(core): fix tropic driver deinitialization
...
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
47d1378d28
refactor(core): simplify display driver deinitialization
...
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
2017c5931e
feat(core): optimize pmic power consumption
...
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
9537c8a80d
feat(core): deinitialize tropic driver before suspending
...
[no changelog]
2025-04-09 22:10:11 +02:00
Martin Milata
23cc83f3ba
refactor(core): ble: expose connection state in micropython
...
[no changelog]
2025-04-09 21:25:37 +02:00
Martin Milata
fe20466ed7
fix(core): modtrezorio-ble cleanup
...
[no changelog]
2025-04-09 21:25:37 +02:00
Martin Milata
93f23e6318
feat(core): start BLE advertising on boot
...
[no changelog]
2025-04-09 21:25:37 +02:00
Martin Milata
c5a4eddfc9
build(core): enable button feature in T3W1 emulator
...
[no changelog]
2025-04-09 21:25:37 +02:00
Martin Milata
0ecff7182b
build(core): allow ble feature in emulator
...
[no changelog]
2025-04-09 21:25:37 +02:00
Ioan Bizău
40756a0941
fix(core/ui): use "..." ellipsis in "show more"
2025-04-09 15:57:01 +02:00
Martin Milata
828e1868ab
docs: fix broken changelog links
2025-04-09 10:11:21 +02:00
Roman Zeyde
893bd1e69b
chore(core): remove unused all_modules.py
...
[no changelog]
2025-04-08 17:48:15 +03:00
obrusvit
ad9f85b21d
chore(core): remove redundant Error messages
...
[no changelog]
2025-04-08 15:44:51 +02:00
Roman Zeyde
8df465d7e8
build(core): replace all_modules.py
by qstrdefsport.h
...
[no changelog]
2025-04-07 20:19:31 +03:00
Roman Zeyde
879cc69c63
perf(core): intern non-alphanumeric characters
...
It was found by running `micropython.mem_info()` with the following patch:
```diff
diff --git a/py/gc.c b/py/gc.c
index 604334c95..bff62b754 100644
--- a/py/gc.c
+++ b/py/gc.c
@@ -840,6 +840,7 @@ void gc_dump_info(void) {
(uint)info.total, (uint)info.used, (uint)info.free);
mp_printf(&mp_plat_print, " No. of 1-blocks: %u, 2-blocks: %u, max blk sz: %u, max free sz: %u\n",
(uint)info.num_1block, (uint)info.num_2block, (uint)info.max_block, (uint)info.max_free);
+ qstr_dump_data();
}
void gc_dump_alloc_table(void) {
```
New QSTR definitions:
```
$ tail -n4 ./core/build/unix/genhdr/qstrdefs.generated.h
QDEF(MP_QSTR__paren_close_, 46476, 1, ")")
QDEF(MP_QSTR__paren_open_, 46477, 1, "(")
QDEF(MP_QSTR__lt_, 46489, 1, "<")
QDEF(MP_QSTR__semicolon_, 46494, 1, ";")
```
[no changelog]
2025-04-07 20:19:31 +03:00
cepetr
b50e201ea5
fix(core): improve simulation of lost TOUCH_START events
...
[no changelog]
2025-04-07 17:49:04 +02:00
cepetr
a6bfe399ff
fix(core): ensure touch_get_event does not return zero after TOUCH_START
...
[no changelog]
2025-04-07 17:49:04 +02:00
cepetr
dd2af348dc
fix(core): ensure touch_get_state does not return 0
...
[no changelog]
2025-04-07 17:49:04 +02:00
cepetr
f46bfb4bfe
feat(core): fix out-of-range touch coordinates on T3W1
...
[no changelog]
2025-04-07 17:49:04 +02:00
tychovrahe
f1120d53c2
fix(core/prodtest): provide BLE driver with pairing code when accepting pairing
...
[no changelog]
2025-04-07 15:05:57 +02:00
tychovrahe
0355ea6dd3
feat(core): send pairing code to NRF when accepting pairing
...
[no changelog]
2025-04-07 15:05:57 +02:00
kopecdav
56bad5bd3a
feat(core): Update stwlc38 patching cut selection + new stwlc38 FW patch and configs [no changelog]
2025-04-07 13:42:10 +02:00
tychovrahe
3db788d80a
fix(core): fix NFC deinitialization
...
[no changelog]
2025-04-07 13:41:16 +02:00
tychovrahe
d506abd9db
fix(core/bootloader_ci): fix firmware upload
...
[no changelog]
2025-04-04 16:20:01 +02:00
cepetr
ced0a1462e
feat(core): emulate hw jpeg decoder using libjpeg
...
[no changelog]
2025-04-04 12:59:44 +02:00
cepetr
307ac2517d
feat(core): introduce JpegOverlay shape
...
[no changelog]
2025-04-04 12:59:44 +02:00
cepetr
db057ff6ae
feat(core): allow JPEG image to be decoded as Mono8 bitmap
...
[no changelog]
2025-04-04 12:59:44 +02:00
cepetr
622fa05e48
feat(core): improve blending of mono8 bitmaps
...
[no changelog]
2025-04-04 12:59:44 +02:00
matejcik
d900eb4c54
build(core): update build to newer libtropic
...
* update unix port filename
* update USE_TREZOR_CRYPTO flag to LT_USE_TREZOR_CRYPTO
2025-04-04 10:26:22 +02:00
tychovrahe
7e2847c357
fix(core): allow running firmware on locked bootloader device based on allow_run_with_secret flag
2025-04-03 18:59:52 +02:00
Martin Milata
199c02adb2
build(core): only include apps.management.ble when needed
...
[no changelog]
2025-04-03 16:17:12 +02:00
tychovrahe
1fc6feda80
fix(core): make ble_event upy api function optional
...
[no changelog]
2025-04-03 16:17:12 +02:00
tychovrahe
4adf6d087d
feat(core): add BLE unpair command & message
...
[no changelog]
2025-04-03 16:17:12 +02:00
tychovrahe
51ff4f5946
feat(core): add unpair command to BLE
...
[no changelog]
2025-04-03 16:17:12 +02:00
tychovrahe
8ea957b8e1
feat(core/prodtest): add hibernation on power button long-press
...
[no changelog]
2025-04-03 16:06:20 +02:00
tychovrahe
f579d31684
refactor(core/prodtest): make cli non-blocking, event-loop compatible
...
[no changelog]
2025-04-03 16:06:20 +02:00
Roman Zeyde
08bcedcaa5
fix(core): correct __main__
dict size retrieval in firmware
...
Otherwise, it fails to boot.
[no changelog]
2025-04-03 14:45:13 +03:00
Roman Zeyde
a91d18ba2c
perf(core): intern module presizing identifiers
...
[no changelog]
2025-04-03 12:58:43 +03:00
Roman Zeyde
9769109229
perf(core): add __init__.py
to apps.management
module
...
Otherwise, its name is not interned by `all_modules.py.mako`.
[no changelog]
2025-04-03 12:58:43 +03:00
Martin Milata
469f093b8a
feat(core): include pairing code in BLE_ALLOW_PAIRING command
...
[no changelog]
2025-04-02 17:08:34 +02:00
Martin Milata
88706d12f8
feat(core): ble: expose allow/reject pairing in micropython
...
[no changelog]
2025-04-02 17:08:34 +02:00
Roman Zeyde
14907ecd88
feat(tools): add an optional output argument to analyze-memory-dump.py
...
[no changelog]
2025-04-02 17:39:35 +03:00
Roman Zeyde
e6f96974de
feat(core): check for sys.modules
and main
globals reallocations
...
Rewrite the static comparison in `utils.unimport_end()` in C.
[no changelog]
2025-04-02 16:01:51 +03:00
Roman Zeyde
ec87d2d21d
fix(core): presize __main__
module to avoid heap fragmentation
...
[no changelog]
2025-04-02 16:01:51 +03:00
tychovrahe
101d584aa4
fix(core): fix BLE polling
...
[no changelog]
2025-04-01 21:53:30 +02:00
cepetr
7248bf2a48
fix(core): fix issue with frame buffer access on D001
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
cfea362cfc
fix(core): skip polling in storage callback (workaround)
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
7dcdb54262
feat(core): introduce new polling in coreapp event loop
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
7994a0b93b
feat(core): introduce kernel event loop
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
2dff869883
feat(core): add event polling to ble driver
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
edf3f19ef5
feat(core): add event polling to usb hid driver
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
97bb16776d
feat(core): add event polling to usb vcp driver
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
f61da5777a
feat(core): add event polling to usb webusb driver
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
cd97b8c55b
feat(core): add event polling to usb driver
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
4815118a6d
feat(core): add event polling to touch driver
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
8d7a25e5eb
feat(core): add event polling to button driver
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
b9d15cb343
feat(core): introduce system-level event polling
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
6b045dd43d
feat(core): introduce systask id & task count limit
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
24048d7094
fix(core): remove unused function declaration
...
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
271f029be7
fix(core): fix emulator build on macOS
...
[no changelog]
2025-04-01 10:00:26 +02:00
Roman Zeyde
ad73e41080
feat(core): support USB/BLE sessions
...
All interfaces are sharing a single 8kB buffer.
It is reallocated once per session and is acquired by the first active session.
Other concurrent sessions will respond with an "Another session in progress" error.
[no changelog]
2025-03-31 13:20:53 +03:00
Roman Zeyde
567de7e643
feat(core): increase MicroPython bytecode optimizations
...
[no changelog]
2025-03-28 19:46:24 +03:00
Roman Zeyde
cc416720f0
build(core): explicitly map PYOPT
to MicroPython bytecode optimization level
...
[no changelog]
2025-03-28 19:46:24 +03:00
tychovrahe
9d46ad259c
fix(core/prodtest): remove final wait from report commands
...
[no changelog]
2025-03-27 18:25:46 +01:00
tychovrahe
aa682bcc6e
fix(core): generate coin support for discovery kits
...
[no changelog]
2025-03-27 15:46:46 +01:00
tychovrahe
b7b8e77ccb
feat(core): enable tropic in firmware/kernel on hw
...
[no changelog]
2025-03-27 11:59:10 +01:00
Roman Zeyde
aecaf306f3
fix(core): don't handle nostr-related messages in BTC-only firmware
...
[no changelog]
2025-03-27 12:30:02 +02:00
Roman Zeyde
63a17ea0f9
chore(core): exclude all_modules.py
bytecode from frozen_mpy.c
...
See `all_modules.py.mako` for more details.
[no changelog]
2025-03-27 10:22:44 +02:00
Roman Zeyde
ac0fc30ee9
perf(core): intern single-digit strings
...
[no changelog]
2025-03-26 21:16:06 +02:00
Roman Zeyde
bafad6e453
chore(core): remove unused function from modtrezorutils-meminfo.h
...
[no changelog]
2025-03-26 21:16:06 +02:00
Roman Zeyde
48b2f07ad3
fix(core): correct dump_qstr_pool()
...
[no changelog]
2025-03-26 21:16:06 +02:00
tychovrahe
4fce1f55ee
fix(core): fix bootloader build for models with HW keys but without optiga
...
[no changelog]
2025-03-26 14:59:19 +01:00
Roman Zeyde
3a24945de9
fix(core): allow firmware upgrade even if language change failed
2025-03-26 13:12:38 +02:00
Ioan Bizău
b1cd4cb469
chore(core/build): don't build with Tropic by default
...
[no changelog]
Co-authored-by: Martin Milata <martin@martinmilata.cz>
2025-03-26 10:32:31 +01:00
obrusvit
419737db7c
chore(core): remove obsolete font names from blobs
...
[no changelog]
2025-03-25 18:26:15 +01:00
Roman Zeyde
8b4936926c
fix(core): preallocate storage.debug.reset_internal_entropy
...
It should allow GC to cleanup `int_entropy`, which can be
allocated in random heap position, causing fragmentation.
[no changelog]
2025-03-25 12:05:52 +02:00
Roman Zeyde
f942d13748
fix(core): alloc GC to free _previous_remaining
in trezor.pin
...
[no changelog]
2025-03-25 12:05:52 +02:00
Roman Zeyde
19f576123c
feat(core): enable GC map dump on debug firmware
...
[no changelog]
2025-03-25 12:05:52 +02:00
tychovrahe
3bccf2d8f7
fix(core): fix emulator usb polling
...
[no changelog]
2025-03-24 14:31:14 +01:00
tychovrahe
4d48fbf845
fix(core): fix emulator usb deinitialization
...
[no changelog]
2025-03-24 14:31:14 +01:00
tychovrahe
8e0e3a1787
refactor(core): complete bootloader refactoring
2025-03-24 14:31:14 +01:00
obrusvit
9a14654ff7
perf(core): improve render in Delizia button
...
- allcase_text_height unnecessarily loads GlyphData in this frequent
call, text_height just reads a constant
[no changelog]
2025-03-24 12:11:56 +01:00
obrusvit
079873ced7
feat(core): use newer version of Delizia fonts
2025-03-24 12:11:56 +01:00
cepetr
5b9caf1ac6
fix(core): enable shsi clock after resuming from suspend mode
...
[no changelog]
2025-03-24 10:38:53 +01:00
tychovrahe
283561c073
fix(core: fix homescreen ble checker task
...
[no changelog]
2025-03-23 17:04:05 +01:00
Roman Zeyde
1e3b02771b
fix(core): don't use 'static
lifetime for BLEEvent
...
[no changelog]
2025-03-21 17:13:27 +02:00
matejcik
acc584ce25
fix(core/rust): fix quotes in bindgen macros for T2B1
2025-03-21 12:16:23 +01:00
Roman Zeyde
52f5593f28
feat(core): add BLE checker task to Homescreen
...
[no changelog]
2025-03-20 15:22:32 +02:00
Roman Zeyde
4c2c6f13e7
fix(core): add BLE feature flag to MicroPython build sed scripts
...
[no changelog]
2025-03-20 15:22:32 +02:00
Roman Zeyde
9926df6ab5
fix(core): add LayoutObj.ble_event
mock
...
[no changelog]
2025-03-20 15:22:32 +02:00
Roman Zeyde
fabb5e8c6c
perf(core): don't allocate if BLE event data is empty
...
BLE event data is not empty only on pairing:
```
core/embed/io/ble/stm32/ble.c
176: ble_event_t event = {.type = BLE_CONNECTED};
182: ble_event_t event = {.type = BLE_DISCONNECTED};
227: ble_event_t event = {.type = BLE_PAIRING_REQUEST, .data_len = 6};
244: ble_event_t event = {.type = BLE_PAIRING_CANCELLED, .data_len = 0};
```
[no changelog]
2025-03-20 15:22:32 +02:00
tychovrahe
cf00130409
feat(core): add support T3W1 rev C board
...
[no changelog]
2025-03-20 11:07:49 +01:00
tychovrahe
6fb65bcfd9
refactor(core): refactor button events
...
[no changelog]
2025-03-20 11:07:34 +01:00
tychovrahe
36a047cd30
feat(core): stm32u5 i2c driver - support up to 5 i2c busses
...
[no changelog]
2025-03-20 10:33:44 +01:00
tychovrahe
8e4ed1181e
feat(core): increase the number of available systimers
...
[no changelog]
2025-03-20 10:33:44 +01:00
Roman Zeyde
f4328acfd6
fix(core): don't invoke dump_meminfo_json
on emulator
...
[no changelog]
2025-03-20 11:05:01 +02:00
Roman Zeyde
566b69fb24
perf(core): simplify Button struct to save RAM
...
[no changelog]
2025-03-20 09:29:56 +02:00
Roman Zeyde
611d74c1b3
fix(core): correct confirmation fonts in Bolt
2025-03-18 13:23:39 +02:00
Roman Zeyde
2f97b61870
fix(core): correct confirmation title on Caesar
2025-03-18 12:32:36 +02:00
Roman Zeyde
5fd168c363
feat(core): dump GC arena on OOM
...
Enabled for debug firmware and non-frozen emulator.
JSON dump can be extracted from debug log and analyzed using:
$ awk '/^\[$/,/^\]$/' <debug.log >dump.json
$ core/tools/analyze-memory-dump.py dump.json
[no changelog]
2025-03-17 20:17:42 +02:00
Roman Zeyde
2333a6a262
feat(core): log GC info in case of OOM
...
Enabled on debug firmware and non-frozen emulator.
[no changelog]
2025-03-17 20:17:42 +02:00
cepetr
0fb1693ea8
feat(code): introduce dbg_printf for kernel debugging
...
[no changelog]
2025-03-14 14:17:27 +01:00
Roman Zeyde
90d7713592
build(core): fix RUST_PRINT_TYPES_SIZES
passing to SConscript.firmware
...
Use a list to collect RUSTFLAGS, to prevent overwriting them.
Also:
- fix a typo in `SConscript.unix` (it was using `firmware` build directory)
- use keyword arguments for better readability
- reformat Rust library build command string
[no changelog]
2025-03-13 18:18:48 +02:00
Ioan Bizău
c9c543443d
feat(core/tests): add smoke test for libtropic
...
[no changelog]
2025-03-13 15:08:48 +01:00
Ioan Bizău
3efa0480c6
feat(core): add libtropic to the unix build
...
[no changelog]
2025-03-13 15:08:48 +01:00
Roman Zeyde
c95158751a
build(core): allow increasing VCP write timeout
...
It should allow us exporting larger amounts of debug data.
[no changelog]
2025-03-13 16:07:09 +02:00
Roman Zeyde
21ad24fc31
style(core): add spaces around LOG_STACK_USAGE in SConscript.firmware
...
[no changelog]
2025-03-13 16:07:09 +02:00
Roman Zeyde
41096b5ffd
fix(core): use smaller button for upgrade cancellation
2025-03-13 12:07:07 +01:00
Roman Zeyde
6bf11ab29f
chore(core): use smaller vectors for ShowInfoParams
...
[no changelog]
2025-03-12 08:12:54 +02:00
cepetr
b5053d9f6e
fix(core): add kernel access to assets by default ( #4759 )
...
[no changelog]
2025-03-11 07:58:57 +01:00
obrusvit
29d69db300
Merge branch 'release/25.03' into obrusvit/merge-release-25.03
2025-03-10 11:17:26 +01:00
Roman Zeyde
2400fcb95d
fix(core): scope Cardano confirmation to allow GC
...
Otherwise, we may run out of heap due to recursion.
[no changelog]
2025-03-09 21:48:30 +02:00
tychovrahe
103568e2e5
feat(core/prodtest): show device ID in prodtest QR code
2025-03-08 12:26:41 +01:00
tychovrahe
661a30e390
feat(core/prodtest): support writing device ID into OTP memory
2025-03-08 12:26:41 +01:00
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