今天到了第三十天,也是該總結這將近一個月來的辛勞的時節了。
在我的Google Drive 資料夾中 ,我有提供bootstrap好給QEMU的、以及給FPGA的檔案。
QEMU的使用方式相對簡單,解壓縮完tarball後,在該資料夾內執行 run.sh
即可。
要真的在FPGA上面要運行,首先你需要買一張 OrangeCrab ,或著於 Linux-on-Litex/VexRiscv 官方repo上,有列出支援SDCard的FPGA開發板(不可為打星號的,打星的是指PCB上有sdcard socket、但FPGA SoC上(預設)沒有populate)。
若您跟我一樣選擇OrangeCrab,因為他出廠就有預載DFU(Device Firmware Update)的bootloader,請按住板子上唯一一顆按鈕後、將USB cable插上電腦。此時您就可以將tarball中的FPGA bitstream上傳至OrangeCrab上的configuration flash中:dfu-util -D /path/to/extracted/orangecrab.bit.dfu
完成後,請準備一張FAT16/FAT32格式的microsd card,將tarball中剩餘的檔案 (boot.json
、Image_rtc_fake
、alp.cpio.gz
、rv32.dtb
)放置進microsd card根目錄中。
緊接著,將板子拔下、將microsd card放置進OrangeCrab的背後插槽中,再一次地將板子插入電腦上,此時,請選擇可以接受非標準baudrate的terminal emulator,例如picocom
、進行連接:
picocom -b 1000000 /dev/ttyACM0 # or the serial dev name populated by your system
此時,您應該就會看到SoC上的Litex BIOS在抓取sdcard上的boot.json、並且開始將該檔案記載的檔案擺放到memory上,緊接著就會從OpenSBI開始kickoff。然而,進入Alpine Init時,因為SPI-SDcard的傳輸速率限制,導致開機會花一些時間、請耐心等候。看到login prompt時,可以直接使用root
帳號登入、沒有密碼:
是說後來我有去跟LiteX的作者Florent還有VexRiscv的作者Dolu哭腰一段時間,說我實在很想在OrangeCrab-25F上跑RV32GC啊,這麼棒的開源教材這樣實在可惜了......
在各種fine tune後 - -
To be continued? :-)