Replies: 3 comments 2 replies
-
arm_vcpu 重新设置了中断向量表,这部分是否应该由 axcpu 中的 trap 去实现,可参考 crotex-m-rt 已有的实现作为默认中断,虚拟化和宏内核可以用外部函数进行替换,axvcpu 中 /// The interfaces which the underlying software (kernel or hypervisor) must implement.
pub trait AxVCpuHal {
/// Memory management interfaces.
type MmHal: axaddrspace::AxMmHal;
/// Fetches current interrupt (IRQ) number.
///
/// # Returns
///
/// * `usize` - The current IRQ number.
fn irq_fetch() -> usize {
0
}
/// Dispatch an interrupt request (IRQ) to the underlying host OS.
fn irq_hanlder() {
unimplemented!("irq_handler is not implemented");
}
}
``` irq_fetch 似乎只有aarch64用到,用上述方式,irq-handle就不用 arm_vcpu 再实现一遍,也就用不到这个接口了,可以简化 |
Beta Was this translation helpful? Give feedback.
0 replies
-
Beta Was this translation helpful? Give feedback.
2 replies
-
ArceOS 缺少以下函数: |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
2025OS训练营后续的暑期实践小任务
适配新的 ArceOS 平台支持架构
ArceOS 上游的 PR#249 已经合并,这个 PR 重塑了 ArceOS 的平台支持机制,允许将 platform 相关代码放置到单独的仓库中。目前 Axvisor 代码合并的一项重要工作是,将 Axvisor 本地的 ArceOS 合并回 ArceOS 上游;在合并之前,需要适配这个 PR 的改动。现将需要完成的工作整理如下:
0. 整理下游的更改
目前下游 ArceOS 的更改集中在 https://github.com/arceos-hypervisor/arceos/tree/vmm 和 https://github.com/arceos-hypervisor/arceos/tree/vmm_irq_gicv3 两个分支上。前者是 Axvisor 工作的主分支,后者是基于前者的中断注入相关的更改。
这一步需要做的工作是,将所有 commit 整理归纳到以下所述的 3 个方向中(可以使用将 commit 分类 cherry-pick 到 3 个新分支上的方式,或者其他类似方式),同时,必须尽量保存 commit 历史的完整性。
1. 提交 3588 的平台支持代码
下游 ArceOS 增加了对 3588 的平台支持,需要将这部分提交到 https://github.com/arceos-org/axplat_crates/ 中或者新建一个独立仓库保存。
2. 提交虚拟化相关的平台支持代码修改
为了支持虚拟化功能,下游 ArceOS 对上游中已经存在的平台支持代码做出了一定的修改。这些修改主要集中在 ARM 架构下的平台中。现在上游 ArceOS 已经将这些平台支持代码剥离到 https://github.com/arceos-org/axplat_crates/ 中,因此需要将这些修改迁移到这里,并提出 PR。
3. 提交其他代码修改
除了以上两点,下游 ArceOS 中还包括了一些其他修改(主要是
axipi
模块),这部分代码可以在整理好后直接向上游 ArceOS 提出 PR。4. 修改 Axvisor
作为最后的收尾工作,修改 Axvisor,适配以上的代码修改和整理。
Beta Was this translation helpful? Give feedback.
All reactions