No description
Find a file
Elliot Berman 9110f097f0 hypervisor: Implement gunyah
Implement base gunyah abstractions.

Bindings are based off aosp/2475305/9.

Cherry-pick notes: Fixed license headers and uppercased bindgen constant
to workaround "constant in pattern ... should have an upper case name"
warning that can't be disabled (will need to adjust the bindgen script
later to match).

BUG=b:232360323

Change-Id: I4815128ce827112b25add87ac11e28868b4cdb46
Co-developed-by: Sreenad Menon <quic_sreemeno@quicinc.com>
Signed-off-by: Sreenad Menon <quic_sreemeno@quicinc.com>
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4404217
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2023-04-05 18:32:18 +00:00
.cargo tools: Do not use pip to install python packages 2023-02-27 19:24:18 +00:00
.config tools/run_tests2: Prepare for CI usage 2023-02-09 00:09:02 +00:00
.devcontainer dev_container: Add latest tag when pushing images 2023-03-15 21:02:13 +00:00
.github Cleanup: Remove old, deprecated and no longer used files 2022-09-20 21:05:57 +00:00
.vscode Document feature flags and introduce new feature sets 2022-10-14 20:31:19 +00:00
aarch64 hypervisor: aarch64: Add init_vm 2023-04-05 18:32:18 +00:00
acpi_tables acpi: Mark structs as repr(C, packed) 2023-02-08 21:32:43 +00:00
anti_tamper kiwi: clean anti_tamper and metrics related code 2023-01-04 00:08:27 +00:00
arch arch: Create GuestMemory with MemoryRegionOptions 2023-03-29 00:52:24 +00:00
argh_helpers Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
audio_util tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
base crosvm: Uprev uuid > 1 2023-04-04 23:56:13 +00:00
bit_field crosvm: Uprev rust toolchain and dev container 2023-02-08 20:26:30 +00:00
broker_ipc Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
common crosvm: Remove cros_asyncv2 2023-04-05 02:07:07 +00:00
crash_report metrics: Add missing process types 2023-02-22 20:01:38 +00:00
cros_async cros_async: backend independent async tests 2023-04-04 23:34:43 +00:00
cros_fdt crosvm: fdt: Add option to dump generated devicetree blob 2023-03-16 18:16:28 +00:00
cros_tracing tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
crosvm-fuzz devices: virtio: block: parallelize by multiple worker threads 2023-03-03 00:23:05 +00:00
crosvm_cli crosvm_cli: implement exit_context() for Option 2023-03-28 20:13:06 +00:00
crosvm_control crosvm_control: explain why we need rerun-if-changed; remove nop one 2023-04-05 14:16:00 +00:00
crosvm_plugin Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
devices devices: usb: Set the PORT SPEED field in the PORTSC register to a correct value 2023-04-05 07:44:42 +00:00
disk crosvm: Uprev uuid > 1 2023-04-04 23:56:13 +00:00
docs/book crosvm: add --vsock command-line option and config-file parameter. 2023-03-22 09:19:18 +00:00
e2e_tests tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
fuse devices: Add trace points for passthroughfs 2023-03-10 02:20:14 +00:00
gpu_display tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
hypervisor hypervisor: Implement gunyah 2023-04-05 18:32:18 +00:00
infra Roll recipe dependencies (trivial). 2023-04-04 16:44:44 +00:00
io_uring bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
jail devices: usb: Set the PORT SPEED field in the PORTSC register to a correct value 2023-04-05 07:44:42 +00:00
kernel_cmdline Rust 1.65: Fix clippy derive_partial_eq_without_eq lints 2022-12-01 01:32:30 +00:00
kernel_loader crosvm: Convert DataInit to zerocopy 10/n 2023-03-24 18:12:38 +00:00
kvm vm_memory: Convert GuestMemory::with_regions to use struct argument 2023-03-29 00:52:24 +00:00
kvm_sys hypervisor: Add get_xsave and set_xsave support to x86. 2023-03-03 00:30:04 +00:00
libcras_stub devices: snd: Use PCM device client_type and stream_type for CRAS 2023-03-02 06:22:40 +00:00
linux_input_sys crosvm: Convert DataInit to zerocopy 10/n 2023-03-24 18:12:38 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
media tree-wide: replace manual enum Defaults with derive 2023-04-04 22:12:39 +00:00
metrics metrics: Add missing process types 2023-02-22 20:01:38 +00:00
net_sys Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
net_util base: fix unsafe overlapped read/write marked safe. 2023-03-14 18:42:38 +00:00
power_monitor tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
prebuilts prebuilds/testvm: Retry downloads 2023-03-09 23:04:20 +00:00
proto_build_tools proto_build_tools: dont fail silently 2023-01-31 18:03:00 +00:00
protos Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
qcow_utils Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
resources resource: system_allocator: introduce GPE allocator 2023-02-06 22:02:37 +00:00
rutabaga_gfx rutabaga_gfx: manage a newly created CPU timeline for gfxstream 2023-03-31 18:25:19 +00:00
sandbox vhost-user: snd: Implement Windows broker & device setup 2023-02-28 21:34:01 +00:00
serde_keyvalue Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
src cmdline: minor updates on swap commands 2023-04-05 01:40:00 +00:00
swap swap: fix deadlock on the vmm-swap enable operation 2023-04-03 06:03:18 +00:00
system_api Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
tests Enable parallel execution of plugin and e2e tests 2023-01-26 20:38:57 +00:00
third_party crosvm: Convert DataInit to zerocopy 10/n 2023-03-24 18:12:38 +00:00
tools tools: Promote cros container out of experimental project 2023-04-05 18:28:31 +00:00
tpm2 Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
tpm2-sys Uprev the libtpm2 to 96017dcdb110 2023-03-07 04:05:49 +00:00
tube_transporter crosvm: Uprev rust toolchain and dev container 2023-02-08 20:26:30 +00:00
usb_sys Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
usb_util devices: usb: Set the PORT SPEED field in the PORTSC register to a correct value 2023-04-05 07:44:42 +00:00
vfio_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
vhost vm_memory: Convert GuestMemory::with_regions to use struct argument 2023-03-29 00:52:24 +00:00
virtio_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
vm_control tree-wide: replace manual enum Defaults with derive 2023-04-04 22:12:39 +00:00
vm_memory tree-wide: replace manual enum Defaults with derive 2023-04-04 22:12:39 +00:00
win_audio devices: virtio: snd: Implement file backend for VirtioSnd 2023-03-21 07:46:05 +00:00
win_util base: move read/write wrappers to their own module. 2023-03-14 18:24:44 +00:00
x86_64 arch: Create GuestMemory with MemoryRegionOptions 2023-03-29 00:52:24 +00:00
.dockerignore add docker supported builds and tests 2019-05-15 13:36:19 -07:00
.envrc Automatically register tools/ on PATH 2023-03-03 00:33:15 +00:00
.gitignore Automatically register tools/ on PATH 2023-03-03 00:33:15 +00:00
.gitmodules health-check: Add infra checks 2022-08-18 00:17:04 +00:00
.rustfmt.toml rustfmt, win_util: update to 2021 edition 2022-05-31 23:35:02 +00:00
ARCHITECTURE.md jail: create jail crate from jail_helpers.rs 2023-02-14 00:24:55 +00:00
Cargo.lock crosvm: Remove cros_asyncv2 2023-04-05 02:07:07 +00:00
Cargo.toml Cargo.toml: Enable Gunyah only for all-aarch64 2023-04-05 18:32:18 +00:00
CONTRIBUTING.md book: Reviewed CONTRIBUTING.md 2023-03-03 02:28:37 +00:00
DIR_METADATA DIR_METADATA: Add public buganizer component 2022-09-21 17:43:59 +00:00
LICENSE Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
mypy.ini Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
OWNERS Require council review for changes to Cargo.lock 2022-12-01 18:50:48 +00:00
OWNERS_COUNCIL Require council review for changes to Cargo.lock 2022-12-01 18:50:48 +00:00
PRESUBMIT.cfg Cleanup: Remove old, deprecated and no longer used files 2022-09-20 21:05:57 +00:00
pyproject.toml Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
README.chromeos.md crosvm: update book and doc links to crosvm.dev 2022-07-29 22:54:01 +00:00
README.md Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
rust-toolchain rust-toolchain: Add llvm-tools-preview 2023-02-10 20:47:41 +00:00

crosvm - The ChromeOS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linuxs KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the ChromeOS platform. Compared to QEMU, crosvm doesnt emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on ChromeOS devices.

Logo