Hi Alistair, On Wed, Apr 20, 2022 at 03:52:48PM +1000, Alistair Francis wrote: > From: Alistair Francis <[email protected]> > > Imply the TPM sysbus devices. This allows users to add TPM devices to > the RISC-V virt board. > > This was tested by first creating an emulated TPM device: > > swtpm socket --tpm2 -t -d --tpmstate dir=/tmp/tpm \ > --ctrl type=unixio,path=swtpm-sock > > Then launching QEMU with: > > -chardev socket,id=chrtpm,path=swtpm-sock \ > -tpmdev emulator,id=tpm0,chardev=chrtpm \ > -device tpm-tis-device,tpmdev=tpm0 > > The TPM device can be seen in the memory tree and the generated device > tree. > I tried to get this working with qemu 8.0, but I did not have any success. I am quite sure I have the above command line correctly, and it does work with arm64. Any idea what I might be missing ?
Thanks, Guenter > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/942 > Signed-off-by: Alistair Francis <[email protected]> > Reviewed-by: Edgar E. Iglesias <[email protected]> > --- > hw/riscv/virt.c | 4 ++++ > hw/riscv/Kconfig | 1 + > 2 files changed, 5 insertions(+) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index 6eed1f4d70..b62fd66a49 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -43,6 +43,7 @@ > #include "sysemu/device_tree.h" > #include "sysemu/sysemu.h" > #include "sysemu/kvm.h" > +#include "sysemu/tpm.h" > #include "hw/pci/pci.h" > #include "hw/pci-host/gpex.h" > #include "hw/display/ramfb.h" > @@ -1612,6 +1613,9 @@ static void virt_machine_class_init(ObjectClass *oc, > void *data) > hc->plug = virt_machine_device_plug_cb; > > machine_class_allow_dynamic_sysbus_dev(mc, TYPE_RAMFB_DEVICE); > +#ifdef CONFIG_TPM > + machine_class_allow_dynamic_sysbus_dev(mc, TYPE_TPM_TIS_SYSBUS); > +#endif > > object_class_property_add_bool(oc, "aclint", virt_get_aclint, > virt_set_aclint); > diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig > index da790f5936..79ff61c464 100644 > --- a/hw/riscv/Kconfig > +++ b/hw/riscv/Kconfig > @@ -34,6 +34,7 @@ config RISCV_VIRT > imply PCI_DEVICES > imply VIRTIO_VGA > imply TEST_DEVICES > + imply TPM_TIS_SYSBUS > select RISCV_NUMA > select GOLDFISH_RTC > select MSI_NONBROKEN > -- > 2.35.1 > >
