Skip to content

Latest commit

 

History

History
35 lines (22 loc) · 2.89 KB

2024.1.31-uniproton-罗君.md

File metadata and controls

35 lines (22 loc) · 2.89 KB

目前的PR [正在code review]

添加riscv64 arch支持 同时 run 了一个简单的shell 在 qemu-virt上进行测试 · Pull Request !292 · openEuler/UniProton - Gitee.com

此次PR主要的工作 - arch 侧的riscv64 支持

  • 适配IPC框架
  • 适配中断框架
  • 适配异常框架
  • 适配任务task框架
  • 适配其他的比较杂的框架结构
  • 适配构建框架以及编译选项

未来的工作

  • 利用uniproton + linux 在多核异构板子上进行AMP部署运行 【此处已有初步的鬼点子想法,你的下一个AMP部署又何必是AMP架构 - SMP QEMU-VIRT部署验证(实际意义不大,仅作为AMP部署RISCV的参考验证)】
  • mcs 关键性混合部署框架 , 经过这几天的开悟,抓到了一些关键词, 内核驱动多核通信,根据仓库内容,其本质是一个LINUX的内核驱动支持,所以不一定真的需要openEuler-embedded 才能部署,只需要linux,然后编译出对应的.ko 驱动,加载作为基础软件就好 , 因为oe-embeded 使用的是linux 5.10, 所以后续也选择5.10 版本作为工作的基础 , 能够跑openEuler-embedded 最好,因为oe-embedded 提供了很多方便的软件去做AMP部署, 但是目前看来oe-embedded 自身对RISCV的支持就比较少。
  • licheerv nano linux + uniproton 部署验证
  • openEuler-embedded 在RISCV方面只支持SG2042 并不支持SG2002 更不用说以SG2002为核心的licheerv nano , 努力去根据SG2042的工作移植 openEuler-embedded on licheerv nano 【这个是稍微靠后面需要做的事情】

当前PR的产出文档

一些思考

  • openamp的相关学习算是正式第一次真正入手学习 Linux Kernel 了,之前大部分工作在一些小型OS,自制OS,RTOS的学习,以及一些理论知识的学习,感觉确实,从内核驱动入手感觉上对我很友好
  • 众所周知,Linux驱动又何必真正是硬件驱动,你可以在软件世界里面做所有你想做的世界,建模你想要的东西,软件的本质为建模抽象,所以大可不必需要硬件来做驱动开发【bushi】,当然有更好,QEMU里也能学到很多,OPENAMP就是典型例子。
  • 你可以利用 TICK + 中断 + 异常 建模简单的OS , 在硬件上甚至只需要支持arch相关的支持,内存,以及 比较重要的tick ,中断控制器,甚至不需要一些额外的硬件,不需要DMA,不需要UART,IIC , SPI 以及音视频接口支持,就可以很好的建模出一些比较抽象的执行流,甚至用一些魔法的方法去在执行流之间做同步,这是非常amazing的

openamp 混合部署日跟踪记录