refactor(core): introduce emulator boards

[no changelog]
tychovrahe/t3b1/hw_support
tychovrahe 4 weeks ago
parent eb47a75ea4
commit 40859d9d57

@ -6,7 +6,6 @@ import tools, models
TREZOR_MODEL = ARGUMENTS.get('TREZOR_MODEL', 'T')
CMAKELISTS = int(ARGUMENTS.get('CMAKELISTS', 0))
HW_REVISION = 'emulator'
DMA2D = False
if TREZOR_MODEL in ('1', 'DISC1'):
# skip bootloader build
@ -20,10 +19,12 @@ if TREZOR_MODEL in ('1', 'DISC1'):
)
Return()
FEATURES_WANTED = ["input", "rgb_led", "dma2d"]
FEATURES_WANTED = ["input", "rgb_led", "dma2d", "optiga_hal"]
CCFLAGS_MOD = ''
CPPPATH_MOD = []
CPPDEFINES_HAL = []
PATH_HAL = []
CPPDEFINES_MOD = []
SOURCE_MOD = []
@ -88,7 +89,6 @@ SOURCE_MOD += [
'embed/lib/colors.c',
'embed/lib/display_utils.c',
'embed/lib/display.c',
'embed/lib/dma2d_emul.c',
'embed/lib/fonts/font_bitmap.c',
'embed/lib/fonts/fonts.c',
'embed/lib/image.c',
@ -101,24 +101,6 @@ SOURCE_MOD += [
'vendor/trezor-storage/flash_area.c',
]
if TREZOR_MODEL in ('1', ):
SOURCE_MOD += [
'embed/models/model_T1B1_layout.c',
]
elif TREZOR_MODEL in ('T', ):
SOURCE_MOD += [
'embed/models/model_T2T1_layout.c',
]
elif TREZOR_MODEL in ('R', ):
SOURCE_MOD += [
'embed/models/model_T2B1_layout.c',
]
elif TREZOR_MODEL in ('T3T1',):
SOURCE_MOD += [
'embed/models/model_T3T1_layout.c',
]
SOURCE_NANOPB = [
'vendor/nanopb/pb_common.c',
'vendor/nanopb/pb_decode.c',
@ -147,11 +129,6 @@ SOURCE_TREZORHAL = [
'embed/trezorhal/unix/secret.c',
]
if TREZOR_MODEL in ('R', 'T3T1'):
SOURCE_TREZORHAL += [
'embed/trezorhal/unix/optiga_hal.c',
]
SOURCE_UNIX = [
'embed/unix/profile.c',
]
@ -167,6 +144,8 @@ tools.add_font('BIG', FONT_BIG, CPPDEFINES_MOD, SOURCE_MOD)
env = Environment(ENV=os.environ, CFLAGS='%s -DCONFIDENTIAL= -DPRODUCTION=%s' % (ARGUMENTS.get('CFLAGS', ''), ARGUMENTS.get('PRODUCTION', '0')))
FEATURES_AVAILABLE = models.configure_board(TREZOR_MODEL, HW_REVISION, FEATURES_WANTED, env, CPPDEFINES_HAL, SOURCE_UNIX, PATH_HAL)
env.Replace(
CP='cp',
AS='as',
@ -179,22 +158,6 @@ env.Replace(
PYTHON='python',
MAKECMAKELISTS='$PYTHON tools/make_cmakelists.py', )
env.Replace(
TREZOR_MODEL=TREZOR_MODEL, )
if TREZOR_MODEL in ('T', 'R'):
CPU_MODEL = 'STM32F427xx'
elif TREZOR_MODEL in ('T3T1', ):
CPU_MODEL = 'STM32U585xx'
elif TREZOR_MODEL in ('DISC1', ):
CPU_MODEL = 'STM32F429xx'
elif TREZOR_MODEL in ('DISC2', ):
CPU_MODEL = 'STM32U5A9xx'
elif TREZOR_MODEL in ('1',):
CPU_MODEL = 'STM32F405xx'
else:
raise ValueError('Unknown Trezor model')
MODEL_IDENTIFIER = models.get_model_identifier(TREZOR_MODEL)
MODEL_AS_NUMBER = str(models.get_hw_model_as_number(MODEL_IDENTIFIER))
@ -209,7 +172,7 @@ ALLPATHS = ['embed/rust',
'embed/unix',
'embed/extmod/modtrezorui',
'vendor/nanopb',
] + CPPPATH_MOD,
] + CPPPATH_MOD + PATH_HAL,
env.Replace(
COPT=env.get('ENV').get('OPTIMIZE', '-Os'),
@ -225,18 +188,11 @@ env.Replace(
CPPDEFINES=[
'BOOTLOADER',
'TREZOR_EMULATOR',
CPU_MODEL,
'HW_MODEL=' + MODEL_AS_NUMBER,
'HW_REVISION=' + ('10' if TREZOR_MODEL in ('R',) else '0'),
'TREZOR_MODEL_'+TREZOR_MODEL,
'TREZOR_BOARD=\\"boards/board-unix.h\\"',
('FLASH_BIT_ACCESS', '1'),
('FLASH_BLOCK_WORDS', '1'),
'MCU_TYPE='+CPU_MODEL,
'PB_FIELD_16BIT',
'PB_ENCODE_ARRAYS_UNPACKED',
'PB_VALIDATE_UTF8',
] + CPPDEFINES_MOD,
] + CPPDEFINES_MOD + CPPDEFINES_HAL,
ASPPFLAGS='$CFLAGS $CCFLAGS', )
try:
@ -281,15 +237,9 @@ def cargo_build():
else:
features = ["model_tt"]
if TREZOR_MODEL in ('T', 'T3T1'):
features.append('touch')
features.append('backlight')
features.append('dma2d')
if TREZOR_MODEL in ('R', '1'):
features.append('button')
features.append("ui")
features.append("bootloader")
features.extend(FEATURES_AVAILABLE)
env.get("ENV")["BINDGEN_MACROS"] = tools.get_bindgen_defines(env.get("ALLDEFS"), ALLPATHS)

@ -7,11 +7,12 @@ import tools, models
BITCOIN_ONLY = ARGUMENTS.get('BITCOIN_ONLY', '0')
EVERYTHING = BITCOIN_ONLY != '1'
TREZOR_MODEL = ARGUMENTS.get('TREZOR_MODEL', 'T')
DMA2D = TREZOR_MODEL in ('T', 'T3T1')
OPTIGA = TREZOR_MODEL in ('R', 'T3T1')
CMAKELISTS = int(ARGUMENTS.get('CMAKELISTS', 0))
HW_REVISION ='emulator'
FEATURES_WANTED = ["input", "sd_card", "dma2d", "optiga", "sbu"]
if TREZOR_MODEL in ('DISC1', 'DISC2'):
# skip unix build
env = Environment()
@ -30,6 +31,8 @@ FEATURE_FLAGS = {
CCFLAGS_MOD = ''
CPPPATH_MOD = []
CPPDEFINES_HAL = []
PATH_HAL = []
CPPDEFINES_MOD = []
SOURCE_MOD = [
'vendor/micropython/extmod/vfs_posix_file.c',
@ -191,11 +194,6 @@ if FEATURE_FLAGS["AES_GCM"]:
SOURCE_MOD += [
'embed/extmod/modtrezorio/modtrezorio.c',
]
if TREZOR_MODEL in ('T', 'T3T1'):
SOURCE_MOD += [
'embed/extmod/modtrezorio/ff.c',
'embed/extmod/modtrezorio/ffunicode.c',
]
# modtrezorui
CPPPATH_MOD += [
@ -218,25 +216,6 @@ SOURCE_MOD += [
'vendor/micropython/lib/uzlib/tinflate.c',
]
if TREZOR_MODEL in ('1', ):
SOURCE_MOD += [
'embed/models/model_T1B1_layout.c',
]
elif TREZOR_MODEL in ('T', ):
SOURCE_MOD += [
'embed/models/model_T2T1_layout.c',
]
elif TREZOR_MODEL in ('R', ):
SOURCE_MOD += [
'embed/models/model_T2B1_layout.c',
]
elif TREZOR_MODEL in ('T3T1', ):
SOURCE_MOD += [
'embed/models/model_T3T1_layout.c',
]
CPPDEFINES_MOD += [
'TREZOR_UI2',
'TRANSLATIONS',
@ -411,23 +390,6 @@ SOURCE_UNIX = [
'vendor/micropython/ports/unix/input.c',
'vendor/micropython/ports/unix/unix_mphal.c',
]
if TREZOR_MODEL in ('T', 'R', 'T3T1'):
SOURCE_UNIX += [
'embed/trezorhal/unix/sbu.c',
]
if OPTIGA:
SOURCE_UNIX += [
'embed/trezorhal/unix/optiga.c',
]
if DMA2D:
CPPDEFINES_MOD += [
'USE_DMA2D',
]
SOURCE_UNIX += [
'embed/lib/dma2d_emul.c',
]
TRANSLATION_DATA = [
@ -453,6 +415,7 @@ else:
env = Environment(ENV=os.environ, CFLAGS='%s -DCONFIDENTIAL= -DPYOPT=%s -DBITCOIN_ONLY=%s %s' % (ARGUMENTS.get('CFLAGS', ''), PYOPT, BITCOIN_ONLY, STATIC))
FEATURES_AVAILABLE = models.configure_board(TREZOR_MODEL, HW_REVISION, FEATURES_WANTED, env, CPPDEFINES_HAL, SOURCE_UNIX, PATH_HAL)
if TREZOR_MODEL in ('T', 'T3T1'):
UI_LAYOUT = 'UI_LAYOUT_TT'
@ -463,14 +426,17 @@ elif TREZOR_MODEL in ('1', 'R'):
else:
raise ValueError('Unknown Trezor model')
if TREZOR_MODEL in ('T', 'T3T1'):
if 'sd_card' in FEATURES_AVAILABLE:
SDCARD = True
SOURCE_UNIX += [
'embed/trezorhal/unix/sdcard.c',
]
else:
SDCARD = False
if 'optiga' in FEATURES_AVAILABLE:
OPTIGA = True
else:
OPTIGA = False
env.Tool('micropython')
@ -517,21 +483,6 @@ if ARGUMENTS.get('TREZOR_MEMPERF', '0') == '1':
('MICROPY_TREZOR_MEMPERF', '\(1\)')
]
env.Replace(
TREZOR_MODEL=TREZOR_MODEL, )
if TREZOR_MODEL in ('T', 'R'):
CPU_MODEL = 'STM32F427xx'
elif TREZOR_MODEL in ('T3T1', ):
CPU_MODEL = 'STM32U585xx'
elif TREZOR_MODEL in ('DISC1', ):
CPU_MODEL = 'STM32F429xx'
elif TREZOR_MODEL in ('DISC2', ):
CPU_MODEL = 'STM32U5A9xx'
elif TREZOR_MODEL in ('1',):
CPU_MODEL = 'STM32F405xx'
else:
raise ValueError('Unknown Trezor model')
ALLPATHS=['.',
'embed/rust',
@ -544,7 +495,7 @@ ALLPATHS=['.',
'vendor/micropython',
'vendor/micropython/ports/unix',
'vendor/micropython/lib/mp-readline',
] + CPPPATH_MOD
] + CPPPATH_MOD + PATH_HAL
env.Replace(
CCFLAGS='$COPT '
@ -555,16 +506,11 @@ env.Replace(
LIBS=['m'],
CPPPATH=ALLPATHS,
CPPDEFINES=[
CPU_MODEL,
'TREZOR_EMULATOR',
'TREZOR_MODEL_'+TREZOR_MODEL,
'TREZOR_BOARD=\\"boards/board-unix.h\\"',
('FLASH_BIT_ACCESS', '1'),
('FLASH_BLOCK_WORDS', '1'),
'MCU_TYPE='+CPU_MODEL,
('MP_CONFIGFILE', '\\"embed/unix/mpconfigport.h\\"'),
UI_LAYOUT,
] + CPPDEFINES_MOD,
] + CPPDEFINES_MOD + CPPDEFINES_HAL,
ASPPFLAGS='$CFLAGS $CCFLAGS', )
try:
@ -790,7 +736,7 @@ if FROZEN:
source=SOURCE_PY,
source_dir=SOURCE_PY_DIR,
bitcoin_only=BITCOIN_ONLY,
backlight=TREZOR_MODEL in ('T', 'T3T1'),
backlight='backlight' in FEATURES_AVAILABLE,
optiga=OPTIGA,
ui_layout=UI_LAYOUT,
)
@ -863,14 +809,8 @@ def cargo_build():
features.append('translations')
if PYOPT == '0':
features.append('debug')
if DMA2D:
features.append('dma2d')
if TREZOR_MODEL in ('T', 'T3T1'):
features.append('touch')
features.append('sd_card')
if TREZOR_MODEL in ('R', '1'):
features.append('button')
features.extend(FEATURES_AVAILABLE)
env.get("ENV")["BINDGEN_MACROS"] = tools.get_bindgen_defines(env.get("ALLDEFS"), ALLPATHS)

@ -1,33 +0,0 @@
#ifndef _BOARD_UNIX_H
#define _BOARD_UNIX_H
#ifdef TREZOR_MODEL_T
#define USE_TOUCH 1
#define USE_SD_CARD 1
#define USE_SBU 1
#define USE_RGB_COLORS 1
#define USE_BACKLIGHT 1
#endif
#ifdef TREZOR_MODEL_T3T1
#define USE_TOUCH 1
#define USE_SD_CARD 1
#define USE_SBU 1
#define USE_RGB_COLORS 1
#define USE_BACKLIGHT 1
#define USE_OPTIGA 1
#endif
#ifdef TREZOR_MODEL_1
#define USE_BUTTON 1
#endif
#ifdef TREZOR_MODEL_R
#define USE_BUTTON 1
#define USE_SBU 1
#define USE_OPTIGA 1
#endif
#include "display-unix.h"
#endif //_BOARD_UNIX_H

@ -0,0 +1,24 @@
#ifndef BOARDS_T1B1_UNIX_H
#define BOARDS_T1B1_UNIX_H
#define USE_BUTTON 1
#define MAX_DISPLAY_RESX 128
#define MAX_DISPLAY_RESY 64
#define DISPLAY_RESX 128
#define DISPLAY_RESY 64
#define TREZOR_FONT_BPP 1
#define WINDOW_WIDTH 200
#define WINDOW_HEIGHT 340
#define TOUCH_OFFSET_X 36
#define TOUCH_OFFSET_Y 92
#define ORIENTATION_NS 1
#define BACKGROUND_FILE "background_1.h"
#define BACKGROUND_NAME background_1_jpg
#include "display-unix.h"
#endif // BOARDS_T1B1_UNIX_H

@ -0,0 +1,26 @@
#ifndef BOARDS_T2B1_UNIX_H
#define BOARDS_T2B1_UNIX_H
#define USE_BUTTON 1
#define USE_SBU 1
#define USE_OPTIGA 1
#define MAX_DISPLAY_RESX 128
#define MAX_DISPLAY_RESY 64
#define DISPLAY_RESX 128
#define DISPLAY_RESY 64
#define TREZOR_FONT_BPP 1
#define WINDOW_WIDTH 193
#define WINDOW_HEIGHT 339
#define TOUCH_OFFSET_X 32
#define TOUCH_OFFSET_Y 84
#define ORIENTATION_NS 1
#define BACKGROUND_FILE "background_T2B1.h"
#define BACKGROUND_NAME background_T2B1_jpg
#include "display-unix.h"
#endif // BOARDS_T2B1_UNIX_H

@ -0,0 +1,41 @@
#ifndef BOARDS_T2T1_UNIX_H
#define BOARDS_T2T1_UNIX_H
#define USE_TOUCH 1
#define USE_SD_CARD 1
#define USE_SBU 1
#define USE_RGB_COLORS 1
#define USE_BACKLIGHT 1
// ILI9341V, GC9307 and ST7789V drivers support 240px x 320px display resolution
#define MAX_DISPLAY_RESX 240
#define MAX_DISPLAY_RESY 320
#define DISPLAY_RESX 240
#define DISPLAY_RESY 240
#define TREZOR_FONT_BPP 4
#ifdef TREZOR_EMULATOR_RASPI
#define WINDOW_WIDTH 480
#define WINDOW_HEIGHT 320
#define TOUCH_OFFSET_X 110
#define TOUCH_OFFSET_Y 40
#define ORIENTATION_NSEW 1
#define BACKGROUND_FILE "background_raspi.h"
#define BACKGROUND_NAME background_raspi_jpg
#else
#define WINDOW_WIDTH 400
#define WINDOW_HEIGHT 600
#define TOUCH_OFFSET_X 80
#define TOUCH_OFFSET_Y 110
#define BACKGROUND_FILE "background_T.h"
#define BACKGROUND_NAME background_T_jpg
#endif
#include "display-unix.h"
#endif // BOARDS_T2T1_UNIX_H

@ -0,0 +1,29 @@
#ifndef BOARDS_T3T1_UNIX_H
#define BOARDS_T3T1_UNIX_H
#define USE_TOUCH 1
#define USE_SD_CARD 1
#define USE_SBU 1
#define USE_RGB_COLORS 1
#define USE_BACKLIGHT 1
#define USE_OPTIGA 1
#define MAX_DISPLAY_RESX 240
#define MAX_DISPLAY_RESY 240
#define DISPLAY_RESX 240
#define DISPLAY_RESY 240
#define TREZOR_FONT_BPP 4
#define WINDOW_WIDTH 400
#define WINDOW_HEIGHT 600
#define TOUCH_OFFSET_X 80
#define TOUCH_OFFSET_Y 110
#define ORIENTATION_NSEW 1
#define BACKGROUND_FILE "background_T.h"
#define BACKGROUND_NAME background_T_jpg
#include "display-unix.h"
#endif // BOARDS_T3T1_UNIX_H

@ -34,46 +34,9 @@
#include "display_interface.h"
#include "profile.h"
#define EMULATOR_BORDER 16
#if defined TREZOR_MODEL_T
#ifdef TREZOR_EMULATOR_RASPI
#define WINDOW_WIDTH 480
#define WINDOW_HEIGHT 320
#define TOUCH_OFFSET_X 110
#define TOUCH_OFFSET_Y 40
#else
#define WINDOW_WIDTH 400
#define WINDOW_HEIGHT 600
#define TOUCH_OFFSET_X 80
#define TOUCH_OFFSET_Y 110
#endif
#elif defined TREZOR_MODEL_1
#define WINDOW_WIDTH 200
#define WINDOW_HEIGHT 340
#define TOUCH_OFFSET_X 36
#define TOUCH_OFFSET_Y 92
#elif defined TREZOR_MODEL_R
#define WINDOW_WIDTH 193
#define WINDOW_HEIGHT 339
#define TOUCH_OFFSET_X 32
#define TOUCH_OFFSET_Y 84
#elif defined TREZOR_MODEL_T3T1
#include TREZOR_BOARD
#define WINDOW_WIDTH 400
#define WINDOW_HEIGHT 600
#define TOUCH_OFFSET_X 80
#define TOUCH_OFFSET_Y 110
#else
#error Unknown Trezor model
#endif
#define EMULATOR_BORDER 16
static SDL_Window *WINDOW;
static SDL_Renderer *RENDERER;
@ -107,7 +70,7 @@ static struct {
} PIXELWINDOW;
void display_pixeldata(pixel_color c) {
#if defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R
#if !defined USE_RGB_COLORS
// set to white if highest bits of all R, G, B values are set to 1
// bin(10000 100000 10000) = hex(0x8410)
// otherwise set to black
@ -202,26 +165,11 @@ void display_init(void) {
SDL_PumpEvents();
SDL_SetWindowSize(WINDOW, WINDOW_WIDTH, WINDOW_HEIGHT);
#endif
#ifdef TREZOR_EMULATOR_RASPI
#include "background_raspi.h"
#include BACKGROUND_FILE
#define CONCAT_LEN_HELPER(name) name##_len
#define CONCAT_LEN(name) CONCAT_LEN_HELPER(name)
BACKGROUND = IMG_LoadTexture_RW(
RENDERER, SDL_RWFromMem(background_raspi_jpg, background_raspi_jpg_len),
0);
#else
#if defined TREZOR_MODEL_T
#include "background_T.h"
BACKGROUND = IMG_LoadTexture_RW(
RENDERER, SDL_RWFromMem(background_T_jpg, background_T_jpg_len), 0);
#elif defined TREZOR_MODEL_1
#include "background_1.h"
BACKGROUND = IMG_LoadTexture_RW(
RENDERER, SDL_RWFromMem(background_1_jpg, background_1_jpg_len), 0);
#elif defined TREZOR_MODEL_R
#include "background_T2B1.h"
BACKGROUND = IMG_LoadTexture_RW(
RENDERER, SDL_RWFromMem(background_T2B1_png, background_T2B1_png_len), 0);
#endif
#endif
RENDERER, SDL_RWFromMem(BACKGROUND_NAME, CONCAT_LEN(BACKGROUND_NAME)), 0);
if (BACKGROUND) {
SDL_SetTextureBlendMode(BACKGROUND, SDL_BLENDMODE_NONE);
sdl_touch_offset_x = TOUCH_OFFSET_X;
@ -232,8 +180,8 @@ void display_init(void) {
sdl_touch_offset_x = EMULATOR_BORDER;
sdl_touch_offset_y = EMULATOR_BORDER;
}
#if defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R
// T1 and TR do not have backlight capabilities in hardware, so
#if !USE_BACKLIGHT
// some models do not have backlight capabilities in hardware, so
// setting its value here for emulator to avoid
// calling any `set_backlight` functions
DISPLAY_BACKLIGHT = 255;
@ -291,12 +239,12 @@ void display_refresh(void) {
int display_orientation(int degrees) {
if (degrees != DISPLAY_ORIENTATION) {
#if defined TREZOR_MODEL_T || defined TREZOR_MODEL_T3T1
#if defined ORIENTATION_NSEW
if (degrees == 0 || degrees == 90 || degrees == 180 || degrees == 270) {
#elif defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R
#elif defined ORIENTATION_NS
if (degrees == 0 || degrees == 180) {
#else
#error Unknown Trezor model
if (degrees == 0) {
#endif
DISPLAY_ORIENTATION = degrees;
display_refresh();
@ -308,7 +256,7 @@ int display_orientation(int degrees) {
int display_get_orientation(void) { return DISPLAY_ORIENTATION; }
int display_backlight(int val) {
#if defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R
#if !USE_BACKLIGHT
val = 255;
#endif
if (DISPLAY_BACKLIGHT != val && val >= 0 && val <= 255) {

@ -3,39 +3,6 @@
#include <stdint.h>
#ifdef TREZOR_MODEL_T
// ILI9341V, GC9307 and ST7789V drivers support 240px x 320px display resolution
#define MAX_DISPLAY_RESX 240
#define MAX_DISPLAY_RESY 320
#define DISPLAY_RESX 240
#define DISPLAY_RESY 240
#define TREZOR_FONT_BPP 4
#endif
#ifdef TREZOR_MODEL_R
#define MAX_DISPLAY_RESX 128
#define MAX_DISPLAY_RESY 64
#define DISPLAY_RESX 128
#define DISPLAY_RESY 64
#define TREZOR_FONT_BPP 1
#endif
#ifdef TREZOR_MODEL_T3T1
#define MAX_DISPLAY_RESX 240
#define MAX_DISPLAY_RESY 240
#define DISPLAY_RESX 240
#define DISPLAY_RESY 240
#define TREZOR_FONT_BPP 4
#endif
#ifdef TREZOR_MODEL_1
#define MAX_DISPLAY_RESX 128
#define MAX_DISPLAY_RESY 64
#define DISPLAY_RESX 128
#define DISPLAY_RESY 64
#define TREZOR_FONT_BPP 1
#endif
extern uint8_t *const DISPLAY_DATA_ADDRESS;
#endif //_DISPLAY_UNIX_H

@ -2,6 +2,7 @@ from __future__ import annotations
from typing import Optional
from .emulator import configure as emul
from .trezor_1 import configure
@ -13,4 +14,7 @@ def configure_board(
sources: list[str],
paths: list[str],
):
return configure(env, features_wanted, defines, sources, paths)
if revision == "emulator":
return emul(env, features_wanted, defines, sources, paths)
else:
return configure(env, features_wanted, defines, sources, paths)

@ -0,0 +1,33 @@
from __future__ import annotations
from .. import get_hw_model_as_number
def configure(
env: dict,
features_wanted: list[str],
defines: list[str | tuple[str, str]],
sources: list[str],
paths: list[str],
) -> list[str]:
board = "t1b1-unix.h"
hw_model = get_hw_model_as_number("T1B1")
hw_revision = 0
mcu = "STM32F405xx"
features = []
defines += [mcu]
defines += [f'TREZOR_BOARD=\\"boards/{board}\\"']
defines += [f"HW_MODEL={hw_model}"]
defines += [f"HW_REVISION={hw_revision}"]
defines += [f"MCU_TYPE={mcu}"]
defines += ["FLASH_BIT_ACCESS=1"]
defines += ["FLASH_BLOCK_WORDS=1"]
if "input" in features_wanted:
features.append("button")
sources += ["embed/models/model_T1B1_layout.c"]
return features

@ -2,6 +2,7 @@ from __future__ import annotations
from typing import Optional
from .emulator import configure as emul
from .trezor_r_v3 import configure as configure_r3
from .trezor_r_v4 import configure as configure_r4
from .trezor_r_v6 import configure as configure_r6
@ -18,7 +19,9 @@ def configure_board(
):
if revision is None:
revision = 10
if revision == 3:
if revision == "emulator":
return emul(env, features_wanted, defines, sources, paths)
elif revision == 3:
return configure_r3(env, features_wanted, defines, sources, paths)
elif revision == 4:
return configure_r4(env, features_wanted, defines, sources, paths)

@ -0,0 +1,42 @@
from __future__ import annotations
from .. import get_hw_model_as_number
def configure(
env: dict,
features_wanted: list[str],
defines: list[str | tuple[str, str]],
sources: list[str],
paths: list[str],
) -> list[str]:
board = "t2b1-unix.h"
hw_model = get_hw_model_as_number("T2B1")
hw_revision = 0
mcu = "STM32F427xx"
features = []
defines += [mcu]
defines += [f'TREZOR_BOARD=\\"boards/{board}\\"']
defines += [f"HW_MODEL={hw_model}"]
defines += [f"HW_REVISION={hw_revision}"]
defines += [f"MCU_TYPE={mcu}"]
defines += ["FLASH_BIT_ACCESS=1"]
defines += ["FLASH_BLOCK_WORDS=1"]
if "sbu" in features_wanted:
sources += ["embed/trezorhal/unix/sbu.c"]
if "optiga_hal" in features_wanted:
sources += ["embed/trezorhal/unix/optiga_hal.c"]
if "optiga" in features_wanted:
sources += ["embed/trezorhal/unix/optiga.c"]
if "input" in features_wanted:
features.append("button")
sources += ["embed/models/model_T2B1_layout.c"]
return features

@ -2,6 +2,7 @@ from __future__ import annotations
from typing import Optional
from .emulator import configure as emul
from .trezor_t import configure
@ -13,4 +14,7 @@ def configure_board(
sources: list[str],
paths: list[str],
):
return configure(env, features_wanted, defines, sources, paths)
if revision == "emulator":
return emul(env, features_wanted, defines, sources, paths)
else:
return configure(env, features_wanted, defines, sources, paths)

@ -0,0 +1,51 @@
from __future__ import annotations
from .. import get_hw_model_as_number
def configure(
env: dict,
features_wanted: list[str],
defines: list[str | tuple[str, str]],
sources: list[str],
paths: list[str],
) -> list[str]:
board = "t2t1-unix.h"
hw_model = get_hw_model_as_number("T2T1")
hw_revision = 0
mcu = "STM32F427xx"
features = []
defines += [mcu]
defines += [f'TREZOR_BOARD=\\"boards/{board}\\"']
defines += [f"HW_MODEL={hw_model}"]
defines += [f"HW_REVISION={hw_revision}"]
defines += [f"MCU_TYPE={mcu}"]
defines += ["FLASH_BIT_ACCESS=1"]
defines += ["FLASH_BLOCK_WORDS=1"]
if "dma2d" in features_wanted:
features.append("dma2d")
sources += ["embed/lib/dma2d_emul.c"]
defines += ["USE_DMA2D"]
if "sd_card" in features_wanted:
features.append("sd_card")
sources += [
"embed/trezorhal/unix/sdcard.c",
"embed/extmod/modtrezorio/ff.c",
"embed/extmod/modtrezorio/ffunicode.c",
]
if "sbu" in features_wanted:
sources += ["embed/trezorhal/unix/sbu.c"]
if "input" in features_wanted:
features.append("touch")
features.append("backlight")
sources += ["embed/models/model_T2T1_layout.c"]
return features

@ -2,6 +2,7 @@ from __future__ import annotations
from typing import Optional
from .emulator import configure as emul
from .trezor_t3t1_revE import configure as configure_revE
from .trezor_t3t1_v4 import configure as configure_v4
@ -16,7 +17,9 @@ def configure_board(
):
if revision is None:
revision = "E"
if revision == 4:
if revision == "emulator":
return emul(env, features_wanted, defines, sources, paths)
elif revision == 4:
return configure_v4(env, features_wanted, defines, sources, paths)
elif revision == "E":
return configure_revE(env, features_wanted, defines, sources, paths)

@ -0,0 +1,58 @@
from __future__ import annotations
from .. import get_hw_model_as_number
def configure(
env: dict,
features_wanted: list[str],
defines: list[str | tuple[str, str]],
sources: list[str],
paths: list[str],
) -> list[str]:
board = "t3t1-unix.h"
hw_model = get_hw_model_as_number("T3T1")
hw_revision = 0
mcu = "STM32FU585xx"
features = []
defines += [mcu]
defines += [f'TREZOR_BOARD=\\"boards/{board}\\"']
defines += [f"HW_MODEL={hw_model}"]
defines += [f"HW_REVISION={hw_revision}"]
defines += [f"MCU_TYPE={mcu}"]
# todo change to blockwise flash when implemented in unix
defines += ["FLASH_BIT_ACCESS=1"]
defines += ["FLASH_BLOCK_WORDS=1"]
if "dma2d" in features_wanted:
features.append("dma2d")
sources += ["embed/lib/dma2d_emul.c"]
defines += ["USE_DMA2D"]
if "sd_card" in features_wanted:
features.append("sd_card")
sources += [
"embed/trezorhal/unix/sdcard.c",
"embed/extmod/modtrezorio/ff.c",
"embed/extmod/modtrezorio/ffunicode.c",
]
if "sbu" in features_wanted:
sources += ["embed/trezorhal/unix/sbu.c"]
if "optiga_hal" in features_wanted:
sources += ["embed/trezorhal/unix/optiga_hal.c"]
if "optiga" in features_wanted:
sources += ["embed/trezorhal/unix/optiga.c"]
if "input" in features_wanted:
features.append("touch")
features.append("backlight")
sources += ["embed/models/model_T3T1_layout.c"]
return features
Loading…
Cancel
Save