On Tue, 26 Jun 2018 14:23:40 +0200 Marc-André Lureau <[email protected]> wrote:
> The following patches implement the TPM Physical Presence Interface, > make use of a new memory region and a fw_cfg entry. Enable PPI by > default with >2.12 machine type, to avoid migration issues. > > Signed-off-by: Marc-André Lureau <[email protected]> Reviewed-by: Igor Mammedov <[email protected]> > --- > include/hw/compat.h | 10 ++++++++++ > hw/tpm/tpm_crb.c | 3 +++ > hw/tpm/tpm_tis.c | 3 +++ > 3 files changed, 16 insertions(+) > > diff --git a/include/hw/compat.h b/include/hw/compat.h > index 44d5964060..01758991a0 100644 > --- a/include/hw/compat.h > +++ b/include/hw/compat.h > @@ -2,6 +2,16 @@ > #define HW_COMPAT_H > > #define HW_COMPAT_2_12 \ > + {\ > + .driver = "tpm-crb",\ > + .property = "ppi",\ > + .value = "false",\ > + },\ > + {\ > + .driver = "tpm-tis",\ > + .property = "ppi",\ > + .value = "false",\ > + },\ > {\ > .driver = "migration",\ > .property = "decompress-error-check",\ > diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c > index a92dd50437..d5b0ac5920 100644 > --- a/hw/tpm/tpm_crb.c > +++ b/hw/tpm/tpm_crb.c > @@ -41,6 +41,8 @@ typedef struct CRBState { > MemoryRegion cmdmem; > > size_t be_buffer_size; > + > + bool ppi_enabled; > } CRBState; > > #define CRB(obj) OBJECT_CHECK(CRBState, (obj), TYPE_TPM_CRB) > @@ -221,6 +223,7 @@ static const VMStateDescription vmstate_tpm_crb = { > > static Property tpm_crb_properties[] = { > DEFINE_PROP_TPMBE("tpmdev", CRBState, tpmbe), > + DEFINE_PROP_BOOL("ppi", CRBState, ppi_enabled, true), > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c > index 12f5c9a759..d9ddf9b723 100644 > --- a/hw/tpm/tpm_tis.c > +++ b/hw/tpm/tpm_tis.c > @@ -81,6 +81,8 @@ typedef struct TPMState { > TPMVersion be_tpm_version; > > size_t be_buffer_size; > + > + bool ppi_enabled; > } TPMState; > > #define TPM(obj) OBJECT_CHECK(TPMState, (obj), TYPE_TPM_TIS) > @@ -950,6 +952,7 @@ static const VMStateDescription vmstate_tpm_tis = { > static Property tpm_tis_properties[] = { > DEFINE_PROP_UINT32("irq", TPMState, irq_num, TPM_TIS_IRQ), > DEFINE_PROP_TPMBE("tpmdev", TPMState, be_driver), > + DEFINE_PROP_BOOL("ppi", TPMState, ppi_enabled, true), > DEFINE_PROP_END_OF_LIST(), > }; >
