本帖最后由 robe.zhang 于 2020-5-31 22:03 编辑
创龙TLZ7x-EasyEVM评估板 -- 启动过程分析
创龙TLZ7x-EasyEVM评估板 -- 试用总结
使用创龙开发板是需要制作启动卡的,如果仅仅是制作SD启动卡,不关注启动过程,那直接使用创龙工具就可以。 本文主要分析板子是怎么启动的,板子启动过程中需要什么文件,开发就要准备什么文件,启动时候从哪里加载文件,就把文件放到哪里。所以本文内容: 1, 创龙TLZ7x-EasyEVM评估板的启动过程 2, 板子启动过程中,需要什么文件 3, 各个文件应该放在什么位置?
创龙TLZ7x-EasyEVM评估板的启动过程,其实也是也是 xlinx zynq 7020 的启动过程。 因为板子基于xlinx zynq 7020这颗芯片开发,芯片怎么启动,板子也怎么启动,所以这部分内容适用所有xlinx zynq 7020开发板,不仅仅适用创龙开发板:
首先是板子的电源按键打开后,板子电源系统上电,虽然这个过程很短,但是从微观角度看,也是个过程,需要时间等电源模块稳定后,7020 芯片开始启动,复位所有寄存器,开始采样boot pins,根据boot pins 的状态来决定从哪里启动。这个过程板子自动搞定,硬件自动完成,不用人为参与。
从采样bootpins 开始,出现两类启动模式,存储设备启动模式,和JTAG 启动模式 创龙开发板实现的启动模式有三种,spi flash 启动,SD 启动,JTAG 启动,前两种启动模式都属于存储设备启动模式
这三类启动模式分别是有 MIO[5/4/3] 决定 110:sd卡启动 100:SPI flash 启动 000:jtag启动 MIO[2] 决定Jtag cascaded模式还是 independent 模式,这个常用的cascaded模式,所以 MIO[2] 常为0, 创龙开发板的拨码开关,控制了MIO2/4/5,
所以按照分析MIO5/4/2: 110:sd卡启动 100:SPI flash 启动 000:jtag启动 每一个pin需要两个拨码开关来控制,MIO5 置1,需要1导通,2断开。 所以jtag启动,MIO5/4/2 =000,拨码开关 = 010101 SPI flash 启动,MIO5/4/2= 100,拨码开关 = 100101 SD卡启动,MIO5/4/2 =110,拨码开关 = 101001 和板子上的标识是一样的:
采样完 boot pins,决定启动模式后,保存暂时不用,硬件继续启动,直到bootROM 启动根据boot pins 状态决定从什么模式启动,从什么设备启动,本文从SD启动,SD 不具备XIP功能,而此时 DDR 还不能用,所以就把 FSBL 读取到 OCM 中,然后让 FSBL 运行,如下红色过程
FSBL 启动过程会初始化 DDR,然后内存就可以使用了,继续运行验证分区,加载uboot,kernel,设备树,如下:
然后 uboot 启动,kernel 启动,文件系统启动,这个过程和arm SoC芯片一样了 板子启动过程中,需要的文件 上电,电源稳定,芯片启动,这个过程硬件完成,不用管 bootROM启动使用的芯片内固化代码,也不用管 FSBL启动,需要用户给FSBL程序 OS启动,uboot引导,kernel内核启动,设备树,文件系统启动,都需要相应的文件 所以创龙开发板启动过程需要的文件 FSBL+uboot+kernel(和设备树)+rootfs 各个文件应该放在什么位置? FSBL:位于SD卡第一个分区,需要是fat分区 Uboot:位于SD卡第一个分区,需要是fat分区 kernel(和设备树)+rootfs:位于SD卡第二个分区,需要是 ext 分区,ext3/4 都行
创龙TLZ7x-EasyEVM评估板 -- 试用总结
|