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相关推荐

  1. 【鸿蒙OS开发入门】13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解

    [鸿蒙OS开发入门]13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解 一. /etc/init.cfg 系统默认cfg:启动lo回环网卡 1.1 init.Hi35 ...

  2. 【鸿蒙OS开发入门】06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 启动init进程

    [鸿蒙OS开发入门]06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 一.head.S 启动start_kernel() 1.1 start_kernel() ...

  3. ZYNQ启动流程分析之BootROM

    一.FSBL由谁启动? 1.背景 在静态情况下,BOOT.BIN启动文件存放在SD卡或QSPI等存储介质中, 然后BOOt.BIN文件中已经包含了FSBL代码,也就是说FSBL代码已经集成 在了BOO ...

  4. ARMv8架构u-boot启动流程详细分析(二)

    文章目录 1 u-boot在汇编启动阶段对系统的一些初始化 1.1 启动前为后续流程做的一些平台相关操作 1.2 开启地址无关后的重定位地址操作 1.3 进入_main之前系统寄存器初始化和从核的引导 ...

  5. 【内核】linux内核启动流程详细分析【转】

    转自:http://www.cnblogs.com/lcw/p/3337937.html Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件 ...

  6. 【内核】linux内核启动流程详细分析

    Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用 ...

  7. lk启动流程详细分析

    转载请注明来源:cuixiaolei的技术博客 这篇文章是lk启动流程分析(以高通为例),将会详细介绍下面的内容: 1).正常开机引导流程 2).recovery引导流程 3).fastboot引导流 ...

  8. Android系统的启动流程简要分析

    这是我结合网上的资料以及自己分析android4.4的源码整理的笔记,对整个安卓系统的流程启动进行了梳理,很多细节并未展开,只是简要的进行了介绍. 一.Android系统的架构介绍 Android的整 ...

  9. 海思uboot启动流程详细分析(二)

    1. 第二个start.S 从start_armboot开始,在startup.c中有包含#include <config.h> 在config.h中: /* Automatically ...

最新文章

  1. rehl7.3部署K8s集群
  2. 【Runtime Error】打开Matlib7.0运行程序报错的解决办法
  3. VC2008下编译使用OpenSSL
  4. 上面两点下面一个三角形_这种胖胖的圆角三角形,在PPT里居然有这么多种画法!...
  5. visual studio解决方案是什么?
  6. .net中怎样实现json转化时仅仅处理部分属性二?
  7. rest-framework之响应器(渲染器)
  8. django中间件及中间件实现的登录验证
  9. java 8 中文API
  10. 【机器学习】 - 各种人脸数据集下载地址及说明汇总
  11. 字符缓冲输入流,高效读取整行数据
  12. 5v继电器模块实物接线_电气工程师都收藏的西门子S71200PLC接线图设计大全
  13. 14. 深入解析Pod对象(一)
  14. oracle单列索引和组合索引性能测试
  15. python利器-python利器APP下载-python利器 v4.0.1_手机乐园
  16. [转载] numpy总结
  17. linux 内核专题— drv术语
  18. 使用python调用浏览器实现自动转发微博
  19. phpcms v9文件上传的四次绕过复现
  20. 浅谈“互联网+”浪潮下传统行业的战略转型

热门文章

  1. [转]倾斜摄影单体化实现方案
  2. 启动项目报错:null, message from server: “Host ‘XXX‘ is not allow
  3. 极智装修知识|如何将效果图转化为实景的家? - 分享3
  4. DataFrame-索引与切片
  5. 微信小程序之二级联动下拉列表
  6. VS2005错误 error PRJ0003 生成 cmd.exe 时出错
  7. 自动化测试处理textarea文本框
  8. mysql 生成id函数_MySQL ID生成策略
  9. https证书异常是什么意思?
  10. 使用Echarts制作动态嵌套饼图