RISCV多核处理器的Linux移植

RISCV多核处理器的Linux移植,linux,multicore,bootloader,toolchain,riscv,Linux,Multicore,Bootloader,Toolchain,Riscv,我们正在开发具有RISCV体系结构的多核处理器 我们已经为单核RISCV处理器移植了Linux,它正在使用busybox rootfs在我们自己的基于FPGA的板上工作 我现在想为多核RISCV处理器移植Linux 我的疑问是: 现在可用的gnu riscv gcc工具链是否支持多核 spike现在是否支持多核 我是否应该对bbl引导加载程序(Berkely引导加载程序)进行任何更改以支持多核 为了支持多核,我应该对单核Linux内核做哪些更改 当前的RISC-V生态系统已经支持SMP Linu

我们正在开发具有RISCV体系结构的多核处理器

我们已经为单核RISCV处理器移植了Linux,它正在使用busybox rootfs在我们自己的基于FPGA的板上工作

我现在想为多核RISCV处理器移植Linux

我的疑问是:

  • 现在可用的gnu riscv gcc工具链是否支持多核
  • spike现在是否支持多核
  • 我是否应该对bbl引导加载程序(Berkely引导加载程序)进行任何更改以支持多核
  • 为了支持多核,我应该对单核Linux内核做哪些更改

  • 当前的RISC-V生态系统已经支持SMP Linux

  • 多核不需要更改编译器

  • 使用“-p”标志时,Spike可以模拟多核

  • BBL支持多核

  • 在构建linux之前,将其配置为支持SMP


  • 任何问题都可能是由于工具链与最新的特权规范更改不同步造成的。去年秋天,用户成功地在RISC-V上构建并运行了多核Linux。

    这一切都是开箱即用的。我对Linux和QEMU请求的标准测试流程是通过Linux+BBL在QEMU上启动Fedora根文件系统。有关说明,请参阅。这将在我们的“virt”板中启动,该板使用基于VirtIO的设备。这些设备有标准的上游Linux驱动程序,这些驱动程序得到了很好的支持,因此实际上没有任何平台级别的工作要做

    除了标准的基于VirtIO的设备外,SiFive还拥有属于Freedom SOC平台的设备。如果您的平台与SiFive的Freedom平台有很大不同,那么您需要在Linux和BBL中添加一些额外的驱动程序。
    我们维护了一个树外版本的驱动程序,我们还没有在中为上游清理,这应该让您大致了解它需要做多少工作。在该存储库中运行
    make qemu
    将通过BBL在qemu上引导Linux,运行
    make
    将向您展示如何为HiFive Released board闪存SD卡映像。

    这听起来不错,您能提供在多核RISC-V设计上成功运行Linux的项目名称吗?这样我们就可以搜索项目并阅读他们的经验,如果他们发布了任何信息的话。谢谢