Releases: syswonder/hvisor
Releases · syswonder/hvisor
hvisor v0.3
hvisor-v0.3 Key Changes Summary
What's Changed
- 🐞 fix(iommu, its): fix its bugs by @ZhongkaiXu in #200
- x86_64: Add support for QEMU Q35 and ASUS NUC14MNK by @Solicey in #204
New Features and Hardware Support
🖥️ x86_64 Platform Support
Added comprehensive support for the x86_64 architecture, including:
- QEMU Q35 virtual platform: Boot and run guest Linux with full virtualization features.
- ASUS NUC14MNK physical platform: Verified root and non-root Linux boot on real hardware.
- Enabled SMP (multi-core startup).
- Enabled virtio-blk, virtio-net, and virtio-console devices in non-root Linux.
- Implemented VMX & EPT virtualization.
🧱 IOMMU & ITS Improvements (AArch64)
Refined and stabilized interrupt and I/O virtualization subsystems:
- Introduced dedicated IOMMU page table (iommu-pt) instead of reusing CPU page tables — improving address space isolation and DMA security.
- Fixed GITS_CBASER and GITS_BASER (Device Table) emulation logic to resolve ITS “non-stick” state issues.
- Enabled MSI (Message Signaled Interrupts) in zone1-linux.dts for full PCI/virtio interrupt support in secondary domains.
Contributors
- @Solicey — x86_64 platform bring-up and hardware support
- @ZhongkaiXu — IOMMU & ITS fixes for AArch64
Full Changelog: v0.2...v0.3
hvisor v0.2
hvisor-v0.2 Key Changes Summary
I. Major New Features
1. Hardware Platform Expansion
- Added initial support for Milk-V Megrez RISC-V board (#178).
- Added support for SiFive HiFive Premier P550 RISC-V platform (#189).
- Added support for Phytium-Pi board on AArch64 (#188).
- LoongArch64: Introduced support for 3A6000 board platform (#185).
2. Architecture Enhancements
RISC-V64
- Moved
clear_bssinto entry assembly code for cleaner initialization (#180). - Refactored
plichandling, moved it out of zone struct (#186).
AArch64
- Added aarch32 guest mode support (#187).
- Updated configurations for qemu-gicv2 and qemu-gicv3 boards (#190).
LoongArch64
- Fixed guest timer compensation logic and added 3A6000 platform board support (#185).
3. Interrupt Controller (GIC) Improvements
- Refined VMCR calculation by removing unnecessary bits (#191).
- Optimized structure of GIC parameters (#195).
- Enhanced GICR handling, removed unused FDT code (#194).
II. Critical Bug Fixes
- Fixed
zcu102configuration issues (#192).
III. CI / Code Quality
- Simplified codebase for better CI testing (#183).
Pull Requests
New Contributors
- @agicy (#190)
- @Baozixu99 (#188)
Full Changelog: v0.1.2...v0.2
hvisor v0.1.2
hvisor-v0.1.2 Key Changes Summary
I. Major New Features
1. Hardware Platform Expansion
- Added full support for Rockchip
RK3588/RK3568(device tree configs, memory layout optimization) (#136, #149). - Adapted
Ti-OK6254to run hvisor withZone0/Zone1(#159).
2. Architecture Enhancements
RISC-V64:
- Added
virtiosupport (includingZone1booting onqemu-aia) for block/network devices (#137, #173). - Introduced
aclinttimer,vplicvirtual interrupt controller, and unittest/systemtest frameworks (#124, #130, #160, #162).
Loongarch64:
- Enabled
PCIepassthrough/allocation forLoongson 3A5000/6000(#166).
II. Critical Bug Fixes
- Fixed
RK3588boot failure withNOPinstruction (#172). - Resolved
qemu-aarch64config/DTSerrors (#125). - Fixed
GITShardware sync issues duringCBASERupdates inZone0(#146). - Addressed
VGicbugs in functionreg_range(#164). - Fixed
RISC-Vzone shutdown and guest page fault handling (#144, #163). - Fixed
Xilinx ZCU102memory layout for boot pagetable (#174).
Pull Request List
- [Fix] fix qemu-aarch64 config & dts by @Inquisitor-201 in #125
- riscv64: add aclint support by @liulog in #124
- [fix,license] force clean when build target board changed, added Mulan license header for project files by @enkerewpo in #126
- Update virtio-cfg for board qemu-gicv3 by @Inquisitor-201 in #128
- riscv64: add vplic struct by @liulog in #130
- add config check and add zone error handler to avoid panic by @KouweiLee in #132
- riscv64: move sstc to features by @liulog in #138
- support for rk3568 by @dallasxy in #136
- Add barrier instructions to fix boot_pt bugs by @Inquisitor-201 in #139
- feat: add the CI workflow to support running CI with the latest hvisor-tool and the configuration files in hvisor. by @CHonghaohao in #142
- feat: Enable dynamic CPU detection for ARM platforms via device tree by @FlowerBlackG in #134
- Add an auto-start script to automate root system initialization and enhance operational efficiency by @MacixOwl in #143
- docs. add Github CI status in README.md by @enkerewpo in #141
- riscv64: add virtio support by @liulog in #137
- riscv64: fix zone shutdown bug by @liulog in #144
- [bug fixed]GITS will update the hardware synchronously when updating CBASER in zone0 by @dallasxy in #146
- riscv64: improve sbi and ipi code by @liulog in #145
- aarch64: update zone0 dts on board imx8mp by @MacixOwl in #148
- ci. add issue and pr auto labeling bot and workflows by @enkerewpo in #150
- ci. fixed pull request and issue labeler crashed on empty arrays by @enkerewpo in #153
- feat. Add Rockchip RK3588 support by @Inquisitor-201 in #149
- [Fix] Add --locked to fix the CI build issue by @Inquisitor-201 in #157
- add imx8mp_ruxos config by @lhw2002426 in #154
- Added support for Ti-OK6254, able to run hvisor, Zone0, Zone1 by @ohhhHwH in #159
- riscv64: support unittest by @liulog in #160
- ci: add riscv64 qemu-plic systemtest by @CHonghaohao in #162
- Fix VGic bug, remove NCPU autodetect, resolve qemu-gicv3 warnings, and improve CI by @Inquisitor-201 in #164
- riscv64: handle guest page fault with htinst is zero by @liulog in #163
- Update readme.md by @Inquisitor-201 in #165
- feat(loongarch). add pci passthrough/allocation support for 3A5000/6000 by @enkerewpo in #166
- fit zcu102 memory layout by @ForeverYolo in #174
- 🐞 fix(gits): fix its bug by @ZhongkaiXu in #169
- RK3588: Add nop inst to get rid of boot failure by @Inquisitor-201 in #172
- [feature] riscv64: add virtio support in qemu-aia to boot zone1. by @CHonghaohao in #173
- Merge new features to main for hvisor-v0.1.2 release by @Inquisitor-201 in #156
New Contributors
- @FlowerBlackG made their first contribution in #134
- @MacixOwl made their first contribution in #143
- @lhw2002426 made their first contribution in #154
- @ohhhHwH made their first contribution in #159
Full Changelog: v0.1.1...v0.1.2
hvisor v0.1.1
What's Changed
- feat: add installation check for u-boot-tools in cargo_test.sh by @enkerewpo in #118
- feat(.github, test): add system tests for booting root and non-root in the CI workflow by @CHonghaohao in #117
- fix: temporarily disable the problematic subtests by @CHonghaohao in #120
- riscv64: compatible with platform-abstraction by @liulog in #122
- [platform] add
platformfolder for each board with better abstraction by @enkerewpo in #121 - merge new platform abstraction to main for hvisor-v0.1.1 release by @enkerewpo in #123
Full Changelog: v0.1.0...v0.1.1
v0.1.0
hvisor v0.1.0
This release has been automatically tested on CI, including code formatting checks and compilation verification for AArch64, RISC-V64, and LoongArch64. Additionally, it has been manually tested on hardware platforms (i.MX8MP and Loongson 3A5000) as of 2025-03-01, confirming that all functionalities are working correctly.
- [platform] architecture officially supported: riscv64, loongarch64 (Jingyu Liu, wheatfox)
- [tool] adapting hvisor-tool virtio-gpu, virtio-console (KouweiLee, Roxy, wheatfox)
- [bugfix] refactor aarch64 pagetable code (dallasxy)
- [platform] Xilinx Ultrascale+ ZCU102 PS processor support (Ren HangQi)
- [platform] Loongson 3A5000+7A2000 support (wheatfox, BoneInscri)
- [feature] SMMUv3 support (Zhongkai Xu)
- [feature] PCIe support (Zhongkai Xu, dallasxy, Ren HangQi)
- [feature] network interface card support (Ren HangQi)
- [feature] riscv64: IOMMU support (Jingyu Liu)
- [feature] aarch64: GICv2 support (Ren HangQi)
- [feature] basic inter-vm communication(ivc) support (KouweiLee)
- [test] unittest and github ci support (wheatfox)
- [tool] hvisor-tool: support virtio-console, virtio-blk, virtio-net (KouweiLee)
- [platform] basic support for riscv64 (likey99)
- [tool] aarch64: management tool in root zone linux, can create, stop, suspend and destroy working zones (KouweiLee)
- [platform] basic support for aarch64 with root and nonroot zone booting (Nehckl)
What's Changed
- stage2 virtual memory by @Miaowulue in #1
- Add gicv3 and test-img module by @Miaowulue in #3
- Resolved merge conflict by @Miaowulue in #5
- add el2 stage1 page table by @Miaowulue in #6
- Merge dev by @Miaowulue in #4
- Update branch dev by @KouweiLee in #7
- add stage 2 gicd & gicr mapping by @Inquisitor-201 in #10
- Added PSCI handling and successfully booted multi-core non-root Linux. by @Inquisitor-201 in #12
- Improve memory management and fix #8 by @KouweiLee in #11
- MMIO Handlers by @Inquisitor-201 in #13
- Finish destroy a cell by @KouweiLee in #14
- Successfully run Rukos by @Inquisitor-201 in #16
- Fix 16core dump and update README by @KouweiLee in #17
- rename sysHyper to hvisor by @KouweiLee in #18
- Merge Dev into Main by @KouweiLee in #19
- rename rvm to hvisor by @KouweiLee in #20
- v0.0.1 completed:start dual linux kernels. by @Inquisitor-201 in #28
- v0.0.2: Add management tools in root zone. Fixed #25. by @Inquisitor-201 in #31
- cmdtool: add shutdown a zone by @KouweiLee in #29
- Merge Virtio-blk backend to dev by @KouweiLee in #35
- Finish Virtio-net backend. by @KouweiLee in #36
- Add notify&sleep, event idx for Virtio devices. by @KouweiLee in #37
- Fix Bug: virtio devices sometimes stuck by @KouweiLee in #38
- Remove CLI, Virtio daemon and kernel module by @KouweiLee in #39
- Boot non root successfully but serial has some problem by @KouweiLee in #41
- enable 2 console in nxp by @KouweiLee in #43
- Fix and boot all Ethernet by @ForeverYolo in #44
- support RISC-V by @likey99 in #40
- Support hvisor-tool in riscv by @KouweiLee in #46
- Add zone config support. by @Inquisitor-201 in #53
- merge local enkerewpo/hvisor (loongarch port) to syswonder/hvisor dev-loongarch branch by @enkerewpo in #55
- add virtio config support by @Inquisitor-201 in #58
- Merge branch
dev-nxptomainby @Inquisitor-201 in #59 - fix: change data type to prevent potential hvisor-daemon startup failure by @ZhongkaiXu in #61
- Modify hvisor(riscv64) to adapt hvisor-tool config by @liulog in #62
- Add zone-list hypercall in hvisor by @Inquisitor-201 in #64
- pull request into hvisor/dev-loongarch branch by @enkerewpo in #65
- Merge dev-nxp to dev by @KouweiLee in #67
- merge dev-loongarch branch into dev branch by @enkerewpo in #66
- riscv support hvisor zone list by @liulog in #68
- Support sip smc and maintenance interrupt. by @KouweiLee in #71
- fix qemu bug: change cpu a53->a57 by @KouweiLee in #72
- PCIE merge prefetch by @dallasxy in #74
- update config, and add pci, arm-its, arm-iommu by @ZhongkaiXu in #75
- Support PCIe resource allocation for three virtual machines under ARM. by @ZhongkaiXu in #77
- support inter vm communication by @KouweiLee in #80
- update ivc dts and configure of linux by @HeartLinked in #83
- code cleanup by @enkerewpo in #86
- PR. add support for baremetal unit test running for hvisor #93 by @enkerewpo in #94
- support linux-6.2 by @ZhongkaiXu in #95
- merging dev-loongarch to lastest dev by @enkerewpo in #97
- update frame-allocation algorithm to accelerate stream table construction by @ZhongkaiXu in #98
- fix(images): edit zone config to resolve boot bug in zone1,2 by @CHonghaohao in #87
- Add zcu102 platform support. by @ForeverYolo in #91
- aarch64: fix root linux not booting by @enkerewpo in #101
- [Code refactoring] Rebuild the hypervisor page table by @dallasxy in #102
- update makefile and gitignore by @KouweiLee in #103
- update hvisor readme by @enkerewpo in #104
- [loongarch64] merge loongarch64 branch into dev with new changes from other pull requests(2025.2.7) by @enkerewpo in #99
- fix issue: #109 by @KouweiLee in #110
- add aia=aplic-imsic by @SanchezDorso in #78
- Add changelog, updated Github CI and formatted exisiting code with cargo fmt by @enkerewpo in #107
- milestone hvisor v0.1.0 by @enkerewpo in #106
New Contributors
- @Miaowulue made their first contribution in #1
- @KouweiLee made their first contribution in #7
- @likey99 made their first contribution in #40
- @ZhongkaiXu made their first contribution in #61
- @dallasxy made their first contribution in #74
- @HeartLinked made their first contribution in #83
- @CHonghaohao made their first contribution in #87
- @SanchezDorso made their first contribution in #78
Full Changelog: https://github.com/syswonder/hvisor/commits/v0.1.0