summaryrefslogtreecommitdiffstats
path: root/include/image-fit.h
diff options
context:
space:
mode:
authorJan Luebbe <jlu@pengutronix.de>2016-01-06 18:01:31 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2016-01-26 22:45:42 +0100
commitac55adb3217cf52aec7f26e6b1614b05c9c83605 (patch)
tree884a1abd2421b826544d5322cd8fa9492e753a31 /include/image-fit.h
parentebb1160cddbd58831cc8347dba94f208a0cb8500 (diff)
downloadbarebox-ac55adb3217cf52aec7f26e6b1614b05c9c83605.tar.gz
barebox-ac55adb3217cf52aec7f26e6b1614b05c9c83605.tar.xz
bootm: add initial FIT support
This implementation is inspired by U-Boot's FIT support. Instead of using libfdt (which does not exist in barebox), configuration signatures are verified by using a simplified DT parser based on barebox's own code. Currently, only signed configurations with hashed images are supported, as the other variants are less useful for verified boot. Compatible FIT images can be created using U-Boot's mkimage tool. Signed-off-by: Jan Luebbe <jlu@pengutronix.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/image-fit.h')
-rw-r--r--include/image-fit.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/include/image-fit.h b/include/image-fit.h
new file mode 100644
index 0000000000..c9d6911a97
--- /dev/null
+++ b/include/image-fit.h
@@ -0,0 +1,45 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (C) Jan Lübbe, 2014
+ */
+
+#ifndef __IMAGE_FIT_H__
+#define __IMAGE_FIT_H__
+
+#include <linux/types.h>
+#include <boot.h>
+
+struct fit_handle {
+ void *fit;
+ size_t size;
+
+ bool verbose;
+ enum bootm_verify verify;
+
+ struct device_node *root;
+
+ const void *kernel;
+ unsigned long kernel_size;
+ const void *oftree;
+ unsigned long oftree_size;
+ const void *initrd;
+ unsigned long initrd_size;
+};
+
+struct fit_handle *fit_open(const char *filename, const char *config, bool verbose,
+ enum bootm_verify verify);
+void fit_close(struct fit_handle *handle);
+
+#endif /* __IMAGE_FIT_H__ */