Skip to content

Commit c23983f

Browse files
committed
feat(core): introduce DBG_CONSOLE build argument
[no changelog]
1 parent 2e5fd0f commit c23983f

File tree

6 files changed

+77
-11
lines changed

6 files changed

+77
-11
lines changed

core/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ QUIET_MODE ?= 0
4949
TREZOR_DISABLE_ANIMATION ?= $(if $(filter 0,$(PYOPT)),1,0)
5050
STORAGE_INSECURE_TESTING_MODE ?= 0
5151
UI_PERFORMANCE_OVERLAY ?= 0
52+
DBG_CONSOLE ?=
5253

5354
# If set, VCP writes will be blocking, in order to allow reliable debug data transmission over VCP.
5455
# Disabled by default, to prevent debug firmware from getting stuck while writing log messages (if the host is not reading them).
@@ -145,7 +146,8 @@ SCONS_VARS = \
145146
TREZOR_MEMPERF="$(TREZOR_MEMPERF)" \
146147
TREZOR_MODEL="$(TREZOR_MODEL)" \
147148
UI_PERFORMANCE_OVERLAY="$(UI_PERFORMANCE_OVERLAY)" \
148-
BLOCK_ON_VCP="$(BLOCK_ON_VCP)"
149+
BLOCK_ON_VCP="$(BLOCK_ON_VCP)" \
150+
DBG_CONSOLE="$(DBG_CONSOLE)"
149151

150152
SCONS_OPTS = -Q -j $(JOBS)
151153
ifeq ($(QUIET_MODE),1)

core/SConscript.boardloader

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import tools, models
66
TREZOR_MODEL = ARGUMENTS.get('TREZOR_MODEL', 'T2T1')
77
CMAKELISTS = int(ARGUMENTS.get('CMAKELISTS', 0))
88
HW_REVISION = ARGUMENTS.get('HW_REVISION', None)
9+
DBG_CONSOLE = ARGUMENTS.get('DBG_CONSOLE', '')
910

1011
FEATURES_WANTED = [
1112
"boot_ucb",
@@ -26,6 +27,17 @@ CPPDEFINES_HAL = []
2627
SOURCE_HAL = []
2728
PATH_HAL = []
2829

30+
if DBG_CONSOLE == "SWO":
31+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SWO"]
32+
elif DBG_CONSOLE == "SYSTEM_VIEW":
33+
FEATURES_WANTED += ["system_view"]
34+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SYSTEM_VIEW"]
35+
elif DBG_CONSOLE == "" or DBG_CONSOLE == "VCP":
36+
pass
37+
else:
38+
raise RuntimeError("DBG_CONSOLE argument is invalid")
39+
40+
2941
env = Environment(ENV=os.environ,
3042
CFLAGS='%s -DPRODUCTION=%s' % (ARGUMENTS.get('CFLAGS', ''), ARGUMENTS.get('PRODUCTION', '0')),
3143
CPPDEFINES_IMPLICIT=[],

core/SConscript.bootloader

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ BOOTLOADER_QA = ARGUMENTS.get('BOOTLOADER_QA', '0') == '1'
1010
PRODUCTION = 0 if BOOTLOADER_QA else ARGUMENTS.get('PRODUCTION', '0') == '1'
1111
HW_REVISION = ARGUMENTS.get('HW_REVISION', None)
1212
UI_PERFORMANCE_OVERLAY = ARGUMENTS.get('UI_PERFORMANCE_OVERLAY', '0') == '1'
13+
DBG_CONSOLE = ARGUMENTS.get('DBG_CONSOLE', '')
1314

1415
FEATURES_WANTED = [
1516
"ble",
@@ -43,6 +44,20 @@ SOURCE_HAL = []
4344
PATH_HAL = []
4445
RUST_UI_FEATURES = []
4546

47+
if DBG_CONSOLE == "VCP":
48+
FEATURES_WANTED += ["usb_iface_vcp"]
49+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_VCP"]
50+
elif DBG_CONSOLE == "SWO":
51+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SWO"]
52+
elif DBG_CONSOLE == "SYSTEM_VIEW":
53+
FEATURES_WANTED += ["system_view"]
54+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SYSTEM_VIEW"]
55+
elif DBG_CONSOLE == "":
56+
pass
57+
else:
58+
raise RuntimeError("DBG_CONSOLE argument is invalid")
59+
60+
4661
env = Environment(
4762
ENV=os.environ,
4863
CFLAGS=f"{ARGUMENTS.get('CFLAGS', '')} -DPRODUCTION={int(PRODUCTION)} -DBOOTLOADER_QA={int(BOOTLOADER_QA)}",

core/SConscript.kernel

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ PYOPT = ARGUMENTS.get('PYOPT', '1')
1616
DISABLE_OPTIGA = ARGUMENTS.get('DISABLE_OPTIGA', '0') == '1'
1717
HW_REVISION = ARGUMENTS.get('HW_REVISION', None)
1818
THP = ARGUMENTS.get('THP', '0') == '1' # Trezor-Host Protocol
19+
DBG_CONSOLE = ARGUMENTS.get('DBG_CONSOLE', '')
1920

2021
STORAGE_INSECURE_TESTING_MODE = ARGUMENTS.get('STORAGE_INSECURE_TESTING_MODE', '0') == '1'
2122
if STORAGE_INSECURE_TESTING_MODE and PRODUCTION:
@@ -24,6 +25,15 @@ if STORAGE_INSECURE_TESTING_MODE:
2425
DISABLE_OPTIGA = True
2526
PYOPT = "0"
2627

28+
CCFLAGS_MOD = ''
29+
CPPPATH_MOD = []
30+
CPPDEFINES_MOD = []
31+
SOURCE_MOD = []
32+
SOURCE_MOD_CRYPTO = []
33+
CPPDEFINES_HAL = []
34+
SOURCE_HAL = []
35+
PATH_HAL = []
36+
2737
FEATURE_FLAGS = {
2838
"RDI": True,
2939
"SECP256K1_ZKP": True, # required for trezor.crypto.curve.bip340 (BIP340/Taproot)
@@ -61,8 +71,22 @@ if BITCOIN_ONLY == '0':
6171
if PYOPT == '0':
6272
FEATURES_WANTED += [
6373
"usb_iface_debug",
64-
"usb_iface_vcp",
6574
]
75+
DBG_CONSOLE = DBG_CONSOLE or "VCP"
76+
77+
if DBG_CONSOLE == "VCP":
78+
FEATURES_WANTED += ["usb_iface_vcp"]
79+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_VCP"]
80+
elif DBG_CONSOLE == "SWO":
81+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SWO"]
82+
elif DBG_CONSOLE == "SYSTEM_VIEW":
83+
FEATURES_WANTED += ["system_view"]
84+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SYSTEM_VIEW"]
85+
elif DBG_CONSOLE == "":
86+
pass
87+
else:
88+
raise RuntimeError("DBG_CONSOLE argument is invalid")
89+
6690

6791
if not TREZOR_MODEL in ['T3W1', 'D002']:
6892
FEATURES_WANTED += ["secure_mode"]
@@ -73,15 +97,6 @@ if DISABLE_OPTIGA:
7397
raise RuntimeError("DISABLE_OPTIGA requires non-production build")
7498
FEATURES_WANTED.remove("optiga")
7599

76-
CCFLAGS_MOD = ''
77-
CPPPATH_MOD = []
78-
CPPDEFINES_MOD = []
79-
SOURCE_MOD = []
80-
SOURCE_MOD_CRYPTO = []
81-
CPPDEFINES_HAL = []
82-
SOURCE_HAL = []
83-
PATH_HAL = []
84-
85100
FROZEN = True
86101

87102
# modtrezorcrypto

core/SConscript.prodtest

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ PRODUCTION = ARGUMENTS.get('PRODUCTION', '0') == '1'
99
BOOTLOADER_DEVEL = ARGUMENTS.get('BOOTLOADER_DEVEL', '0') == '1'
1010
HW_REVISION = ARGUMENTS.get('HW_REVISION', None)
1111
UI_PERFORMANCE_OVERLAY = ARGUMENTS.get('UI_PERFORMANCE_OVERLAY', '0') == '1'
12+
DBG_CONSOLE = ARGUMENTS.get('DBG_CONSOLE', '')
1213

1314
FEATURE_FLAGS = {
1415
"AES_GCM": True,
@@ -58,6 +59,16 @@ SOURCE_HAL = []
5859
PATH_HAL = []
5960
RUST_UI_FEATURES = []
6061

62+
if DBG_CONSOLE == "SWO":
63+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SWO"]
64+
elif DBG_CONSOLE == "SYSTEM_VIEW":
65+
FEATURES_WANTED += ["system_view"]
66+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SYSTEM_VIEW"]
67+
elif DBG_CONSOLE == "" or DBG_CONSOLE == "VCP":
68+
pass
69+
else:
70+
raise RuntimeError("DBG_CONSOLE argument is invalid")
71+
6172
env = Environment(
6273
ENV=os.environ,
6374
CFLAGS='%s -DPRODUCTION=%s' % (ARGUMENTS.get('CFLAGS', ''), ARGUMENTS.get('PRODUCTION', '0')),

core/SConscript.secmon

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ PYOPT = ARGUMENTS.get('PYOPT', '1')
1616
DISABLE_OPTIGA = ARGUMENTS.get('DISABLE_OPTIGA', '0') == '1'
1717
HW_REVISION = ARGUMENTS.get('HW_REVISION', None)
1818
THP = ARGUMENTS.get('THP', '0') == '1' # Trezor-Host Protocol
19+
DBG_CONSOLE = ARGUMENTS.get('DBG_CONSOLE', '')
1920

2021
STORAGE_INSECURE_TESTING_MODE = ARGUMENTS.get('STORAGE_INSECURE_TESTING_MODE', '0') == '1'
2122
if STORAGE_INSECURE_TESTING_MODE and PRODUCTION:
@@ -58,6 +59,16 @@ CPPDEFINES_HAL = []
5859
SOURCE_HAL = []
5960
PATH_HAL = []
6061

62+
if DBG_CONSOLE == "SWO":
63+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SWO"]
64+
elif DBG_CONSOLE == "SYSTEM_VIEW":
65+
FEATURES_WANTED += ["system_view"]
66+
CPPDEFINES_MOD += ["USE_DBG_CONSOLE_SYSTEM_VIEW"]
67+
elif DBG_CONSOLE == "" or DBG_CONSOLE == "VCP":
68+
pass
69+
else:
70+
raise RuntimeError("DBG_CONSOLE argument is invalid")
71+
6172
FROZEN = True
6273

6374
env = Environment(

0 commit comments

Comments
 (0)