Soc的Bring Up流程
1、Bring Up流程
SOC (System on a Chip) bring-up
是一个复杂的过程,涉及到硬件、固件和软件的集成和验证,以下是一个基于BROM
,SPL
,UBOOT
和Linux
的启动流程的概述:
BROM (Boot Read-Only Memory)
启动:启动的最初阶段,在这个阶段,系统会执行芯片ROM
里面的代码,这部分代码主要用来检查启动模式,包括NOR
、Nand
、Emmc
等,然后从对应的存储介质中加载SPL(Secondary Program Loader)
代码。SPL (Secondary Program Loader)
启动:SPL
属于Uboot
的一部分,它的主要作用就是:初始化硬件并加载完整的U-boot
,主要体现在初始化时钟、看门狗、DDR
、GPIO
以及存储外设,最后将U-boot
代码加载到DDR
中执行。U-Boot
启动:U-boot
的主要作用是:引导加载Kernel
和DTS
。U-boot
在启动之后,同样初始化Soc
硬件资源,然后会计时等待,并执行默认的启动命令,将Kernel
和DTS
信息从存储介质中读取出来并加载到内存中执行。Kernel
启动:在U-Boot
加载了内核映像和设备树之后,系统会启动Linux
。在这个阶段,系统会初始化各种硬件设备,加载驱动程序并启动用户空间应用程序。
更多干货可见:高级工程师聚集地,助力大家更上一层楼!
2、常见问题
Q
:为什么上一个阶段已经初始化了硬件资源,下一个阶段为何重复初始化?
A
:
每个阶段的硬件初始化,其目标和需求都不同,硬件配置也会不一样,因此在不同阶段进行不同的初始化。
硬件状态可能会改变,在
SOC
启动过程中,硬件状态可能会因为电源管理、时钟管理等原因而改变,这可能需要在每个阶段都重新初始化以确保其正确工作为了保证硬件资源的可靠性,最好每个阶段都重新初始化一次
Q
:U-boot
加载内核时,会进行重定位的操作,这一操作有何意义?
A
:
U-boot
的重定位,主要作用是为了 给内核提供一个连续的、大的内存空间,供内核和其他应用程序使用U-boot
的加载过程分两个阶段,即:SPL
和U-boot
,
在
SPL
阶段,主要将U-boot
代码从Flash
中加载到RAM
指定位置在
U-boot
阶段,U-boot
会将自身从RAM
的开始部分移动到RAM
的末尾,占用高地址空间,从而让低地址空间可以作为一个连续的,大的内存空间供内核和其他应用程序使用。
Q
:在Bring Up
中,为了保证启动时间,如何裁剪?
A
:
启动时间的裁剪是一个重要的步骤,其主要目标是缩短从电源打开到操作系统完全启动的时间。
优化
Bootloader
:减小Bootloader
的代码大小,减少硬件初始化(只初始化必要硬件设备)等优化
Kernel
:减少启动服务数量,优化服务的启动顺序,使用预加载技术等方法来实现。使用快速启动模式:一些
SOC
支持快速启动模式,这种模式下,SOC
会跳过一些不必要的硬件初始化和自检过程,从而更快地启动。使用休眠和唤醒技术:一些
SOC
还支持休眠和唤醒技术,这种技术可以将系统的状态保存到非易失性存储器中,然后关闭系统。当系统再次启动时,可以直接从非易失性存储器中恢复系统的状态,从而更快地启动。
Soc的Bring Up流程的更多相关文章
- SoC的软件开发流程,主要包含一些Linux下的操作命令
该笔记主要记录SoC的软件开发流程,主要包含一些Linux下的操作命令 1. 编写design file .c .h 2. 编写makefile 可执行文件名,交叉编译环境,compile fl ...
- Xilinx Zynq-7000 嵌入式系统设计与实现
Xilinx Zynq-7000 嵌入式系统设计与实现 基于ARM Cortex-A9双核处理器和Vivado的设计方法 目录 第1章Zynq-7000 SoC设计导论 1.1全可编程片上系统基础知识 ...
- 浅析SIEM、态势感知平台、安全运营中心
近年来SIEM.态势感知平台.安全运营中心等概念炒的火热,有的人认为这都是安全管理产品,这些产品就是一回事,有人认为还是有所区分.那么到底什么是SIEM.什么是态势感知平台.什么是安全运营中心,他们之 ...
- 常见SOC启动流程分析
本文以s5pv210这款SOC为例,分析了其启动流程 在s5pv210的SOC内部,存在着一个内部的ROM和一个内部的RAM 这个内部的ROM叫做 IROM,它是norflash的一种.其不同于板子上 ...
- 高通Camera bring up软件流程【转】
本文转载自:http://blog.csdn.net/liwei16611/article/details/51279658 高通camera bring up分为两种类型:YUV和bayerbrin ...
- I.MX6 PHY fixup 调用流程 hacking
/********************************************************************************** * I.MX6 PHY fixu ...
- Devices Tree加载流程
DT.IMG布局 hdr zImage Ramdisk.img DT.img 其中DT.img由DTBTOOL打包所有编译生成的dtb生成:布局如下: DT header dt_entry_0 dt_ ...
- uboot的配置流程分析
简单介绍一下uboot的基本配置流程.和绝大多数源码编译安装一样,uboot在执行make之前需要执行make XXXconfig来配置相关信息,而且uboot本身是针对多种平台的bootloader ...
- DPA 9.1.85 升级到DPA 10.0.352流程
SolarWinds DPA的升级其实是一件非常简单的事情,这里介绍一下从DPA 9.1.95升级到 DPA 10.0.352版本的流程.为什么要升级呢? DPA给用户发的邮件已经写的非常清楚了(如下 ...
- Altera SoC与Matlab的联合---第一步 软件安装与硬件测试
参考设计:http://cn.mathworks.com/help/hdlcoder/examples/getting-started-with-hardware-software-codesign- ...
随机推荐
- 深入Scikit-learn:掌握Python最强大的机器学习库
本篇博客详细介绍了Python机器学习库Scikit-learn的使用方法和主要特性.内容涵盖了如何安装和配置Scikit-learn,Scikit-learn的主要特性,如何进行数据预处理,如何使用 ...
- 获取Rtx用户状态方法
背景:企业OA系统需要与Rtx集成,且高权限身份用户需要获取符合某一条下的所有员工rtx状态... 方案:以此背景,基于rtx sdk做二次开发, 1.后台调用RootObj.QueryUserSta ...
- git报错:SSL certificate problem: unable to get local issuer certificate
原因:在windows系统中git没有获取到ssl证书 解决方案 输入以下命令: git config --global http.sslBackend schannel 之后再执行操作就可以啦 另: ...
- Django 组织json格式
@api_view(['GET', 'POST']) def api_test(request): classes = Classes.objects.all() # classes_data = C ...
- 【Qt6】QWidgetAction 的使用
在开始主题前,先看一个 C++ 例子: #include <iostream> struct Data { int a; int b; }; // 注意这里 struct Data *s; ...
- [ABC132D] Blue and Red Balls
2023-01-16 题目 题目传送门 翻译 翻译 难度&重要性(1~10):3 题目来源 AtCoder 题目算法 dp 解题思路 因为蓝球的数量是固定的,题目让我们求,在取 \(i\) 次 ...
- 知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Python 操作
数据基于: 知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - CQL - 太极拳传承谱系表 这是一个非常简单的web应用程序,它使用我们的Movie图形数据集来提供列表 ...
- WPF-利用装饰器实现控件的自由拖动
在项目中经常会遇到类似如下要求的需求,创建允许自由拖动的控件,这样的需求可以使用WPF的装饰器Adorner来实现. 一.什么是装饰器? 装饰器是一种特殊类型的FrameworkElement,装饰器 ...
- 《SQL与数据库基础》22. 分库分表(二)
目录 分库分表(二) MyCat分片规则 范围分片 取模分片 一致性hash分片 枚举分片 应用指定算法 固定分片hash算法 字符串hash解析 按天分片 自然月分片 MyCat原理 MyCat管理 ...
- 【故障公告】一而再,再而三,三翻四复:数据库服务器 CPU 100%
会员救园,故障捣乱,每当困难时,故障们总是喜欢雪上加霜过来考验你. 今天下班前 17:43~17:47 期间,园子的 SQL Server 数据库服务器突然出现 CPU 100% 问题. 发现问题后, ...