-
Notifications
You must be signed in to change notification settings - Fork 564
Closed
Description
Hi,
Henry(@MrXinWang) and I are developers of ARM. We are working to enable Cloud-hypervisor on AArch64. Now an initial version is ready, although all functionalities are not supported.
As a minimal implementation, it supports a small set of devices: including serial device, RTC and Virtio devices with MMIO transport option. We are about to submit the code as a starting point, all other devices and functionalities will be added in steps.
Before coding, we made an analysis of the gap to fully support AArch64, which could be taken as a TODO list: (updated)
- Build on AArch64: AArch64 initial build #1168
- Fix build warnings and errors
- Add cross-build workflows in PR Check
- FDT and architecture specific devices: AArch64: Adding AArch64 arch-related files #1223
- Device Manager:
- Hide Port-IO
- Add legacy devices to MMIO bus.
- Allocators:
- GsiAllocator: Update IRQ and GSI allocation algorithm.
- Ioapic: Refactor IOAPIC #1232
- Now Ioapic is directly referenced in device manager, but it is architecutre specific. A way to improve could be refactoring: introduce a architecture agnostic Interrupt Controller trait. Different architecture provides its own implementation: for X86 it's Ioapic; for Aarch64 it would be GIC.
- Booting:
- A fundamental requirement for Aarch64 is: VCPU's have to be created before GIC. But in current Cloud-Hypervisor the VCPU's are created in late stage of booting. We need to refactor the steps in booting a guest to work with both architecture at first: vmm: Change booting process to cover AArch64 requirements #1238
- And populate Arm64 specific booting source code: Enable AArch64 #1126
- Virtio:
- MMIO transport: Add device info to FDT
- PCI transport: Add PCI bus info to FDT
- Migration:
- Enable dependencies for AArch64: kvm-bindings, kvm-ioctls.
- Vhost-user-*:
- To be tested and determined.
- VFIO:
- To be tested and determined.
- CI:
- Update Dockerfile.
- Get guest disk images for integration tests.
- Add and setup CI machines.
- Enable Aarch64 CI.
lining2020xPavlinchenMrXinWang and egernst
Metadata
Metadata
Assignees
Labels
No labels