常见SOC启动流程分析

本文以s5pv210这款SOC为例,分析了其启动流程

在s5pv210的SOC内部,存在着一个内部的ROM和一个内部的RAM

  • 这个内部的ROM叫做 IROM,它是norflash的一种。其不同于板子上外接的inand/sd(mmc),它优点是一上电无需初始化即可使用,缺点是又小又贵…
  • 这个内部的RAM叫做 SRAM,其不同于板子上外接的 DDR(DRAM),它优点也是一上电无需初始化即可使用…..缺点也是又小又贵…

由于它俩的优异特性,一上电后的很多工作就由它俩来负责了

1.判断启动介质

  • 首先一上电,cpu先从SOC内部的IROM中执行预先设置的代码(s5pv210称其为BL0),初始化CPU时钟、关看门狗、并且通过读取特定gpio来判断启动介质。(注:IROM中代码可以直接执行,不用放到SRAM中)
  • 对于有些SOC来说,他们不通过读gpio来判断启动介质,而是根据启动介质的优先级,来依次尝试从各个启动介质启动,直到某个启动介质成功启动SOC

2.加载第一部分引导代码

  • 判断完启动介质后,cpu会执行IROM中相应启动介质初始化代码,并从启动介质的特定扇区开始读取U-boot头部的少量代码(对于s5pv210来说是16k的代码,称其为BL1),然后放到至SRAM并执行。近年来的U-boot将这一小段代码称为“SPL”,并开始支持单独编译它
  • 为什么不直接加载整个U-boot呢?因为大部分SOC出于成本考虑,IROM做的不大,放不下整个U-boot
  • 总体来说由于各个SOC这一步大致相同,但可能都有细微的区别,具体要去参照手册。下面以s5pv210为例来说说对第一部分引导代码的一些细节要求:

当启动介质为SD/MMC时,第0个扇区必须保留,IROM中的代码会从第1个扇区开始读BL1,启动介质的空间分配如下图所示 
这里写图片描述 
而其他的启动介质则是直接从第0个扇区存放BL1,IROM中的代码会也从第0个扇区开始读BL1,启动介质的空间分配如下图所示 
这里写图片描述

    • 然后,我们要把第一部分引导代码放到SRAM中的某个地址,通常SOC都会在代码头加上校验头,之所以要校验头是为了防止从启动介质读取时出错,一般是使用厂商的打包工具来添加校验头的,或者是在U-boot源码内添加了校验头。对于s5pv210来说,BL1的前16个字节是校验位,真正的代码是从D002_0010开始的。 
      这里写图片描述

    • 至此,Soc主导的启动过程结束,接下来就靠SRAM中的第一部分引导代码来重定位了,接下来将加载整个U-boot,并引导内核镜像。详细流程可以去看U-boot的源码分析和U-boot引导内核流程分析.

    • 来源:https://www.veryarm.com/41643.html

转载于:https://www.cnblogs.com/duwenqidu/p/11057142.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SOC(System on Chip,即片上系统)芯片软件启动过程是指从硬件初始状态开始,通过一系列的过程,将SOC芯片软件逐步启动并运行起来的过程。简单来说,软件启动是通过硬件初始化,引导,加载和运行等步骤实现的。 1. 硬件初始化:SOC芯片启动过程的第一步是对硬件进行初始化。此时,芯片会读取系统中的配置信息,例如芯片型号、时钟频率、内存容量等信息,并将其保存在相应的寄存器中。 2. 引导:在硬件初始化完成后,芯片需要读取引导程序。引导程序是硬件上电后自动运行的第一个程序,用于初始化系统并加载操作系统和应用程序等。 3. 加载:引导程序完成启动后,需要将操作系统从外部介质(例如SD卡)中读取到内存中,并将其加载到RAM中。此时,SOC芯片也会执行一些初始化操作,包括设置堆栈、清空缓存、启动时钟等。 4. 运行:当操作系统被加载到内存中后,SOC芯片软件启动过程进入了最后一步——运行。此时,操作系统会开始运行,并管理系统中的资源和服务。应用程序也会随着操作系统的启动而开始运行。 在以上过程中,软件启动的过程中需要注意一些问题,例如启动程序的选择、引导程序的优化等。此外,不同的SOC芯片通过相应的引导程序和操作系统等软件来实现相应的功能。因此,在进行SOC芯片软件启动时,需要根据具体情况进行相应的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值