bleska c6bdec5b77 refactor(core): dma2d_wait() busy wait removal
dma_transfer_in_progress boolean variable has been added for tracking of dma2d current state (transferring/idle). The variable is set after dma2d successful transfer start and cleared inside the dma2d_wait() function after the dma2d transfer has finished.

dma2d_wait() function has been refactored from HAL based busy waiting variant to a priodical polling of dma2d status flags (TC, TE, CE) and sleep/wake concept using the dma2d to wake MCU when such event occurs.

WFE (Wait For Event) instruction is used for MCU sleep entry. The "SCB.SCR.SEVONPEND" bit is used to enable MCU wake-up with NVIC disabled IRQs.

[no changelog]
2026-02-17 13:36:54 +01:00
2023-07-12 10:13:17 +02:00
2025-04-16 12:30:39 +03:00
2025-11-19 18:31:26 +02:00
2025-07-17 11:15:40 +02:00
2021-03-31 18:51:52 +02:00
2026-01-14 16:05:44 +01:00
2025-04-15 14:50:45 +03:00
2025-05-13 13:57:43 +02:00

Trezor Firmware

img

Repository Structure

  • ci: Ancillary files, data, and scripts for the CI pipeline
  • common/defs: JSON coin definitions and support tables
  • common/protob: Common protobuf definitions for the Trezor protocol
  • common/tools: Tools for managing coin definitions and related data
  • core: Trezor Core, firmware implementation for Trezor T
  • crypto: Stand-alone cryptography library used by both Trezor Core and the Trezor One firmware
  • docs: Assorted documentation
  • legacy: Trezor One firmware implementation
  • python: Python client library and the trezorctl command
  • storage: NORCOW storage implementation used by both Trezor Core and the Trezor One firmware
  • tests: Firmware unit test suite
  • tools: Miscellaneous build and helper scripts
  • vendor: Submodules for external dependencies

Contribute

See CONTRIBUTING.md.

Using Conventional Commits is strongly recommended and might be enforced in future.

Also please have a look at the docs, either in the docs folder or at docs.trezor.io before contributing. The misc chapter should be read in particular because it contains some useful assorted knowledge.

Security vulnerability disclosure

Please report suspected security vulnerabilities in private to security@satoshilabs.com, also see the disclosure section on the Trezor.io website. Please do NOT create publicly viewable issues for suspected security vulnerabilities.

Documentation

See the docs folder or visit docs.trezor.io.

Languages
C 45.9%
Python 30.6%
Rust 18.2%
HTML 3.6%
Nix 0.4%
Other 1.2%