mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-10 20:19:07 +00:00
No description
Since we'll be putting all PCI devices on non-root buses behind virtual PCI-E root ports, MMIO BARs in such devices must be inside the forward windows of their root ports. This presents additional requirements for their MMIO BAR allocation: 1. All non-prefetchable BARs must be inside the same 32-bit MMIO window 2. All prefetchable BARs must be inside the same MMIO window, but different than the non-prefetchable MMIO window 3. Both windows must be 1MB-aligned 4. No other PCI devices should occupy MMIO space in these windows Allocate the entire window from the system resource allocator to prevent any space within the window from being used elsewhere. To maximize memory space efficiency, use VfioResourceAllocator for BAR allocation. BUG=b:185084350 TEST=passthrough a vfio-pci device with bus_number > 0 and static connet it behind a pcie root port, then check pcie RP and vfio-pci device function in guest. Change-Id: Ic9865afc48eb3ff9fa475dbcfdf90642b012980c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3166888 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org> |
||
---|---|---|
.cargo | ||
.devcontainer | ||
.github | ||
aarch64 | ||
acpi_tables | ||
arch | ||
bin | ||
bit_field | ||
ci/kokoro | ||
common | ||
crosvm-fuzz | ||
crosvm_control | ||
crosvm_plugin | ||
devices | ||
disk | ||
docs/book | ||
fuse | ||
gpu_display | ||
hypervisor | ||
infra/config | ||
integration_tests | ||
kernel_cmdline | ||
kernel_loader | ||
kvm | ||
kvm_sys | ||
libcras_stub | ||
libvda | ||
linux_input_sys | ||
logo | ||
net_sys | ||
net_util | ||
power_monitor | ||
protos | ||
qcow_utils | ||
resources | ||
rutabaga_gfx | ||
seccomp | ||
src | ||
system_api_stub | ||
tests | ||
third_party | ||
tools | ||
tpm2 | ||
tpm2-sys | ||
usb_sys | ||
usb_util | ||
vfio_sys | ||
vhost | ||
virtio_sys | ||
vm_control | ||
vm_memory | ||
x86_64 | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
.rustfmt.toml | ||
ARCHITECTURE.md | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
LICENSE | ||
navbar.md | ||
OWNERS | ||
README.chromeos.md | ||
README.md | ||
run_tests | ||
rust-toolchain | ||
setup_cros_cargo.sh | ||
test_all | ||
unblocked_terms.txt |
crosvm - The Chrome OS Virtual Machine Monitor
crosvm is a virtual machine monitor (VMM) based on Linux’s 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 Chrome OS platform. Compared to QEMU, crosvm doesn’t 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 Chrome OS devices.
- Documentation
- Source code
- API doc, useful for searching API.
- For contribution, see the contributor guide. Mirror repository is available at GitHub for your convenience, but we don't accept bug reports or pull requests there.
- Issue tracker