xref: /openbmc/qemu/hw/tpm/tpm_ppi.h (revision ad9e5aa2)
1 /*
2  * TPM Physical Presence Interface
3  *
4  * Copyright (C) 2018 IBM Corporation
5  *
6  * Authors:
7  *  Stefan Berger    <stefanb@us.ibm.com>
8  *
9  * This work is licensed under the terms of the GNU GPL, version 2 or later.
10  * See the COPYING file in the top-level directory.
11  */
12 #ifndef TPM_TPM_PPI_H
13 #define TPM_TPM_PPI_H
14 
15 #include "exec/address-spaces.h"
16 
17 typedef struct TPMPPI {
18     MemoryRegion ram;
19     uint8_t *buf;
20 } TPMPPI;
21 
22 /**
23  * tpm_ppi_init:
24  * @tpmppi: a TPMPPI
25  * @m: the address-space / MemoryRegion to use
26  * @addr: the address of the PPI region
27  * @obj: the owner object
28  *
29  * Register the TPM PPI memory region at @addr on the given address
30  * space for the object @obj.
31  **/
32 void tpm_ppi_init(TPMPPI *tpmppi, struct MemoryRegion *m,
33                   hwaddr addr, Object *obj);
34 
35 /**
36  * tpm_ppi_reset:
37  * @tpmppi: a TPMPPI
38  *
39  * Function to call on machine reset. It will check if the "Memory
40  * overwrite" variable is set, and perform a memory clear on volatile
41  * memory if requested.
42  **/
43 void tpm_ppi_reset(TPMPPI *tpmppi);
44 
45 #endif /* TPM_TPM_PPI_H */
46