No description
Find a file
Sebastian Hereu e87cdc40b3 devices: fw_cfg: add fw_cfg device
Basic implementation of fw_cfg device. The device is recognized by
OVMF, and OVMF can read a hard-coded number 0x66 from the device with fw_cfg's read(). Arbitary files can be written to the device via FwcfgDevice::add_file(). The device is activated with the command line param --fw-cfg. Specifying --fw-cfg alone will activate the device
and additional arguments may be specified so that a user-specified data blob may be added from the command line. Currently, however, attempting to add a data blob from the command line is a noop.Still need to implement read() and write().

BUG=b:283990685

Change-Id: Iec899b7568b7f9195084c5cbcde1fc8a8fafd9fa
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4659945
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Sebastian Hereu <sebastianhereu@google.com>
2023-07-18 21:09:37 +00:00
.cargo clippy: Disallow len_without_is_empty and len_zero 2023-05-22 21:27:21 +00:00
.config Enable test retries in nextest 2023-06-07 17:43:18 +00:00
.devcontainer dev_container: Always run as root inside container 2023-04-25 21:33:42 +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 aarch64: Fix size prop in swiotlb 2023-07-12 20:18:39 +00:00
acpi_tables acpi: aml: make the BufferData public 2023-05-05 22:26:02 +00:00
arch devices: fw_cfg: add fw_cfg device 2023-07-18 21:09:37 +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 base_event_token_derive: Move entry point to standard location 2023-07-17 18:47:27 +00:00
bit_field bit_field: suppress clippy cast warnings 2023-04-10 23:41:28 +00:00
broker_ipc crash_report: refactor product specific code 2023-06-09 23:10:04 +00:00
common wire_format_derive: Move entry point to standard location 2023-07-17 18:47:33 +00:00
cros_async cros_async: port some uring_source tests to io_source 2023-07-10 23:46:14 +00:00
cros_fdt clippy fixes for Rust 1.70 and 1.71 2023-07-13 20:29:05 +00:00
cros_tracing devices: replace usb_debug macro with cros_tracing 2023-07-04 04:52:24 +00:00
cros_tracing_types Upstream cros_tracing_types. 2023-05-11 18:08:00 +00:00
crosvm_cli crosvm_cli: reserve new control server exit code. 2023-05-16 23:05:32 +00:00
crosvm_control crosvm_control: Remove temporary swap disable API 2023-07-10 04:36:31 +00:00
crosvm_plugin base: tube: send/recv for srteam socket to use io::Result 2023-05-23 10:29:53 +00:00
devices devices: fw_cfg: add fw_cfg device 2023-07-18 21:09:37 +00:00
disk clippy fixes for Rust 1.70 and 1.71 2023-07-13 20:29:05 +00:00
docs/book book: add more details to network example 2023-07-18 16:43:29 +00:00
e2e_tests e2e_tests: remove suspend_resume test disclaimer 2023-07-14 21:46:53 +00:00
fuse crosvm: Deprecate DataInit 2023-07-12 21:34:20 +00:00
fuzz devices: virtio: factor Queue into QueueConfig+Queue 2023-07-12 20:21:02 +00:00
gpu_display clippy: Disallow new_without_default 2023-05-22 21:14:06 +00:00
hypervisor clippy fixes for Rust 1.70 and 1.71 2023-07-13 20:29:05 +00:00
infra Roll recipe dependencies (trivial). 2023-07-18 19:44:01 +00:00
io_uring io_uring: update submission metadata after EINTR 2023-06-08 05:42:59 +00:00
jail swap: Truncate the swap file gradually 2023-07-05 02:17:32 +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 kernel_loader: Use Linux UAPI header for bindings 2023-05-30 12:21:18 +00:00
kvm kvm: remove KVM_CAP_IOAPIC_NUM_PINS 2023-07-05 23:10:55 +00:00
kvm_sys kvm: remove KVM_CAP_IOAPIC_NUM_PINS 2023-07-05 23:10:55 +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 clippy fixes for Rust 1.70 and 1.71 2023-07-13 20:29:05 +00:00
metrics metrics: upstream local metrics related changes 2023-06-13 21:57:14 +00:00
net_sys Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
net_util clippy fixes for Rust 1.70 and 1.71 2023-07-13 20:29:05 +00:00
perfetto crosvm: Remove DataInit from windows components 2023-06-15 21:30:12 +00:00
power_monitor Cargo.toml: upgrade protobuf 2.x -> 3.x 2023-04-28 19:32:01 +00:00
prebuilts prebuilds/testvm: Retry downloads 2023-03-09 23:04:20 +00:00
proto_build_tools Cargo.toml: upgrade protobuf 2.x -> 3.x 2023-04-28 19:32:01 +00:00
protos balloon: use protos for registered events 2023-05-22 19:28:45 +00:00
qcow_utils qcow_utils: Enable disk/qcow feature 2023-05-11 16:30:19 +00:00
resources resource: system_allocator: introduce GPE allocator 2023-02-06 22:02:37 +00:00
riscv64 riscv64: limit only minijail dependency 2023-07-17 16:44:57 +00:00
rutabaga_gfx clippy fixes for Rust 1.70 and 1.71 2023-07-13 20:29:05 +00:00
sandbox vhost-user: snd: Implement Windows broker & device setup 2023-02-28 21:34:01 +00:00
serde_keyvalue serde_keyvalue: add tests for outer-braces in arguments 2023-06-09 04:59:54 +00:00
src devices: fw_cfg: add fw_cfg device 2023-07-18 21:09:37 +00:00
swap swap: count resident pages using lseek 2023-07-18 06:59:50 +00:00
system_api Cargo.toml: upgrade protobuf 2.x -> 3.x 2023-04-28 19:32:01 +00:00
tests Enable parallel execution of plugin and e2e tests 2023-01-26 20:38:57 +00:00
third_party clippy fixes for Rust 1.70 and 1.71 2023-07-13 20:29:05 +00:00
tools book: add more details to network example 2023-07-18 16:43:29 +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: Handle stall error 2023-05-29 03:27:13 +00:00
vendor crash_report: refactor product specific code 2023-06-09 23:10:04 +00:00
vfio_sys vfio_sys: clean up wildcard re-exports 2023-07-13 19:59:28 +00:00
vhost crosvm: Add vhost scmi support 2023-06-22 23:25:03 +00:00
virtio_sys virtio: vsock: send TRANSPORT_RESET event on restore 2023-07-14 21:27:23 +00:00
vm_control vm_control: move send_recv_event test to base 2023-07-13 19:59:28 +00:00
vm_memory clippy fixes for Rust 1.70 and 1.71 2023-07-13 20:29:05 +00:00
win_audio net_util/win_audio: Do not use cfg conditional compilation in build.rs 2023-05-09 20:27:26 +00:00
win_util metrics: upstream local metrics related changes 2023-06-13 21:57:14 +00:00
x86_64 devices: fw_cfg: add fw_cfg device 2023-07-18 21:09:37 +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 docs: book: update architecture docs 2023-06-01 22:37:17 +00:00
Cargo.lock Partial revert: crosvm: Deprecate DataInit 2023-07-13 19:07:08 +00:00
Cargo.toml crash_report: refactor product specific code 2023-06-09 23:10:04 +00:00
CONTRIBUTING.md docs: Have style guide as a separate section 2023-05-16 16:03:03 +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 OWNERS: Add takayas@ to OWNERS 2023-04-24 11:15:25 +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 Upgrade to 1.68.2: Set default version and rebuild container 2023-05-25 18:30:55 +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