Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

hypocaust, a S-mode trap and emulate type-1 hypervisor run on RISC-V machine.

License

NotificationsYou must be signed in to change notification settings

KuangjuX/hypocaust

Repository files navigation

Note:
Currently developing the hardware-assisted virtualization projecthypocaust-2

Overview

Hypocaust is an experimental S-mode trap and emulate type-1 hypervisor for RISC-V. It is currently targeted at QEMU's virt machine type. It can run onRustSBI currently. It can boot and runminikernel now.

Environment

  • QEMU 7.0.0
  • rust 1.66.0

Build

git clone https://github.com/KuangjuX/hypocaust.gitcd hypocaustgit submodule update --initmake qemu

Memory Region

  • DRAM Memory Region: 0x80000000 - 0x140000000 3GB
  • hypervisor: 128MB
  • Guest Kernel: 128MB

Hypervisor Memory Region

HVA StartHVA EndHPA StartHPA EndMemory Region
0x800000000x802000000x800000000x80200000RustSBI
0x802000000xC00000000x802000000x88000000hypervisor
0x880000000x8FFFFFFF0x880000000x8FFFFFFFGuest Kernel 1
0x900000000x97FFFFFF0x900000000x97FFFFFFGuest Kernel 2
0x980000000x9FFFFFFF0x980000000x9FFFFFFFGuest Kernel 3
0x1000000000x17FFFFFFF0x1000000000x17FFFFFFFGuest Kernel 1 Shadow Page Table

Resvered Memory Region

VA StartVA EndMemory Region
0xFFFFFFFFFFFFF0000xFFFFFFFFFFFFFFFFTrampoline
0xFFFFFFFFFFFFE0000xFFFFFFFFFFFFEFFFTrap Context

Guest Kernel Memory Region

GVAGPAHVAMemory Region
0x80000000 - 0x87FFFFFF0x80000000 - 0x87FFFFFF0x88000000 - 0x8FFFFFFFGuest Kernel 1
0x80000000 - 0x87FFFFFF0x80000000 - 0x87FFFFFF0x90000000 - 0x97FFFFFFGuest Kernel 2
0x80000000 - 0x87FFFFFF0x80000000 - 0x87FFFFFF0x98000000 - 0x9FFFFFFFGuest Kernel 3

Supported Platforms

  • QEMU virt machine type

RoadMap

  • Load guest kernel && Run guest kernel
  • Trap and emulate of privileged instructions(CSR related and SFENCE>VMA)
  • Shadow page tables
  • Synchronize guest page table & shadow page table
  • Foward Expections & Interrupts
  • Timers
  • Serial IO emulate
  • Handle external interrupts
  • Expose and/or emulate peripherals
  • passthrough virtio block and networkd devices
  • multicore supported
  • multiguest supported

References

Questions

See also:

License

MIT License

Copyright (c) 2022 ChengXiang Qi

Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THESOFTWARE.

About

hypocaust, a S-mode trap and emulate type-1 hypervisor run on RISC-V machine.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp