# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## 2.1.9 [September 2024]

### Changed

- [T3T1] Ignore touch errors while in manufacturing.  [#4195]

## 2.1.8 [September 2024]

### Added
- Added firmware downgrade protection.  [#4133]

### Changed
- Require confirmation when installing non-full trust firmware image on empty device.  [#3709]
- Fix incorrect error message when installing firmware for different model.  [#4081]
- [T3B1, T3T1] Added bootloader unlock mechanism to U5 models.  [#4133]

### Fixed
- [T3B1] UI adjustments: fix icon on warning screen, replace empty logo with full during boot.  [#4140]

## 2.1.7 [July 2024]

### Added
- [T3B1] Added support for T3B1.


## 2.1.6 [May 2024]

### Added
- Added `unit_packaging` field to `Features`.  [#3711]

### Changed
- [T3T1] Changed USB manufacturer string to "Trezor Company" and product string to "Trezor Safe 5" in the USB descriptor strings.  [#3770]


## 2.1.5 [April 2024]

### Added
- Added support for T3T1
- Added basic support for STM32U5  [#3370]

### Changed
- Speed-up device boot  [#3429]


## 2.1.4 [November 2023]

### Added
- Minimize risk of losing seed when upgrading firmware.  [#2794]
- Support interaction-less upgrade.  [#2919]


## 2.1.3 [September 2023]

### Changed
- Split builds of different parts to use simple util.s assembler, while FW+bootloader use interconnected ones.  [#3205]
- No longer erases seed when firmware is corrupted but firmware header is correct and signed. Added firmware corrupted info to bootloader screen.  [#3122]
- Correctly reinitialize Optiga SE when rebooting.  [#3303]


## 2.1.2 [August 2023]

Internal only release for Model R prototypes.

### Added
- Added support for STM32F429I-DISC1 board  [#2989]
- Locked bootloader support: bootloader will disallow installation of unofficial firmware unless the Optiga pairing secret is erased.
- Support unlocking the bootloader via `UnlockBootloader` message.

### Changed
- Show "empty lock" logo together with model name (replacing the "filled lock" logo for bootloader entirely).  [#3222]
- When building a `PRODUCTION=0` bootloader, it will recognize the development signing keys instead of production ones.

### Fixed
- Fixed gamma correction settings for Model T  [#2955]


## 2.1.1 [June 2023]

Internal only release for Model R prototypes.

### Added
- Added production public keys for T2B1.  [#3048]
- Added UI for T2B1.

### Fixed
- Fix installation of images smaller than 128kB.  [#2941]


## 2.1.0 [April 2023]

### Added
- Optimize touch controller communication  [#262]
- Bootloader redesign  [#1049]
- Add basic Trezor Model R hardware support  [#2243]
- Jump and stay in bootloader from firmware through SVC call reverse trampoline.  [#2284]
- Add RGB LED for Model R  [#2300]
- Using hardware acceleration (dma2d) for rendering  [#2414]
- Add stack overflow detection  [#2427]
- Add model info to image and check when installing/running firmware  [#2623]
- Introduced bootloader emulator.  [#2879]

### Changed
- Update logic of vendor header comparison.  [#1599]
- CPU Frequency increased to 180 MHz  [#2587]
- Fixed display blinking by increasing backlight PWM frequency  [#2595]

### Fixed
- Fixed retries counter when reading from USB  [#2896]

### Security
- Avoid accidental build with broken stack protector  [#1642]


## 2.0.4 [May 2022]

### Security
- Intentionally skipped this version due to fake devices

## 2.0.3 [March 2019]

### Security
- Enable MPU
- Introduce delays to USB stack

## 2.0.2 [December 2018]

### Added
- Support for a new display driver

## 2.0.1 [February 2018]

### Added
- First public release
[#262]: https://github.com/trezor/trezor-firmware/pull/262
[#1049]: https://github.com/trezor/trezor-firmware/pull/1049
[#1599]: https://github.com/trezor/trezor-firmware/pull/1599
[#1642]: https://github.com/trezor/trezor-firmware/pull/1642
[#2243]: https://github.com/trezor/trezor-firmware/pull/2243
[#2284]: https://github.com/trezor/trezor-firmware/pull/2284
[#2300]: https://github.com/trezor/trezor-firmware/pull/2300
[#2414]: https://github.com/trezor/trezor-firmware/pull/2414
[#2427]: https://github.com/trezor/trezor-firmware/pull/2427
[#2587]: https://github.com/trezor/trezor-firmware/pull/2587
[#2595]: https://github.com/trezor/trezor-firmware/pull/2595
[#2623]: https://github.com/trezor/trezor-firmware/pull/2623
[#2794]: https://github.com/trezor/trezor-firmware/pull/2794
[#2879]: https://github.com/trezor/trezor-firmware/pull/2879
[#2896]: https://github.com/trezor/trezor-firmware/pull/2896
[#2919]: https://github.com/trezor/trezor-firmware/pull/2919
[#2941]: https://github.com/trezor/trezor-firmware/pull/2941
[#2955]: https://github.com/trezor/trezor-firmware/pull/2955
[#2989]: https://github.com/trezor/trezor-firmware/pull/2989
[#3048]: https://github.com/trezor/trezor-firmware/pull/3048
[#3122]: https://github.com/trezor/trezor-firmware/pull/3122
[#3205]: https://github.com/trezor/trezor-firmware/pull/3205
[#3222]: https://github.com/trezor/trezor-firmware/pull/3222
[#3303]: https://github.com/trezor/trezor-firmware/pull/3303
[#3370]: https://github.com/trezor/trezor-firmware/pull/3370
[#3429]: https://github.com/trezor/trezor-firmware/pull/3429
[#3709]: https://github.com/trezor/trezor-firmware/pull/3709
[#3711]: https://github.com/trezor/trezor-firmware/pull/3711
[#3770]: https://github.com/trezor/trezor-firmware/pull/3770
[#4081]: https://github.com/trezor/trezor-firmware/pull/4081
[#4133]: https://github.com/trezor/trezor-firmware/pull/4133
[#4140]: https://github.com/trezor/trezor-firmware/pull/4140
[#4195]: https://github.com/trezor/trezor-firmware/pull/4195