← richliu.com / 文章
中文 EN

Running RISC-V Linux on Lattice Versa ECP5 EVB

2025-09-21 RISC-V FPGA ECP5 LiteX 嵌入式

這篇是延伸自之前建立 RISC-V 環境的文章。 目標是在 Lattice Versa ECP5 EVB 上實際跑起 RISC-V Linux, 但中間踩了一個晶片型號不符的坑。

關鍵問題:晶片型號不對

市場上流通的板子使用的是 LFE5UM-45F, 而不是工具預設的 LFE5UM5G-85F。 筆者從淘寶買的是舊版,沒有 "5G" 字樣,導致燒錄時 ID 不符合而失敗。

解法:重新編譯時明確指定晶片型號:

./make.py --device LFE5UM \
          --board=versa_ecp5 \
          --cpu-count=1 \
          --build

硬體準備

在上電前,需要正確設定 J50 跳線(bypass iSPclock), 否則板子可能無法正常啟動。

連上 USB 後,FT2232H 會出現兩個裝置:

燒錄 bitstream

使用 openFPGALoader 取代原廠工具:

openFPGALoader -b ecp5_evn versa_ecp5.bit

udev 權限設定

建立 /etc/udev/rules.d/99-ftdi.rules,讓一般使用者也能存取 FTDI 介面:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", \
    MODE="0664", GROUP="plugdev"
sudo udevadm control --reload-rules
sudo udevadm trigger

雙核心 SMP 設定

45F 型號支援雙核心 SMP 設定, 如果要啟用可以在 make.py 加上 --cpu-count=2

啟動成功

設定正確後,透過 ttyUSB1 可以看到 Linux 核心的開機訊息, 最終進入 RISC-V Linux shell。 在一塊 FPGA 開發板上跑起完整的 Linux 還是很有成就感的。