1、编译u-boot
到https://github.com/Digilent/u-boot-digilent代码库中下载 v2012.04-digilent-13.01版本的u-boot源码
zedboard中关于网络设置和启动设置可以在include/configs/zynq_zed.h中查看
$make CROSS_COMPILE=arm-linux- zynq_zed_config
$make CROSS_COMPILE=arm-linux-
2、制作启动文件
使用xilinx SDK 生成UBOOT.BIN启动文件
3、编译内核
到https://github.com/Digilent/linux-digilent.代码库中下载v3.6-digilent-13.01.版本的内核
$make ARCH=arm CROSS_COMPILE=arm-xilinx-linuxgnueabi- digilent_zed_defconfig
由于到在启动linux内核的时候出现Uncompressing Linux......... done, booting the kernel。时卡住了
所以为了能够获取更多的信息,需要打开kernel的配置选项kernel hacking下面的kernel low-level debugging functions选项
$make ARCH=arm CROSS_COMPIKE=arm-linux- menuconfig
编译内核
$make ARCH=arm CROSS_COMPILE=arm-linux- zImage
4、制作文件系统
http://www.wiki.xilinx.com/Build+and+Modify+a+Rootfs
可以根据以上wiki内容修改自己需要的rootfs文件系统
5、制作设备树文件
根据arch/arm/boot/dts/digilent-zed.dts对设备进行修改。
在启动内核时由于在第一阶段我并没有DMA所以kernel运行到一半的时候卡住了,后来根据栈信息修改设备树中DMA的定义,最后启动成功。