ZYNQ启动流程之分析BootRoM
ZYNQ启动流程之分析BootRoM
- 一、fsbl由谁来启动
- 1.背景
- 2.需要做的事
- 3.这些事由谁来做----BootRoM
- 二、何为BootRoM
- 三、SD卡启动方式
一、fsbl由谁来启动
1.背景
在静态情况下,BOOT.BIN文件启动文件,存放在SD卡,QSPI等存储介质中,并且BOOT.BIN文件包含了fsbl代码。
2.需要做的事
如果要启动fsbl代码,就需要完成以下几件事
1.找到BOOT.BIN文件所在的位置
2.从BOOT.BIN文件中找到fsbl代码
3.将fsbl代码拷贝到内存中
4.运行fsbl代码
3.这些事由谁来做----BootRoM
二、何为BootRoM
1.何为BootRoM
BootRoM 是一个程序已经固化在zynq内部
2.BootRoM存放在哪里
BootRoM 存放在片内ROM中
zynq内部包含了一个256k 的RAM(SRAM)和128k的ROM(SROM)
可以在芯片内执行,不用将程序加载到内存中
3.BootROM的作用
引导启动fsbl代码
4.BootRoM支持哪些功能
包含了SD卡QSPI的驱动程序
BootRoM代码支持文件系统操作(至少支持FAT 32文件系统)
5.总结
对于zynq平台,嵌入式linux系统
linux内核由u-boot引导启动
u-boot由fsbl引导启动
fsbl由片内BootRoM引导启动
三、SD卡启动方式
1.对SD卡的要求
1.标准的SD或SDHC设备
2.包含 FAT 16/32 文件系统
3.SD卡容量高达32GB(开发手册是这么说的,解释不清,大家可以试试)
2.SD卡启动方式流程
在SD卡启动方式下BootRoM代码的运行流程
1.初始化MIO引脚
主要就是配置MIO引脚的物理特性配置寄存器
2.初始化SD卡外设,驱动SD卡,实现SD卡的读写
3.对SD卡的读写进行测试
4.从SD卡文件系统,读取BOOT.BIN文件,并对BOOT.BIN头进行解读,这个头部信息是按照着一定的格式组织在一起的(fsbl的大小,位置偏移量,地址)。bootrom是可以解析这个头部信息
5.得到fsbl位置偏移量,加载地址后BootROM就会从BOOT.BIN文件中将fsba代码拷贝到SRAM内存中,启动fsbl
ZYNQ启动流程之分析BootRoM相关推荐
- 【鸿蒙OS开发入门】13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解
[鸿蒙OS开发入门]13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解 一. /etc/init.cfg 系统默认cfg:启动lo回环网卡 1.1 init.Hi35 ...
- 【鸿蒙OS开发入门】06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 启动init进程
[鸿蒙OS开发入门]06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 一.head.S 启动start_kernel() 1.1 start_kernel() ...
- ZYNQ启动流程分析之BootROM
一.FSBL由谁启动? 1.背景 在静态情况下,BOOT.BIN启动文件存放在SD卡或QSPI等存储介质中, 然后BOOt.BIN文件中已经包含了FSBL代码,也就是说FSBL代码已经集成 在了BOO ...
- ARMv8架构u-boot启动流程详细分析(二)
文章目录 1 u-boot在汇编启动阶段对系统的一些初始化 1.1 启动前为后续流程做的一些平台相关操作 1.2 开启地址无关后的重定位地址操作 1.3 进入_main之前系统寄存器初始化和从核的引导 ...
- 【内核】linux内核启动流程详细分析【转】
转自:http://www.cnblogs.com/lcw/p/3337937.html Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件 ...
- 【内核】linux内核启动流程详细分析
Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用 ...
- lk启动流程详细分析
转载请注明来源:cuixiaolei的技术博客 这篇文章是lk启动流程分析(以高通为例),将会详细介绍下面的内容: 1).正常开机引导流程 2).recovery引导流程 3).fastboot引导流 ...
- Android系统的启动流程简要分析
这是我结合网上的资料以及自己分析android4.4的源码整理的笔记,对整个安卓系统的流程启动进行了梳理,很多细节并未展开,只是简要的进行了介绍. 一.Android系统的架构介绍 Android的整 ...
- 海思uboot启动流程详细分析(二)
1. 第二个start.S 从start_armboot开始,在startup.c中有包含#include <config.h> 在config.h中: /* Automatically ...
最新文章
- rehl7.3部署K8s集群
- 【Runtime Error】打开Matlib7.0运行程序报错的解决办法
- VC2008下编译使用OpenSSL
- 上面两点下面一个三角形_这种胖胖的圆角三角形,在PPT里居然有这么多种画法!...
- visual studio解决方案是什么?
- .net中怎样实现json转化时仅仅处理部分属性二?
- rest-framework之响应器(渲染器)
- django中间件及中间件实现的登录验证
- java 8 中文API
- 【机器学习】 - 各种人脸数据集下载地址及说明汇总
- 字符缓冲输入流,高效读取整行数据
- 5v继电器模块实物接线_电气工程师都收藏的西门子S71200PLC接线图设计大全
- 14. 深入解析Pod对象(一)
- oracle单列索引和组合索引性能测试
- python利器-python利器APP下载-python利器 v4.0.1_手机乐园
- [转载] numpy总结
- linux 内核专题— drv术语
- 使用python调用浏览器实现自动转发微博
- phpcms v9文件上传的四次绕过复现
- 浅谈“互联网+”浪潮下传统行业的战略转型
热门文章
- [转]倾斜摄影单体化实现方案
- 启动项目报错:null, message from server: “Host ‘XXX‘ is not allow
- 极智装修知识|如何将效果图转化为实景的家? - 分享3
- DataFrame-索引与切片
- 微信小程序之二级联动下拉列表
- VS2005错误 error PRJ0003 生成 cmd.exe 时出错
- 自动化测试处理textarea文本框
- mysql 生成id函数_MySQL ID生成策略
- https证书异常是什么意思?
- 使用Echarts制作动态嵌套饼图