qemu/hw/virtio/Kconfig
Dorjoy Chowdhury bb154e3e0c device/virtio-nsm: Support for Nitro Secure Module device
Nitro Secure Module (NSM)[1] device is used in AWS Nitro Enclaves[2]
for stripped down TPM functionality like cryptographic attestation.
The requests to and responses from NSM device are CBOR[3] encoded.

This commit adds support for NSM device in QEMU. Although related to
AWS Nitro Enclaves, the virito-nsm device is independent and can be
used in other machine types as well. The libcbor[4] library has been
used for the CBOR encoding and decoding functionalities.

[1] https://lists.oasis-open.org/archives/virtio-comment/202310/msg00387.html
[2] https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html
[3] http://cbor.io/
[4] https://libcbor.readthedocs.io/en/latest/

Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Link: https://lore.kernel.org/r/20241008211727.49088-3-dorjoychy111@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-10-31 18:28:32 +01:00

128 lines
2.1 KiB
Plaintext

config VIRTIO
bool
config VIRTIO_RNG
bool
default y
depends on VIRTIO
config VIRTIO_NSM
bool
depends on LIBCBOR && VIRTIO
config VIRTIO_IOMMU
bool
default y
depends on PCI && VIRTIO
config VIRTIO_PCI
bool
default y if PCI_DEVICES
depends on PCI
select VIRTIO
select VIRTIO_MD_SUPPORTED
config VIRTIO_MMIO
bool
select VIRTIO
config VIRTIO_CCW
bool
select VIRTIO
config VIRTIO_BALLOON
bool
default y
depends on VIRTIO
config VIRTIO_CRYPTO
bool
default y
depends on VIRTIO
# not all virtio transports support memory devices; if none does,
# no need to include the code
config VIRTIO_MD_SUPPORTED
bool
config VIRTIO_MD
bool
depends on VIRTIO_MD_SUPPORTED
select MEM_DEVICE
# selected by the board if it has the required support code
config VIRTIO_PMEM_SUPPORTED
bool
config VIRTIO_PMEM
bool
default y
depends on VIRTIO
depends on VIRTIO_MD_SUPPORTED
depends on VIRTIO_PMEM_SUPPORTED
select VIRTIO_MD
# selected by the board if it has the required support code
config VIRTIO_MEM_SUPPORTED
bool
config VIRTIO_MEM
bool
default y
depends on VIRTIO
depends on LINUX
depends on VIRTIO_MD_SUPPORTED
depends on VIRTIO_MEM_SUPPORTED
select VIRTIO_MD
config VHOST_VSOCK_COMMON
bool
depends on VIRTIO
config VHOST_VSOCK
bool
default y
select VHOST_VSOCK_COMMON
depends on VIRTIO && VHOST_KERNEL
config VHOST_USER_VSOCK
bool
default y
select VHOST_VSOCK_COMMON
depends on VIRTIO && VHOST_USER
config VHOST_USER_I2C
bool
default y
depends on VIRTIO && VHOST_USER
config VHOST_USER_RNG
bool
default y
depends on VIRTIO && VHOST_USER
config VHOST_USER_FS
bool
default y
depends on VIRTIO && VHOST_USER
config VHOST_USER_GPIO
bool
default y
depends on VIRTIO && VHOST_USER
config VHOST_VDPA_DEV
bool
default y
depends on VIRTIO && VHOST_VDPA && LINUX
config VHOST_USER_SND
bool
default y
depends on VIRTIO && VHOST_USER
config VHOST_USER_SCMI
bool
default y
depends on VIRTIO && VHOST_USER && ARM