1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-23 14:58:09 +00:00
Commit Graph

3259 Commits

Author SHA1 Message Date
tychovrahe
91a783ee37 chore(core): fix flash_combine makefile command
[no changelog]
2024-04-26 12:36:45 +02:00
Andrew Kozlik
27f54eec9c feat(core): Add unit packaging variant field to Features.
[no changelog]
2024-04-25 15:51:52 +02:00
tychovrahe
d349c44a58 refactor(core): generate macros for rust bindgen automatically
[no changelog]
2024-04-25 13:20:07 +02:00
tychovrahe
c635b945e1 chore(core/boardloader): bump version after release
[no changelog]
2024-04-24 15:15:14 +02:00
tychovrahe
d9590cbe90 chore(core/boardloader): generate changelog
[no changelog]
2024-04-24 15:15:14 +02:00
tychovrahe
ab11afa442 fix(core): set proper VDD level for T3T1 boards
[no changelog]
2024-04-24 12:55:52 +02:00
matejcik
39e1085295 chore(core): add T3T1 QA bootloader 2.1.5 2024-04-22 10:56:25 +02:00
matejcik
66b96bc279 build(core): fix prodtest build from build-docker
build-docker.sh will unconditionally pass in a value for the
VENDOR_HEADER envvar. This is a problem if the user didn't specify one,
because the value inside the container is going to be empty string.

We make prodtest look at whether the value of VENDOR_HEADER is truthy
instead of a literal None. Which is a correct logic: if the user
deliberately sets the value to an empty string, the build will fail
anyway, so we ignore such value.
2024-04-22 10:56:25 +02:00
matejcik
f0c7cc4e8e chore(core): add signed vendor headers for T3T1 2024-04-22 10:56:25 +02:00
matejcik
c01302dd31 chore(core): add signed production T3T1 bootloader v2.1.5 2024-04-22 10:56:25 +02:00
tychovrahe
e5e40cf4a8 fix(core): ensure correctly programmed oem key option bytes
[no changelog]
2024-04-22 09:15:42 +02:00
tychovrahe
916dbdff9c fix(core): fix reboot to bootloader crash when display copying is in progress
[no changelog]
2024-04-18 10:50:46 +02:00
matejcik
90afd9c96a chore(core): bump versions of prodtest / bootloader after release 2024-04-17 14:40:30 +02:00
matejcik
4728b14bcc docs(core): add changelogs for prodtest and bootloader 2024-04-17 14:40:29 +02:00
matejcik
5b0b145f12 build(core): allow custom vendor header for prodtest
to facilitate building prodtest with unsigned VH and then replacing it
2024-04-17 14:40:29 +02:00
tychovrahe
dfe5ee67f1 fix(core): move OEM key check after display initialization so that error message can be displayed
[no changelog]
2024-04-17 14:23:09 +02:00
tychovrahe
457e5956c8 fix(core): fix sha256 calculation with hash processor
[no changelog]
2024-04-17 10:48:37 +02:00
Ondřej Vejpustek
e9f6eb0b2b fix(core/reflash): fix compile errors
[no changelog]
2024-04-16 17:41:30 +02:00
matejcik
89fdaed31e chore(core): add unsigned vendor headers with production keys 2024-04-12 16:13:52 +02:00
matejcik
0109ab2232 chore(core): make vendor_unsafe.toif small 2024-04-12 16:13:52 +02:00
matejcik
867300b8c6 chore(core): include T3T1 boardloader / bootloader production keys 2024-04-12 16:13:52 +02:00
matejcik
5d9bb0ebfc tools(core): nicer build_vendorheader for manual use
also will show you required header size
2024-04-12 16:13:52 +02:00
matejcik
729d7c59e1 fix(core/vendorheader): include correct backup key into trezor_btconly vendor header 2024-04-12 16:13:52 +02:00
Martin Milata
4baa4d95a4 fix(core): fix display fatal error screen (T3T1)
[no changelog]
2024-04-12 12:25:46 +00:00
Martin Milata
5c5433ada2 refactor(core/rust): use more Self
[no changelog]
2024-04-12 12:25:46 +00:00
Martin Milata
906c00e4e5 refactor(core): rename screen_boot_{empty,full} to screen_boot_stage_{1,2}
[no changelog]
2024-04-12 12:25:46 +00:00
Martin Milata
804d97c9d8 feat(core): bootloader: T3T1 startup UI
[no changelog]
2024-04-12 12:25:46 +00:00
tychovrahe
c277dbcfcb feat(core): T3T1 loader
[no changelog]
2024-04-12 12:25:46 +00:00
Martin Milata
cf00726152 feat(core): copy T2T1 bootloader UI for T3T1 2024-04-12 12:25:46 +00:00
Martin Milata
b5fa5a3f3a feat(core): add fonts for T3T1 bootloader
[no changelog]
2024-04-12 12:25:46 +00:00
tychovrahe
72146c2ae2 fix(core): fix display fatal error screen
[no changelog]
2024-04-11 19:16:23 +02:00
tychovrahe
165238b78e fix(core): fix T3T1 unsafe vendorheader
[no changelog]
2024-04-11 19:16:23 +02:00
tychovrahe
1600759457 refactor(core): simplify secret.h api, hide platform differences
[no changelog]
2024-04-11 16:13:58 +02:00
tychovrahe
89c6590e45 feat(core/prodtest): add commands TOUCH VERSION and VARIANT READ
[no changelog]
2024-04-11 10:05:13 +02:00
tychovrahe
c8e18dd4d2 fix(core): slow down SDIO communication in T3T1 prodtest
[no changelog]
2024-04-11 09:54:28 +02:00
Ondřej Vejpustek
548e329f9d fix(core): prevent negative-length array
[no changelog]
2024-04-09 14:29:46 +02:00
tychovrahe
a873a7064e chore(core): add comments to secret.h functions
[no changelog]
2024-04-08 21:41:30 +02:00
tychovrahe
8a18cfe0d4 feat(core): use U5 DHUK to encrypt optiga pairing secret in flash
[no changelog]
2024-04-08 21:41:30 +02:00
tychovrahe
e060ac68c5 feat(core): use U5 HW keys to additionally encrypt storage items
[no changelog]
2024-04-08 21:41:30 +02:00
cepetr
b1fb876709 fix(core): fix ts3 fonts
[no changelog]
2024-04-08 15:38:39 +02:00
Martin Milata
c7832c39ab refactor(core/rust/ui): use TString instead of StrBuffer when constructing layouts
[no changelog]
2024-04-06 20:31:36 +00:00
tychovrahe
256adc3567 refactor(core/rust) use TString in Label and Button
[no changelog]
2024-04-06 20:31:36 +00:00
tychovrahe
ed6aa48726 feat(core): use confidential section for confidential and sensitive data
[no changelog]
2024-04-05 18:54:30 +02:00
tychovrahe
535a052df4 refactor(core/rust): introduce UIFeaturesXXX trait as an abstraction over different UI implementation
[no changelog]
2024-04-05 18:16:59 +02:00
tychovrahe
ba741b81fd feat(core): use HSI as PLL source on T3T1
[no changelog]
2024-04-05 15:17:42 +02:00
tychovrahe
acb0e9fdc5 chore(core): set stack protector to strong
[no changelog]
2024-04-05 15:07:03 +02:00
cepetr
285b22e53e refactor(core): add ufmt, bump heapless from 0.7.6 - 0.8.0
[no changelog]
2024-04-04 15:02:28 +02:00
tychovrahe
ffccf849eb chore(core): fill T3T1 model full name
[no changelog]
2024-04-04 12:46:44 +02:00
matejcik
39b7b22777 refactor(core/rust): Paragraph is now based on TString 2024-04-04 10:04:00 +02:00
matejcik
9c287adf64 feat(core/rust): some useful traits for TString
string equality comparison and SkipPrefix
2024-04-04 10:04:00 +02:00
matejcik
f3b884bf93 refactor(core): improve safety of translation blobs
* the public interface to Translations is now completely safe
* it is more obvious that `map_translated` needs to work the way it does
* documentation is improved
2024-04-04 09:53:45 +02:00
tychovrahe
ba065c5b38 fix(core/prodtest): do not require sd detect pin for running SD card test
[no changelog]
2024-04-03 16:48:28 +02:00
Pavol Rusnak
4b189eb2cb fix(core): always zero-initialize structures in trezorhal
[no changelog]
2024-04-03 13:08:16 +02:00
tychovrahe
576ed7e04e chore(core): use SD hal driver from submodule
[no changelog]
2024-04-03 13:08:16 +02:00
tychovrahe
69ed626ca0 fix(core): slowdown i2c on u5 to 200kHz
[no changelog]
2024-04-03 11:01:35 +02:00
Andrew Kozlik
15e02be4e4 fix(core): Clean up when constructor fails to reduce memory fragmentation.
[no changelog]
2024-04-03 10:26:46 +02:00
Andrew Kozlik
49a64cb3a1 test(core): Add AES-GCM unit tests.
[no changelog]
2024-04-03 10:26:46 +02:00
Andrew Kozlik
703ea32ceb feat(core): Add aesgcm class to trezor.crypto Python module.
[no changelog]
2024-04-03 10:26:46 +02:00
tychovrahe
89147ef493 refactor(core): improve flash api by introducing flash_area_write_data function
[no changelog]
2024-04-03 10:18:40 +02:00
tychovrahe
39cfa7087a fix(core): set proper GPIO speeds for T3T1
[no changelog]
2024-04-03 10:18:16 +02:00
matejcik
45a4a1da99 fix(core/translations): correctly rename previous symbol
[no changelog]
2024-04-02 11:10:24 +02:00
matejcik
1c36c0927c style(core): fix (hopefully) the weird clippy warning about HOMESCREEN_TOIF_X_OFFSET
[no changelog]
2024-03-30 12:10:59 +01:00
matejcik
379737a9a5 chore(core): translate storage strings into supported languages 2024-03-30 12:10:59 +01:00
matejcik
de2fe3d6d6 feat(core/ui): unify progress.py code between models, implement storage translations
fixes #3520
2024-03-30 12:10:59 +01:00
matejcik
ed89215a79 feat(core): expose StorageMessage to micropython
[no changelog]
2024-03-30 12:10:59 +01:00
matejcik
0fa9860cf5 chore(core): sign translations for 2.7.0, including Czech blob 2024-03-28 22:10:15 +01:00
matejcik
b2649b0085 refactor(core): introduce Simplified trait
to abstract over some common operations between models

[no changelog]
2024-03-28 13:04:21 +01:00
tychovrahe
047c8a881b fix(core): fix order of loading BHK into SAES key register
[no changelog]
2024-03-28 13:02:17 +01:00
cepetr
1e3e7f808b fix(core): fix build on disc2 model 2024-03-27 10:44:56 +01:00
matejcik
b263dbc109 fix(all): improve Solana template generation 2024-03-26 15:22:32 +01:00
matejcik
6918b16313 feat(core/translations): add support for explicitly specifying blob version
so that it's possible to re-sign translation blobs on a specific commit
for older firmware version
2024-03-26 15:22:32 +01:00
matejcik
229a06d3a2 fix(core): store translation signatures directly into history section
without messing with the "current" entry at all
2024-03-26 15:22:32 +01:00
matejcik
63d1311509 fix(core): properly move old translation signature to history 2024-03-26 15:22:32 +01:00
matejcik
64e507e853 chore(core): add translation signatures 2024-03-26 15:22:32 +01:00
matejcik
9569968459 build(core): rebuild appropriate parts when translation data changes
fixes #3535
2024-03-26 15:22:32 +01:00
gabrielkerekes
b61ed7c02a fix(solana): round up transaction fee
If `unit_price * unit_limit / 1000000` didn't result in an integer `int()` would round the number down. However on the blockchain the resulting fee was be rounded up.
2024-03-25 16:31:01 +01:00
gabrielkerekes
9b84ecf833 fix(solana): accept compute budget instructions at any position 2024-03-25 16:31:01 +01:00
RostarMarek
8b485de173 feat(solana): Hidden flag functionality for instructions 2024-03-25 16:31:01 +01:00
tychovrahe
a80959e50f feat(core): allow T3T1 to start without touch during testing
[no changelog]
2024-03-25 09:16:07 +01:00
tychovrahe
5e827e09c4 fix(core): fix haptic driver initialization
[no changelog]
2024-03-25 08:35:02 +01:00
obrusvit
54468abd89 feat(core/emu): handle arrow buttons as swipes
[no changelog]
2024-03-21 12:37:18 +01:00
Martin Milata
68ff90ccbd Merge branch 'release/24.03' 2024-03-20 23:51:47 +01:00
cepetr
a1165d9326 feat(core): introduce skip function for UzlibContext
[no changelog]
2024-03-20 17:14:58 +01:00
cepetr
9575c81bd3 feat(core): introduce new color functions
[no changelog]
2024-03-20 17:14:58 +01:00
cepetr
474484d249 feat(core): introduce new toif functions
[no changelog]
2024-03-20 17:14:58 +01:00
cepetr
254de49a62 feat(core): introduce new point & rect functions
[no changelog]
2024-03-20 17:14:58 +01:00
cepetr
9d6827e2fb refactor(core): remove unused ui components
[no changelog]
2024-03-20 17:04:25 +01:00
grdddj
3d386246be chore(core): update czech translations
[no changelog]
2024-03-20 14:38:21 +01:00
grdddj
50101c9882 chore(core): re-enable czech translations
[no changelog]
2024-03-20 14:38:21 +01:00
cepetr
dc715d7c0d refactor(core): prepare for non mutable paint function
[no changelog]
2024-03-19 17:57:38 +01:00
Pavol Rusnak
60333ca56c chore(core): fix whitespace in makefile
[no changelog]
2024-03-19 15:44:59 +01:00
cepetr
a54fe5e60f fix(core): fixed blurring algo panic in debug mode
[no changelog]
2024-03-19 14:54:54 +01:00
tychovrahe
70a673fabc feat(core): use flash bursts for faster flashing
[no changelog]
2024-03-19 13:17:25 +01:00
tychovrahe
e1161866da chore(core): fix typo 'capablities'
[no changelog]
2024-03-19 11:33:23 +01:00
tychovrahe
0a4a5feaa0 fix(core): fix TOCTOU in sd card bootloader update procedure
[no changelog]
2024-03-19 11:33:23 +01:00
tychovrahe
5c7c9c56a3 fix(core): add missing stm32u5 symlinks
[no changelog]
2024-03-19 11:33:23 +01:00
tychovrahe
6e2f5ff27d fix(core): improve bhk handling on STM32U5
[no changelog]
2024-03-19 11:33:23 +01:00
tychovrahe
fb2868d297 fix(core): setup option bytes for STM32U5
[no changelog]
2024-03-19 11:33:23 +01:00
tychovrahe
43fa92d953 fix(docs): fix prodtest SBU command documentation
[no changelog]
2024-03-18 19:51:22 +01:00
tychovrahe
4fe9294377 fix(core): fix prodtest mpu setting on U5 - allow read of MCU ID
[no changelog]
2024-03-18 19:50:54 +01:00
naiyoma
362958f906 [no changelog] refactor(core):Use utime.ticks_diff in src/boot.py for arithmetic operations 2024-03-18 11:59:32 +01:00
naiyoma
9f9354a820 [no changelog] Refactor arithmetic operations in fido2.py to use utime.ticks_add() and utime.ticks_diff() 2024-03-18 11:59:32 +01:00
naiyoma
d76829f817 [no changelog] refactor(core): Use utime.ticks_diff in verify_user_pin 2024-03-18 11:59:32 +01:00
dependabot[bot]
3dc5e9b2db chore(deps): bump shlex from 1.0.0 to 1.3.0 in /core/embed/rust/fuzz
Bumps [shlex](https://github.com/comex/rust-shlex) from 1.0.0 to 1.3.0.
- [Changelog](https://github.com/comex/rust-shlex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/comex/rust-shlex/commits)

---
updated-dependencies:
- dependency-name: shlex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 11:49:06 +01:00
dependabot[bot]
bd3b070942 chore(deps): bump shlex from 1.1.0 to 1.3.0 in /core/embed/rust
Bumps [shlex](https://github.com/comex/rust-shlex) from 1.1.0 to 1.3.0.
- [Changelog](https://github.com/comex/rust-shlex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/comex/rust-shlex/commits)

---
updated-dependencies:
- dependency-name: shlex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 10:41:53 +01:00
cepetr
ecd4465ab3 fix(core): fix mouse event processing in the simulator
[no changelog]
2024-03-17 14:04:33 +01:00
tychovrahe
e000b526cc refactor(core): extract common layout handling from bootloader ui implementations in rust
[no changelog]
2024-03-15 13:13:40 +01:00
tychovrahe
945382fbaa fix(core): fix flashing f4 firmware via debugger
[no changelog]
2024-03-15 13:13:05 +01:00
tychovrahe
1909d1ebdb feat(core): improve flexibility of combine script, add combine fw make targets
[no changelog]
2024-03-13 22:12:57 +01:00
Martin Milata
73a7223e7b test(core): add T3T1 support
[no changelog]
2024-03-12 20:55:23 +00:00
Martin Milata
ebb480ef29 fix(core): T3T1 emulator
[no changelog]
2024-03-12 20:55:23 +00:00
matejcik
b6e8567a49 fix(core): exclude altcoin functions from bitcoinonly build 2024-03-08 13:17:12 +01:00
matejcik
17678ef38d fix(core/rust): exclude altcoin strings from generated code 2024-03-08 13:17:12 +01:00
matejcik
ccf4b7e9eb fix(core/rust): convert bitcoin_only to an additive feature
universal_fw enables more features, as opposed to bitcoin_only removing features
2024-03-08 13:17:12 +01:00
matejcik
87894ae062 chore(core): add translation signatures 2024-03-07 12:26:58 +01:00
matejcik
fd3919254c refactor(core/ui): rename confirm_payment_request to should_...
Because confirm_* returns None and raises on false.

but this layout is actually a prompt akin to should_show_more
2024-03-07 09:53:00 +01:00
matejcik
34965ca2cb refactor(core/ui): use LayoutObj signatures in layout files
* make sure every confirm_* returns None
* prefer "def -> Awaitable[T]" to "async def -> T" everywhere (avoids one useless allocation per call)
* type-check return values from Rust layouts
2024-03-07 09:53:00 +01:00
matejcik
0304484ca6 docs(core): add method signatures for LayoutObj to mocks (fixes #2672)
feat(core): annotate CONFIRMED/CANCELLED/INFO as fake class UiResult
2024-03-07 09:53:00 +01:00
matejcik
99457bbcb0 refactor(core/ui): make request_number signature the same in TT and TR 2024-03-07 09:53:00 +01:00
matejcik
29863f84ca refactor(core): simplify context.wait() to only accept one task
Nobody was using the multi-task version and this is easier to properly
type-annotate.
2024-03-07 09:53:00 +01:00
tychovrahe
e736d389f2 fix(core): fix backlight reinitialization with maximum value
[no changelog]
2024-03-05 16:51:23 +01:00
tychovrahe
8ccd2cb048 feat(core): add support for T3T1 rev. E HW
[no changelog]
2024-03-05 16:51:23 +01:00
Martin Milata
45e8a842a3 fix(core): add production pubkeys for translations
[no changelog]

(cherry picked from commit bfacd07ed7)
2024-03-04 13:25:03 +01:00
Martin Milata
bfacd07ed7 fix(core): add production pubkeys for translations
[no changelog]
2024-03-04 12:16:20 +00:00
Martin Milata
2b0ce0398c chore(core): bump version to 2.7.1
[no changelog]
2024-03-04 09:56:21 +00:00
Martin Milata
ca5d852250 docs(core): fix version in changelogs 2024-03-01 21:21:04 +01:00
tychovrahe
1f67c1e55c chore(core): bump fw and fix version due to storage migration
[no changelog]

(cherry picked from commit ffabee2e6a)
2024-03-01 16:30:27 +01:00
tychovrahe
ffabee2e6a chore(core): bump fw and fix version due to storage migration
[no changelog]
2024-03-01 15:26:43 +00:00
tychovrahe
d69750fae4 refactor(core): do not use framebuffer dma copy in boardloader to safe flash space
[no changelog]
2024-02-29 23:40:17 +01:00
tychovrahe
f08bed363d refactor(core): extract framebuffer copy to separate bg_copy functionality
[no changelog]
2024-02-29 23:40:17 +01:00
tychovrahe
afefc17478 refactor(core): use internal framebuffer on T3T1 (with ST7789V display controller)
[no changelog]
2024-02-29 23:40:17 +01:00
tychovrahe
416794a463 fix(core): add missing refresh to boardloader startup
[no changelog]
2024-02-29 23:40:17 +01:00
tychovrahe
5c7726126f fix(core): fix bootloader jump to firmware through reset UI
[no changelog]
2024-02-29 23:40:17 +01:00
tychovrahe
66583f2ebf fix(core): fix missing refresh in progress layout
[no changelog]
2024-02-29 23:40:17 +01:00
tychovrahe
b62dc27f06 feat(core): add translations support for U5 models
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
7c800f183f refactor(core): make translations blob handling HW agnostic
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
eb6796059c fix(core): fix st7789v driver compilation for other than T models
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
8313c15f34 feat(core): allow SD card hotswap based on production date for Model T 2024-02-29 23:05:56 +01:00
tychovrahe
0e70fcdc6f feat(core): add haptic to prodtest
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
61b3273baa chore(core): add makefile commands for erasing bootloader and firmware, fix read/erase storage commands
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
8c1425edd5 perf(core): optimize boot time by removing unnecessary touch initialization delays 2024-02-29 23:05:56 +01:00
tychovrahe
30edad0151 perf(core): optimize i2c initialization on U5 by statically defining timing constant
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
b3d1ba25d9 perf(core): optimize boot speed by checking empty image area by words
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
c3f84e2949 perf(core): optimize boot speed on U5 by using has processor to calculate image hashes, switches to sha256
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
1ea7ca4149 chore(core): change STM32Cube submodule to separate hal driver and cmsis submodules.
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
95999623fc fix(core): fix STM32F4 display base address
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
653d73ee22 chore(core): optimize flash usage - backlight pwm
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
5e4e398f64 chore(core): optimize flash usage - SD card on U5
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
f83e33399f chore(core): optimize flash usage - tamper on U5
[no changelog]
2024-02-29 23:05:56 +01:00
tychovrahe
ce82f53010 feat(core): support SD card on STM32U5
[no changelog]
2024-02-29 23:05:56 +01:00