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 "hw/acpi/tpm.h" |
16 | #include "exec/address-spaces.h" |
17 | |
18 | typedef struct TPMPPI { |
19 | MemoryRegion ram; |
20 | uint8_t *buf; |
21 | } TPMPPI; |
22 | |
23 | /** |
24 | * tpm_ppi_init: |
25 | * @tpmppi: a TPMPPI |
26 | * @m: the address-space / MemoryRegion to use |
27 | * @addr: the address of the PPI region |
28 | * @obj: the owner object |
29 | * |
30 | * Register the TPM PPI memory region at @addr on the given address |
31 | * space for the object @obj. |
32 | **/ |
33 | void tpm_ppi_init(TPMPPI *tpmppi, struct MemoryRegion *m, |
34 | hwaddr addr, Object *obj); |
35 | |
36 | /** |
37 | * tpm_ppi_reset: |
38 | * @tpmppi: a TPMPPI |
39 | * |
40 | * Function to call on machine reset. It will check if the "Memory |
41 | * overwrite" variable is set, and perform a memory clear on volatile |
42 | * memory if requested. |
43 | **/ |
44 | void tpm_ppi_reset(TPMPPI *tpmppi); |
45 | |
46 | #endif /* TPM_TPM_PPI_H */ |
47 | |