Running RISC-V Debian on FPGA boards using Vivado

debian-riscv-vivado-rocket

Luffcaでは、Vivadoを用いて64-bit RISC-VのRocket ChipのSoCを構成し、2種類のFPGAボード(Qmtech社のWukongボードとDigilent社のNexys Video)上で、RISC-V Debianを実行することに成功しました。
これらのSoCは、https://github.com/eugene-tarassov/vivado-risc-vをベースにしています。

Debian

Debianは、Linuxディストリビューションのひとつで、RISC-Vにも対応しています。
但し、ハードウェアベースラインとしてRV64GCを使用し、lp64d ABI(RV64GシステムのデフォルトABI)を使用しているため、RV32には対応しません。
詳細は、RISC-V – Debian Wikiをご覧ください。

vivado-risc-v

debian-riscv-vivado-rocket-2
以下のFPGAボードは、vivado-risc-vのreleasesエリアにビルド済みのビットストリームが用意されており、比較的容易にDebianを実行することができます。

  • Xilinx VC707
  • Xilinx KC705
  • Digilent Genesys 2
  • Digilent Nexys Video
  • Digilent Nexys A7 100T

Luffcaでは、このリポジトリをベースとして、Qmtech社のWukongボード(特に、DRAMとEthernet)に対応させたSoCを作成しました。

XC7A100Tを搭載したWukongボードの場合、rocket64b1と呼ばれるシングル・ビッグコアのみの対応になりますが、XC7A200Tを搭載したNexys Videoの場合、デュアル・ビッグコアのrocket64b2にも対応します。

今回は、用意されているSDカード・イメージをSDカードに書き込み、Debianを実行しました。
なお、ブートシーケンスは、下記の通りです。
OpenSBI → U-Boot → Linux → Debianのrootfs

スクリーンショットは、中央のターミナルがUART接続、左側のターミナルがEthernet経由のssh接続しているときの様子です。

まとめ

Luffcaでは、Vivadoを用いて64-bit RISC-VのRocket ChipのSoCを構成し、Qmtech社のWukongボードとDigilent社のNexys Video上で、RISC-V Debianを実行することに成功しました。