前言
基于开源Litex去Boot Linux
一、Litex安装
这里不赘述,建议安装Linux环境下Litex环境,具体可按照官方步骤安装。
二、Config配置、构建SOC
1.配置文件
首先进入如下目录(忽略我进入了root权限,在user权限下操作):
![图片[1]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103705182-31750559825.png?v=1750559826)
可以看到该目录下两个文件夹:platforms、targets
- platforms:该文件夹下存放着所有开发板的约束文件。
- targets:该文件夹下存放着构建对应开发板SOC的脚本文件。
我们本次使用Nexys4 DDR开发板,相对应的platforms和targets中文件为digilent_nexys4ddr.py,下图:
![图片[2]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103711739-101750559831.png?v=1750559832)
![图片[3]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103715436-51750559835.png?v=1750559849)
soc的配置可以手动修改脚本文件,将对应外设配置为True;也可以在命令行进行配置。
因为后续Boot Linux,需要将dts、镜像文件等加载至内存,通常有三种启动方式:
- 串口输入(不太建议,速度相当慢)
- SD卡写入(最主流的做法)
- Ethernet写入(相较于串口稍微快一点)
因为这次没有准备SD卡,所以我们采用Ethernet输入,直接修改脚本文件,如下图:
![图片[4]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103731292-71750559851.png?v=1750559865)
仅构建SOC最小系统+Ethernet:Core、DDR、Ethernet。
2.构建SOC
使用的Xilinx芯片,所以需要预先安装好Vivado,Litex会调用Vivado进行综合。
Core选用Vexriscv-smp,可以git下面这个工程更方便构建Linux
https://github.com/litex-hub/linux-on-litex-vexriscv
进入主目录下,运行如下命令:
/make.py --board=Nexys4DDR --build
![图片[5]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103749148-11750559869.png?v=1750559886)
运行结束后,会在build目录下生成nexysddr文件夹,里面存放着dts、bitstream等文件
![图片[6]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103810199-61750559890.png?v=1750559892)
3.烧录Bit,启动Bios
两种方法烧录:
- 在Ubuntu中安装FpgaProgrammer,直接烧录
- 利用Vivado烧录Bit
成功烧录后,打开串口可以打印如下界面:
![图片[7]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103814638-41750559894.png?v=1750559895)
4.Ethernet启动Linux
启动顺序:串口 – SD card – Ethernet,我们本次采用Ethernet加载镜像文件。
首先下载tftp,并将所需文件存放至本地文件夹中,fpga地址192.168.1.50,driver中主机地址配置为192.168.1.100,所以需要将本地主机设置为同一地址。
![图片[8]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103817999-51750559897.png?v=1750559898)
在Bios界面输入help,查看如何通过Ethernet启动。
![图片[9]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103821947-31750559901.png?v=1750559901)
可以看到可以在Bios界面通过输入netboot从主机启动。
![图片[10]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103822657-101750559902.png?v=1750559904)
等待Opensbi引导完毕,Linux可以正常启动。
![图片[11]-Nexys4 DDR开发 Litex启动Linux-LiteX社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2025/06/20250622103825817-61750559905.png?v=1750559906)
总结
以上是使用Litex boot Linux简单说明,Litex功能十分强大,可以去深入学习。





没有回复内容