网上看了很多关于zynq的相关文章,大多基于zynq-7000系列写的。本文参考相关文档尽量清楚的阐述zynq_mp的启动过程。

zynq_mp是由多核组成,与7000系列有所不同的是,增加了RPU(APU核数根据不同系列也有所不同,笔者使用2个APU和2个RPU)。

根据文档,启动过程分为前置配置,配置以及后置配置(Pre-configuration Stage,Configuration Stage,Post-Configuration):

Pre-configuration Stage:由PUM_ROM完成。ROM为只读存储区,故该部分开发者不能修改。主要工作为:1.锁定JTAG接口。2.清零PMU寄存器。(不只是写入0至寄存器,同时读回,以确保写入成功)。3.可选执行自检(默认不启动)。4.检测PMU ROM完整性。5.释放PMU复位并开始执行。接下来硬件状态机将控制权交给PMU ROM,将执行以下操作:1.可选地对LPD和/或FPD中的寄存器进行清零。2.清空PUM RAM。3.验证PLL。4.验证供电范围。5.清空CSU,LPD,FPD的内存。5.对CSU ROM完整性检测。6。释放CSU复位并执行

Configuration Stage:在配置阶段,CSU的目标是定位用户提供的引导映像,并将FSBL加载到指定的位置。如果在引导映像中指定,还可以加载可选的PMU固件。1.初始化OCM。2.决定启动方式。3.查找正确的boot image。4.加载FSBL分区,如果有PUM固件,同时加载。5.目标CPU执行。

Post-Configuration:执行FSBL(非必要,无需修改FSBL)。1.进一步初始化:启动PL并初始化DDR控制器。初始化了Cortex-A53s的缓存、MMU和栈指针,以及Cortex-R5s的缓存、MPU、栈指针和TCM。还执行板级初始化-包括I2C、USB和PCIe接口。2.分区加载。可能存在多个分区需要加载(包括PMU FW,FSBL,bitstream,app)。3.移交。image可由用户控制放在那个位置,程序计数器将到该位置执行。

FSBL是用户可以修改的部分,其可以加载裸核程序,U-BOOT(linux),PL部分。也就是说无论加载什么系统或程序,Pre-configuration Stage和Configuration Stage是完全相同的。用户仅仅需要(甚至不需要)修改FSBL。

ZYNQ_MP启动过程分析相关推荐

  1. 嵌入式linux启动过程分析,嵌入式Linux裸机开发(二)——S5PV210启动过程分析

    嵌入式Linux裸机开发(二)--S5PV210启动过程分析 一.iROM启动方式简介 友善之臂Smart210开发板的SoC为三星S5PV210,S5PV210采用iROM启动方式进行启动,通过查阅 ...

  2. OpenWrt启动过程分析+添加自启动脚本【转】

    一.OpenWrt启动过程分析 转自: http://www.eehello.com/?post=107 总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/p ...

  3. pixhawk PX4FMU和PX4IO最底层启动过程分析

    摘要: pixhawk PX4FMU和PX4IO最底层启动过程分析1.1 主处理器和协处理器的固件烧写和运行流程首先,大体了解PX4IO 与PX4FMU各自的任务.PX4IO(STM32F100)为P ...

  4. linux 重定位arm,Arm linxu启动过程分析(一)

    本文着重分析 FS2410 平台 linux-2.6.14 内核启动的详细过程,主要包括: zImage 解压缩阶段. vmlinux 启动汇编阶段. startkernel 到创建第一个进程阶段三个 ...

  5. linxu 启动过程分析

    linxu 启动过程分析 Linux启动过程如下:当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序lilo或grub开始引导Linux ...

  6. 开机SystemServer到ActivityManagerService启动过程分析

    开机SystemServer到ActivityManagerService启动过程 一 从Systemserver到AMS zygote-> systemserver:java入层口: /*** ...

  7. AliOS Things的启动过程分析(一)

    AliOS Things的启动过程分析(一) 在本篇文章中,我们以developerkit开发板为例,介绍AliOS Things的启动过程.AliOS Things支持多种工具链进行编译链接的方式生 ...

  8. Chromium的GPU进程启动过程分析

    Chromium除了有Browser进程和Render进程,还有GPU进程.GPU进程负责Chromium的GPU操作,例如Render进程通过GPU进程离屏渲染网页,Browser进程也是通过GPU ...

  9. Android开发入门教程2-Android init 启动过程分析

    Android init 启动过程分析   分析android的启动过程,从内核之上,我们首先应该从文件系统的init开始,因为 init 是内核进入文件系统后第一个运行的程序,通常我们可以在linu ...

最新文章

  1. 傅里叶帮我看看,谁在照射我?
  2. 使用eBPFBCC提取内核网络流量信息
  3. python22起作业答案_python第22天作业
  4. 是Excel的图,不!是R的图
  5. md5加密+盐方式一
  6. python gmm em算法 2维数据_AI大语音(六)——混合高斯模型(GMM)(深度解析)...
  7. 虚拟机连不上网 Xshell连不上虚拟机
  8. 科研狗的英语翻译小众软件
  9. JS实现鼠标点击爱心绘制多边形每日一言功能
  10. 单片机---1.仿真实现跑马灯(从左往右,在从右往左)
  11. 《二代征信》与你的生活息息相关 (1)
  12. 《编程之美》背后的作者之美
  13. [日推荐]『质安查』买到放心的产品就靠它了
  14. 使用ngrok进行域名映射
  15. Java 17新特性,快到起飞?惊呆了!
  16. 大学生用Python兼职五天狂赚1200,方法经验分享,让你早日实现财富自由
  17. 【日常篇】003_利用b站数据看《博人传》口碑变化
  18. Java------Thread线程
  19. office多级列表编号设置
  20. 关于那些我们都听过的营销工具—优惠券

热门文章

  1. Ubuntu 20.04 阿里云镜像、国内源
  2. 一文看懂BP神经网络的基础数学知识
  3. 域名贵吗?域名值不值钱?
  4. zabbix自定义监控模板+grafana图形展示
  5. linux 深度音乐,网易云音乐Linux V1.1正式发布
  6. 为Linux安置红旗紫光输入法
  7. ueditor百度富文本编辑器隐藏一下不需要的工具按钮
  8. [附源码]Node.js计算机毕业设计道路桥梁工程知识文库系统Express
  9. PM_21 项目组合管理(了解)、25 量化的项目管理(了解)
  10. 阿里云服务器如何开放端口