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を実行することに成功しました。


