1、Bring Up流程

SOC (System on a Chip) bring-up是一个复杂的过程,涉及到硬件、固件和软件的集成和验证,以下是一个基于BROMSPLUBOOTLinux的启动流程的概述:

  1. BROM (Boot Read-Only Memory)启动:启动的最初阶段,在这个阶段,系统会执行芯片ROM里面的代码,这部分代码主要用来检查启动模式,包括NORNandEmmc等,然后从对应的存储介质中加载SPL(Secondary Program Loader)代码。

  2. SPL (Secondary Program Loader)启动SPL属于Uboot的一部分,它的主要作用就是:初始化硬件并加载完整的U-boot,主要体现在初始化时钟、看门狗、DDRGPIO以及存储外设,最后将U-boot代码加载到DDR中执行。

  3. U-Boot启动U-boot的主要作用是:引导加载KernelDTSU-boot在启动之后,同样初始化Soc硬件资源,然后会计时等待,并执行默认的启动命令,将KernelDTS信息从存储介质中读取出来并加载到内存中执行。

  4. Kernel启动:在U-Boot加载了内核映像和设备树之后,系统会启动Linux。在这个阶段,系统会初始化各种硬件设备,加载驱动程序并启动用户空间应用程序。

更多干货可见:高级工程师聚集地,助力大家更上一层楼!

2、常见问题

Q:为什么上一个阶段已经初始化了硬件资源,下一个阶段为何重复初始化?

A

  1. 每个阶段的硬件初始化,其目标和需求都不同,硬件配置也会不一样,因此在不同阶段进行不同的初始化。

  2. 硬件状态可能会改变,在SOC启动过程中,硬件状态可能会因为电源管理、时钟管理等原因而改变,这可能需要在每个阶段都重新初始化以确保其正确工作

  3. 为了保证硬件资源的可靠性,最好每个阶段都重新初始化一次

QU-boot加载内核时,会进行重定位的操作,这一操作有何意义?

A

  1. U-boot的重定位,主要作用是为了 给内核提供一个连续的、大的内存空间,供内核和其他应用程序使用

  2. U-boot的加载过程分两个阶段,即:SPLU-boot

  • SPL阶段,主要将U-boot代码从Flash中加载到RAM指定位置

  • U-boot阶段,U-boot会将自身从RAM的开始部分移动到RAM的末尾,占用高地址空间,从而让低地址空间可以作为一个连续的,大的内存空间供内核和其他应用程序使用。

Q:在Bring Up中,为了保证启动时间,如何裁剪?

A

启动时间的裁剪是一个重要的步骤,其主要目标是缩短从电源打开到操作系统完全启动的时间。

  1. 优化Bootloader:减小Bootloader的代码大小,减少硬件初始化(只初始化必要硬件设备)等

  2. 优化Kernel:减少启动服务数量,优化服务的启动顺序,使用预加载技术等方法来实现。

  3. 使用快速启动模式:一些SOC支持快速启动模式,这种模式下,SOC会跳过一些不必要的硬件初始化和自检过程,从而更快地启动。

  4. 使用休眠和唤醒技术:一些SOC还支持休眠和唤醒技术,这种技术可以将系统的状态保存到非易失性存储器中,然后关闭系统。当系统再次启动时,可以直接从非易失性存储器中恢复系统的状态,从而更快地启动。

 

Soc的Bring Up流程的更多相关文章

  1. SoC的软件开发流程,主要包含一些Linux下的操作命令

    该笔记主要记录SoC的软件开发流程,主要包含一些Linux下的操作命令 1. 编写design file .c .h 2. 编写makefile    可执行文件名,交叉编译环境,compile fl ...

  2. Xilinx Zynq-7000 嵌入式系统设计与实现

    Xilinx Zynq-7000 嵌入式系统设计与实现 基于ARM Cortex-A9双核处理器和Vivado的设计方法 目录 第1章Zynq-7000 SoC设计导论 1.1全可编程片上系统基础知识 ...

  3. 浅析SIEM、态势感知平台、安全运营中心

    近年来SIEM.态势感知平台.安全运营中心等概念炒的火热,有的人认为这都是安全管理产品,这些产品就是一回事,有人认为还是有所区分.那么到底什么是SIEM.什么是态势感知平台.什么是安全运营中心,他们之 ...

  4. 常见SOC启动流程分析

    本文以s5pv210这款SOC为例,分析了其启动流程 在s5pv210的SOC内部,存在着一个内部的ROM和一个内部的RAM 这个内部的ROM叫做 IROM,它是norflash的一种.其不同于板子上 ...

  5. 高通Camera bring up软件流程【转】

    本文转载自:http://blog.csdn.net/liwei16611/article/details/51279658 高通camera bring up分为两种类型:YUV和bayerbrin ...

  6. I.MX6 PHY fixup 调用流程 hacking

    /********************************************************************************** * I.MX6 PHY fixu ...

  7. Devices Tree加载流程

    DT.IMG布局 hdr zImage Ramdisk.img DT.img 其中DT.img由DTBTOOL打包所有编译生成的dtb生成:布局如下: DT header dt_entry_0 dt_ ...

  8. uboot的配置流程分析

    简单介绍一下uboot的基本配置流程.和绝大多数源码编译安装一样,uboot在执行make之前需要执行make XXXconfig来配置相关信息,而且uboot本身是针对多种平台的bootloader ...

  9. DPA 9.1.85 升级到DPA 10.0.352流程

    SolarWinds DPA的升级其实是一件非常简单的事情,这里介绍一下从DPA 9.1.95升级到 DPA 10.0.352版本的流程.为什么要升级呢? DPA给用户发的邮件已经写的非常清楚了(如下 ...

  10. Altera SoC与Matlab的联合---第一步 软件安装与硬件测试

    参考设计:http://cn.mathworks.com/help/hdlcoder/examples/getting-started-with-hardware-software-codesign- ...

随机推荐

  1. 自定义gradle插件并且发布到本地仓库

    转载请标明出处,维权必究:http://77blogs.com/?p=189 一.在工程上新建一个Module. 二.删除其余不必要的文件,最终目录结构如下: 注意:由于我用的是kotlin语言,所以 ...

  2. 《敏捷无敌之DevOps时代》读后感

    背景: 2020年基于我司业务形态,我开始实行敏捷项目管理.以敏捷为道,Scrum为法,迭代为术,禅道作器,大张旗鼓的搞了2年敏捷开发.随着时间推移,问题出现在2022年,当时我们已经完全按照Scru ...

  3. 服务器衡量标准--RASUM

    对于一台服务器来讲,服务器的性能设计目标是如何平衡各部分的性能,使整个系统的性能达到最优.如果一台服务器有每秒处理1000个服务请求的能力,但网卡只能接受200个请求,而硬盘只能负担150个,而各种总 ...

  4. SPI总线学习笔记

    SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空 ...

  5. 搜索(DFS/BFS)

    广度优先搜索(BFS) 基本要点: - 利用队列(先进先出) - 一层一层搜索 - 适合于连通块的搜索 - 任何的BFS都可以转化为对树的广搜 基本流程: - 选择搜索的起点,起点入队,起点标记为已访 ...

  6. Codeforces 1850H:The Third Letter 带权并查集

    1850H.The Third Letter Description: \(n\) 个人,\(m\) 个条件,每次给出两个人 \(a_i\) 和 \(b_i\) 一维的位置关系,以距离 \(d_i\) ...

  7. SimpleDateFormat 线程安全问题修复方案

    问题介绍 在日常的开发过程中,我们不可避免地会使用到 JDK8 之前的 Date 类,在格式化日期或解析日期时就需要用到 SimpleDateFormat 类,但由于该类并不是线程安全的,所以我们常发 ...

  8. 一次Java内存占用高的排查案例,解释了我对内存问题的所有疑问

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 问题现象 7月25号,我们一服务的内存占用较高,约13G,容器总内存16G,占用约85%,触发了内存报警(阈值8 ...

  9. 通过AOP拦截Spring Boot日志并将其存入数据库

    本文分享自华为云社区<Spring Boot入门(23):[实战]通过AOP拦截Spring Boot日志并将其存入数据库>,作者:bug菌. 前言 在软件开发中,常常需要记录系统运行时的 ...

  10. WPF学习 - 用鼠标移动、缩放、旋转图片(1)

    1. 需求 其实我的需求很简单.就是想做一个图片查看器,可以通过鼠标来平移.缩放.旋转图片. 2. 解决思路: WPF中的UIElement提供了RenderTransform属性,用于承载各种Tra ...