Michael Zhao
b173f6f654
vmm,devices: Change Gic snapshot and restore path
...
The snapshot and restore of AArch64 Gic was done in Vm. Now it is moved
to DeviceManager.
The benefit is that the restore can be done while the Gic is created in
DeviceManager.
While the moving of state data from Vm snapshot to DeviceManager
snapshot breaks the compatability of migration from older versions.
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2022-12-01 17:07:25 +01:00
Rob Bradford
6f8bd27cf7
build: Bulk update dependencies
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-28 16:57:49 +00:00
Sebastien Boeuf
81862e8ed3
devices, vmm: Move Gpio to new restore design
...
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-11-25 17:37:29 +00:00
Sebastien Boeuf
9fbf52b998
devices, vmm: Move Pl011 to new restore design
...
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-11-25 17:37:29 +00:00
Sebastien Boeuf
0bd910e8b0
devices, vmm: Move Serial to new restore design
...
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-11-25 17:37:29 +00:00
Sebastien Boeuf
ef92e55998
devices, vmm: Move Ioapic to new restore design
...
Moving the Ioapic object to the new restore design, meaning the Ioapic
is created directly with the right state, and it shares the same
codepath as when it's created from scratch.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-11-25 17:18:21 +01:00
Michael Zhao
7d16c74020
vmm: Refactor AArch64 GIC initialization process
...
In the new process, `device::Gic::new()` covers additional actions:
1. Creating `hypervisor::vGic`
2. Initializing interrupt routings
The change makes the vGic device ready in the beginning of
`DeviceManager::create_devices()`. This can unblock the GIC related
devices initialization in the `DeviceManager`.
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2022-11-23 11:49:57 +01:00
Wei Liu
9806d83e7c
devices: modify safety comments
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2022-11-18 12:50:01 +00:00
Praveen K Paladugu
d0b253d15f
devices: Add tpm device
...
This device emulates a tpm device in cloud-hypervisor. Read and write support
to miminal set of control registers is supported.
Non-control commands will be processed as reads and write to
CRB_DATA_BUFFER. Reads and Writes to this data buffer are forwarded to
swtpm via the configured data_fd.
Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
Co-authored-by: Sean Yoo <t-seanyoo@microsoft.com>
2022-11-15 16:42:21 +00:00
Bo Chen
a9ec0f33c0
misc: Fix clippy issues
...
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-11-02 09:41:43 +01:00
dependabot[bot]
bc310bb173
build: Bump libc from 0.2.135 to 0.2.137
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.135 to 0.2.137.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.135...0.2.137 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-27 23:57:43 +00:00
dependabot[bot]
e710e21744
build: Bump anyhow from 1.0.65 to 1.0.66
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.65 to 1.0.66.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.65...1.0.66 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-21 00:04:03 +00:00
dependabot[bot]
f38ef20e3b
build: Bump libc from 0.2.134 to 0.2.135
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.134 to 0.2.135.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.134...0.2.135 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-11 01:13:44 +00:00
dependabot[bot]
67751d07d6
build: Bump libc from 0.2.133 to 0.2.134
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.133 to 0.2.134.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.133...0.2.134 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-30 01:01:13 +00:00
Rob Bradford
b2d1dd65f3
build: Remove "fwdebug" and "common" feature flags
...
This simplifes the buld and checks with very little overhead and the
fwdebug device is I/O port device on 0x402 that can be used by edk2 as a
very simple character device.
See: #4679
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-09-26 10:16:33 -07:00
Rob Bradford
2b53de58b3
build: Remove the exposed "cmos" feature
...
This only affects the build system; the feature was already always
compiled in with ca68b9e7a9
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-09-20 11:18:46 +01:00
dependabot[bot]
50c3aa775b
build: Bump libc from 0.2.132 to 0.2.133
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.132 to 0.2.133.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.132...0.2.133 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-20 01:24:56 +00:00
Rob Bradford
19b006eb84
devices: legacy: pl011: Move boot timestamping to warn!()
...
This makes it consistent with x86_64 and allows the performance metrics
tooling to continue to work on aarch64.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-09-16 14:36:12 +01:00
dependabot[bot]
ecaff8ff1b
build: Bulk dependencies update
...
Multiple rust-vmm crates must be updated at once given the vm-memory one
has been updated and they all rely on vm-memory.
- vm-memory from 0.8.0 to 0.9.0
- vhost from 0.4.0 to 0.5.0
- virtio-queue from 0.5.0 to 0.6.0
- vhost-user-backend from 0.6.0 to 0.7.0
- linux-loader from 0.4.0 to 0.5.0
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-09-14 15:01:04 +01:00
dependabot[bot]
06d7796190
build: bump anyhow from 1.0.64 to 1.0.65
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.64 to 1.0.65.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.64...1.0.65 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-14 02:24:55 +00:00
dependabot[bot]
d6f8411635
build: bump anyhow from 1.0.63 to 1.0.64
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.63 to 1.0.64.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.63...1.0.64 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-05 17:24:08 +00:00
Rob Bradford
4465bbaf38
devices: acpi: Add generic event controller
...
Rather than overloading the GED device with the detection of what the
underlying event means move that to a new generic event controller. The
advantage of this is that that the generic event controller can have a
_CRS that covers the memory for the OperationRegion (the ged driver
rejects _CRS entries that contain anything beyond the single interrupt)
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-09-02 15:15:15 +01:00
dependabot[bot]
33d9ed9a66
build: bump anyhow from 1.0.62 to 1.0.63
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.62 to 1.0.63.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.62...1.0.63 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-01 01:00:52 +00:00
Nuno Das Neves
784a3aaf3c
devices: gic: use VgicConfig everywhere
...
Use VgicConfig to initialize Vgic.
Use Gic::create_default_config everywhere so we don't always recompute
redist/msi registers.
Add a helper create_test_vgic_config for tests in hypervisor crate.
Signed-off-by: Nuno Das Neves <nudasnev@microsoft.com>
2022-08-31 08:33:05 +01:00
Nuno Das Neves
a832033531
devices: gic: Introduce VgicConfig and Gic::create_default_config()
...
VgicConfig structure will be used for initializing the Vgic.
Gic::create_default_config will be used everywhere we currently compute
redist/msi registers.
Signed-off-by: Nuno Das Neves <nudasnev@microsoft.com>
2022-08-31 08:33:05 +01:00
dependabot[bot]
ccc88ccfd2
build: bump libc from 0.2.131 to 0.2.132
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.131 to 0.2.132.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.131...0.2.132 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-17 16:30:47 +00:00
dependabot[bot]
80f7d62e1c
build: bump anyhow from 1.0.61 to 1.0.62
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.61 to 1.0.62.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.61...1.0.62 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-17 00:39:07 +00:00
dependabot[bot]
b865b059aa
build: bump libc from 0.2.129 to 0.2.131
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.129 to 0.2.131.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.129...0.2.131 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 11:46:09 +00:00
dependabot[bot]
c591a96ecb
build: bump anyhow from 1.0.60 to 1.0.61
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.60 to 1.0.61.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.60...1.0.61 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-12 00:48:16 +00:00
dependabot[bot]
3d9c9d720f
build: bump libc from 0.2.127 to 0.2.129
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.127 to 0.2.129.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.127...0.2.129 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-10 09:11:29 +00:00
Wei Liu
f42c6d567d
devices: fix a clippy warning
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2022-08-09 17:20:14 +00:00
dependabot[bot]
226a21811e
build: bump anyhow from 1.0.59 to 1.0.60
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.59 to 1.0.60.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.59...1.0.60 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-09 00:47:29 +00:00
dependabot[bot]
bb444f3e7c
build: bump libc from 0.2.126 to 0.2.127
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.126 to 0.2.127.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.126...0.2.127 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-04 10:39:47 +00:00
dependabot[bot]
487458c9f8
build: bump anyhow from 1.0.58 to 1.0.59
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.58 to 1.0.59.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.58...1.0.59 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-03 00:05:18 +00:00
Wei Liu
bcaa299c55
devices: arch is only needed by aarch64
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2022-07-22 22:29:49 +01:00
Wei Liu
2afd0e626a
tree-wide: drop unneeded dependencies
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2022-07-22 22:29:49 +01:00
dependabot[bot]
b440cb7d23
build: bump vmm-sys-util from 0.9.0 to 0.10.0
...
This patch requires the vhost-user-backend crate to be bumped from 0.5.0
to 0.5.1.
Bumps [vmm-sys-util](https://github.com/rust-vmm/vmm-sys-util ) from 0.9.0 to 0.10.0.
- [Release notes](https://github.com/rust-vmm/vmm-sys-util/releases )
- [Changelog](https://github.com/rust-vmm/vmm-sys-util/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-vmm/vmm-sys-util/compare/v0.9.0...v0.10.0 )
---
updated-dependencies:
- dependency-name: vmm-sys-util
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-07-20 09:40:28 +00:00
dependabot[bot]
eb55d0809e
build: bump anyhow from 1.0.57 to 1.0.58
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.57 to 1.0.58.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.57...1.0.58 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-21 00:46:25 +00:00
Michael Zhao
957d3a7443
aarch64: Simplify GIC related structs definition
...
Combined the `GicDevice` struct in `arch` crate and the `Gic` struct in
`devices` crate.
After moving the KVM specific code for GIC in `arch`, a very thin wapper
layer `GicDevice` was left in `arch` crate. It is easy to combine it
with the `Gic` in `devices` crate.
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2022-06-06 10:17:26 +08:00
Michael Zhao
04949755c0
arch: Switch to new GIC interface
...
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2022-06-06 10:17:26 +08:00
Rob Bradford
3538afc1fe
devices: debug_port: Move 0x80 output to warn!() level
...
This allows the capturing of the debug port event without requiring more
verbose logging which itself has a performance impact.
Unless users are using our custom kernel or their own custom patches
they are unlikely to see the impact.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-05-23 11:14:53 +01:00
dependabot[bot]
0e16ffbcff
build: bump libc from 0.2.125 to 0.2.126
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.125 to 0.2.126.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.125...0.2.126 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-18 07:14:37 +00:00
dependabot[bot]
7db7410920
build: bump virtio-queue from 0.2.0 to 0.3.0
...
Bumps [virtio-queue](https://github.com/rust-vmm/vm-virtio ) from 0.2.0 to 0.3.0.
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases )
- [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-queue-v0.2.0...virtio-queue-v0.3.0 )
Also relies on main branch from vhost-user-backend since it moved to
virtio-queue 0.3.0 as well, and without this change it wouldn't compile.
---
updated-dependencies:
- dependency-name: virtio-queue
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-05-16 11:47:20 +02:00
Rob Bradford
707cea2182
vmm, devices: Move logging of 0x80 timestamp to its own device
...
This is a cleaner approach to handling the I/O port write to 0x80.
Whilst doing this also use generate the timestamp at the start of the VM
creation. For consistency use the same timestamp for the ARM equivalent.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-05-04 23:02:53 +01:00
dependabot[bot]
30e06eaaba
build: bump log from 0.4.16 to 0.4.17
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.16 to 0.4.17.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/commits/0.4.17 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-03 01:00:20 +00:00
dependabot[bot]
960a9e0ff7
build: bump libc from 0.2.124 to 0.2.125
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.124 to 0.2.125.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.124...0.2.125 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 18:15:25 +00:00
dependabot[bot]
3c8e280bf1
build: bump anyhow from 1.0.56 to 1.0.57
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.56 to 1.0.57.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.56...1.0.57 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-22 00:11:48 +00:00
dependabot[bot]
de1af55e22
build: bump libc from 0.2.123 to 0.2.124
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.123 to 0.2.124.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.123...0.2.124 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-20 10:43:52 +00:00
dependabot[bot]
f8201bc151
build: bump libc from 0.2.122 to 0.2.123
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.122 to 0.2.123.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.122...0.2.123 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-13 10:13:32 +01:00
Rob Bradford
ed87e42e6f
vm-device, pci, devices: Remove InterruptSourceGroup::{un}mask
...
The calls to these functions are always preceded by a call to
InterruptSourceGroup::update(). By adding a masked boolean to that
function call it possible to remove 50% of the calls to the
KVM_SET_GSI_ROUTING ioctl as the the update will correctly handle the
masked or unmasked case.
This causes the ioctl to disappear from the perf report for a boot of
the VM.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-04-11 22:56:48 +01:00