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