zynq 按照传统的Linux开发模式制作系统

参考资料

xilinx wiki: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/460653138/Xilinx+Open+Source+Linux

前置知识
zynq启动流程 (UG585,第六章)
![image-20241114220853526](./zynq Linux启动.assets/image-20241114220853526.png)

BootRom
BootRom为一块只读存储器,里面程序一般出厂前或者流片前写死的,它主要负责从外部存储设备中读取启动镜像。(Ps:部分开发板引入了引脚启动机制,通过拨码开关,控制引导镜像的存储介质,BootRom也会根据引脚状态确定要引导镜像的位置)

BootRom从外部存储设备读取启动镜像后,通常将其加载到OCM中。

BootRom支持文件系统访问,支持FAT32,FAT16文件系统

![image-20241114221030402](./zynq Linux启动.assets/image-20241114221030402.png)

BootROM负责:
上电复位以后,PS端即开始进行配置。在不使用JTAG的情况下,ARM将在片上的BootROM中开 始执行代码。BootROM中的代码对NAND、NOR、Quad-SPI、SD与PCAP的基本外设控制器进行 初始化,使得ARM核可以访问、使用这些外设。(而DDR等其他外设将在阶段1或者之后进行初始 化。)

BootROM读取MIO[2..8]的引脚设置来确定启动设备,将选定设备的头192Kbyte内容,也就是 FSBL,复制到OCM中,并将控制权交给FSBL。 FSBL启动时可以使用整块256Kb的OCM,当FSBL开始运行后,器件就正式由由用户控制了。

对于SD卡启动流程
![image-20241115234753265](./zynq Linux启动.assets/image-20241115234753265.png)

懒得重新写了,直接看github吧GitHub

posted @ 2024-11-25 22:34  IDLE已死  阅读(8)  评论(0编辑  收藏  举报