boot: Define interface for data sharing with runtime
Define interface for sharing boot status (certain attributes of the
authenticated images) and adding arbitrary data in TLV encoded format
to a shared data area between the bootloader and runtime SW.
The boot_record.h file was copied (with minor modifications) from the
Trusted Firmware-M project (https://www.trustedfirmware.org/about/).
Hash of the source commit: 08d5572b4bcee306d8cf709c2200359a22d5b72c.
Change-Id: Ia25bac27e9f1ce7faa5043c5a0455c804a24701e
Signed-off-by: David Vincze <david.vincze@arm.com>
diff --git a/boot/zephyr/Kconfig b/boot/zephyr/Kconfig
index 8402fc1..591a43b 100644
--- a/boot/zephyr/Kconfig
+++ b/boot/zephyr/Kconfig
@@ -217,6 +217,18 @@
on some hardware that has long erase times, to prevent long wait
times at the beginning of the DFU process.
+config MEASURED_BOOT
+ bool "Store the boot state/measurements in shared memory"
+ default n
+ help
+ If enabled, the bootloader will store certain boot measurements such as
+ the hash of the firmware image in a shared memory area. This data can
+ be used later by runtime services (e.g. by a device attestation service).
+
+config BOOT_SHARE_DATA
+ bool "Save application specific data in shared memory area"
+ default n
+
config BOOT_WAIT_FOR_USB_DFU
bool "Wait for a prescribed duration to see if USB DFU is invoked"
default n
diff --git a/boot/zephyr/include/mcuboot_config/mcuboot_config.h b/boot/zephyr/include/mcuboot_config/mcuboot_config.h
index 2b998b5..c0584f3 100644
--- a/boot/zephyr/include/mcuboot_config/mcuboot_config.h
+++ b/boot/zephyr/include/mcuboot_config/mcuboot_config.h
@@ -97,6 +97,14 @@
#define MCUBOOT_HW_ROLLBACK_PROT
#endif
+#ifdef CONFIG_MEASURED_BOOT
+#define MCUBOOT_MEASURED_BOOT
+#endif
+
+#ifdef CONFIG_BOOT_SHARE_DATA
+#define MCUBOOT_DATA_SHARING
+#endif
+
/*
* Enabling this option uses newer flash map APIs. This saves RAM and
* avoids deprecated API usage.