bb154e3e0c
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>
128 lines
2.1 KiB
Plaintext
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
|