Skip to content

Commit 2c60b9f

Browse files
committed
feat: add submodules
chore: update submodule commits for various modules feat: add axplat-aarch64-dyn submodule feat(axalloc): introduce a global memory allocator with buddy system - Added `axalloc` crate with a global allocator implementation. - Implemented `GlobalAllocator` using a buddy system allocator. - Provided functions for memory initialization, allocation, and deallocation. - Added `GlobalPage` struct for managing contiguous memory pages. feat(axvm-types): define address types and device access structures - Introduced `GuestVirtAddr` and `GuestPhysAddr` types for guest memory addressing. - Created traits for device address handling and defined `DeviceAddr` and `DeviceAddrRange`. - Implemented `Port` and `SysRegAddr` types for I/O operations and system registers. fix(vmm): update VM reference handling - Changed `push_vm` function to accept `axvm::Vm` directly and return an `Arc<axvm::Vm>`. - Updated global VM list management to use `Arc` for thread-safe reference counting. chore: update submodules and dependencies - Updated submodules for `arm_vcpu`, `axvm`, and `axvmconfig`. - Added `memory_addr` dependency to `axruntime` and `axvm-types`. - Updated `Cargo.toml` files to reflect new dependencies and features. chore: update axplat-aarch64-dyn submodule to latest commit chore: update axplat-aarch64-dyn submodule to latest commit fix: update memory mapping type in build_vmconfig function chore: update dependencies to version hv-0.4.3 and sync submodule axvm chore: update dependencies and refactor task management in the kernel chore: update fdt-parser submodule to latest commit chore: update fdt-edit and fdt-raw packages to latest versions and adjust dependencies chore: update fdt-edit package to version 0.1.3 and adjust checksum chore: update Cargo.lock and axplat-aarch64-dyn submodule to latest commits Add initial documentation and diagram for refactoring process - Created a new markdown file `refactor.md` to outline the refactoring strategy. - Added a binary image `refactor.png` to visually represent the refactoring process. Add refactor documentation for AxVisor architecture evolution - Introduced a comprehensive analysis report detailing the transition from axvisor-dev3 to axvsior-dev2. - Documented key architectural changes, including modularization, multi-architecture support, and improved dependency management. - Highlighted the benefits of the refactor, such as enhanced maintainability, stability, and development efficiency. - Provided a detailed comparison of the old and new architecture, including directory structure and module responsibilities. - Included design principles, performance optimizations, and future development recommendations. Refactor AxVisor architecture: Transition from monolithic to modular design - Removed detailed execution summary and key improvements from refactor.md to streamline documentation. - Deleted outdated diagram (refactor.png) to eliminate redundancy. - Updated submodule reference for axvm to the latest commit for improved consistency. Refactor code structure for improved readability and maintainability 更新 Cargo.lock 和 Cargo.toml,移除 fdt-parser 版本限制并添加 ranges-ext 依赖 更新 fdt-edit 依赖版本至 0.1.4,移除 ept-level-4 特性,并更新 axvm 子模块 更新 axalloc 依赖版本至 0.2.0,修复依赖冲突并移除过时的 zerocopy 依赖 更新 GitHub Actions 工作流,升级 checkout 动作至 v6 并启用子模块递归更新;更新 axvm 子模块至最新提交 update ci 删除不再使用的 NimbOS 和 QEMU 设置工作流;移除多个配置文件中的 ept-level-4 特性 refactor: Enhance AxVm design and state management - Introduced a detailed design for AxVm, illustrating its internal structure and lifecycle management through state machines. - Defined the overall architecture, including the relationship between AxVisor and Vm instances. - Elaborated on the state management within VmData, detailing the three core states: InitData, VmRunData, and StoppedData. - Clarified the VCPU and threading model, emphasizing resource migration and lifecycle safety through Arc/Weak references. refactor: 清理未使用的导入和模块,优化代码结构 更新 fdt-edit 包至版本 0.1.5,移除 build_vmconfig 函数中的冗余设备配置,更新 axvm 子模块至最新提交 更新 axvm 子模块至最新提交 更新 axvm 子模块至最新提交 更新 linux-aarch64-qemu-smp1.toml 配置,移除冗余物理 CPU ID 和内核相关注释,更新 axvm 子模块至最新提交 更新 axvm 和 arm_vcpu 子模块至最新提交 更新 axvm 子模块至最新提交 更新 axvm 和 arm_vcpu 子模块至最新提交 更新 axvm 子模块至最新提交 更新 axvm 和 arm_vcpu 子模块至最新提交 更新 axvm 和 arm_vcpu 子模块至最新提交 更新 axvm 子模块至最新提交 更新 arceos 和 linux 虚拟机配置文件,注释掉物理 CPU ID 和内核相关参数 在虚拟机配置中添加内核中断模式设置为“passthrough” 调整 arceos 虚拟机配置,移动中断模式设置至设备规格部分,并更新内核路径和内存区域配置 更新 uboot.toml 成功正则表达式,添加 "Hello, world!";更新 arm_vcpu 和 axvm-types 子模块至最新提交 更新 arceos 和 linux 虚拟机配置,注释掉物理 CPU ID 和内核相关参数 更新 axvm 子模块至最新提交 更新 axvm 子模块至最新提交;修复内存映射类型为保留类型的配置;更新 axconfig 和 axruntime 的版本号至 0.1.0 更新依赖项,添加 axplat-x86-qemu-q35 和 x86_vcpu;修复多处理器启动页设置中的指针计算 更新 arm_vcpu 子模块至最新提交 更新 arm_vcpu 和 axvm 子模块至最新提交 更新依赖项,添加 raw-cpuid 和 axaddrspace;公开 load_images_fs 函数;更新子模块至最新提交 doc: update uml 更新版本号至 0.3.0,优化 load_images_fs 函数,简化内存映像加载逻辑 fmt chore: clean up Cargo.lock by removing unused packages and updating dependencies
1 parent 10ca6d5 commit 2c60b9f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1831
-2243
lines changed

.cargo/config.toml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,28 @@ rustflags = [
1818
[alias]
1919
xtask = "run --package xtask --"
2020

21+
# >>> devspace patches >>>
22+
# Managed by `cargo xtask devspace`
23+
[patch."crates-io"]
24+
axaddrspace = { path = "modules/axaddrspace" }
25+
axdevice_base = { path = "modules/axdevice_base" }
26+
axvisor_api = { path = "modules/axvisor_api" }
27+
x86_vcpu = { path = "modules/x86_vcpu" }
28+
x86_vlapic = { path = "modules/x86_vlapic" }
29+
30+
[patch."https://github.com/arceos-hypervisor/arm_vcpu"]
31+
arm_vcpu = { path = "modules/arm_vcpu/" }
32+
33+
[patch."https://github.com/arceos-hypervisor/arm_vgic"]
34+
arm_vgic = { path = "modules/arm_vgic/" }
35+
36+
[patch."https://github.com/arceos-hypervisor/axdevice"]
37+
axdevice = { path = "modules/axdevice/" }
38+
39+
[patch."https://github.com/arceos-hypervisor/axvcpu"]
40+
axvcpu = { path = "modules/axvcpu/" }
41+
42+
[patch."https://github.com/arceos-hypervisor/axvmconfig"]
43+
axvmconfig = { path = "modules/axvmconfig/" }
44+
45+
# <<< devspace patches <<<

.devspace/state.json

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
{
2+
"modules": {
3+
"axvisor_api": {
4+
"name": "axvisor_api",
5+
"path": "modules/axvisor_api"
6+
},
7+
"x86_vlapic": {
8+
"name": "x86_vlapic",
9+
"path": "modules/x86_vlapic"
10+
},
11+
"axvmconfig": {
12+
"name": "axvmconfig",
13+
"path": "modules/axvmconfig"
14+
},
15+
"arm_vcpu": {
16+
"name": "arm_vcpu",
17+
"path": "modules/arm_vcpu"
18+
},
19+
"arm_vgic": {
20+
"name": "arm_vgic",
21+
"path": "modules/arm_vgic"
22+
},
23+
"x86_vcpu": {
24+
"name": "x86_vcpu",
25+
"path": "modules/x86_vcpu"
26+
},
27+
"axdevice_base": {
28+
"name": "axdevice_base",
29+
"path": "modules/axdevice_base"
30+
},
31+
"axaddrspace": {
32+
"name": "axaddrspace",
33+
"path": "modules/axaddrspace"
34+
},
35+
"axvcpu": {
36+
"name": "axvcpu",
37+
"path": "modules/axvcpu"
38+
},
39+
"axdevice": {
40+
"name": "axdevice",
41+
"path": "modules/axdevice"
42+
}
43+
},
44+
"patches": [
45+
{
46+
"source": "crates-io",
47+
"crate_name": "axaddrspace"
48+
},
49+
{
50+
"source": "crates-io",
51+
"crate_name": "axdevice_base"
52+
},
53+
{
54+
"source": "crates-io",
55+
"crate_name": "axvisor_api"
56+
},
57+
{
58+
"source": "crates-io",
59+
"crate_name": "x86_vcpu"
60+
},
61+
{
62+
"source": "crates-io",
63+
"crate_name": "x86_vlapic"
64+
},
65+
{
66+
"source": "https://github.com/arceos-hypervisor/arm_vcpu",
67+
"crate_name": "arm_vcpu"
68+
},
69+
{
70+
"source": "https://github.com/arceos-hypervisor/arm_vgic",
71+
"crate_name": "arm_vgic"
72+
},
73+
{
74+
"source": "https://github.com/arceos-hypervisor/axdevice",
75+
"crate_name": "axdevice"
76+
},
77+
{
78+
"source": "https://github.com/arceos-hypervisor/axvcpu",
79+
"crate_name": "axvcpu"
80+
},
81+
{
82+
"source": "https://github.com/arceos-hypervisor/axvmconfig",
83+
"crate_name": "axvmconfig"
84+
}
85+
]
86+
}

.github/workflows/actions/setup-nimbos-guest-image/action.yml

Lines changed: 0 additions & 72 deletions
This file was deleted.

.github/workflows/actions/setup-qemu/action.yml

Lines changed: 0 additions & 47 deletions
This file was deleted.

.github/workflows/test-board.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ jobs:
3636
- ${{ matrix.board }}
3737

3838
steps:
39-
- name: Checkout
40-
uses: actions/checkout@v4
39+
- uses: actions/checkout@v6
40+
with:
41+
submodules: "recursive"
4142

4243
- name: Install dependencies
4344
run: cargo +stable install ostool --version ^0.8

.github/workflows/test-qemu.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ jobs:
3131
- intel
3232

3333
steps:
34-
- name: Checkout
35-
uses: actions/checkout@v4
34+
- uses: actions/checkout@v6
35+
with:
36+
submodules: "recursive"
3637

3738
- name: Install dependencies
3839
run: cargo +stable install ostool --version ^0.8

.github/workflows/uboot.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ success_regex = [
1010
"Welcome to AxVisor Shell!",
1111
"All tests passed!",
1212
"Hello World!",
13+
"Hello, world!",
1314
"root@firefly:~#",
1415
"root@phytium-Ubuntu:~#",
1516
"Welcome to Phytium Buildroot",

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ __pycache__/
3030
/crates/*
3131
!/crates/nop/
3232
!/crates/nop/**
33-
.devspace/
3433

3534
/Cargo.toml.bk
3635

.gitmodules

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
[submodule "modules/axvm"]
2+
path = modules/axvm
3+
url = https://github.com/arceos-hypervisor/axvm.git
4+
[submodule "modules/axvcpu"]
5+
path = modules/axvcpu
6+
url = https://github.com/arceos-hypervisor/axvcpu.git
7+
[submodule "modules/axdevice"]
8+
path = modules/axdevice
9+
url = https://github.com/arceos-hypervisor/axdevice.git
10+
[submodule "modules/arm_vcpu"]
11+
path = modules/arm_vcpu
12+
url = https://github.com/arceos-hypervisor/arm_vcpu
13+
[submodule "modules/arm_vgic"]
14+
path = modules/arm_vgic
15+
url = https://github.com/arceos-hypervisor/arm_vgic.git
16+
[submodule "modules/axaddrspace"]
17+
path = modules/axaddrspace
18+
url = https://github.com/arceos-hypervisor/axaddrspace
19+
[submodule "modules/axdevice_base"]
20+
path = modules/axdevice_base
21+
url = https://github.com/arceos-hypervisor/axdevice_base.git
22+
[submodule "modules/axvisor_api"]
23+
path = modules/axvisor_api
24+
url = https://github.com/arceos-hypervisor/axvisor_api
25+
[submodule "modules/x86_vcpu"]
26+
path = modules/x86_vcpu
27+
url = https://github.com/arceos-hypervisor/x86_vcpu
28+
[submodule "modules/x86_vlapic"]
29+
path = modules/x86_vlapic
30+
url = https://github.com/arceos-hypervisor/x86_vlapic
31+
[submodule "modules/axvmconfig"]
32+
path = modules/axvmconfig
33+
url = https://github.com/arceos-hypervisor/axvmconfig.git
34+
[submodule "platform/axplat-aarch64-dyn"]
35+
path = platform/axplat-aarch64-dyn
36+
url = https://github.com/arceos-hypervisor/axplat-aarch64-dyn

.rustfmt.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
force_explicit_abi = false
1+
# force_explicit_abi = false

0 commit comments

Comments
 (0)