129 lines
5.4 KiB
Text
129 lines
5.4 KiB
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
config GUNYAH
|
|
tristate "Gunyah Virtualization support"
|
|
help
|
|
The Gunyah driver adds support for creating and launching
|
|
virtual machines from userspace. This driver exposes various
|
|
IOCTLs to allow userspace interface to manage virtual machines.
|
|
The userspace requests are relayed to Gunyah hypervisor via
|
|
this driver.
|
|
|
|
config GH_SECURE_VM_LOADER
|
|
tristate "Gunyah Secure Virtual Machine Loader Driver"
|
|
depends on GUNYAH
|
|
help
|
|
This driver invokes mdt Loader to load images of
|
|
any secure guest Virtual Machine (VM). The images are loaded
|
|
in the carveout designated for the VM once the firmware name
|
|
is validated.
|
|
|
|
config GH_PROXY_SCHED
|
|
tristate "PROXY Scheduling for Secondary VMs"
|
|
depends on GUNYAH
|
|
help
|
|
Gunyah Proxy Scheduler provides framework to schedule/run VCPUs
|
|
of Secondary VMs by exposing required functionality which can be
|
|
invoked by the Gunyah driver. Gunyah Proxy Scheduler communicates
|
|
with Gunyah hypervisor to run the VCPUs as needed.
|
|
|
|
menuconfig GUNYAH_DRIVERS
|
|
bool "Gunyah Virtualization drivers"
|
|
depends on ARM64
|
|
help
|
|
The Gunyah drivers are the helper interfaces that runs on the
|
|
virtual machines that provides support such as memory/device
|
|
sharing, IRQ sharing, IPC/signalling mechanisms, and so on.
|
|
|
|
Say Y here to enable the drivers needed to work on Gunyah
|
|
virtualization environment.
|
|
|
|
If you say N, all options in this submenu will be skipped and disabled.
|
|
|
|
if GUNYAH_DRIVERS
|
|
|
|
config GH_VIRT_WATCHDOG
|
|
tristate "Gunyah Virtual Watchdog Driver"
|
|
depends on QCOM_WDT_CORE
|
|
help
|
|
This enables the Qualcomm Technologies, Inc. watchdog module for
|
|
the Gunyah hypervisor. It provides an interface to perform watchdog
|
|
actions such as setting the bark/bite time and also petting the
|
|
watchdog in the hypervisor.
|
|
|
|
config GH_CTRL
|
|
tristate "Create Gunyah entries under /sys/hypervisor"
|
|
depends on SYSFS
|
|
select SYS_HYPERVISOR
|
|
help
|
|
Create entries under /sys/hypervisor for the Gunyah hypervisor.
|
|
The driver also provides a facility for controlling
|
|
hypervisor debug features.
|
|
See Documentation/ABI/testing/sysfs-hypervisor-gunyah for more details.
|
|
|
|
config GH_DBL
|
|
tristate "Gunyah Doorbell driver"
|
|
help
|
|
Gunyah offers a simple inter VMs(Virtual Machines) communication
|
|
through the use of doorbell interrupts. A single doorbell instance
|
|
provides an unidirectional communication between two VMs and it acts
|
|
like either a source(Tx) or generate(Rx). Individual VMs make use of
|
|
these doorbells by calling send and/or a receive primitives exposed by
|
|
driver and trigger an interrupt to each other and exchange the data.
|
|
|
|
config GH_MSGQ
|
|
tristate "Gunyah Message Queue driver"
|
|
help
|
|
Gunyah offers message-queues as one of the IPC mechanisms to
|
|
communicate among the Virtual Machines. The message queue drivers
|
|
runs on the Virtual machines to provide an interface to the clients
|
|
who wish to communicate to other clients on a different VM. Currently,
|
|
the services offered by the drivers is simply to send and receive
|
|
messages in a blocking manner.
|
|
|
|
config GH_RM_DRV
|
|
tristate "Gunyah Resource Manager driver"
|
|
help
|
|
The Gunyah Resource Manager driver is used to communicate with the
|
|
Resource Manager Virtual Machine (RM-VM). The RM-VM acts as a mediator
|
|
and provides numerous services to the other VMs running in the system,
|
|
such as notifying when a particular VM is up, resource (IRQ/device)
|
|
sharing between VMs, information about the IPC mechanisms, and so on.
|
|
|
|
The Resource Manager driver runs on the Virtual Machine and acts as an
|
|
interface to other driver in order to obtain the services provided by
|
|
the RM-VM.
|
|
|
|
config GH_IRQ_LEND
|
|
tristate "Gunyah IRQ Lending Framework"
|
|
depends on GH_RM_DRV
|
|
help
|
|
Gunyah Resource Manager permits interrupts to be shared between
|
|
virtual machines. This config enables a framework which
|
|
supports sharing these interrupts. The follows RM recommended
|
|
protocol.
|
|
|
|
config GH_MEM_NOTIFIER
|
|
tristate "Gunyah Memory Resource Notification Framework"
|
|
depends on GH_RM_DRV
|
|
help
|
|
The Gunyah Resource Manager allows for different memory resources
|
|
to be transferred across virtual machines with different notification
|
|
labels assigned to each resource to aid in distinguishing them.
|
|
Enabling the Gunyah Memory Resource Notification Framework provides an
|
|
interface for clients to transmit memory resources between virtual
|
|
machines, and register callbacks that get invoked only when
|
|
notifications pertaining to their memory resources arrive.
|
|
|
|
config GH_GUEST_POPS
|
|
tristate "Gunyah Guest Power-Operations driver"
|
|
depends on GH_RM_DRV
|
|
help
|
|
The driver runs on guest VMs and is majorly responsible for coordinating
|
|
the guest's power operations. This includes, setting the VM's status,
|
|
such as OS_STATUS_* or APPS_STATUS_*. It also acts as an input power key
|
|
driver. That is, it listens to the shutdown requests, and when it receives
|
|
one, it'll emulate a power key press action by sending an input
|
|
notification to user-space.
|
|
|
|
endif
|