]> git.ipfire.org Git - thirdparty/u-boot.git/blob - board/gdsys/a38x/hre.h
arm: mvebu: Add gdsys ControlCenter-Compact board
[thirdparty/u-boot.git] / 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 */