2、电源管理入门之开机详解

这篇具有很好参考价值的文章主要介绍了2、电源管理入门之开机详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 硬件上电

2. ATF运行

3. Linux启动

3.1 内核启动start_kernel

3.2 平台启动setup_arch

3.4 DTS初始化psci_dt_init

3.5 系统rest创建kernel_init线程

3.6 SMP初始化smp_init

3.7 PSCI接口psci_cpu_on

3.8 SMC返回secondary_entry


2、电源管理入门之开机详解,系统电源管理,单片机,嵌入式硬件,Autosar,汽车电子

    系统开机牵扯到:“我是谁,我从哪里来,要到哪里去”的问题。在冰冷的硬件电路板上死气沉沉,突然一声霹雳,电源键被按下了,从此世界开始有了生机。首先就是硬件上电过程,之后就是固件软件的运行,最后就是操作系统例如Linux的运行。这其中需要涉及一系列的技术,本篇文章尽可能的去介绍。

1. 硬件上电

2、电源管理入门之开机详解,系统电源管理,单片机,嵌入式硬件,Autosar,汽车电子

    如上图的一个电路板,连接好12V电源后,手动拨动开关到供电的位置,这个时候会发生什么?

    首先就是供电芯片例如PMIC,会对电源轨(按照功能和电压值区分的group)按照设计的顺序(Logical)进行供电,这时候各个硬件器件就来电了。具体可以查看芯片手册里面有说明,需要硬件工程师根据电路板的需求和器件用电量进行设计。

    然后时钟模块这时候也开始工作了,为什么需要时钟?这就像心跳,要想CPU工作一次,就需要给一次电压电流,然后拿到计算结果,进行下一次的计算就需要再给一次电压电流。时钟就周期的提供电压电流,然后CPU就有了频率,当然主频越高干活越快。给SoC上的核心通过PLL给各个硬件子系统提供了clock后,这时候就需要一个开关核心(CPU/MCU),然后这个核心就开始工作了,这个开关就是复位信号

    某一个CPU或者MCU核会作为天选之子先硬件直接启动,启动后运行其上的软件,在软件里面控制其他核的复位,从而拉起来其他核心运行。这个天选之子一般在没有M核(SCP)的系统里面就是A核。

    有此可见让一个核心工作起来的核心供应就是电压时钟。除了天选之子,其他核心的启动都是由软件来控制的了。

2. ATF运行

2、电源管理入门之开机详解,系统电源管理,单片机,嵌入式硬件,Autosar,汽车电子

    提到ATF就有一个SecureBoot的概念,为了防止黑客篡改程序,什么样的程序最安全?答案就是存放在ROM里面的,不可改变,除非你把这个ROM芯片从板子上拆下来,换上自己的越狱。对于现代SoC,这个ROM做到芯片内部了,没法拆了,只能认命,防刷机神器啊。

    这里扯一个话题:水货。什么是水货,首先从水路来的,水路就是海外来的,由于世界各国的消费水平,关税,地方保护等差异比较大,导致在世界上各国销售的电子产品价格差异很大,我们常说的日版iPhone,港版iPhone等价格比国内的低很多,还有各国的运营商的网络制式也不一样,一般销往某个国家的电子产品的版本都需要进行软件定制,然后售价不一样。这里面有个巨大的商机,就是明明硬件一模一样,为啥有点地方卖的贵,可以把便宜的地方的货拿来贵的地方卖,当倒爷啊。能直接用还好,但是大多面临软件版本不一样的问题,这也难不倒,我可以刷机啊,这就是水货了吧。往小了说比如一个芯片供应商,给客户A和B供货,价钱也会不一样,例如A企业风口行业效益好暴利就卖贵一点,B企业传统行业效益不一般贵了买不起,那也得养着啊,蚊子少但是多了也是肉。这里面肯定要防着企业A通过B拿货,或者企业B拿货后转卖了。SecureBoot就是这么现实的需求下诞生的,别扯什么黑客,就是分钱分的不对,这个糟老头,坏的很

2、电源管理入门之开机详解,系统电源管理,单片机,嵌入式硬件,Autosar,汽车电子

    之前的文章:ARM ATF入门-安全固件软件介绍和代码运行里面有固件启动的流程图开源代码。关于SecureBoot就是BL1 ROM固件里面存的有BL2的秘钥,BL2如果被篡改就不加载,那就不能开机了。同样这样一级一级的

BL1-->BL2-->BL31-->BL32-->BL33-->Linux,任何一个固件和操作系统都改变不了,一环出错就启动不起来,彻底把软件绑定死,不能刷机了。

BL1阶段

  • 最初ROM中的BL1开始运行,主要初始化并读取启动pin引脚,启动介质为UFS,继续初始化UFS pad后,从UFS加载BL2程序到RAM,并验签启动(BL2的验签是通过软件验签实现)

BL2阶段

  • BL2开始运行,加载并软件验签HSM后启动HSM。(提前设置好HSM时钟or 默认时钟);

  • 等待HSM启动完成后,就可以使用HSM验签。

  • 加载验签其他fimware,例如SoC里面集成的AI模块,NPUISP

  • BL2通过访问CRU设置DDR时钟,执行DDR初始化,并运行DDR training后,DDR可被正常访问;

  • BL2加载BL31、BL32、BL33并运行BL31

BL31阶段

  • 等待PMU初始化完成,PMU接管对时钟复位的操作;

  • BL31其他初始化

  • BL31作为EL3最后的安全堡垒,它不像BL1和BL2是一次性运行的。如它的runtime名字暗示的那样,它通过SMC指令为Non-Secure持续提供设计安全的服务,在Secure World和Non-Secure World之间进行切换。它的主要任务是找到BL32,验签,并运行BL32。

BL32

BL32是安全OS,是运行时,运行时可以独享系统所有的资源。BL32和Linux同一时刻只能一个运行,是两个操作系统,可以进行切换。为什么BL31也是运行时,但是BL31不是OS,因为BL31虽然在某一时刻独占系统资源,也是运行时,但是其没有调度等OS的特点,只是一个运行时服务。

一般在BL32会运行OPTee OS + 安全app,它是一个可信安全的OS运行在EL1并在EL0启动可信任APP(如指纹信息移动支付的密码等),并在Trust OS运行完成后通过SMC指令返回BL31,BL31切换到Non-Seucre World继续执行BL33。一个开源代码:https://github.com/OP-TEE

BL33也就是Uboot阶段

Uboot不是运行时,也就是完成它自己的使命就再也不工作了。U-Boot可以提供引导、配置硬件、加载内核、初始化设备等功能,使得嵌入式系统能够正常启动并运行。

Linux阶段

  • PMU及CLock、Power Domain初始化;

  • NPU等固件交互驱动初始化

  • 其他设备初始化

  • 根文件系统加载

  • 上层服务加载运行

下面介绍两个经典的方案,一个是NXP的一个是ARM SCP的

  • NXP SCU与SCFW固件方案

    以imx8qm平台为例,imx8qm引入了操纵资源分配、电源、时钟以及 IO 配置和复用的新概念。由于这种新芯片的架构复杂性,系统中添加了一个系统控制器单元 (SCU)。SCU 是 Arm Cortex-M4 内核,是 imx8qm设计中第一个启动的处理器。

    为了控制 SCU 的所有功能,NXP创建了SCFW。SCFW 在移植套件中分发。SCFW 的第一个主要步骤是配置 DDR 并启动系统中的所有其他内核。引导流程如下图所示:

2、电源管理入门之开机详解,系统电源管理,单片机,嵌入式硬件,Autosar,汽车电子

imx8qm启动顺序涉及 SCU ROM、SCFW、安全控制器 (SECO) ROM 和 SECO FW:

•复位时,SCU ROM 和 SECO ROM 都开始执行

•SCU ROM 读取启动模式引脚

•SCU ROM 从引导介质加载第一个容器;这个容器总是有SECO FW,使用 NXP 密钥签名

•SECO FW 加载到 SECO 紧耦合存储器 (TCM)

•SCU通过专用 MU 向 SECO ROM 发送消息以验证和运行 SECO FW

•SCU ROM 从引导介质加载第二个容器;此容器始终具有SCFW,并且可以使用客户密钥进行签名

•SCFW加载到 SCU TCM

•然后 SCU ROM 将配置 DDR

•SCU ROM 将启动 SCFW

从这一点开始,SCFW 接管并将任何image加载到 Arm Cortex-M 或 Cortex-A 内核。

  • ARM SCP固件方案

系统控制处理器(system control processor,简称SCP)一般是一个硬件模块,例如cortex-M0微处理器再加上一些外围逻辑电路做成的功耗控制单元。SCP能够配合操作系统的功耗管理软件或驱动,来完成顶层的功耗控制。

SCP固件是通过ATF中BL2过程加载的,启动过程如下:

2、电源管理入门之开机详解,系统电源管理,单片机,嵌入式硬件,Autosar,汽车电子

ATF的代码这里就不分析了,可以参考下面资料里面的分析:

关于ATF启动的文章(知乎lgjjeff,写的很好):

https://zhuanlan.zhihu.com/p/520039243

关于BL32 OPTEE的文章:

https://zhuanlan.zhihu.com/p/553490159

3. Linux启动

    估计大多读者还是对Linux有兴趣,这里对代码进行一下详细的分析。文章来源地址https://www.toymoban.com/news/detail-832625.html

到了这里,关于2、电源管理入门之开机详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于51单片机控制的BUCK开关电源Proteus仿真

    这里是给出的参考电路(如下图)使用了两路L293D的输出OUT1和OUT2,那么就会很疑惑。。。。 关于两路L293D的输出呢? 因为程序控制的时候,IN2始终由单片机输出0,所以底下这样也不像是差分,很难理解是为什么。 理想的状态:当out1 =1,二极管不导通,上方电感充电,经过

    2024年02月06日
    浏览(73)
  • 基于单片机的多路输出数控直流稳压电源设计与实现

    本次设计中数控稳压电源的设计要求如下: (1)数控稳压电源系统输入电压为15V,输出0-12V,最大输出电流为2A; (2)输出电压纹波不大于200mV; (3)可对输出电压进行预置;可对输出电压进行加减,其步进电压为0.1V; (4)实现人机交互,通过按键可对设定电压与输出电

    2024年02月07日
    浏览(50)
  • 【毕设】基于单片机的开关电源设计(源码+电路图+全套资料+说明文档)

    本内容是基于单片机的开关电源设计 包含: 1 设计源码 2 电路图 3 配套程序 4 全套说明资料 (私聊获取资料) 选用STM32F407单片机作为控制芯片,前段整流部分使用直流电源给入,主控电路输出PWM波信号,即稳定的电压值,经增强驱动力后,再经BUCK电路输出需要的电压电流值

    2024年01月21日
    浏览(51)
  • 数字电源为什么一般用DSP控制,而不能用普通的单片机?

    首先你要清楚,数字电源需要一个芯片具备什么功能? 1 能发PWM波 ,并且具备保护关断功能; 电源对PWM发波 要求很高,精度要ns级甚至ps级的;同时要有关断功能,比如过流或者过压直接关死,最近很多小伙伴找我,说想要一些单片机的资料,然后我根据自己从业十年经验,

    2024年02月22日
    浏览(51)
  • 毕业设计 基于51单片机智能停车场管理车位引导系统设计

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2023年04月15日
    浏览(85)
  • 基于单片机的智能停车场管理系统的设计与实现_kaic

    摘 要 本设计基于RFID智能识别和高速的视频图像和存储比较相结合,通过计算机的图像处理和自动识别,对车辆进出停车场的收费、车牌识别和车位诱导等,以实现停车场全方位智能管理。 本设计是以AT89C51型单片机为主控芯片的智能停车场系统,主要是针对车辆诱导和车辆检

    2024年02月06日
    浏览(36)
  • 【毕业设计】13-基于单片机的锂电池管理系统(原理图+源码+仿真工程+答辩论文+答辩PPT)

    包含此题目毕业设计全套资料: 原理图工程文件 源码工程 仿真工程 论文低重复率,字数:27821。 详情请私信! 研究基本内容: 1.了解在以单片机为基础上的动力锂电池管理系统的研究目的、意义及研究现状; 2.利用单片机实动力电池电压、电流、温度检测的功能,并完成电

    2024年02月19日
    浏览(55)
  • 单片机入门——什么是单片机?

    单片机就是一个集成电路芯片,是一个采用超大规模集成电路技术将具有数据处理能力的CPU,存储器,IO端口,定时器等功能集成到一个硅片上,具有小而完整的微型计算机系统。 就是将复杂的计算机系统 进行裁剪,然后封装起来,可以实现一定功能的微型小电脑。 单片机

    2024年02月07日
    浏览(46)
  • 【单片机】单片机入门指南

    一、概述 单片机(Microcontroller,简称MCU)是一种集成了微处理器、存储器、时钟、IO端口和外设接口等的集成电路芯片。它可以通过编程实现各种控制、运算等功能,常用于自动化控制、家电、智能仪表等领域。 二、单片机的种类和选型 根据位数、功能、性能等不同指标,

    2024年02月10日
    浏览(41)
  • 51单片机和32单片机有什么区别?该从哪个开始入门学习?

    单片机 (microcontroller)是一种能够完成特定功能的微型电脑。它包含了中央处理器(CPU)、存储器(ROM、RAM)以及输入/输出接口(I/O)。单片机被广泛应用于各种电子设备中,如电子手表、电子计算器、家用电器、汽车电子、机器人等等。 目前市面上最常见的单片机有 51单

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包