| 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 "system/memory.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, 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 */ |