diff --git a/CHANGELOG.md b/CHANGELOG.md index 66abbcf7..45d0be5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,34 @@ > ⚠️ Please update this file for any changes to the hvisor project along with your name and GitHub profile link under the CURRENT section. -## CURRENT - v0.5 +## CURRENT - v0.6 + +- [feature] **PCIe/virtio**: Add emulated virtio PCI device support. ([PR #287](https://github.com/syswonder/hvisor/pull/287), [ZZJJWarth](https://github.com/ZZJJWarth)) +- [ci] Update CI workflow, add license / format checks, restore manual workflow triggers, and update CI terminal output. ([PR #302](https://github.com/syswonder/hvisor/pull/302), [PR #306](https://github.com/syswonder/hvisor/pull/306), [PR #360](https://github.com/syswonder/hvisor/pull/360), [Xingyu Chen](https://github.com/dallasxy)) +- [feature] **aarch64**: Extend VCPU state handling. ([PR #303](https://github.com/syswonder/hvisor/pull/303), [Jingyu Liu](https://github.com/liulog)) +- [feature] **riscv64**: Add virtual **RISC-V IOMMU** support. ([PR #307](https://github.com/syswonder/hvisor/pull/307), [Jingyu Liu](https://github.com/liulog)) +- [bugfix] Detect and diagnose hvisor memory region overlap with the root zone, and add overlap checks between MMIO passthrough and MMIO intercept handler regions. ([PR #311](https://github.com/syswonder/hvisor/pull/311), [PR #384](https://github.com/syswonder/hvisor/pull/384), [Inquisitor-201](https://github.com/Inquisitor-201), [Solicey](https://github.com/Solicey)) +- [bugfix] **aarch64**: Use `dc civac` instead of `dc ivac` in `invalidate_dcache_range`. ([PR #312](https://github.com/syswonder/hvisor/pull/312), [Inquisitor-201](https://github.com/Inquisitor-201)) +- [refactor] Remove redundant frame allocator wrappers, fix alignment parameter semantics, and fix `alloc_contiguous` alignment. ([PR #316](https://github.com/syswonder/hvisor/pull/316), [PR #359](https://github.com/syswonder/hvisor/pull/359), [Nehckl](https://github.com/Inquisitor-201), [Jingyu Liu](https://github.com/liulog)) +- [refactor] Migrate platform options from Cargo features to **Kconfig**. ([PR #319](https://github.com/syswonder/hvisor/pull/319), [Xingyu Chen](https://github.com/dallasxy)) +- [feature] **PCIe**: Add **DWC MSI** injection and **SR-IOV** support (VF enumeration, capability handler, ARI). ([PR #321](https://github.com/syswonder/hvisor/pull/321), [PR #358](https://github.com/syswonder/hvisor/pull/358), [Zhongkai Xu](https://github.com/ZhongkaiXu)) +- [feature] **aarch64**: Support **OpenHarmony** on dayu200 platform. ([PR #357](https://github.com/syswonder/hvisor/pull/357), [Stone749990226](https://github.com/Stone749990226)) +- [feature] **x86_64**: Boot **Asterinas** as zone1 via Multiboot2, with virtio-console support, x2APIC timer virtualization, IOAPIC fixes, and dedicated Jenkins CI. ([PR #362](https://github.com/syswonder/hvisor/pull/362), [PR #376](https://github.com/syswonder/hvisor/pull/376), [yyda](https://github.com/yydawx)) +- [config] Complete PCI fields in zone examples. ([PR #363](https://github.com/syswonder/hvisor/pull/363), [Jaxtonmax](https://github.com/Jaxtonmax)) +- [feature] **riscv64**: Add **RVA23** ISA features for QEMU platforms. ([PR #364](https://github.com/syswonder/hvisor/pull/364), [Jingyu Liu](https://github.com/liulog)) +- [platform] **aarch64**: Add support for **Jetson Orin** with UEFI memory map virtualization. ([PR #366](https://github.com/syswonder/hvisor/pull/366), [Ren HangQi](https://github.com/ForeverYolo)) +- [feature] **x86_64**: Add a hypercall to query the ECAM base. ([PR #377](https://github.com/syswonder/hvisor/pull/377), [yyda](https://github.com/yydawx)) +- [platform] **riscv64**: Add initial support for **Spacemit k3-com260**. ([PR #378](https://github.com/syswonder/hvisor/pull/378), [Jingyu Liu](https://github.com/liulog)) +- [feature] **rk3588 (sysoul_x3300)**: Add Linux NPU / GPU / display zone configurations via SCMI. ([PR #379](https://github.com/syswonder/hvisor/pull/379), [agicy](https://github.com/agicy)) +- [feature] **loongarch64**: Make SMP IPI and Virtio IRQ delivery stateful, track guest-to-physical CPU mappings, and fix Virtio consuming too much CPU. ([PR #380](https://github.com/syswonder/hvisor/pull/380), [Xinhao Li](https://github.com/li041), [Stl_](https://github.com/weifenjihe)) +- [ci] **aarch64**: Add hardware CI for rk3568 and phytium-pi. ([PR #381](https://github.com/syswonder/hvisor/pull/381), [Xingyu Chen](https://github.com/dallasxy)) +- [bugfix] **loongarch64**: Preserve firmware PCI bridge bus numbers. ([PR #386](https://github.com/syswonder/hvisor/pull/386), [Stl_](https://github.com/weifenjihe)) +- [infra] Support older Python environments in Kconfig tooling and fix the LoongArch release build. ([Xinhao Li](https://github.com/li041), [Stl_](https://github.com/weifenjihe)) +- [bugfix] **aarch64**: Refine early boot assembly. ([Nehckl](https://github.com/Inquisitor-201)) + +## History Release + +## hvisor - v0.5 - [platform] **aarch64**: Add support for **sysoul_x3300**. ([agicy](https://github.com/agicy)) - [feature] **aarch64**: Add dual-zone Linux / Android deployment. ([agicy](https://github.com/agicy)) @@ -24,8 +51,6 @@ - [ci] Add CI / CD support for **x86_64**. ([Tianhong Liu](https://github.com/Solicey)) - [ci] Add performance benchmarking scripts for QEMU platforms. ([Xinhao Li](https://github.com/li041)) -## History Release - ## hvisor - v0.4 - [platform] **x86**: Add support for ECX-2300F-PEG. ([Tianhong Liu](https://github.com/Solicey)) diff --git a/Cargo.lock b/Cargo.lock index 98b19c05..9644e03a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -159,7 +159,7 @@ dependencies = [ [[package]] name = "hvisor" -version = "0.1.0" +version = "0.6.0" dependencies = [ "aarch64-cpu", "acpi", diff --git a/Cargo.toml b/Cargo.toml index e26316e0..381e1177 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hvisor" -version = "0.1.0" +version = "0.6.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/README-zh.md b/README-zh.md index f22d5a15..959dc020 100644 --- a/README-zh.md +++ b/README-zh.md @@ -66,6 +66,7 @@ hvisor 是一个用 Rust 实现的 Type-1 裸机虚拟机监控器,采用分 - [x] Rockchip RK3568 - [x] Forlinx OK6254-C - [x] Phytium Pi +- [x] Jetson Orin ### riscv64 @@ -73,6 +74,7 @@ hvisor 是一个用 Rust 实现的 Type-1 裸机虚拟机监控器,采用分 - [x] Milk-V Megrez - [x] Sifive Hifive Premier P550 - [x] dp-1000 +- [x] Spacemit k3-com260 - [ ] FPGA 香山(昆明湖)on S2C Prodigy S7-19PS-2 ### loongarch64 @@ -93,7 +95,8 @@ hvisor 是一个用 Rust 实现的 Type-1 裸机虚拟机监控器,采用分 - [x] Zephyr AArch32 - [x] RT-Thread - [x] Android -- [ ] OpenHarmony +- [x] OpenHarmony +- [x] Asterinas ## 开始使用 @@ -105,22 +108,25 @@ hvisor 是一个用 Rust 实现的 Type-1 裸机虚拟机监控器,采用分 - [更新日志](./CHANGELOG.md) - 支持 USB zoneU 直通 - 支持 PCIe 总线虚拟化 +- 支持 Android +- 支持 OpenHarmony +- 支持 Jetson Orin +- 支持 IOMMU 虚拟化(Intel VT-d / RISC-V 虚拟 IOMMU) +- 支持时钟控制器虚拟化(virtio-scmi Clock 协议,ARM) +- 支持 NPU zoneU 直通(sysoul_x3300-scmi) ### 计划中 -- 支持 OpenHarmony - 支持 ARMv9 - 支持 GICv4 - 支持缓存着色 -- 支持 SR-IOV -- 支持 NPU zoneU 直通 - 支持 Nvidia GPU zoneU 直通 +- 支持 ARM SMMU 虚拟化 +- 支持 x86_64 时钟控制器虚拟化 +- 支持 SR-IOV - Web Management tool - 设备树配置工具 -- 支持 Nvidia Orin - 支持 Nvidia Thor - 支持 Raspberry Pi 5 -- 支持 IOMMU 虚拟化 -- 支持 时钟控制器 虚拟化 - 支持 pinctrl 虚拟化 - 支持无 zone0 启动 zoneU / zoneR diff --git a/README.md b/README.md index 57e964d7..b82eb1ed 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ hvisor is a Type-1 bare-metal virtual machine monitor implemented in Rust, featu - [x] Rockchip RK3568 - [x] Forlinx OK6254-C - [x] Phytium Pi +- [x] Jetson Orin ### riscv64 @@ -72,6 +73,7 @@ hvisor is a Type-1 bare-metal virtual machine monitor implemented in Rust, featu - [x] Milk-V Megrez - [x] Sifive Hifive Premier P550 - [x] dp-1000 +- [x] Spacemit k3-com260 - [ ] FPGA XiangShan(KunMingHu) on S2C Prodigy S7-19PS-2 ### loongarch64 @@ -92,7 +94,8 @@ hvisor is a Type-1 bare-metal virtual machine monitor implemented in Rust, featu - [x] Zephyr AArch32 - [x] RT-Thread - [x] Android -- [ ] OpenHarmony +- [x] OpenHarmony +- [x] Asterinas ## Getting Started @@ -103,22 +106,25 @@ Please refer to the hvisor documentation for quick start guides, build and run i - [CHANGELOG](./CHANGELOG.md) - Support for USB zoneU passthrough - Support for PCIe bus virtualization +- Support for Android +- Support for OpenHarmony +- Support for Jetson Orin +- Support for IOMMU virtualization (Intel VT-d / RISC-V virtual IOMMU) +- Support for Clock Controller virtualization (virtio-scmi Clock protocol, ARM) +- Support for NPU zoneU passthrough (sysoul_x3300-scmi) ### Planned -- Support for OpenHarmony - Support for ARMv9 - Support for GICv4 - Support for Cache Coloring -- Support for SR-IOV -- Support for NPU zoneU passthrough - Support for Nvidia GPU zoneU passthrough +- Support for ARM SMMU virtualization +- Support for Clock Controller virtualization on x86_64 +- Support for SR-IOV - Web Management tool - Device Tree configuration tool -- Support for Nvidia Orin - Support for Nvidia Thor - Support for Raspberry Pi 5 -- Support for IOMMU virtualization -- Support for Clock Controller virtualization - Support for pinctrl virtualization - Support for booting zoneU / zoneR without zone0