]> git.sur5r.net Git - u-boot/blob - board/gdsys/a38x/hre.h
Merge git://git.denx.de/u-boot-dm
[u-boot] / board / gdsys / a38x / hre.h
1 /*
2  * (C) Copyright 2013
3  * Reinhard Pfau, Guntermann & Drunck GmbH, reinhard.pfau@gdsys.cc
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #ifndef __HRE_H
9 #define __HRE_H
10
11 struct key_program {
12         uint32_t magic;
13         uint32_t code_crc;
14         uint32_t code_size;
15         uint8_t code[];
16 };
17
18 struct h_reg {
19         bool valid;
20         uint8_t digest[20];
21 };
22
23 /* CCDM specific contants */
24 enum {
25         /* NV indices */
26         NV_COMMON_DATA_INDEX    = 0x40000001,
27         /* magics for key blob chains */
28         MAGIC_KEY_PROGRAM       = 0x68726500,
29         MAGIC_HMAC              = 0x68616300,
30         MAGIC_END_OF_CHAIN      = 0x00000000,
31         /* sizes */
32         NV_COMMON_DATA_MIN_SIZE = 3 * sizeof(uint64_t) + 2 * sizeof(uint16_t),
33 };
34
35 int hre_verify_program(struct key_program *prg);
36 int hre_run_program(const uint8_t *code, size_t code_size);
37
38 #endif /* __HRE_H */