refactor(core/build): replace model feature boilerplate with board resolution
What changed, and why it matters
This commit is a build-system cleanup for Trezor firmware. It removes repeated lists of hardware-model-specific feature flags from multiple Cargo.toml files and replaces them with a single shared list in a new target.toml file for each project. There is no change to the actual device code or security behavior—only how build features are organized.
No security action required. Treat as routine build-system maintenance. Verify that the new target.toml-based feature resolution produces equivalent feature sets for each hardware model during CI builds.
Security signals we found
No security-relevant code changes observed
No changes to cryptographic, authentication, or memory-safety code
No changes to input parsing or external interfaces
Build configuration refactor only
Evidence from the diff
The patch refactors Rust crate feature definitions across Trezor embedded projects (boardloader, bootloader, bootloader_ci, firmware, kernel, prodtest, secmon, unix). It deletes per-model feature groups (model_d001, model_t2t1, etc.) from each Cargo.toml and introduces a target.toml per project containing a unified ‘uses’ list. Some previously implicit feature aliases are made explicit (e.g., display, framebuffer, sd_card, secmon_layout, decred/eos/nem legacy coin features). No runtime logic, driver code, or cryptographic code is modified.
Changed components
core/embed/projects/boardloader/Cargo.tomlcore/embed/projects/boardloader/target.tomlcore/embed/projects/bootloader/Cargo.tomlcore/embed/projects/bootloader/target.tomlcore/embed/projects/bootloader_ci/Cargo.tomlcore/embed/projects/bootloader_ci/target.tomlcore/embed/projects/firmware/Cargo.tomlcore/embed/projects/firmware/target.tomlcore/embed/projects/kernel/Cargo.tomlcore/embed/projects/kernel/target.tomlcore/embed/projects/prodtest/Cargo.tomlcore/embed/projects/prodtest/target.tomlcore/embed/projects/secmon/Cargo.tomlcore/embed/projects/secmon/target.tomlcore/embed/projects/unix/Cargo.tomlInspect captured patch +266 / −793
diff --git a/core/embed/projects/boardloader/Cargo.toml b/core/embed/projects/boardloader/Cargo.toml
index 931e7a18..6fd800d7 100644
--- a/core/embed/projects/boardloader/Cargo.toml
+++ b/core/embed/projects/boardloader/Cargo.toml
@@ -24,84 +24,6 @@ models.workspace = true
[features]
-# --------------------------------------------------------------------------
-# Model features
-# --------------------------------------------------------------------------
-
-model_d001 = [
- "io/model_d001",
- "mcu_stm32f429",
- "dma2d",
- "pvd",
- "sdram",
- ]
-
-model_d002 = [
- "io/model_d002",
- "mcu_stm32u5g",
- "backlight",
- "boot_ucb",
- "dma2d",
- "hash_processor",
- "lockable_bootloader",
- "secret",
- "secure_aes",
- "tamper",
- ]
-
-model_t2t1 = [
- "io/model_t2t1",
- "mcu_stm32f427",
- "backlight",
- "pvd",
- "sd_card_update",
- ]
-
-model_t2b1 = [
- "io/model_t2b1",
- "mcu_stm32f427",
- "pvd",
- "secret",
- ]
-
-model_t3b1 = [
- "io/model_t3b1",
- "mcu_stm32u58",
- "hash_processor",
- "lockable_bootloader",
- "pvd",
- "secret",
- "secure_aes",
- "tamper",
- ]
-
-model_t3t1 = [
- "io/model_t3t1",
- "mcu_stm32u58",
- "backlight",
- "hash_processor",
- "lockable_bootloader",
- "pvd",
- "sd_card_update",
- "secret",
- "secure_aes",
- "tamper",
- ]
-
-model_t3w1 = [
- "io/model_t3w1",
- "mcu_stm32u5g",
- "backlight",
- "boot_ucb",
- "dma2d",
- "hash_processor",
- "lockable_bootloader",
- "pmic",
- "secret",
- "secure_aes",
- "tamper",
- ]
-
# --------------------------------------------------------------------------
# Selectable features
# --------------------------------------------------------------------------
@@ -134,12 +56,16 @@ mcu_stm32u5 = ["sec/trustzone"]
backlight = ["io/backlight"]
boot_ucb = ["sec/boot_ucb"]
+display = ["io/display"]
+framebuffer = ["io/framebuffer"]
+power_manager = ["pmic"]
dbg_console = ["sys/dbg_console"]
dma2d = ["io/dma2d"]
hash_processor = ["sec/hash_processor"]
lockable_bootloader = ["io/lockable_bootloader"]
pmic = ["io/pmic"]
pvd = ["sys/pvd"]
+sd_card = ["sd_card_update"]
sd_card_update = ["io/sd_card"]
sdram = ["sys/sdram"]
secret = ["sec/secret"]
diff --git a/core/embed/projects/boardloader/target.toml b/core/embed/projects/boardloader/target.toml
new file mode 100644
index 00000000..768e3598
--- /dev/null
+++ b/core/embed/projects/boardloader/target.toml
@@ -0,0 +1,16 @@
+uses = [
+ "backlight",
+ "boot_ucb",
+ "display",
+ "dma2d",
+ "framebuffer",
+ "hash_processor",
+ "lockable_bootloader",
+ "power_manager",
+ "pvd",
+ "sd_card",
+ "sdram",
+ "secret",
+ "secure_aes",
+ "tamper",
+]
diff --git a/core/embed/projects/bootloader/Cargo.toml b/core/embed/projects/bootloader/Cargo.toml
index 16987ee1..db728d13 100644
--- a/core/embed/projects/bootloader/Cargo.toml
+++ b/core/embed/projects/bootloader/Cargo.toml
@@ -18,119 +18,6 @@ models.workspace = true
[features]
-# --------------------------------------------------------------------------
-# Model features
-# --------------------------------------------------------------------------
-
-model_d001 = [
- "io/model_d001",
- "mcu_stm32f429",
- "dma2d",
- "pvd",
- "sdram",
- "touch",
- "layout_bolt_d001",
- ]
-
-model_d002 = [
- "io/model_d002",
- "mcu_stm32u5g",
- "backlight",
- "boot_ucb",
- "dma2d",
- "hash_processor",
- "lockable_bootloader",
- "secmon_verification",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "touch",
- "layout_bolt_d002",
-]
-
-model_t2t1 = [
- "io/model_t2t1",
- "mcu_stm32f427",
- "backlight",
- "dma2d",
- "pvd",
- "touch",
- "layout_bolt",
-]
-
-model_t2b1 = [
- "io/model_t2b1",
- "mcu_stm32f427",
- "button",
- "consumption_mask",
- "lockable_bootloader",
- "pvd",
- "secret",
- "ui_empty_lock",
- "layout_caesar",
-]
-
-model_t3b1 = [
- "io/model_t3b1",
- "mcu_stm32u58",
- "button",
- "consumption_mask",
- "hash_processor",
- "lockable_bootloader",
- "pvd",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "layout_caesar",
-]
-
-model_t3t1 = [
- "io/model_t3t1",
- "mcu_stm32u58",
- "backlight",
- "dma2d",
- "hash_processor",
- "lockable_bootloader",
- "pvd",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "touch",
- "layout_delizia",
-]
-
-model_t3w1 = [
- "io/model_t3w1",
- "mcu_stm32u5g",
- "backlight",
- "backup_ram",
- "ble",
- "boot_ucb",
- "button",
- "dma2d",
- "haptic",
- "hash_processor",
- "iwdg",
- "lockable_bootloader",
- "mcu_attestation",
- "power_manager",
- "rgb_led",
- "rtc",
- "secmon_verification",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "suspend",
- "tamper",
- "telemetry",
- "touch",
- "touch_wakeup",
- "layout_eckhart",
-]
-
# --------------------------------------------------------------------------
# Selectable features
# --------------------------------------------------------------------------
@@ -186,7 +73,9 @@ boot_ucb = ["sec/boot_ucb", "trezor_lib/boot_ucb"]
button = ["io/button", "trezor_lib/button"]
consumption_mask = ["sec/consumption_mask"]
dbg_console = ["sys/dbg_console"]
+display = ["io/display"]
dma2d = ["io/dma2d", "trezor_lib/dma2d"]
+framebuffer = ["io/framebuffer"]
haptic = ["io/haptic", "trezor_lib/haptic"]
hash_processor = ["sec/hash_processor"]
iwdg = ["sec/iwdg"]
diff --git a/core/embed/projects/bootloader/target.toml b/core/embed/projects/bootloader/target.toml
new file mode 100644
index 00000000..dfdb7a19
--- /dev/null
+++ b/core/embed/projects/bootloader/target.toml
@@ -0,0 +1,39 @@
+uses = [
+ "backlight",
+ "backup_ram",
+ "ble",
+ "boot_ucb",
+ "button",
+ "consumption_mask",
+ "display",
+ "dma2d",
+ "framebuffer",
+ "haptic",
+ "hash_processor",
+ "iwdg",
+ "layout_bolt",
+ "layout_bolt_d001",
+ "layout_bolt_d002",
+ "layout_caesar",
+ "layout_delizia",
+ "layout_eckhart",
+ "lockable_bootloader",
+ "mcu_attestation",
+ "nrf",
+ "nrf_auth",
+ "power_manager",
+ "pvd",
+ "rgb_led",
+ "rtc",
+ "sdram",
+ "secmon_verification",
+ "secret",
+ "secure_aes",
+ "storage_hw_key",
+ "suspend",
+ "tamper",
+ "telemetry",
+ "touch",
+ "touch_wakeup",
+ "ui_empty_lock",
+]
diff --git a/core/embed/projects/bootloader_ci/Cargo.toml b/core/embed/projects/bootloader_ci/Cargo.toml
index 6137ab16..c3419104 100644
--- a/core/embed/projects/bootloader_ci/Cargo.toml
+++ b/core/embed/projects/bootloader_ci/Cargo.toml
@@ -23,99 +23,6 @@ models.workspace = true
[features]
-# --------------------------------------------------------------------------
-# Model features
-# --------------------------------------------------------------------------
-
-model_d001 = [
- "io/model_d001",
- "mcu_stm32f429",
- "dma2d",
- "pvd",
- "sdram",
- "touch",
-]
-
-model_d002 = [
- "io/model_d002",
- "mcu_stm32u5g",
- "backlight",
- "boot_ucb",
- "dma2d",
- "hash_processor",
- "lockable_bootloader",
- "secret",
- "secure_aes",
- "tamper",
- "touch",
-]
-
-model_t2t1 = [
- "io/model_t2t1",
- "mcu_stm32f427",
- "backlight",
- "dma2d",
- "pvd",
- "touch",
-]
-
-model_t2b1 = [
- "io/model_t2b1",
- "mcu_stm32f427",
- "button",
- "consumption_mask",
- "lockable_bootloader",
- "pvd",
- "secret",
-]
-
-model_t3b1 = [
- "io/model_t3b1",
- "mcu_stm32u58",
- "button",
- "consumption_mask",
- "hash_processor",
- "lockable_bootloader",
- "pvd",
- "secret",
- "secure_aes",
- "tamper",
-]
-
-model_t3t1 = [
- "io/model_t3t1",
- "mcu_stm32u58",
- "backlight",
- "haptic",
- "hash_processor",
- "lockable_bootloader",
- "pvd",
- "secret",
- "secure_aes",
- "tamper",
- "touch",
-]
-
-model_t3w1 = [
- "io/model_t3w1",
- "mcu_stm32u5g",
- "backlight",
- "backup_ram",
- "boot_ucb",
- "button",
- "dma2d",
- "haptic",
- "hash_processor",
- "iwdg",
- "lockable_bootloader",
- "rgb_led",
- "secret",
- "secure_aes",
- "tamper",
- "telemetry",
- "touch",
-]
-
# --------------------------------------------------------------------------
# Selectable features
# --------------------------------------------------------------------------
@@ -154,7 +61,9 @@ boot_ucb = ["sec/boot_ucb"]
button = ["io/button"]
consumption_mask = ["sec/consumption_mask"]
dbg_console = ["sys/dbg_console"]
+display = ["io/display"]
dma2d = ["io/dma2d"]
+framebuffer = ["io/framebuffer"]
haptic = ["io/haptic"]
hash_processor = ["sec/hash_processor"]
iwdg = ["sec/iwdg"]
@@ -164,6 +73,7 @@ pvd = ["sys/pvd"]
rgb_led = ["io/rgb_led"]
sdram = ["sys/sdram"]
secret = ["sec/secret"]
+secmon_verification = ["sec/secmon_verification"]
secure_aes = ["sec/secure_aes"]
suspend = ["io/suspend"]
tamper = ["sec/tamper"]
diff --git a/core/embed/projects/bootloader_ci/target.toml b/core/embed/projects/bootloader_ci/target.toml
new file mode 100644
index 00000000..9f52122f
--- /dev/null
+++ b/core/embed/projects/bootloader_ci/target.toml
@@ -0,0 +1,23 @@
+uses = [
+ "backlight",
+ "backup_ram",
+ "boot_ucb",
+ "button",
+ "consumption_mask",
+ "display",
+ "dma2d",
+ "framebuffer",
+ "haptic",
+ "hash_processor",
+ "iwdg",
+ "lockable_bootloader",
+ "pvd",
+ "rgb_led",
+ "sdram",
+ "secret",
+ "secure_aes",
+ "secmon_verification",
+ "tamper",
+ "telemetry",
+ "touch",
+]
diff --git a/core/embed/projects/firmware/Cargo.toml b/core/embed/projects/firmware/Cargo.toml
index 40384af2..ea7b4b82 100644
--- a/core/embed/projects/firmware/Cargo.toml
+++ b/core/embed/projects/firmware/Cargo.toml
@@ -19,121 +19,6 @@ upymod.workspace = true
[features]
-# --------------------------------------------------------------------------
-# Model features
-# --------------------------------------------------------------------------
-
-model_d001 = [
- "upymod/model_d001",
- "mcu_stm32f429",
- "dma2d",
- "touch",
- "layout_bolt_d001",
-]
-
-model_d002 = [
- "upymod/model_d002",
- "mcu_stm32u5g",
- "backlight",
- "boot_ucb",
- "dma2d",
- "hash_processor",
- "lockable_bootloader",
- "secmon_layout",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "touch",
- "layout_bolt_d002",
-]
-
-model_t2t1 = [
- "upymod/model_t2t1",
- "mcu_stm32f427",
- "backlight",
- "dma2d",
- "touch",
- "layout_bolt",
- "sd_card",
-]
-
-model_t2b1 = [
- "upymod/model_t2b1",
- "mcu_stm32f427",
- "button",
- "consumption_mask",
- "lockable_bootloader",
- #"optiga", # selected from xtask
- "secret",
- "layout_caesar",
-]
-
-model_t3b1 = [
- "upymod/model_t3b1",
- "mcu_stm32u58",
- "button",
- "consumption_mask",
- "hash_processor",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "layout_caesar",
-]
-
-model_t3t1 = [
- "upymod/model_t3t1",
- "mcu_stm32u58",
- "backlight",
- "dma2d",
- "haptic",
- "hash_processor",
- "lockable_bootloader",
- "sd_card",
- # "optiga", # selected from xtask
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "touch",
- "layout_delizia",
-]
-
-model_t3w1 = [
- "upymod/model_t3w1",
- "mcu_stm32u5g",
- "backlight",
- "ble",
- "backup_ram",
- "boot_ucb",
- "button",
- "dma2d",
- "haptic",
- "hash_processor",
- "iwdg",
- "lockable_bootloader",
- "mcu_attestation",
- # "optiga", # selected from xtask
- "power_manager",
- "secmon_layout",
- "secret",
- "secure_aes",
- "serial_number",
- "storage_hw_key",
- "suspend",
- "tamper",
- "telemetry",
- "thp",
- "touch",
- "touch_wakeup",
- # "tropic", # selected from xtask
- "layout_eckhart",
- "rgb_led",
-]
-
# --------------------------------------------------------------------------
# Selectable features
# --------------------------------------------------------------------------
@@ -200,7 +85,9 @@ ble = ["io/ble", "upymod/ble", "trezor_lib/ble", "nrf", "nrf_auth"]
boot_ucb = ["sec/boot_ucb", "trezor_lib/boot_ucb"]
button = ["io/button", "upymod/button", "trezor_lib/button"]
consumption_mask = ["sec/consumption_mask"]
+display = ["io/display"]
dma2d = ["io/dma2d", "trezor_lib/dma2d"]
+framebuffer = ["io/framebuffer"]
haptic = ["io/haptic", "upymod/haptic", "trezor_lib/haptic"]
hash_processor = ["sec/hash_processor"]
iwdg = ["sec/iwdg"]
@@ -230,6 +117,11 @@ touch = ["io/touch", "upymod/touch", "trezor_lib/touch"]
touch_wakeup = ["io/touch_wakeup", "upymod/touch_wakeup", "trezor_lib/touch_wakeup"]
tropic = ["sec/tropic", "upymod/tropic", "trezor_lib/tropic"]
+# Legacy coin support (T2T1 only)
+decred = ["upymod/decred"]
+eos = ["rtl/eos", "upymod/eos"]
+nem = ["rtl/nem", "upymod/nem"]
+
layout_bolt_d001 = [
"trezor_lib/layout_bolt",
"upymod/layout_bolt",
diff --git a/core/embed/projects/firmware/target.toml b/core/embed/projects/firmware/target.toml
new file mode 100644
index 00000000..a3df3428
--- /dev/null
+++ b/core/embed/projects/firmware/target.toml
@@ -0,0 +1,44 @@
+uses = [
+ "backlight",
+ "backup_ram",
+ "ble",
+ "boot_ucb",
+ "button",
+ "consumption_mask",
+ "display",
+ "dma2d",
+ "framebuffer",
+ "haptic",
+ "hash_processor",
+ "iwdg",
+ "layout_bolt",
+ "layout_bolt_d001",
+ "layout_bolt_d002",
+ "layout_caesar",
+ "layout_delizia",
+ "layout_eckhart",
+ "lockable_bootloader",
+ "mcu_attestation",
+ "nrf",
+ "optiga",
+ "power_manager",
+ "rgb_led",
+ "sd_card",
+ "secmon_layout",
+ "secret",
+ "secure_aes",
+ "serial_number",
+ "storage_hw_key",
+ "suspend",
+ "tamper",
+ "telemetry",
+ "thp",
+ "touch",
+ "touch_wakeup",
+ "tropic",
+
+ # Legacy coin support
+ "decred",
+ "eos",
+ "nem",
+]
diff --git a/core/embed/projects/kernel/Cargo.toml b/core/embed/projects/kernel/Cargo.toml
index c7fb58a2..a21a2c15 100644
--- a/core/embed/projects/kernel/Cargo.toml
+++ b/core/embed/projects/kernel/Cargo.toml
@@ -18,124 +18,6 @@ trezor_lib.workspace = true
[features]
-# --------------------------------------------------------------------------
-# Model features
-# --------------------------------------------------------------------------
-
-model_d001 = [
- "io/model_d001",
- "mcu_stm32f429",
- "dma2d",
- "pvd",
- "sdram",
- "secure_mode",
- "touch",
-]
-
-model_d002 = [
- "io/model_d002",
- "mcu_stm32u5g",
- "backlight",
- "boot_ucb",
- "dma2d",
- "hash_processor",
- "lockable_bootloader",
- "secmon_layout",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "touch",
-]
-
-model_t2t1 = [
- "io/model_t2t1",
- "mcu_stm32f427",
- "backlight",
- "dma2d",
- "pvd",
- "sd_card",
- "secure_mode",
- "touch",
- ]
-
-model_t2b1 = [
- "io/model_t2b1",
- "mcu_stm32f427",
- "button",
- "consumption_mask",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "pvd",
- "secret",
- "secure_mode",
- ]
-
-model_t3b1 = [
- "io/model_t3b1",
- "mcu_stm32u58",
- "button",
- "consumption_mask",
- "hash_processor",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "pvd",
- "secret",
- "secure_aes",
- "secure_mode",
- "storage_hw_key",
- "tamper",
- ]
-
-model_t3t1 = [
- "io/model_t3t1",
- "mcu_stm32u58",
- "backlight",
- "dma2d",
- "haptic",
- "hash_processor",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "pvd",
- "sd_card",
- "secret",
- "secure_aes",
- "secure_mode",
- "storage_hw_key",
- "tamper",
- "touch",
- ]
-
-model_t3w1 = [
- "io/model_t3w1",
- "mcu_stm32u5g",
- "backlight",
- "backup_ram",
- "boot_ucb",
- "ble",
- "button",
- "dma2d",
- "haptic",
- "hash_processor",
- "hw_jpeg_decoder",
- "lockable_bootloader",
- "mcu_attestation",
- # "optiga", # selected from xtask
- "power_manager",
- "rgb_led",
- "rtc",
- "secmon_layout",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "suspend",
- "smp",
- "tamper",
- "telemetry",
- "touch",
- "touch_wakeup",
- # "tropic", # selected from xtask
- ]
-
# --------------------------------------------------------------------------
# Selectable features
# --------------------------------------------------------------------------
@@ -188,7 +70,9 @@ ble = ["io/ble", "nrf", "nrf_auth"]
button = ["io/button"]
consumption_mask = ["sec/consumption_mask"]
dbg_console = ["sys/dbg_console"]
+display = ["io/display"]
dma2d = ["io/dma2d"]
+framebuffer = ["io/framebuffer"]
haptic = ["io/haptic"]
hash_processor = ["sec/hash_processor"]
hw_jpeg_decoder = ["io/hw_jpeg_decoder"]
diff --git a/core/embed/projects/kernel/target.toml b/core/embed/projects/kernel/target.toml
new file mode 100644
index 00000000..57bba9ca
--- /dev/null
+++ b/core/embed/projects/kernel/target.toml
@@ -0,0 +1,37 @@
+uses = [
+ "backlight",
+ "backup_ram",
+ "ble",
+ "boot_ucb",
+ "button",
+ "consumption_mask",
+ "display",
+ "dma2d",
+ "framebuffer",
+ "haptic",
+ "hash_processor",
+ "hw_jpeg_decoder",
+ "lockable_bootloader",
+ "mcu_attestation",
+ "nrf",
+ "nrf_auth",
+ "optiga",
+ "power_manager",
+ "pvd",
+ "rgb_led",
+ "rtc",
+ "sd_card",
+ "sdram",
+ "secmon_layout",
+ "secure_mode",
+ "secret",
+ "secure_aes",
+ "smp",
+ "storage_hw_key",
+ "suspend",
+ "tamper",
+ "telemetry",
+ "touch",
+ "touch_wakeup",
+ "tropic",
+]
diff --git a/core/embed/projects/prodtest/Cargo.toml b/core/embed/projects/prodtest/Cargo.toml
index 7745c5a4..054806e6 100644
--- a/core/embed/projects/prodtest/Cargo.toml
+++ b/core/embed/projects/prodtest/Cargo.toml
@@ -17,134 +17,6 @@ models.workspace = true
[features]
-# --------------------------------------------------------------------------
-# Model features
-# --------------------------------------------------------------------------
-
-model_d001 = [
- "io/model_d001",
- "mcu_stm32f429",
- "dma2d",
- "pvd",
- "sdram",
- "touch",
- "layout_bolt_d001",
-]
-
-model_d002 = [
- "io/model_d002",
- "mcu_stm32u5g",
- "backlight",
- "boot_ucb",
- "dma2d",
- "hash_processor",
- "lockable_bootloader",
- "secmon_header",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "touch",
- "layout_bolt_d002",
-]
-
-model_t2t1 = [
- "io/model_t2t1",
- "mcu_stm32f427",
- "backlight",
- "pvd",
- "touch",
- "sbu",
- "sd_card",
- "layout_bolt",
-]
-
-model_t2b1 = [
- "io/model_t2b1",
- "mcu_stm32f427",
- "button",
- "consumption_mask",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "pvd",
- "sbu",
- "secret",
- "layout_caesar",
-]
-
-model_t3b1 = [
- "io/model_t3b1",
- "mcu_stm32u58",
- "button",
- "consumption_mask",
- "hash_processor",
- "hw_revision",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "pvd",
- "sbu",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "layout_caesar",
-]
-
-model_t3t1 = [
- "io/model_t3t1",
- "mcu_stm32u58",
- "backlight",
- "haptic",
- "hash_processor",
- "hw_revision",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "pvd",
- "sbu",
- "sd_card",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- "touch",
- "layout_delizia",
-]
-
-model_t3w1 = [
- "io/model_t3w1",
- "mcu_stm32u5g",
- "backlight",
- "backup_ram",
- "ble",
- "boot_ucb",
- "button",
- "dma2d",
- "haptic",
- "hash_processor",
- "hw_revision",
- "iwdg",
- "lockable_bootloader",
- "mcu_attestation",
- "nfc",
- # "optiga", # selected from xtask
- "power_manager",
- "rgb_led",
- "rtc",
- "sbu",
- "secmon_header",
- "secret",
- "secure_aes",
- "smp",
- "storage_hw_key",
- "suspend",
- "tamper",
- "telemetry",
- "touch",
- "touch_wakeup",
- # "tropic", # selected from xtask
- "layout_eckhart",
-]
-
# --------------------------------------------------------------------------
# Selectable features
# --------------------------------------------------------------------------
@@ -200,6 +72,8 @@ button = ["io/button", "trezor_lib/button"]
consumption_mask = ["sec/consumption_mask"]
dbg_console = ["sys/dbg_console", "trezor_lib/dbg_console"]
dma2d = ["io/dma2d", "trezor_lib/dma2d"]
+display = ["io/display"]
+framebuffer = ["io/framebuffer"]
haptic = ["io/haptic", "trezor_lib/haptic"]
hash_processor = ["sec/hash_processor"]
hw_revision = ["sec/hw_revision"]
diff --git a/core/embed/projects/prodtest/target.toml b/core/embed/projects/prodtest/target.toml
new file mode 100644
index 00000000..5f313bcb
--- /dev/null
+++ b/core/embed/projects/prodtest/target.toml
@@ -0,0 +1,44 @@
+uses = [
+ "backlight",
+ "backup_ram",
+ "ble",
+ "boot_ucb",
+ "button",
+ "consumption_mask",
+ "display",
+ "dma2d",
+ "framebuffer",
+ "haptic",
+ "hash_processor",
+ "hw_revision",
+ "iwdg",
+ "layout_bolt",
+ "layout_bolt_d001",
+ "layout_bolt_d002",
+ "layout_caesar",
+ "layout_delizia",
+ "layout_eckhart",
+ "lockable_bootloader",
+ "mcu_attestation",
+ "nfc",
+ "nrf",
+ "optiga",
+ "power_manager",
+ "pvd",
+ "rgb_led",
+ "rtc",
+ "sbu",
+ "sd_card",
+ "sdram",
+ "secret",
+ "secmon_header",
+ "secure_aes",
+ "smp",
+ "storage_hw_key",
+ "suspend",
+ "tamper",
+ "telemetry",
+ "touch",
+ "touch_wakeup",
+ "tropic",
+]
diff --git a/core/embed/projects/secmon/Cargo.toml b/core/embed/projects/secmon/Cargo.toml
index 7b4c24bc..eb4ec917 100644
--- a/core/embed/projects/secmon/Cargo.toml
+++ b/core/embed/projects/secmon/Cargo.toml
@@ -22,66 +22,6 @@ models.workspace = true
[features]
-# --------------------------------------------------------------------------
-# Model features
-# --------------------------------------------------------------------------
-
-model_d002 = [
- "sec/model_d002",
- "mcu_stm32u5g",
- "boot_ucb",
- "hash_processor",
- "lockable_bootloader",
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
-]
-
-model_t3b1 = [
- "sec/model_t3b1",
- "mcu_stm32u58",
- "consumption_mask",
- "hash_processor",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- ]
-
-model_t3t1 = [
- "sec/model_t3t1",
- "mcu_stm32u58",
- "hash_processor",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "secret",
- "secure_aes",
- "storage_hw_key",
- "tamper",
- ]
-
-model_t3w1 = [
- "sec/model_t3w1",
- "mcu_stm32u5g",
- "backup_ram",
- "boot_ucb",
- "hash_processor",
- "lockable_bootloader",
- "mcu_attestation",
- "nrf_auth",
- # "optiga", # selected from xtask
- "secret",
- "secure_aes",
- "storage_hw_key",
- "suspend",
- "tamper",
- "telemetry",
- #"tropic", # selected from xtask
- ]
-
# --------------------------------------------------------------------------
# Selectable features
# --------------------------------------------------------------------------
diff --git a/core/embed/projects/secmon/target.toml b/core/embed/projects/secmon/target.toml
new file mode 100644
index 00000000..989e53c9
--- /dev/null
+++ b/core/embed/projects/secmon/target.toml
@@ -0,0 +1,17 @@
+uses = [
+ "backup_ram",
+ "boot_ucb",
+ "consumption_mask",
+ "hash_processor",
+ "lockable_bootloader",
+ "mcu_attestation",
+ "nrf_auth",
+ "optiga",
+ "secret",
+ "secure_aes",
+ "storage_hw_key",
+ "suspend",
+ "tamper",
+ "telemetry",
+ "tropic",
+]
diff --git a/core/embed/projects/unix/Cargo.toml b/core/embed/projects/unix/Cargo.toml
index 83973319..c64e41ad 100644
--- a/core/embed/projects/unix/Cargo.toml
+++ b/core/embed/projects/unix/Cargo.toml
@@ -19,94 +19,6 @@ upymod.workspace = true
[features]
-# --------------------------------------------------------------------------
-# Model features
-# --------------------------------------------------------------------------
-
-model_d001 = []
-model_d002 = []
-
-model_t2t1 = [
- "upymod/model_t2t1",
- "mcu_stm32f427",
- "backlight",
- "dma2d",
- "touch",
- "layout_bolt",
- "sd_card",
-]
-
-model_t2b1 = [
- "upymod/model_t2b1",
- "mcu_stm32f427",
- "button",
- "consumption_mask",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "secret",
- "layout_caesar",
-]
-
-model_t3b1 = [
- "upymod/model_t3b1",
- "mcu_stm32u58",
- "button",
- "consumption_mask",
- "hash_processor",
- "lockable_bootloader",
- # "optiga", # selected from xtask
- "secret",
- "secure_aes",
- "tamper",
- "layout_caesar",
-]
-
-model_t3t1 = [
- "upymod/model_t3t1",
- "mcu_stm32u58",
- "backlight",
- "dma2d",
- "haptic",
- "hash_processor",
- "lockable_bootloader",
- "sd_card",
- # "optiga", # selected from xtask
- "secret",
- "secure_aes",
- "tamper",
- "touch",
- "layout_delizia",
-]
-
-model_t3w1 = [
- "upymod/model_t3w1",
- "mcu_stm32u5g",
- "backlight",
- "backup_ram",
- "ble",
- "boot_ucb",
- "button",
- "dma2d",
- "haptic",
- "hash_processor",
- "iwdg",
- "lockable_bootloader",
- "mcu_attestation",
- # "optiga", # selected from xtask
- "power_manager",
- "secret",
- "serial_number",
- "suspend",
- "tamper",
- "telemetry",
- "thp",
- "touch",
- "touch_wakeup",
- "layout_eckhart",
- "rgb_led",
- # "tropic", # selected from xtask
-]
-
# --------------------------------------------------------------------------
# Selectable features
# --------------------------------------------------------------------------
@@ -175,7 +87,9 @@ boot_ucb = ["sec/boot_ucb", "trezor_lib/boot_ucb"]
button = ["io/button", "upymod/button","trezor_lib/button"]
consumption_mask = ["sec/consumption_mask"]
dev_keys = ["trezor_lib/dev_keys"]
+display = ["io/display"]
dma2d = ["io/dma2d", "trezor_lib/dma2d"]
+framebuffer = ["io/framebuffer"]
haptic = ["io/haptic", "upymod/haptic", "trezor_lib/haptic"]
hash_processor = ["sec/hash_processor"]
iwdg = ["sec/iwdg"]
@@ -187,6 +101,7 @@ optiga = ["sec/optiga", "upymod/optiga", "trezor_lib/optiga"]
power_manager = ["io/power_manager", "upymod/power_manager", "trezor_lib/power_manager", "trezor_lib/pmic"]
rgb_led = ["io/rgb_led", "upymod/rgb_led", "trezor_lib/rgb_led"]
sd_card = ["io/sd_card", "upymod/sd_card", "trezor_lib/sd_card"]
+secmon_layout = ["models/secmon_layout"]
secret = ["sec/secret"]
secure_aes = ["sec/secure_aes"]
serial_number = ["upymod/serial_number", "trezor_lib/serial_number"]
@@ -199,6 +114,11 @@ touch = ["io/touch", "upymod/touch", "trezor_lib/touch"]
touch_wakeup = ["io/touch_wakeup", "upymod/touch_wakeup", "trezor_lib/touch_wakeup"]
tropic = ["sec/tropic", "upymod/tropic", "trezor_lib/tropic"]
+# Legacy coin support
+decred = ["upymod/decred"]
+eos = ["rtl/eos", "upymod/eos"]
+nem = ["rtl/nem", "upymod/nem"]
+
layout_bolt = [
"trezor_lib/layout_bolt",
"upymod/layout_bolt",
@@ -207,6 +127,24 @@ layout_bolt = [
"trezor_lib/ui_jpeg",
]
+layout_bolt_d001 = [
+ "trezor_lib/layout_bolt",
+ "upymod/layout_bolt",
+ "trezor_lib/framebuffer",
+ "trezor_lib/display_rgb565",
+ "trezor_lib/ui_blurring",
+ "trezor_lib/ui_jpeg",
+ ]
+
+layout_bolt_d002 = [
+ "trezor_lib/layout_bolt",
+ "upymod/layout_bolt",
+ "trezor_lib/framebuffer",
+ "trezor_lib/display_rgba8888",
+ "trezor_lib/ui_blurring",
+ "trezor_lib/ui_jpeg",
+ ]
+
layout_caesar = [
"trezor_lib/layout_caesar",
"upymod/layout_caesar",
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.