abdc7b8a2d
At present many TPM calls assume there is only one TPM in the system and look up this TPM themselves. This is inconsistent with driver model, which expects all driver methods to have a device parameter. Update the code to correct this. Signed-off-by: Simon Glass <sjg@chromium.org>
38 lines
782 B
C
38 lines
782 B
C
/* 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 */
|