fixup! feat(core): add hardware support for T3W1

tychovrahe/T3W1/devkit1_with_ble_sq3
tychovrahe 1 year ago
parent 4676123083
commit fcb579bfae

@ -140,7 +140,7 @@ env.Replace(
env.Replace(
TREZOR_MODEL=TREZOR_MODEL, )
if TREZOR_MODEL in ('T', 'R'):
if TREZOR_MODEL in ('T', 'R', 'T3W1'):
CPU_MODEL = 'STM32F427xx'
elif TREZOR_MODEL in ('DISC1', ):
CPU_MODEL = 'STM32F429xx'

@ -576,7 +576,7 @@ if FROZEN:
SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/*.py',
exclude=[
SOURCE_PY_DIR + 'trezor/sdcard.py',
] if TREZOR_MODEL not in ('T',) else []
] if "sd_card" not in FEATURES_AVAILABLE else []
))
SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/crypto/*.py'))
SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/*.py'))

@ -447,7 +447,7 @@ if ARGUMENTS.get('TREZOR_MEMPERF', '0') == '1':
env.Replace(
TREZOR_MODEL=TREZOR_MODEL, )
if TREZOR_MODEL in ('T', 'R'):
if TREZOR_MODEL in ('T', 'R', 'T3W1'):
CPU_MODEL = 'STM32F427xx'
elif TREZOR_MODEL in ('DISC1', ):
CPU_MODEL = 'STM32F429xx'

@ -7,6 +7,8 @@
#include "model_T2T1.h"
#elif defined TREZOR_MODEL_R
#include "model_T2B1.h"
#elif defined TREZOR_MODEL_T3W1
#include "model_T3W1.h"
#elif defined TREZOR_MODEL_DISC1
#include "model_D001.h"
#else

@ -0,0 +1,21 @@
#ifndef MODELS_MODEL_T3W1_H_
#define MODELS_MODEL_T3W1_H_
#define MODEL_NAME "T3W1"
#define MODEL_INTERNAL_NAME "T3W1"
#define MODEL_INTERNAL_NAME_TOKEN T3W1
#define MODEL_NAME_QSTR MP_QSTR_T3W1
#define MODEL_INTERNAL_NAME_QSTR MP_QSTR_T3W1
/*** Using DEV KEYS temorarily ***/
#define MODEL_BOARDLOADER_KEYS \
(const uint8_t *)"\xdb\x99\x5f\xe2\x51\x69\xd1\x41\xca\xb9\xbb\xba\x92\xba\xa0\x1f\x9f\x2e\x1e\xce\x7d\xf4\xcb\x2a\xc0\x51\x90\xf3\x7f\xcc\x1f\x9d", \
(const uint8_t *)"\x21\x52\xf8\xd1\x9b\x79\x1d\x24\x45\x32\x42\xe1\x5f\x2e\xab\x6c\xb7\xcf\xfa\x7b\x6a\x5e\xd3\x00\x97\x96\x0e\x06\x98\x81\xdb\x12", \
(const uint8_t *)"\x22\xfc\x29\x77\x92\xf0\xb6\xff\xc0\xbf\xcf\xdb\x7e\xdb\x0c\x0a\xa1\x4e\x02\x5a\x36\x5e\xc0\xe3\x42\xe8\x6e\x38\x29\xcb\x74\xb6",
#define MODEL_BOOTLOADER_KEYS \
(const uint8_t *)"\xd7\x59\x79\x3b\xbc\x13\xa2\x81\x9a\x82\x7c\x76\xad\xb6\xfb\xa8\xa4\x9a\xee\x00\x7f\x49\xf2\xd0\x99\x2d\x99\xb8\x25\xad\x2c\x48", \
(const uint8_t *)"\x63\x55\x69\x1c\x17\x8a\x8f\xf9\x10\x07\xa7\x47\x8a\xfb\x95\x5e\xf7\x35\x2c\x63\xe7\xb2\x57\x03\x98\x4c\xf7\x8b\x26\xe2\x1a\x56", \
(const uint8_t *)"\xee\x93\xa4\xf6\x6f\x8d\x16\xb8\x19\xbb\x9b\xeb\x9f\xfc\xcd\xfc\xdc\x14\x12\xe8\x7f\xee\x6a\x32\x4c\x2a\x99\xa1\xe0\xe6\x71\x48",
#endif

@ -8,6 +8,7 @@
#define USE_I2C 1
#define USE_TOUCH 1
#define USE_SBU 1
#define USE_RGB_COLORS 1
#define USE_DISP_I8080_16BIT_DW 1
#define DISPLAY_PANEL_INIT_SEQ lhs200kb_if21_init_seq
@ -17,15 +18,18 @@
#include "displays/panels/LHS200KB-IF21.h"
#include "displays/st7789v.h"
#define I2C_CLK_ENA __HAL_RCC_I2C2_CLK_ENABLE
#define I2C_CLK_DIS __HAL_RCC_I2C2_CLK_DISABLE
#define I2C_FORCE_RESET __HAL_RCC_I2C2_FORCE_RESET
#define I2C_RELEASE_RESET __HAL_RCC_I2C2_RELEASE_RESET
#define I2C_INSTANCE I2C2
#define I2C_AF GPIO_AF4_I2C2
#define I2C_PORT GPIOB
#define I2C_SCL_PIN GPIO_PIN_10
#define I2C_SDA_PIN GPIO_PIN_11
#define I2C_INSTANCE_CLK_EN __HAL_RCC_I2C2_CLK_ENABLE
#define I2C_INSTANCE_CLK_DIS __HAL_RCC_I2C2_CLK_DISABLE
#define I2C_INSTANCE_PIN_AF GPIO_AF4_I2C2
#define I2C_INSTANCE_SDA_PORT GPIOB
#define I2C_INSTANCE_SDA_PIN GPIO_PIN_11
#define I2C_INSTANCE_SDA_CLK_EN __HAL_RCC_GPIOB_CLK_ENABLE
#define I2C_INSTANCE_SCL_PORT GPIOB
#define I2C_INSTANCE_SCL_PIN GPIO_PIN_10
#define I2C_INSTANCE_SCL_CLK_EN __HAL_RCC_GPIOB_CLK_ENABLE
#define I2C_INSTANCE_FORCE_RESET __HAL_RCC_I2C2_FORCE_RESET
#define I2C_INSTANCE_RELEASE_RESET __HAL_RCC_I2C2_RELEASE_RESET
#define TOUCH_RST_PORT GPIOC
#define TOUCH_RST_PIN GPIO_PIN_5

@ -8,6 +8,13 @@
#define USE_RGB_COLORS 1
#endif
#ifdef TREZOR_MODEL_T3W1
#define USE_TOUCH 1
#define USE_SD_CARD 1
#define USE_SBU 1
#define USE_RGB_COLORS 1
#endif
#ifdef TREZOR_MODEL_1
#define USE_BUTTON 1
#endif
@ -19,10 +26,5 @@
#include "display-unix.h"
#ifdef TREZOR_MODEL_R
#define USE_BUTTON 1
#elif TREZOR_MODEL_T
#define USE_TOUCH 1
#endif
#endif //_BOARD_UNIX_H

@ -0,0 +1,19 @@
{
"header_len": 4608,
"text": "UNSAFE, DO NOT USE!",
"hw_model": "T3W1",
"expiry": 0,
"version": [0, 1],
"sig_m": 2,
"trust": {
"show_vendor_string": true,
"require_user_click": true,
"red_background": true,
"delay": 1
},
"pubkeys": [
"e28a8970753332bd72fef413e6b0b2ef1b4aadda7aa2c141f233712a6876b351",
"d4eec1869fb1b8a4e817516ad5a931557cb56805c3eb16e8f3a803d647df7869",
"772c8a442b7db06e166cfbc1ccbcbcde6f3eba76a4e98ef3ffc519502237d6ef"
]
}

@ -5,7 +5,7 @@ cd $(dirname $0)
BUILDVH=$(realpath ../../tools/build_vendorheader)
BINCTL=$(realpath ../../tools/headertool.py)
MODELS=(T2T1 T2B1 D001)
MODELS=(T2T1 T2B1 D001 T3W1)
for MODEL in ${MODELS[@]}; do
cd $MODEL

@ -176,7 +176,7 @@ if __debug__:
debug_events.last_event += 1
# TT click on specific coordinates, with possible hold
if x is not None and y is not None and utils.MODEL in ("T", "DISC1"):
if x is not None and y is not None and utils.MODEL in ("T", "T3W1", "DISC1"):
click_chan.publish((debug_events.last_event, x, y, msg.hold_ms))
# TR press specific button
elif msg.physical_button is not None and utils.MODEL in ("R",):

@ -1,6 +1,6 @@
from trezor import utils
if utils.MODEL in ("T", "DISC1"):
if utils.MODEL in ("T", "T3W1", "DISC1"):
from .tt_v2.fido import * # noqa: F401,F403
elif utils.MODEL in ("R",):
from .tr.fido import * # noqa: F401,F403

@ -1,6 +1,6 @@
from trezor import utils
if utils.MODEL in ("T", "DISC1"):
if utils.MODEL in ("T", "T3W1", "DISC1"):
from .tt_v2.homescreen import * # noqa: F401,F403
elif utils.MODEL in ("R",):
from .tr.homescreen import * # noqa: F401,F403

@ -1,6 +1,6 @@
from trezor import utils
if utils.MODEL in ("T", "DISC1"):
if utils.MODEL in ("T", "T3W1", "DISC1"):
from .tt_v2.progress import * # noqa: F401,F403
elif utils.MODEL in ("R",):
from .tr.progress import * # noqa: F401,F403

@ -1,6 +1,6 @@
from trezor import utils
if utils.MODEL in ("T", "DISC1"):
if utils.MODEL in ("T", "T3W1", "DISC1"):
from .tt_v2.recovery import * # noqa: F401,F403
elif utils.MODEL in ("R",):
from .tr.recovery import * # noqa: F401,F403

@ -1,6 +1,6 @@
from trezor import utils
if utils.MODEL in ("T", "DISC1"):
if utils.MODEL in ("T", "T3W1", "DISC1"):
from .tt_v2.reset import * # noqa: F401,F403
elif utils.MODEL in ("R",):
from .tr.reset import * # noqa: F401,F403

@ -27,6 +27,7 @@ class Model(Enum):
T = b"T2T1"
R = b"T2B1"
DISC1 = b"D001"
T3W1 = b"T3W1"
@classmethod
def from_hw_model(cls, hw_model: t.Union["Self", bytes]) -> "Self":
@ -201,15 +202,42 @@ TREZOR_R = ModelKeys(
firmware_sigs_needed=-1,
)
TREZOR_T3W1 = ModelKeys(
production=False,
boardloader_keys=[
bytes.fromhex(key)
for key in (
"db995fe25169d141cab9bbba92baa01f9f2e1ece7df4cb2ac05190f37fcc1f9d",
"2152f8d19b791d24453242e15f2eab6cb7cffa7b6a5ed30097960e069881db12",
"22fc297792f0b6ffc0bfcfdb7edb0c0aa14e025a365ec0e342e86e3829cb74b6",
)
],
boardloader_sigs_needed=2,
bootloader_keys=[
bytes.fromhex(key)
for key in (
"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48",
"6355691c178a8ff91007a7478afb955ef7352c63e7b25703984cf78b26e21a56",
"ee93a4f66f8d16b819bb9beb9ffccdfcdc1412e87fee6a324c2a99a1e0e67148",
)
],
bootloader_sigs_needed=2,
firmware_keys=(),
firmware_sigs_needed=-1,
)
TREZOR_R_DEV = TREZOR_T_DEV
DISC1 = TREZOR_T_DEV
DISC1_DEV = TREZOR_T_DEV
TREZOR_T3W1_DEV = TREZOR_T_DEV
MODEL_MAP = {
Model.ONE: TREZOR_ONE_V3,
Model.T: TREZOR_T,
Model.R: TREZOR_R,
Model.DISC1: DISC1,
Model.T3W1: TREZOR_T3W1,
}
MODEL_MAP_DEV = {
@ -217,4 +245,5 @@ MODEL_MAP_DEV = {
Model.T: TREZOR_T_DEV,
Model.R: TREZOR_R_DEV,
Model.DISC1: DISC1_DEV,
Model.T3W1: TREZOR_T3W1_DEV,
}

Loading…
Cancel
Save