UbuntuontheZynq?-7000SoCFeaturingthe Avnet ZedBoard
这个指南提供了一种集合几个不同的技术在一个平台的方法,使用Avnet ZedBoard,我们拥有800Mhz ARM-9 Cortex 32位双核处理芯片,联合Xilinx FPGA 无与伦比的灵活性实施自定义用户系统。我们使用一个Linux内核作为基础操作系统在处理器内核运行,同时添加一个全性能的桌面架构Ubuntu,在根文件系统中控制。这个桌面允许ZedBoard像个人计算机一样工作,使用USB接口的键盘和鼠标,和一个HDMI接口的显示器。
实验1: FPGA硬件平台
1,在网站:http://wiki.analog.com/resources/fpga/xilinx/kc705/adv7511下找到cf_adv7511_zed_edk_14_4_2013_02_05.tar.gz链接,下载得到 HDL Reference Design,解压并将cf_adv7511_zed和cf_lib拷贝到目录L:\%ubuntu_linux下。 2,打开cf_adv7511_zed文件下的system.xmp文件
3,在XPS下,点击Generate BitStream产生syste.bit文件,将在Zynq_Ubuntu\\cf_adv7511_zed\\implementation\\system.bit 4,在xps下,点击左边的SDK Export Design 图标,勾选上include bitstream and BMM files,点击Export and Launch SDK按钮。选择工作区间为l:\%ubuntu_linux\\ f_adv7511_zed\\SDK\\SDK_Workspace,ok
5,在SDK下,新建一个应用工程zynq_fsbl_0
选择Zynq FSBL ,finish。将在Zynq_Ubuntu\\cf_adv7511_zed\\SDK\\SDK_Workspace\\zynq_fsbl_ 0\\Debug\\zynq_fsbl_0.elf
6,在zynq_ubuntu目录下新建一个文件夹bootfile,将system.bit文件和zynq_fsbl_0.elf文件都复制到bootfile文件夹下。
实验2:创建Second Stage Boot Loader(u-boot)
1,克隆 Xilinx U-Boot Git repository for Zynq,在PC机的Linux系统下 $ cd ~
$ git clone git://git.xilinx.com/u-boot-xlnx.git(克隆) $ cd u-boot-xlnx (切换路径到U-boot-xlnx下) $ git checkout -b xilinx-v14.4 xilinx-v14.4(检查出最新的版本):u-boot和linux内核有着密切的关系,所以我们需要匹配正确U-boot和我们打算用的内核版本。 2,针对ZedBoard目标板配置u-boot $ cd ~/u-boot-xlnx/
$ make distclean(删除所有由config、make创建的中间文件,这是清理过期配置的一个好方法。
修改zynq_zed.h文件需要参考的二级文件/include/configs/zynq_common.h.,所有Zynq板共同拥有的参数在该文件配置
$ gedit include/configs/zynq_commom.h 定位到sdboot处 修改成如下:
“sdboot=echo Copying Linux kernel from SD to RAM…RFS in ext4;” \\
“mmcinfo;” \\
“fatload mmc 0 0x3000000 ${kernel_image};” \\ “fatload mmc 0 0x2A00000 ${devicetree_image};” \\ “bootm 0x3000000 - 0x2A00000\\0” \\
保存,关闭
修改SD默认启动配置(搜索sdboot并定位它)从SD卡复制根文件系统到memory。这就是Xilinx如何启动他们的内核,但是ADI内核是使用在SD卡中的内核,所以它不进行复制。
$ make zynq_zed_config(进行配置,配置文件zynq_zed.h可以在~/u-boot-xlnx/include/configs/zynq_zed.h下找到,z这个配置包含对ZedBoard目标的和所有报头的)
3,对已经配置了的资源建立U_Boot $ cd ~/u-boot-xlnx $ make
正常将在~/u-boot-xlnx下生成u-boot文件
将它拷贝到主机的L:\\zynq_ubuntu\\bootfile文件下,并更名为u-boot.elf
如果出现错误 $ cd ~
$ source .bash_profile $ cd u-boot-xlnx/ $ make distclean
$ make zynq_zed_config $ make
$ echo $PATH(可用于查看环境变量)
实验3:为启动对SD卡分区
使用GParted/Disk Utility对4GB的SD卡进行分区,分成两个区,第一个分区为52MB/500MB的FAT32格式,剩下的部分格式化为ext4格式
具体步骤略。
实验4:创建FSBL(BOOT.BIN) 1,打开ISE下的SDK,选择工作空间为L:\\Zynq_Ubuntu\\cf_adv7511_zed\\SDK\\DK_Workspace。选择菜单标签Xilinx Tool—》Create Boot Image
依次添加如下文件
1. FSBL (Stage 1 boot loader)
2. Programmable Logic (PL) Hardware Bitstream 3. U-Boot (Stage 2 boot loader)
选择Biffile路径和文件名L:\\linux_ubuntu\\bootfile\\bootimage.bif 输出文件为L:\\linux_ubuntu\\bootfile\\boot.bin
将生成了的boot.bin文件拷贝到SD卡的第一分区。
2,用已经生成的boot.bin启动zedboard。连接硬件,串口,电源,插入SD卡到开发板 在我电脑上的port端口为COM6
点击OK,在TERATERM Setup–》Save setup 菜单选择并覆盖已经存在的 TERATERM. INI 文件
进入U-Boot命令行之后,添加sdboot命令,并且保存环境变量

