1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-03-03 16:56:07 +00:00

chore(core): use trezor-core-tools in scripts

This commit is contained in:
matejcik 2024-07-31 17:40:17 +02:00 committed by matejcik
parent 4208707088
commit 6ae96868df
8 changed files with 39 additions and 46 deletions

View File

@ -46,66 +46,59 @@ OPENOCD_TRANSPORT ?= hla_swd
ifeq ($(TREZOR_MODEL), 1) ifeq ($(TREZOR_MODEL), 1)
MCU = STM32F2 MCU = STM32F2
LAYOUT_FILE = embed/models/T1B1/model_T1B1.h
OPENOCD_TARGET = target/stm32f2x.cfg OPENOCD_TARGET = target/stm32f2x.cfg
else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),T)) else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),T))
MCU = STM32F4 MCU = STM32F4
LAYOUT_FILE = embed/models/T2T1/model_T2T1.h
OPENOCD_TARGET = target/stm32f4x.cfg OPENOCD_TARGET = target/stm32f4x.cfg
MODEL_FEATURE = model_tt MODEL_FEATURE = model_tt
else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),R)) else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),R))
MCU = STM32F4 MCU = STM32F4
LAYOUT_FILE = embed/models/T2B1/model_T2B1.h
OPENOCD_TARGET = target/stm32f4x.cfg OPENOCD_TARGET = target/stm32f4x.cfg
MODEL_FEATURE = model_tr MODEL_FEATURE = model_tr
else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),T3T1)) else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),T3T1))
MCU = STM32U5 MCU = STM32U5
OPENOCD_TARGET = target/stm32u5x.cfg OPENOCD_TARGET = target/stm32u5x.cfg
LAYOUT_FILE = embed/models/T3T1/model_T3T1.h
MODEL_FEATURE = model_mercury MODEL_FEATURE = model_mercury
else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),T3B1)) else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),T3B1))
MCU = STM32U5 MCU = STM32U5
OPENOCD_TARGET = target/stm32u5x.cfg OPENOCD_TARGET = target/stm32u5x.cfg
LAYOUT_FILE = embed/models/T3B1/model_T3B1.h
MODEL_FEATURE = model_tr MODEL_FEATURE = model_tr
else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),DISC1)) else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),DISC1))
MCU = STM32F4 MCU = STM32F4
LAYOUT_FILE = embed/models/D001/model_D001.h
OPENOCD_TARGET = target/stm32f4x.cfg OPENOCD_TARGET = target/stm32f4x.cfg
else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),DISC2)) else ifeq ($(TREZOR_MODEL),$(filter $(TREZOR_MODEL),DISC2))
MCU = STM32U5 MCU = STM32U5
LAYOUT_FILE = embed/models/D002/model_D002.h
OPENOCD_TARGET = target/stm32u5x.cfg OPENOCD_TARGET = target/stm32u5x.cfg
else else
$(error Unknown TREZOR_MODEL: $(TREZOR_MODEL)) $(error Unknown TREZOR_MODEL: $(TREZOR_MODEL))
endif endif
FLASH_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FLASH_START) FLASH_START = $(shell layout_parser ${TREZOR_MODEL} FLASH_START)
BOARDLOADER_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} BOARDLOADER_START) BOARDLOADER_START = $(shell layout_parser ${TREZOR_MODEL} BOARDLOADER_START)
BOOTLOADER_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} BOOTLOADER_START) BOOTLOADER_START = $(shell layout_parser ${TREZOR_MODEL} BOOTLOADER_START)
FIRMWARE_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_START) FIRMWARE_START = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_START)
FIRMWARE_P2_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_P2_START) FIRMWARE_P2_START = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_P2_START)
STORAGE_1_OFFSET = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} STORAGE_1_OFFSET) STORAGE_1_OFFSET = $(shell layout_parser ${TREZOR_MODEL} STORAGE_1_OFFSET)
STORAGE_2_OFFSET = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} STORAGE_2_OFFSET) STORAGE_2_OFFSET = $(shell layout_parser ${TREZOR_MODEL} STORAGE_2_OFFSET)
STORAGE_SIZE = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} NORCOW_SECTOR_SIZE) STORAGE_SIZE = $(shell layout_parser ${TREZOR_MODEL} NORCOW_SECTOR_SIZE)
BOARDLOADER_MAXSIZE = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} BOARDLOADER_IMAGE_MAXSIZE) BOARDLOADER_MAXSIZE = $(shell layout_parser ${TREZOR_MODEL} BOARDLOADER_IMAGE_MAXSIZE)
BOOTLOADER_MAXSIZE = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} BOOTLOADER_IMAGE_MAXSIZE) BOOTLOADER_MAXSIZE = $(shell layout_parser ${TREZOR_MODEL} BOOTLOADER_IMAGE_MAXSIZE)
FIRMWARE_MAXSIZE = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_IMAGE_MAXSIZE) FIRMWARE_MAXSIZE = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_IMAGE_MAXSIZE)
FIRMWARE_P1_MAXSIZE = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_P1_IMAGE_MAXSIZE) FIRMWARE_P1_MAXSIZE = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_P1_IMAGE_MAXSIZE)
FIRMWARE_P2_MAXSIZE = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_P2_IMAGE_MAXSIZE) FIRMWARE_P2_MAXSIZE = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_P2_IMAGE_MAXSIZE)
BOARDLOADER_SECTOR_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} BOARDLOADER_SECTOR_START) BOARDLOADER_SECTOR_START = $(shell layout_parser ${TREZOR_MODEL} BOARDLOADER_SECTOR_START)
BOARDLOADER_SECTOR_END = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} BOARDLOADER_SECTOR_END) BOARDLOADER_SECTOR_END = $(shell layout_parser ${TREZOR_MODEL} BOARDLOADER_SECTOR_END)
BOOTLOADER_SECTOR_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} BOOTLOADER_SECTOR_START) BOOTLOADER_SECTOR_START = $(shell layout_parser ${TREZOR_MODEL} BOOTLOADER_SECTOR_START)
BOOTLOADER_SECTOR_END = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} BOOTLOADER_SECTOR_END) BOOTLOADER_SECTOR_END = $(shell layout_parser ${TREZOR_MODEL} BOOTLOADER_SECTOR_END)
FIRMWARE_SECTOR_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_SECTOR_START) FIRMWARE_SECTOR_START = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_SECTOR_START)
FIRMWARE_SECTOR_END = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_SECTOR_END) FIRMWARE_SECTOR_END = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_SECTOR_END)
FIRMWARE_P2_SECTOR_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_P2_SECTOR_START) FIRMWARE_P2_SECTOR_START = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_P2_SECTOR_START)
FIRMWARE_P2_SECTOR_END = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} FIRMWARE_P2_SECTOR_END) FIRMWARE_P2_SECTOR_END = $(shell layout_parser ${TREZOR_MODEL} FIRMWARE_P2_SECTOR_END)
STORAGE_1_SECTOR_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} STORAGE_1_SECTOR_START) STORAGE_1_SECTOR_START = $(shell layout_parser ${TREZOR_MODEL} STORAGE_1_SECTOR_START)
STORAGE_1_SECTOR_END = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} STORAGE_1_SECTOR_END) STORAGE_1_SECTOR_END = $(shell layout_parser ${TREZOR_MODEL} STORAGE_1_SECTOR_END)
STORAGE_2_SECTOR_START = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} STORAGE_2_SECTOR_START) STORAGE_2_SECTOR_START = $(shell layout_parser ${TREZOR_MODEL} STORAGE_2_SECTOR_START)
STORAGE_2_SECTOR_END = $(shell python ./tools/layout_parser.py ${LAYOUT_FILE} STORAGE_2_SECTOR_END) STORAGE_2_SECTOR_END = $(shell layout_parser ${TREZOR_MODEL} STORAGE_2_SECTOR_END)
OPENOCD = openocd -f interface/$(OPENOCD_INTERFACE).cfg -c "transport select $(OPENOCD_TRANSPORT)" -f $(OPENOCD_TARGET) OPENOCD = openocd -f interface/$(OPENOCD_INTERFACE).cfg -c "transport select $(OPENOCD_TRANSPORT)" -f $(OPENOCD_TARGET)
@ -439,8 +432,8 @@ sizecheck: ## check sizes of binary files
test $(FIRMWARE_MAXSIZE) -ge $(shell wc -c < $(FIRMWARE_BUILD_DIR)/firmware.bin) test $(FIRMWARE_MAXSIZE) -ge $(shell wc -c < $(FIRMWARE_BUILD_DIR)/firmware.bin)
combine: ## combine boardloader + bootloader + prodtest into one combined image combine: ## combine boardloader + bootloader + prodtest into one combined image
./tools/combine_firmware \ combine_firmware \
$(LAYOUT_FILE) \ $(TREZOR_MODEL) \
$(PRODTEST_BUILD_DIR)/combined.bin \ $(PRODTEST_BUILD_DIR)/combined.bin \
-b BOARDLOADER $(BOARDLOADER_BUILD_DIR)/boardloader.bin \ -b BOARDLOADER $(BOARDLOADER_BUILD_DIR)/boardloader.bin \
-b BOOTLOADER $(BOOTLOADER_BUILD_DIR)/bootloader.bin \ -b BOOTLOADER $(BOOTLOADER_BUILD_DIR)/bootloader.bin \
@ -448,8 +441,8 @@ combine: ## combine boardloader + bootloader + prodtest into one combined image
ifeq ($(MCU),$(filter $(MCU),STM32F4)) ifeq ($(MCU),$(filter $(MCU),STM32F4))
combine_fw: ## combine boardloader + bootloader + firmware into one combined image combine_fw: ## combine boardloader + bootloader + firmware into one combined image
./tools/combine_firmware \ combine_firmware \
$(LAYOUT_FILE) \ $(TREZOR_MODEL) \
$(PRODTEST_BUILD_DIR)/combined.bin \ $(PRODTEST_BUILD_DIR)/combined.bin \
-b BOARDLOADER $(BOARDLOADER_BUILD_DIR)/boardloader.bin \ -b BOARDLOADER $(BOARDLOADER_BUILD_DIR)/boardloader.bin \
-b BOOTLOADER $(BOOTLOADER_BUILD_DIR)/bootloader.bin \ -b BOOTLOADER $(BOOTLOADER_BUILD_DIR)/bootloader.bin \
@ -457,8 +450,8 @@ combine_fw: ## combine boardloader + bootloader + firmware into one combined ima
-b FIRMWARE_P2 $(FIRMWARE_BUILD_DIR)/firmware.bin.p2 -b FIRMWARE_P2 $(FIRMWARE_BUILD_DIR)/firmware.bin.p2
else ifeq ($(MCU),$(filter $(MCU),STM32U5)) else ifeq ($(MCU),$(filter $(MCU),STM32U5))
combine_fw: ## combine boardloader + bootloader + firmware into one combined image combine_fw: ## combine boardloader + bootloader + firmware into one combined image
./tools/combine_firmware \ combine_firmware \
$(LAYOUT_FILE) \ $(TREZOR_MODEL) \
$(PRODTEST_BUILD_DIR)/combined.bin \ $(PRODTEST_BUILD_DIR)/combined.bin \
-b BOARDLOADER $(BOARDLOADER_BUILD_DIR)/boardloader.bin \ -b BOARDLOADER $(BOARDLOADER_BUILD_DIR)/boardloader.bin \
-b BOOTLOADER $(BOOTLOADER_BUILD_DIR)/bootloader.bin \ -b BOOTLOADER $(BOOTLOADER_BUILD_DIR)/bootloader.bin \

View File

@ -224,7 +224,7 @@ env.Replace(
) )
env.Replace( env.Replace(
HEADERTOOL='tools/headertool.py', HEADERTOOL='headertool',
) )
env.Replace( env.Replace(

View File

@ -194,7 +194,7 @@ env.Replace(
ALLSOURCES=SOURCE_MOD + SOURCE_MOD_CRYPTO + SOURCE_BOOTLOADER + SOURCE_HAL+ SOURCE_NANOPB, ) ALLSOURCES=SOURCE_MOD + SOURCE_MOD_CRYPTO + SOURCE_BOOTLOADER + SOURCE_HAL+ SOURCE_NANOPB, )
env.Replace( env.Replace(
HEADERTOOL='tools/headertool.py', HEADERTOOL='headertool',
) )
env.Replace( env.Replace(

View File

@ -538,7 +538,7 @@ env.Replace(
) )
env.Replace( env.Replace(
HEADERTOOL='tools/headertool.py', HEADERTOOL='headertool',
PYTHON='python', PYTHON='python',
MAKEQSTRDATA='$PYTHON vendor/micropython/py/makeqstrdata.py', MAKEQSTRDATA='$PYTHON vendor/micropython/py/makeqstrdata.py',
MAKEVERSIONHDR='$PYTHON vendor/micropython/py/makeversionhdr.py', MAKEVERSIONHDR='$PYTHON vendor/micropython/py/makeversionhdr.py',

View File

@ -211,7 +211,7 @@ env.Replace(
) )
env.Replace( env.Replace(
HEADERTOOL='tools/headertool.py', HEADERTOOL='headertool',
) )

View File

@ -157,7 +157,7 @@ env.Replace(
) )
env.Replace( env.Replace(
HEADERTOOL='tools/headertool.py', HEADERTOOL='headertool',
) )
env.Replace( env.Replace(

View File

@ -5,7 +5,7 @@ set -e
cd $(dirname $0) cd $(dirname $0)
BUILDVH=$(realpath ./build_vendorheader) BUILDVH=$(realpath ./build_vendorheader)
BINCTL=$(realpath ./headertool.py) BINCTL=headertool
for arg in "$@"; do for arg in "$@"; do
if [ "$arg" == "--check" ]; then if [ "$arg" == "--check" ]; then

View File

@ -107,14 +107,14 @@ def cli(
To insert an external signature: To insert an external signature:
./headertool.py firmware.bin -s 1:2:3 ABCDEF<...signature in hex format> headertool firmware.bin -s 1:2:3 ABCDEF<...signature in hex format>
The string "1:2:3" is a list of 1-based indexes of keys used to generate the signature. The string "1:2:3" is a list of 1-based indexes of keys used to generate the signature.
To sign with local private keys: To sign with local private keys:
\b \b
./headertool.py firmware.bin -S 1:ABCDEF<...hex private key> -S 2:1234<..hex private key> headertool firmware.bin -S 1:ABCDEF<...hex private key> -S 2:1234<..hex private key>
Each instance of -S is in the form "index:privkey", where index is the same as Each instance of -S is in the form "index:privkey", where index is the same as
above. Instead of specifying the keys manually, use -D to substitue known above. Instead of specifying the keys manually, use -D to substitue known