summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fw/app/meson.build59
-rw-r--r--fw/meson.build20
-rw-r--r--meson.build2
-rw-r--r--web/index.html2
4 files changed, 83 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,
+ ],
+)
diff --git a/meson.build b/meson.build
index f9443ed..90c7c15 100644
--- a/meson.build
+++ b/meson.build
@@ -22,6 +22,8 @@ artifacts = [
schematic,
bom,
simulation,
+ # update_image,
+ # factory_image,
kicad_pcb,
erc_report,
]
diff --git a/web/index.html b/web/index.html
index e6c41e2..d353cb7 100644
--- a/web/index.html
+++ b/web/index.html
@@ -19,6 +19,8 @@
<h4>Firmware</h4>
<ul>
+ <li><a href="fw/factory-image.bin">factory-image.bin</a></li>
+ <li><a href="fw/app/update-image.bin">update-image.bin</a></li>
<li><a href="fw/sim/simulation-linux-amd64.exe">simulation-linux-amd64.exe</a></li>
</ul>
</main>