Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

重构 #23

Merged
merged 91 commits into from
Jun 26, 2022
Merged

重构 #23

merged 91 commits into from
Jun 26, 2022

Conversation

YdrMaster
Copy link
Member

@YdrMaster YdrMaster commented May 20, 2022

  • sbi 实现

    • 根据标准重新审查函数实现,依赖新版 rustsbi
    • 移除堆分配
    • 重写上下文切换
    • 使用新的设备树解析方案,尽量从设备树解析各模块地址和长度
    • 配置更精细的 pmp
    • 模块
      • srst
        • shutdown
        • reboot
      • hsm
        • hart_start
        • hart_stop
        • hart_get_status
        • hart_suspend
  • 测试内核

    • 分离 sbi-rt 子项目,特权软件可基于此项目调用 sbi ecall(不限于 rustsbi)
    • 测试项目
      • 引导特权软件
      • base
      • legacy (deperacated)
      • time csr
      • exception delegate
      • hsm
      • srst
  • 测试通过情况

    • 测试内核单核
    • 测试内核多核
    • rCore-Tutorial-v3
    • zCore 单核
    • zCore 多核

fix(sbi-rt): typo
@YdrMaster
Copy link
Member Author

fix #7

@YdrMaster
Copy link
Member Author

fix #19

@YdrMaster
Copy link
Member Author

fix #26

@YdrMaster
Copy link
Member Author

现在 hsm 使用的 ipi 有专门的 handler,一般的 ipi 会被转发,大概能 fix #12

@YdrMaster
Copy link
Member Author

不知道 #22 是不是能解决

@YdrMaster
Copy link
Member Author

#5 现在 test-kernel 基本上是平台无关的,并且通过一个肯定平台无关 sbi-rt 库调用 sbi functions

Signed-off-by: YdrMaster <ydrml@hotmail.com>
Signed-off-by: YdrMaster <ydrml@hotmail.com>
Signed-off-by: YdrMaster <ydrml@hotmail.com>
temp: 实现系统重启操作的一部分,exectute 还没接住
Signed-off-by: YdrMaster <ydrml@hotmail.com>
@YdrMaster
Copy link
Member Author

解决了无法服务 rCore-Tutorial-v3 的问题

Signed-off-by: YdrMaster <ydrml@hotmail.com>
Signed-off-by: YdrMaster <ydrml@hotmail.com>
@YdrMaster
Copy link
Member Author

xtask 升级 clap 到 3.1,并支持在 windows 上调试

- 若 binutils 不存在,将自动安装
- 自动处理文件扩展名、应用程序路径等问题以支持 windows 上开发

Signed-off-by: YdrMaster <ydrml@hotmail.com>
Signed-off-by: YdrMaster <ydrml@hotmail.com>
Signed-off-by: YdrMaster <ydrml@hotmail.com>
Signed-off-by: YdrMaster <ydrml@hotmail.com>
@YdrMaster
Copy link
Member Author

一个简单的 ci,自动检查 fmt、clippy 和 test

@luojia65
Copy link
Member

十分感谢!

@luojia65 luojia65 merged commit e5ab409 into rustsbi:main Jun 26, 2022
@whfuyn
Copy link

whfuyn commented Jul 20, 2022

不知道 #22 是不是能解决

似乎不行,目前master分支(e5ab409)还是收不到S模式的时钟中断。

调试的时候发现,如果调用过sbi的SET_TIMERmip.mtip会变成1,如果没有调过就一直是0。

用rCore-Tutorial里的自带的rustsbi-qemu.bin的话可以正常收到。

@YdrMaster
Copy link
Member Author

不知道 #22 是不是能解决

似乎不行,目前master分支(e5ab409)还是收不到S模式的时钟中断。

调试的时候发现,如果调用过sbi的SET_TIMERmip.mtip会变成1,如果没有调过就一直是0。

用rCore-Tutorial里的自带的rustsbi-qemu.bin的话可以正常收到。

我大概懂了,正在修

@YdrMaster
Copy link
Member Author

不知道 #22 是不是能解决

似乎不行,目前master分支(e5ab409)还是收不到S模式的时钟中断。

调试的时候发现,如果调用过sbi的SET_TIMERmip.mtip会变成1,如果没有调过就一直是0。

用rCore-Tutorial里的自带的rustsbi-qemu.bin的话可以正常收到。

#22 讨论吧,关联了下一个 pr,应该已经解决了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants