Running RISC-V Debian on FPGA boards using Vivado
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
以下の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を実行することに成功しました。