aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/board/gdsys/a38x/hre.h
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/board/gdsys/a38x/hre.h')
-rw-r--r--roms/u-boot/board/gdsys/a38x/hre.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/roms/u-boot/board/gdsys/a38x/hre.h b/roms/u-boot/board/gdsys/a38x/hre.h
new file mode 100644
index 000000000..da983aa45
--- /dev/null
+++ b/roms/u-boot/board/gdsys/a38x/hre.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2013
+ * Reinhard Pfau, Guntermann & Drunck GmbH, reinhard.pfau@gdsys.cc
+ */
+
+#ifndef __HRE_H
+#define __HRE_H
+
+struct key_program {
+ uint32_t magic;
+ uint32_t code_crc;
+ uint32_t code_size;
+ uint8_t code[];
+};
+
+struct h_reg {
+ bool valid;
+ uint8_t digest[20];
+};
+
+/* CCDM specific contants */
+enum {
+ /* NV indices */
+ NV_COMMON_DATA_INDEX = 0x40000001,
+ /* magics for key blob chains */
+ MAGIC_KEY_PROGRAM = 0x68726500,
+ MAGIC_HMAC = 0x68616300,
+ MAGIC_END_OF_CHAIN = 0x00000000,
+ /* sizes */
+ NV_COMMON_DATA_MIN_SIZE = 3 * sizeof(uint64_t) + 2 * sizeof(uint16_t),
+};
+
+int hre_verify_program(struct key_program *prg);
+int hre_run_program(struct udevice *tpm, const uint8_t *code, size_t code_size);
+
+#endif /* __HRE_H */