Xillinux是一个支持在Zedboard、ZyBo、SocKit板子上运行的包括软件和FPGA代码的图形化桌面Linux发行版。Xillinux也支持没有图形化界面的MicroZed板子。官网为 http://www.xillybus.com/xillinux 。使用的教程来自http://www.xillybus.com/downloads/doc/xillybus_getting_started_zynq.pdf

这里使用Xillinux提供的内核、硬件代码实现在Zedboard PS核上运行linux的目的。

下载

进入官网,点击下载源代码和Linux内核镜像。

源代码和内核镜像

下载到的文件为内核镜像文件xillinux-2.0.img.gz和源代码包xillinux-eval-zedboard-2.0c.zip

解压缩xillinux-eval-zedboard-2.0c.zip以后得到的文件夹包括

  • verilog, vhdl, blockdesign:三个文件夹包括分别使用verilog、vhdl和blockdesign设计实现的硬件逻辑源代码,实际使用时只需要用其中之一即可。注意如果使用vhdl需要进行部分修改,见参考P12上的部分内容。
  • bootfiles:包括boot.bin和设备树文件
  • cores:预编译的Xillinx IP核
  • system:Directory for generating processor-related logic
  • runonece:– Directory for generating general-purpose logic. May not exist in some bundles.
  • vivado-essentials – Definition files and build directories for processor-related and general-purpose logic for use by Vivado.

实际上我们只需要blockdesignbootfiles两个文件夹内的内容即可。

编译

Linux镜像是预编译的内容,但是FPGA部分的Bitstream需要自己编译。打开Vivado(要求版本高于2014.2),不要新建项目而是打开Tools->Run Tcl Scripts

run tcl scripts

选择解压后的blockdesign文件夹中的xillydemo-vivado.tcl即可,等待一会儿就可以得到自动生成的Project了。确认Tcl Console窗口无问题后可以直接选择Generate Bitstream生成比特流文件。

生成的Project

烧写

这里只介绍Windows烧写方式。使用的工具为USB Image Tool,此工具既有图形界面,又包括一个命令行工具。

使用图形界面

图形界面需要.NET 3.5的支持,可能会出问题。注意选择Device Mode,选好U盘点击Restore找到.img.gz文件即可。

这里在弹出的选择文件的窗口中可以选择文件类型,Compressed (gzip) image files

图形界面

使用命令行工具

Win10安装.NET 3.5支持可能出问题,可以使用命令行工具进行。

C:\usbimage>usbitcmd l
USB Image Tool 1.57
COPYRIGHT 2006-2010 Alexander Beug
http://www.alexpage.de
Device | Friendly Name           | Volume Name | Volume Path | Size
------------------------------------------------------------------------------
2448   | USB Mass Storage Device |             | E:\         | 4024 MB
# 烧写
C:\usbimage>usbitcmd r 2448 \path\to\xillinux.img.gz /d /g

运行

烧写完毕后,为了不出问题,可以将SD卡重插一次。在Windows下只能看到一个16MB的小分区,里面只有一个uImage文件(这就是Linux内核),将之前的bootfiles中的boot.bindevicetree.dtb文件和之前生成的比特流文件xillydemo.bit复制到这里就可以将SD卡插入Zedboard上运行了。

xillydemo.bit文件位置应当在xillinux-eval-zedboard-2.0c\blockdesign\vivado\xillydemo.runs\impl_1

运行之前修改一下板上跳线帽,修改后应当如下图所示

修改跳线帽

  • JP2: 使USB端口支持5V设备(不用键鼠可以取消)
  • JP6:required for CES silicon, see page 34 of the Zedboard’s Hardware Guide).
  • JP7-11:启动选项跳线帽

连接电源,使用UART端口通过USB连接到电脑。UART波特率115200,其他默认,使用Putty连接端口,通过设备管理器查看端口号。

端口

连接上以后可能窗口里什么都没有,回车一下就可以看到了。

使用reboot可以查看启动过程以及进入uboot。在uboot中执行boot指令可以继续启动

结果