refactor(core): cleanup display panel selection
What changed, and why it matters
This commit is a straightforward internal cleanup that moves display panel definitions from individual device header files into a central build script. It does not change what the code does, only where the settings are declared. There is no indication of a security fix or vulnerability.
No security action required; treat as routine refactoring.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The refactor removes duplicate DISPLAY_PANEL_* and DISPLAY_COLOR_MODE macros from per-model board headers and instead emits them from core/embed/io/display/build.rs alongside related display configuration. The effective preprocessor state for each target remains the same, so this is a non-functional organizational change.
Changed components
core/embed/io/display/build.rscore/embed/models/D001/boards/stm32f429i-disc1.hcore/embed/models/D002/boards/stm32u5g9j-dk.hcore/embed/models/T2T1/boards/trezor_t.hcore/embed/models/T3T1/boards/trezor_t3t1_revE.hcore/embed/models/T3W1/boards/trezor_t3w1_revA.hcore/embed/models/T3W1/boards/trezor_t3w1_revB.hcore/embed/models/T3W1/boards/trezor_t3w1_revC.hInspect captured patch +4 / −15
diff --git a/core/embed/io/display/build.rs b/core/embed/io/display/build.rs
index 4201abff..1a1911e1 100644
--- a/core/embed/io/display/build.rs
+++ b/core/embed/io/display/build.rs
@@ -44,6 +44,7 @@ pub fn def_module(lib: &mut CLibrary) -> Result<()> {
fn set_panel_lx250a2401a(lib: &mut CLibrary) {
lib.add_defines([
+ ("DISPLAY_PANEL_LX250A2401A", Some("1")),
("UI_COLOR_32BIT", Some("1")),
("USE_RGB_COLORS", Some("1")),
("DISPLAY_RESX", Some("380")),
@@ -56,6 +57,7 @@ fn set_panel_lx250a2401a(lib: &mut CLibrary) {
fn set_panel_stm32u5a9j_dk(lib: &mut CLibrary) {
lib.add_defines([
+ ("DISPLAY_PANEL_STM32U5A9J_DK", Some("1")),
("UI_COLOR_32BIT", Some("1")),
("USE_RGB_COLORS", Some("1")),
("DISPLAY_RESX", Some("240")),
@@ -65,6 +67,7 @@ fn set_panel_stm32u5a9j_dk(lib: &mut CLibrary) {
fn set_panel_lx154a2482(lib: &mut CLibrary) {
lib.add_defines([
+ ("DISPLAY_PANEL_LX154A2482", Some("1")),
("USE_RGB_COLORS", Some("1")),
("DISPLAY_RESX", Some("240")),
("DISPLAY_RESY", Some("240")),
@@ -73,6 +76,7 @@ fn set_panel_lx154a2482(lib: &mut CLibrary) {
fn set_panel_t2t1(lib: &mut CLibrary) {
lib.add_defines([
+ ("DISPLAY_PANEL_T2T1", Some("1")),
("USE_RGB_COLORS", Some("1")),
("DISPLAY_RESX", Some("240")),
("DISPLAY_RESY", Some("240")),
diff --git a/core/embed/models/D001/boards/stm32f429i-disc1.h b/core/embed/models/D001/boards/stm32f429i-disc1.h
index b7a6a82c..2575c180 100644
--- a/core/embed/models/D001/boards/stm32f429i-disc1.h
+++ b/core/embed/models/D001/boards/stm32f429i-disc1.h
@@ -1,8 +1,6 @@
#ifndef _STM32F429I_DISC1_H
#define _STM32F429I_DISC1_H
-#define DISPLAY_COLOR_MODE DMA2D_OUTPUT_RGB565
-
#define I2C_COUNT 1
#define I2C_INSTANCE_0 I2C3
#define I2C_INSTANCE_0_CLK_EN __HAL_RCC_I2C3_CLK_ENABLE
diff --git a/core/embed/models/D002/boards/stm32u5g9j-dk.h b/core/embed/models/D002/boards/stm32u5g9j-dk.h
index 3d5857db..859901f7 100644
--- a/core/embed/models/D002/boards/stm32u5g9j-dk.h
+++ b/core/embed/models/D002/boards/stm32u5g9j-dk.h
@@ -3,8 +3,6 @@
#define VDD_1V8 1
-#define DISPLAY_COLOR_MODE DMA2D_OUTPUT_ARGB8888
-#define DISPLAY_PANEL_STM32U5A9J_DK
// #define DISPLAY_GFXMMU 1
#define DISPLAY_RESET_PIN GPIO_PIN_5
#define DISPLAY_RESET_PORT GPIOD
diff --git a/core/embed/models/T2T1/boards/trezor_t.h b/core/embed/models/T2T1/boards/trezor_t.h
index e0b86bde..d3e91778 100644
--- a/core/embed/models/T2T1/boards/trezor_t.h
+++ b/core/embed/models/T2T1/boards/trezor_t.h
@@ -1,9 +1,6 @@
#ifndef _TREZOR_T_H
#define _TREZOR_T_H
-#define DISPLAY_COLOR_MODE DMA2D_OUTPUT_RGB565
-#define DISPLAY_PANEL_T2T1 1
-
#define DISPLAY_IDENTIFY 1
#define DISPLAY_TE_PORT GPIOD
#define DISPLAY_TE_PIN GPIO_PIN_12
diff --git a/core/embed/models/T3T1/boards/trezor_t3t1_revE.h b/core/embed/models/T3T1/boards/trezor_t3t1_revE.h
index 126a9b1d..fc1f9fb5 100644
--- a/core/embed/models/T3T1/boards/trezor_t3t1_revE.h
+++ b/core/embed/models/T3T1/boards/trezor_t3t1_revE.h
@@ -3,8 +3,6 @@
#define VDD_3V3 1
-#define DISPLAY_COLOR_MODE DMA2D_OUTPUT_RGB565
-#define DISPLAY_PANEL_LX154A2482 1
#define DISPLAY_I8080_8BIT_DW 1
#define DISPLAY_IDENTIFY 1
diff --git a/core/embed/models/T3W1/boards/trezor_t3w1_revA.h b/core/embed/models/T3W1/boards/trezor_t3w1_revA.h
index f8fee412..ab159c9d 100644
--- a/core/embed/models/T3W1/boards/trezor_t3w1_revA.h
+++ b/core/embed/models/T3W1/boards/trezor_t3w1_revA.h
@@ -13,8 +13,6 @@
#define BTN_EXTI_INTERRUPT_NUM EXTI5_IRQn
#define BTN_EXTI_INTERRUPT_HANDLER EXTI5_IRQHandler
-#define DISPLAY_COLOR_MODE DMA2D_OUTPUT_ARGB8888
-#define DISPLAY_PANEL_LX250A2401A
#define DISPLAY_GFXMMU 1
#define DISPLAY_RESET_PIN GPIO_PIN_2
#define DISPLAY_RESET_PORT GPIOE
diff --git a/core/embed/models/T3W1/boards/trezor_t3w1_revB.h b/core/embed/models/T3W1/boards/trezor_t3w1_revB.h
index b375e86b..3606e608 100644
--- a/core/embed/models/T3W1/boards/trezor_t3w1_revB.h
+++ b/core/embed/models/T3W1/boards/trezor_t3w1_revB.h
@@ -13,8 +13,6 @@
#define BTN_EXTI_INTERRUPT_NUM EXTI5_IRQn
#define BTN_EXTI_INTERRUPT_HANDLER EXTI5_IRQHandler
-#define DISPLAY_COLOR_MODE DMA2D_OUTPUT_ARGB8888
-#define DISPLAY_PANEL_LX250A2401A
#define DISPLAY_GFXMMU 1
#define DISPLAY_RESET_PIN GPIO_PIN_2
#define DISPLAY_RESET_PORT GPIOE
diff --git a/core/embed/models/T3W1/boards/trezor_t3w1_revC.h b/core/embed/models/T3W1/boards/trezor_t3w1_revC.h
index c9863dd6..4987b386 100644
--- a/core/embed/models/T3W1/boards/trezor_t3w1_revC.h
+++ b/core/embed/models/T3W1/boards/trezor_t3w1_revC.h
@@ -13,8 +13,6 @@
#define BTN_EXTI_INTERRUPT_NUM EXTI5_IRQn
#define BTN_EXTI_INTERRUPT_HANDLER EXTI5_IRQHandler
-#define DISPLAY_COLOR_MODE DMA2D_OUTPUT_ARGB8888
-#define DISPLAY_PANEL_LX250A2401A
#define DISPLAY_GFXMMU 1
#define DISPLAY_RESET_PIN GPIO_PIN_2
#define DISPLAY_RESET_PORT GPIOE
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.