Skip to content

Commit 7c8d118

Browse files
pennamgiulcioffi
authored andcommitted
Add platform and boards configurations to create signed and encrypted sketches
1 parent fd73cf7 commit 7c8d118

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

boards.txt

+21-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ edge_control.build.fpu=-mfpu=fpv4-sp-d16
1313
edge_control.build.float-abi=-mfloat-abi=softfp
1414
edge_control.build.board=EDGE_CONTROL
1515
edge_control.build.ldscript=linker_script.ld
16+
edge_control.build.postbuild.cmd=imgtool exit
1617
edge_control.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52840
1718
edge_control.compiler.mbed.defines={build.variant.path}/defines.txt
1819
edge_control.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
@@ -50,6 +51,7 @@ edge_control.bootloader.file=EDGE_CONTROL/bootloader.hex
5051
##############################################################
5152

5253
menu.split=Flash split
54+
menu.security=Security setting
5355

5456
envie_m7.name=Arduino Portenta H7 (M7 core)
5557
envie_m7.build.core=arduino
@@ -60,6 +62,9 @@ envie_m7.menu.split.50_50=1MB M7 + 1MB M4
6062
envie_m7.menu.split.75_25=1.5MB M7 + 0.5MB M4
6163
envie_m7.menu.split.100_0=2MB M7 + M4 in SDRAM
6264

65+
envie_m7.menu.security.none=None
66+
envie_m7.menu.security.sien=Signature + Encryption
67+
6368
envie_m7.build.variant=PORTENTA_H7_M7
6469
envie_m7.build.mcu=cortex-m7
6570
envie_m7.build.fpu=-mfpu=fpv5-d16
@@ -71,6 +76,12 @@ envie_m7.menu.split.100_0.build.extra_ldflags=-DCM4_BINARY_START=0x60000000
7176
envie_m7.build.architecture=cortex-m7
7277
envie_m7.build.board=PORTENTA_H7_M7
7378
envie_m7.build.ldscript=linker_script.ld
79+
envie_m7.build.slot_size=0x1E0000
80+
envie_m7.build.header_size=0x20000
81+
envie_m7.build.alignment=32
82+
envie_m7.build.version=1.2.3+4
83+
envie_m7.menu.security.sien.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" {tools.imgtool.build.pattern}
84+
envie_m7.menu.security.none.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
7485
envie_m7.compiler.mbed.arch.define=
7586
envie_m7.compiler.mbed.defines={build.variant.path}/defines.txt
7687
envie_m7.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
@@ -98,8 +109,10 @@ envie_m7.upload.protocol=
98109
envie_m7.upload.transport=
99110
envie_m7.upload.vid=0x2341
100111
envie_m7.upload.pid=0x035b
101-
envie_m7.upload.address=0x08040000
102-
envie_m7.upload.interface=0
112+
envie_m7.menu.security.none.upload.interface=0
113+
envie_m7.menu.security.sien.upload.interface=2
114+
envie_m7.menu.security.none.upload.address=0x08040000
115+
envie_m7.menu.security.sien.upload.address=0xA0000000
103116
envie_m7.upload.use_1200bps_touch=true
104117
envie_m7.upload.wait_for_upload_port=true
105118
envie_m7.upload.native_usb=true
@@ -147,6 +160,7 @@ envie_m4.menu.split.100_0.build.extra_ldflags=-DCM4_BINARY_START=0x60000000 -DCM
147160
envie_m4.build.architecture=cortex-m4
148161
envie_m4.build.board=PORTENTA_H7_M4
149162
envie_m4.build.ldscript=linker_script.ld
163+
envie_m4.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
150164
envie_m4.compiler.mbed.arch.define=
151165
envie_m4.compiler.mbed.defines={build.variant.path}/defines.txt
152166
envie_m4.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
@@ -205,6 +219,7 @@ nano33ble.build.fpu=-mfpu=fpv4-sp-d16
205219
nano33ble.build.float-abi=-mfloat-abi=softfp
206220
nano33ble.build.board=ARDUINO_NANO33BLE
207221
nano33ble.build.ldscript=linker_script.ld
222+
nano33ble.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
208223
nano33ble.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52840
209224
nano33ble.compiler.mbed.defines={build.variant.path}/defines.txt
210225
nano33ble.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
@@ -258,6 +273,7 @@ nanorp2040connect.build.float-abi=
258273
nanorp2040connect.build.architecture=cortex-m0plus
259274
nanorp2040connect.build.board=NANO_RP2040_CONNECT
260275
nanorp2040connect.build.ldscript=linker_script.ld
276+
nanorp2040connect.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
261277
nanorp2040connect.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040
262278
nanorp2040connect.compiler.mbed.defines={build.variant.path}/defines.txt
263279
nanorp2040connect.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
@@ -309,6 +325,7 @@ pico.build.float-abi=
309325
pico.build.architecture=cortex-m0plus
310326
pico.build.board=RASPBERRY_PI_PICO
311327
pico.build.ldscript=linker_script.ld
328+
pico.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
312329
pico.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040
313330
pico.compiler.mbed.defines={build.variant.path}/defines.txt
314331
pico.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
@@ -352,6 +369,7 @@ nicla_sense.build.fpu=-mfpu=fpv4-sp-d16
352369
nicla_sense.build.float-abi=-mfloat-abi=softfp
353370
nicla_sense.build.board=NICLA
354371
nicla_sense.build.ldscript=linker_script.ld
372+
nicla_sense.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
355373
nicla_sense.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52832
356374
nicla_sense.compiler.mbed.defines={build.variant.path}/defines.txt
357375
nicla_sense.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
@@ -399,6 +417,7 @@ nicla_vision.build.extra_flags=
399417
nicla_vision.build.architecture=cortex-m7
400418
nicla_vision.build.board=NICLA_VISION
401419
nicla_vision.build.ldscript=linker_script.ld
420+
nicla_vision.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
402421
nicla_vision.compiler.mbed.arch.define=
403422
nicla_vision.compiler.mbed.defines={build.variant.path}/defines.txt
404423
nicla_vision.compiler.mbed.ldflags={build.variant.path}/ldflags.txt

platform.txt

+14
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ recipe.objcopy.bin.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf
9696
## Create output (hex file)
9797
recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"
9898

99+
## Create output secure image (bin file)
100+
recipe.hooks.objcopy.postobjcopy.1.pattern={build.postbuild.cmd}
99101
## Compute size
100102
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
101103
recipe.size.regex.data=^(?:\.data|\.bss)\s+([0-9]+).*
@@ -185,6 +187,18 @@ tools.picotool.upload.params.verbose=-v
185187
tools.picotool.upload.params.quiet=
186188
tools.picotool.upload.pattern="{path}/{cmd}" {upload.verbose} -D "{build.path}/{build.project_name}.elf"
187189

190+
#
191+
# IMGTOOL
192+
#
193+
194+
tools.imgtool.path={runtime.tools.imgtool.path}
195+
tools.imgtool.cmd=imgtool
196+
tools.imgtool.keys.path={runtime.hardware.path}/mbed/libraries/MCUboot/default_keys
197+
tools.imgtool.sign.name=ecdsa-p256-signing-key.pem
198+
tools.imgtool.encrypt.name=ecdsa-p256-encrypt-key.pem
199+
200+
tools.imgtool.build.pattern=sign --key "{tools.imgtool.keys.path}/{tools.imgtool.sign.name}" --encrypt "{tools.imgtool.keys.path}/{tools.imgtool.encrypt.name}" "{build.path}/{build.project_name}.bin" "{build.path}/{build.project_name}.bin" --align {build.alignment} --max-align {build.alignment} --version {build.version} --header-size {build.header_size} --pad-header --slot-size {build.slot_size}
201+
188202
#
189203
# GDB (Debugger)
190204
#

0 commit comments

Comments
 (0)