用于RISCV多核处理器的Linux移植

时间:2016-05-27 10:59:32

标签: linux multicore bootloader toolchain riscv

我们正在开发一种采用RISCV架构的多核处理器。

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

我现在想要将Linux移植到多核RISCV处理器。

我的怀疑是:

  1. 现在可用的gnu-riscv-gcc工具链是否支持多核?
  2. 现在可用的尖峰是否支持多核?
  3. 我应该对bbl bootloader(Berkely bootloader)进行任何更改以支持多核吗?
  4. 我应该为单核Linux内核支持多核做出哪些改变?

2 个答案:

答案 0 :(得分:2)

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

  1. 多核无需更改编译器。

  2. 当使用' -p'时,Spike可以模拟多核。标志

  3. BBL支持多核。

  4. 在构建linux之前,请将其配置为支持SMP。

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

答案 1 :(得分:0)

所有这些都可以立即使用。我对Linux和QEMU拉取请求的标准测试流程是通过Linux + BBL在QEMU上引导Fedora根文件系统。可以在QEMU Wiki Article about RISC-V上找到说明。这将在我们的“ virt”板中启动,该板使用基于VirtIO的设备。这些设备具有标准的上游Linux驱动程序,这些驱动程序得到了很好的支持,因此实际上并不需要任何平台级的工作。

除了标准的基于VirtIO的设备外,SiFive还具有属于Freedom SOC平台的设备。如果您的平台与SiFive的Freedom平台有很大不同,那么您将在Linux和BBL中都需要一些其他驱动程序。  我们在freedom-u-sdk中维护了尚未为上游清理的驱动程序的树外版本,这应该使您大致了解它的工作量。在该存储库中运行make qemu将通过BBL在QEMU上启动Linux,运行make将向您展示如何为HiFive Unleashed板刷新SD卡映像。