【SoC】Boot 流程详解

SoC芯片流片回来后,芯片本身处于一个完全未初始化的状态,此时芯片并不能正常工作,因此需要boot过程对SoC进行配置使其进入到正常工作状态。并且这一过程需要软件对硬件按照一定的顺序进行初始化和配置,以确保系统能够正常和高效的运行。以下是SoC boot可能会涉及到的流程。

在这里插入图片描述

1. 上电复位(Power-On Reset)

启动流程的第一步是上电复位。当SoC通电或复位信号触发时,SoC进入复位状态。复位电路会将所有寄存器和内存重置为已知的初始状态,确保系统从一个干净的状态开始启动。这一步类似于计算机的BIOS复位,确保硬件准备好接受后续指令。

在这里插入图片描述

2. 引导ROM代码执行(Boot ROM Execution)

复位完成后,SoC开始执行存储在片上ROM中的引导代码。引导ROM代码是由SoC厂商预先烧录的程序,不可更改。它的主要职责包括:

  • 硬件初始化:初始化基本硬件组件,如时钟、内存控制器等。

  • 外部存储检测:检测并配置外部存储设备(如NAND闪存、SD卡、SPI闪存等)。

  • 引导加载程序加载:将引导加载程序(Bootloader)从外部存储设备加载到片内RAM或外部RAM中。

在这里插入图片描述

3. 引导加载程序(Bootloader)执行

引导加载程序是一个关键组件,它进一步初始化系统并加载操作系统。通常,Bootloader分为两个阶段:

阶段1(Stage 1 Bootloader):

  • 初始化最低限度的硬件环境。

  • 配置和初始化内存子系统(如DDR SDRAM)。

  • 为阶段2引导加载程序提供基础环境。

阶段2(Stage 2 Bootloader):

  • 完成更高级的硬件初始化,包括外设、网络和存储设备。

  • 加载操作系统内核(Kernel)和初始内存盘(initrd/initramfs)到内存中。

  • 将控制权移交给操作系统内核。

常见的引导加载程序有U-Boot和Barebox等,它们提供了丰富的功能来支持各种硬件平台和操作系统。

4. 操作系统启动(Operating System Boot)

当引导加载程序加载操作系统内核并将控制权移交给内核后,操作系统的启动过程正式开始。这个阶段包括:

内核初始化:

  • 初始化内核自身的数据结构和子系统,如内存管理、进程管理、文件系统等。

  • 初始化硬件设备驱动程序。

  • 挂载根文件系统。

初始进程启动:

  • 内核启动第一个用户空间进程(通常是init进程)。

  • init进程根据系统配置和脚本执行一系列初始化任务,如启动守护进程和服务。

内核的启动过程类似于电脑开机时操作系统加载的过程,只不过在SoC上,这个过程更加紧凑和优化。

5. 用户空间初始化(User Space Initialization)

在操作系统内核成功启动后,系统进入用户空间初始化阶段。这包括:

  • 启动脚本和服务:执行启动脚本(如/etc/init.d/中的脚本或systemd服务单元)来启动各种系统服务和守护进程。

  • 用户登录和图形界面:启动登录管理器(如gettylightdm等)和图形用户界面(如X ServerWayland等),为用户提供交互界面。

这一阶段类似于计算机启动进入桌面环境的过程,是用户可以直接与设备交互的部分。

当然,这只是一个比较笼统的boot流程,针对到具体SoC肯定会有一些区别。比如引导加载程序的阶段数没有固定限制,复杂系统需要更多阶段的加载以实现更高的灵活性、扩展性和安全性。再比如对于没有操作系统的SoC,启动流程可以大大简化,尽管硬件初始化和引导ROM代码执行步骤仍然是必要的,但引导加载程序和应用程序启动步骤可以简化。

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zeal.Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值