No description
Find a file
Daniel Verkamp a475cd4754 aarch64: avoid recalculating MMIO regions
Rather than calling get_high_mmio_base_size() twice, once in the Arch
create_system_allocator() callback and once in build_vm(), it would be
cleaner to retrieve the MMIO regions from the existing system allocator.
Add a couple of helper functions to AddressAllocator so we can get the
original region back.

This also helps in the next patch, which will pass additional
information to get_high_mmio_base_size() that is messy to calculate
twice.

BUG=b:210727578
TEST=Boot crosvm on trogdor64

Change-Id: Ia5c7d7c7ff7edb406a9b4af482b277204f865474
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3373450
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-01-11 22:41:40 +00:00
.cargo Enable some tests for armhf builds 2021-12-14 18:11:32 +00:00
.devcontainer Add new dev container and install-deps scripts 2021-10-15 22:12:02 +00:00
.github tools: Add cargo-doc script 2021-12-09 14:34:31 +00:00
aarch64 aarch64: avoid recalculating MMIO regions 2022-01-11 22:41:40 +00:00
acpi_tables x86_64: Add _OSC for pcie hotplug 2021-12-09 00:19:42 +00:00
arch hypervisor: add API to query VM physaddr size 2022-01-11 22:41:38 +00:00
bin Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
bit_field crosvm: fix needless_borrow clippy warning 2021-08-25 23:02:23 +00:00
ci/kokoro Kokoro: Allow manual merge targets in merge-into-chromeos 2021-12-14 23:41:33 +00:00
common p9: re-add OWNERS file for fuzzer ownership 2022-01-10 20:43:27 +00:00
crosvm-fuzz crosvm-fuzz: add hypervisor dependency for block_fuzzer 2022-01-05 21:46:34 +00:00
crosvm_control crosvm: Rename libcrosvm_control to crosvm_control 2021-12-14 18:38:42 +00:00
crosvm_plugin sys_util: Replace unsafe use of iovecs 2021-11-26 14:28:28 +00:00
devices virtio: video: decoder: pass frame formats to input formats 2022-01-11 10:33:50 +00:00
disk Handle qcow image backed by a composite disk 2021-11-11 11:08:48 +00:00
docs/book ./tools/presubmit: Parallel execution and use dev container 2021-11-19 20:09:40 +00:00
fuse fuse: Set max_pages in InitOut 2021-11-25 03:56:08 +00:00
gpu_display Add scudo as an optional feature 2021-12-10 09:09:17 +00:00
hypervisor hypervisor: add API to query VM physaddr size 2022-01-11 22:41:38 +00:00
integration_tests Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
kernel_cmdline kernel_cmdline: convert to ThisError and sort 2021-09-02 21:00:23 +00:00
kernel_loader Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
kvm aarch64: Provide the maximum supported IPA size as the machine type 2021-11-01 14:24:27 +00:00
kvm_sys Update value of KVM_VM_TYPE_ARM_PROTECTED to match temporary pKVM ABI. 2022-01-07 17:18:21 +00:00
libcras_stub Integrate audio_streams into crosvm, add stub libcras implementation 2021-07-29 05:59:42 +00:00
libvda libvda: ignore pkg_config errors if chromeos feature is not set 2021-12-22 05:47:05 +00:00
linux_input_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
net_sys kvm_sys|virtio_sys|net_sys: disable tests failing on 32bits 2021-12-15 00:55:48 +00:00
net_util crosvm: add option to use persistent TAP interface as network device 2021-12-10 07:31:03 +00:00
power_monitor Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
protos Remove trunks proto from crosvm build 2021-07-31 03:01:21 +00:00
qcow_utils qcow_utils: Move from getopts to argh 2022-01-06 21:28:47 +00:00
resources aarch64: avoid recalculating MMIO regions 2022-01-11 22:41:40 +00:00
rutabaga_gfx virgl_renderer: Fix incorrect usage of CString 2021-12-16 21:58:33 +00:00
seccomp gpu_render_server: allow syslog and signalfd again 2021-12-22 06:01:25 +00:00
src hypervisor: add API to query VM physaddr size 2022-01-11 22:41:38 +00:00
system_api_stub system_api_stub: use 2018 edition of Rust 2021-09-09 06:42:46 +00:00
tests tests/plugins: replace rand_ish use with a counter 2021-07-21 23:28:27 +00:00
third_party Enable some tests for armhf builds 2021-12-14 18:11:32 +00:00
tools crosvm: Commit Cargo.toml with a useful description. 2022-01-06 22:59:57 +00:00
tpm2
tpm2-sys Enable some tests for armhf builds 2021-12-14 18:11:32 +00:00
usb_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
usb_util usb_util: do not silently drop non-EAGAIN errors 2021-12-15 19:34:08 +00:00
vfio_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
vhost devices: vhost: Allow vhost-vsock fd from command-line 2021-11-18 15:19:29 +00:00
virtio_sys kvm_sys|virtio_sys|net_sys: disable tests failing on 32bits 2021-12-15 00:55:48 +00:00
vm_control Vfio-pci: Release irq_num at pci device remove 2022-01-06 23:32:54 +00:00
vm_memory Revert "vm-memory: mlock2(MLOCK_ONFAULT) guest memory for protected VMs" 2021-12-02 11:28:53 +00:00
x86_64 hypervisor: add API to query VM physaddr size 2022-01-11 22:41:38 +00:00
.dockerignore
.gitignore Add test runner ./tools/run_tests 2021-10-15 22:12:03 +00:00
.gitmodules Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
.rustfmt.toml
ARCHITECTURE.md crosvm: Add a note that MemoryMapping does RAII. 2021-11-30 09:24:16 +00:00
Cargo.toml cros_asyncv2: Do not add crates.io patch 2021-12-15 00:40:15 +00:00
CONTRIBUTING.md Remove uprev section from CONTRIBUTING.md 2021-12-16 06:26:53 +00:00
LICENSE
navbar.md navbar: Update navbar contents 2021-10-29 01:56:24 +00:00
OWNERS Remove chirantan from OWNERS 2022-01-06 21:32:18 +00:00
README.chromeos Add documentation for ChromeOS integration 2021-12-08 18:50:50 +00:00
README.md crosvm: Sprinkle notes on API search. 2021-11-08 07:21:20 +00:00
run_tests Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
rust-toolchain Uprev rust toolchain to 1.56.1 2021-12-10 02:34:50 +00:00
setup_cros_cargo.sh Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
test_all Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
unblocked_terms.txt unblocked_terms.txt: clean up trivial cases 2021-04-26 20:32:38 +00:00

crosvm - The Chrome OS 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 Chrome OS 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 Chrome OS devices.

Logo