zhiweiqiang33 发表于 2014-9-9 10:07:05

ZedBoard上的点灯签名实验(三)linux内核引导


经过实验一和实验二我们完成了硬件部分的工作,并且将设计导出到SDK, 现在我们希望Linux可以到我们的硬件上运行,为此我们需要给Linux一个提示并且告诉它入口在哪里,这些工作就有u-boot 和FSBL来完成,他们就相当于PC机的Bios. u-boot 可以用digilent提供的, 在ZedBoard_linux_Design/boot_image/里边,当然也可以自己编译。现在我们编辑一下FSBL,在SDK中,-->File-->New-->Project-->Xilinx-->Application Project-->next, 然后为我们的工程起个名字,叫FSBL, 其他的默认即可。然后next进入Templates选项卡,在这儿选择Zynq FSBL,然后点Finish。然后在Project Explorer找到-->FSBL-->src-->main.c, 会发现这里边有很多的错误,原因是因为缺少一个库文件造成的,添加#include "xdevcfg.h",所有错误消失。然后找个位置加入下面的代码,
/* Reset the USB */
{
fsbl_printf(DEBUG_GENERAL, "Reset USB...\r\n");
/* Set data dir */
*(unsigned int *)0xe000a284 = 0x00000001;
/* Set OEN */
*(unsigned int *)0xe000a288 = 0x00000001;
Xil_DCacheFlush();
/* For REVB Set data value low for reset, then back high */
#ifdef ZED_REV_A
*(unsigned int *)0xe000a048 = 0x00000001;
Xil_DCacheFlush();
*(unsigned int *)0xe000a048 = 0x00000000;
Xil_DCacheFlush();
#else
*(unsigned int *)0xe000a048 = 0x00000000;
Xil_DCacheFlush();
*(unsigned int *)0xe000a048 = 0x00000001;
Xil_DCacheFlush();
#endif

页: [1]
查看完整版本: ZedBoard上的点灯签名实验(三)linux内核引导