1 启动模式:
ZYNQ 7000的启动模式由外部引脚决定的,5个模式引脚MIO[6:2]用于配置NAND flash、并行NOR flash、Serial NOR (Quad-SPI)、SD flash以及JTAG 一共5种启动模式。具体而言就是复位时,zynq-7000 SOC对下述引脚进行连续3个时钟周期采样。复位采样MIO[6:2]并将采样的模式值保存到系统级控制寄存器SLCR内的BOOT_MODE寄存器内。(我们查看fsbl代码中确认当前的启动模式就是通过读取BOOT_MODE寄存器来确定不同的启动分支的)
2 关于nor flash 32M大小限制的说明:
zynq 7000的flash控制器可以配置为IO模式和线性模式,需要注意的是IO模式下才可以对flash进行读写擦操作。而线性模式下,flash相当于一个只读存储器,不能写和擦除。在IO模式下,软件负责对所有flash操作的管理;在线性模式下,控制器负责对所有必要的读数据管理。换句个人理解,系统默认的是线性模式,但是我们作为flash使用者,如果要擦写flash必须配置为IO模式,由我们自己写的驱动操作实际的flash。
注意:只有在线性模式下才有最大32M地址空间的限制,也就是说zynq 7000最大加载的fabl+bit+应用得到的boot.bin最大不能超过32M,地址映射空间就是32M。
而我们自己如果使用flash,由于使用的IO模式,实际的操作是由我们自己写的驱动管理的,和系统的内存映射没有什么关系,当然不受32M大小的限制。比如控制器可以直接连接一个128M或者两片的 norflash芯片,我们通过驱动操作fl