History log of /freebsd-current/usr.sbin/bhyve/tpm_device.c
Revision Date Author Comments
# 67c26eb2 07-Oct-2021 Corvin Köhne <corvink@FreeBSD.org>

bhyve: add cmdline option for TPM emulation

At the moment, only a TPM passthru is supported. The cmdline looks like:

-l tpm,passthru,/dev/tpm0

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D32961


# 85a775e6 28-Aug-2022 Corvin Köhne <corvink@FreeBSD.org>

bhyve: add Qemu PPI emulation for TPM devices

Windows requires a physical presence interface to recognize the TPM
device. Qemu's OVMF has an implementation for the PPI which can be
reused. Using the Qemu PPI makes it very easy because we don't have to
implement new PPI functionality into our OVMF. The Qemu implementation
is already there.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40462


# 28dc1aa7 28-Aug-2022 Corvin Köhne <corvink@FreeBSD.org>

bhyve: add emulation for CRB register of TPM devices

Trap accesses to the CRB MMIO range and emulate them properly.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40459


# 0daf5f02 28-Aug-2022 Corvin Köhne <corvink@FreeBSD.org>

bhyve/tpm: create crb thread for sending tpm commands

Commands send to a tpm are very slow. They can take up to several
seconds for completion. For that reason, create a thread which issues
the commands to the tpm device.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40458


# 5ea98d32 28-Aug-2022 Corvin Köhne <corvink@FreeBSD.org>

bhyve/tpm: build TPM2 table by tpm interface

Each tpm has a device specific table. Which table a tpm uses depends on
the tpm interface.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40457


# 0917f925 28-Aug-2022 Corvin Köhne <corvink@FreeBSD.org>

bhyve: add basic CRB interface for TPM devices

Add a basic emulation for the command and response buffer interface of
TPM devices. This commit only implements some CRB register and resets
them.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40456


# e0977857 15-May-2023 Corvin Köhne <corvink@FreeBSD.org>

bhyve: add basic TPM emulation struct

This struct will be used to implement various TPM emulations like a TPM
passthrough or a virtual TPM.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40454


# b3564c23 15-Jun-2023 Corvin Köhne <corvink@FreeBSD.org>

bhyve: use assert for missing TPM version

The TPM version config node should always be set. If it's not set,
there's a bug in our code. An assertion is the correct way to check for
this.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40558


# dece4f2d 15-May-2023 Corvin Köhne <corvink@FreeBSD.org>

bhyve: register TPM device as ACPI device

The TPM device is an ACPI device with some custom ACPI tables.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40453


# d5edf13d 15-May-2023 Corvin Köhne <corvink@FreeBSD.org>

bhyve: add basic TPM device

Add an empty TPM device struct which will be used for TPM emulation in
subsequent commits.

Reviewed by: markj
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D40452