[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220714212940.2988436-1-quic_eberman@quicinc.com>
Date: Thu, 14 Jul 2022 14:29:29 -0700
From: Elliot Berman <quic_eberman@...cinc.com>
To: Bjorn Andersson <bjorn.andersson@...aro.org>,
<linux-kernel@...r.kernel.org>
CC: Elliot Berman <quic_eberman@...cinc.com>,
Trilok Soni <quic_tsoni@...cinc.com>,
Murali Nalajala <quic_mnalajala@...cinc.com>,
Srivatsa Vaddagiri <quic_svaddagiri@...cinc.com>,
Carl van Schaik <quic_cvanscha@...cinc.com>,
Andy Gross <agross@...nel.org>,
<linux-arm-kernel@...ts.infradead.org>,
Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
Sudeep Holla <sudeep.holla@....com>,
"Marc Zyngier" <maz@...nel.org>, Rob Herring <robh+dt@...nel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@...aro.org>,
Jonathan Corbet <corbet@....net>,
Will Deacon <will@...nel.org>,
Catalin Marinas <catalin.marinas@....com>,
<devicetree@...r.kernel.org>, <linux-doc@...r.kernel.org>
Subject: [PATCH v2 00/11] Gunyah Hypervisor drivers
Gunyah is a Type-1 hypervisor independent of any
high-level OS kernel, and runs in a higher CPU privilege level. It does
not depend on any lower-privileged OS kernel/code for its core
functionality. This increases its security and can support a much smaller
trusted computing base than Type-2 hypervisors. This series adds the initial
support for Gunyah hypercalls, IPC via message queues, communication with the
Gunyah Resource Manager to enable Gunyah's paravirtualized console.
Gunyah is an open source hypervisor. The source repo is available at
https://github.com/quic/gunyah-hypervisor.
This series enables guest awareness of Gunyah and establishes the basic
architecture of Gunyah capabilities in the Linux kernel. As an end-to-end
use case, a TTY driver for the Gunyah-based console is added which can demonstrate
communication with the resource manager. In a future series, we intend to add
support for loading secondary VMs.
To self-test the console driver without other VMs, reads and writes to
/dev/ttyGH0 will be sent to /dev/ttyGH1 via the hypervisor. In a system with
multiple VMs, a secondary VM could use ttyGH0 as its boot console.
The primary VM would be able to access that secondary VM's console via a ttyGHx.
Changes in v2:
- DT bindings clean up
- Switch hypercalls to follow SMCCC
Elliot Berman (11):
docs: gunyah: Introduce Gunyah Hypervisor
dt-bindings: Add binding for gunyah hypervisor
arm64: gunyah: Add Gunyah hypercalls ABI
gunyah: Common types and error codes for Gunyah hypercalls
virt: gunyah: Add sysfs nodes
virt: gunyah: Add capabilities bus and devices
gunyah: msgq: Add Gunyah message queues
gunyah: rsc_mgr: Add resource manager RPC core
gunyah: rsc_mgr: Add auxiliary devices for console
gunyah: rsc_mgr: Add RPC for console services
gunyah: Add tty console driver for RM Console Serivces
.../ABI/testing/sysfs-hypervisor-gunyah | 37 +
.../bindings/firmware/gunyah-hypervisor.yaml | 84 +++
Documentation/virt/gunyah/index.rst | 99 +++
Documentation/virt/gunyah/message-queue.rst | 52 ++
Documentation/virt/index.rst | 1 +
MAINTAINERS | 12 +
arch/arm64/include/asm/gunyah.h | 142 ++++
drivers/virt/Kconfig | 1 +
drivers/virt/Makefile | 1 +
drivers/virt/gunyah/Kconfig | 24 +
drivers/virt/gunyah/Makefile | 8 +
drivers/virt/gunyah/device.c | 108 +++
drivers/virt/gunyah/gunyah_private.h | 18 +
drivers/virt/gunyah/msgq.c | 223 ++++++
drivers/virt/gunyah/rsc_mgr.c | 682 ++++++++++++++++++
drivers/virt/gunyah/rsc_mgr.h | 56 ++
drivers/virt/gunyah/rsc_mgr_console.c | 405 +++++++++++
drivers/virt/gunyah/rsc_mgr_rpc.c | 151 ++++
drivers/virt/gunyah/sysfs.c | 176 +++++
include/linux/gunyah.h | 133 ++++
include/linux/gunyah_rsc_mgr.h | 45 ++
21 files changed, 2458 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-hypervisor-gunyah
create mode 100644 Documentation/devicetree/bindings/firmware/gunyah-hypervisor.yaml
create mode 100644 Documentation/virt/gunyah/index.rst
create mode 100644 Documentation/virt/gunyah/message-queue.rst
create mode 100644 arch/arm64/include/asm/gunyah.h
create mode 100644 drivers/virt/gunyah/Kconfig
create mode 100644 drivers/virt/gunyah/Makefile
create mode 100644 drivers/virt/gunyah/device.c
create mode 100644 drivers/virt/gunyah/gunyah_private.h
create mode 100644 drivers/virt/gunyah/msgq.c
create mode 100644 drivers/virt/gunyah/rsc_mgr.c
create mode 100644 drivers/virt/gunyah/rsc_mgr.h
create mode 100644 drivers/virt/gunyah/rsc_mgr_console.c
create mode 100644 drivers/virt/gunyah/rsc_mgr_rpc.c
create mode 100644 drivers/virt/gunyah/sysfs.c
create mode 100644 include/linux/gunyah.h
create mode 100644 include/linux/gunyah_rsc_mgr.h
--
2.25.1
Powered by blists - more mailing lists