编译ZedBoard的linux镜像(uImage)

时间:2022-07-18 16:36:55
ZedBoard的linux源码可以从https://github.com/Xilinx/linux-xlnx网站下载
编译uImage的步骤:
进入linux目录下
1、make ARCH=arm xilinx_zynq_defconfig  使用arch/arm/configs中的默认配置文件配置linux内核,使用哪一个根据开发板决定。
 
2、make ARCH=arm 编译内核,在arch/arm/boot下生成Image和zImage
 
3、mkimage -A arm -O linux -T kernel -C none -a 00008000 -e 00008000  -d zImage uImage 将zImage拷贝到u-boot下的tools目录中(因为mkimage工具在该目录下),使用该命令生成uImage。命令中-a 和-e选项分别制定内核的加载地址和入口地址。
问题:入口地址按理说应该是加载地址加上0x40。但是如果设为-a 00008000 -e 00008040 ,会提示machine ID错误。不知道为什么会这样?
 
linux内核需要在zImage的头部加上64字节的u-boot信息来生成uImage,这样才能被u-boot识别。这是在u-boot的include/configs/zynq_common.h文件中决定的,  还有一种方法可通过修改zynq_common.h文件来让u-boot直接加载zImage(这个还没试过,参考文章http://xilinx.eetrend.com/blog/5845)