分类: LINUX
2016-07-14 14:39:10
在ZYNQ-7000系列Soc上启动Linux操作系统需要两个文件,
板子ZC702
一个为BOOT.mcs(QSPI启动所需,SD卡启动
为BOOT.bin)和image.ub。
板子ZC706
一个为BOOT.mcs(BOOT.mcs为QSPI启动所需,SD卡启动
为BOOT.BIN)和uImage。
其中image.ub为Linux系统镜像文件,由petalinux工具编译而成,BOOT文件由三个文件合
成,分别是系统第一阶段引导文件fsbl.elf,FPGA配置文件design.bit,ZC706板子为system_wrapper.bit,Linux系统的启动文件u-boot.elf。
板子ZC702 BOOT.mcs(BOOT.bin) = xilinx SDK ->create boot image(fsbl.elf + design.bit +u-boot.elf)
板子ZC706 BOOT.mcs(BOOT.bin) = xilinx SDK ->create boot image(fsbl.elf + system_wrapper.bit +u-boot.elf)
在最下方Output path中可以选择输出BOOT文件的格式,可设置为.bin和.mcs格式,其中.bin格式用于放在SD卡中启动,.mcs格式用于QSPI Flash启动,默认为.bin文件,本文中选取生成.mcs格式。在Boot image partitions栏中点击Add添加合成BOOT文件所需的三个文件,并点击Create Image则可生成BOOT.mcs文件。
(一) SD卡启动linux
在生成BOOT.bin文件后,将其与image.ub文件一起放到SD卡中,设置板子的启动方式为SD卡启动,则可以通过SD卡进行linux的启动,该方法较为简单,调试时经常使用。
(二) QSPI Flash启动linux
在代码调试完成后,一般需要将linux内核烧写到Flash中,方便今后的使用。其步骤如下。
烧写BOOT.mcs文件:改变Zynq芯片的处理板模式为QSPI启动,找到刚才生成的BOOT.mcs文件,然后利用
XSDK软件中的“Xilinx Tools”——“Program Flash Memory”工具,在Image
File栏中添加刚才生成的BOOT.mcs文件,
连接板子的JTAG电缆(为了烧写Flash)和USB-UART电缆(供电和串口信息监控),点击Program将BOOT文件烧写进Flash。烧写
完成后,断电重启并利用串口调试工具,即可观察到串口的打印信息。但由于BOOT文件中仅包含了u-boot文件,因此板子启动到u-boot阶段就会停
止,无法找到linux内核,若要同时启动linux系统,则在生成BOOT文件的时候,将linux内核文件image添加进去,生成的BOOT文件内
部u-boot会自动找到内核文件并展开加载相应的内核和文件系统。
参考原文http://blog.csdn.net/djason43/article/details/51489195