summaryrefslogtreecommitdiff
path: root/fw
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2025-08-07 21:31:21 +0200
committerxengineering <me@xengineering.eu>2025-08-07 21:36:49 +0200
commit17c334ada43ee5eabd14caabacbe393fe3482451 (patch)
tree98775ad987bb16ef9c0f44647844f7c060dc92c2 /fw
parentd07fc8cb10b7c04f3a22137678fe1150f4a1e379 (diff)
downloadiot-contact-17c334ada43ee5eabd14caabacbe393fe3482451.tar
iot-contact-17c334ada43ee5eabd14caabacbe393fe3482451.tar.zst
iot-contact-17c334ada43ee5eabd14caabacbe393fe3482451.zip
Add opt-in for nucleo_f767zi firmwares
This partially reverts commit ce098756d79d8e4240bedc2bd74ff9a3a77fcedb. The reverted commit dropped the build logic for all nucleo_f767zi-related artifacts and thus for everything except the native sim firmware. Instead this commit reverts this change but comments out the `update_image` and `factory_image` targets from the `artifacts` variable in the top-level `meson.build`. This allows to build these two targets explicitly with `ninja -C build <target>` but does not include it into the deploy tar archive. Since this archive is the only target of the project with `build_by_default: true` this effectively disables the build with minimal code changes.
Diffstat (limited to 'fw')
-rw-r--r--fw/app/meson.build59
-rw-r--r--fw/meson.build20
2 files changed, 79 insertions, 0 deletions
diff --git a/fw/app/meson.build b/fw/app/meson.build
index 63c3c01..6665fe4 100644
--- a/fw/app/meson.build
+++ b/fw/app/meson.build
@@ -1 +1,60 @@
+external_project = import('unstable-external_project')
+
application_source = meson.current_source_dir()
+
+external_project.add_project(
+ configure_zephyr,
+ configure_options: [
+ '--source-tree', application_source,
+ '--build-tree', meson.current_build_dir() / 'build',
+ '--board', board,
+ '--zephyr-base', zephyr,
+ '--zephyr-modules', ';'.join(zephyr_modules),
+ ],
+ verbose: true,
+)
+
+application = custom_target(
+ output: ['application.bin'],
+ command: [
+ build_zephyr,
+ '--build-tree', meson.current_build_dir() / 'build',
+ '--binary-name', 'zephyr.bin',
+ '--target-name', 'application.bin',
+ ],
+)
+
+version = '0.0.0'
+header_size = '0x200'
+slot_size = '0xc0000'
+
+update_image = custom_target(
+ output: ['update-image.bin'],
+ command: [
+ imgtool,
+ 'sign',
+ '--version', version,
+ '--header-size', header_size,
+ '--slot-size', slot_size,
+ '--key', signing_key,
+ application,
+ '@OUTPUT@',
+ ],
+ depends: application,
+)
+
+application_signed_confirmed = custom_target(
+ output: ['application.signed.confirmed.bin'],
+ command: [
+ imgtool,
+ 'sign',
+ '--version', version,
+ '--header-size', header_size,
+ '--slot-size', slot_size,
+ '--key', signing_key,
+ '--confirm',
+ application,
+ '@OUTPUT@',
+ ],
+ depends: application,
+)
diff --git a/fw/meson.build b/fw/meson.build
index bc70142..8f45d5b 100644
--- a/fw/meson.build
+++ b/fw/meson.build
@@ -1,3 +1,23 @@
+board = 'nucleo_f767zi'
+
+fs = import('fs')
+signing_key = fs.expanduser('~') / 'mcuboot' / 'key.pem'
+
subdir('rtos')
subdir('app')
+subdir('btl')
subdir('sim')
+
+factory_image = custom_target(
+ output: ['factory-image.bin'],
+ command: [
+ make_factory_image,
+ '--bootloader', bootloader,
+ '--application', application_signed_confirmed,
+ '--factory-image', '@OUTPUT@',
+ ],
+ depends: [
+ bootloader,
+ application_signed_confirmed,
+ ],
+)