Skip to content

ARM Linux启动流程 #2

@lbhzy

Description

@lbhzy

BootROM

此程序出厂固化在soc内部rom中,soc上电首先执行,主要作用:

  1. 初始化时钟、SRAM
  2. 根据寄存器选择启动介质
  3. 从启动介质搬运loader到SRAM执行

Loader

由于SRAM一般较小,所以loader体积较小,主要完成以下功能:

  1. 初始化DRAM
  2. 搬运U-Boot代码到DRAM执行

U-Boot

U-Boot启动以重定位(relocate)操作分成两个阶段

  1. 重定位前(board_init_f):只做必要的初始化,soc、时钟、DRAM、串口
  2. 重定位(relocate):将自身搬移到DRAM的末尾地址执行
  3. 重定位后(board_init_r):初始化需要的外设(存储、网络等),命令行系统,引导内核

Kernel

  1. 解析命令行参数
  2. initcall各类驱动初始化
  3. 挂载根文件系统
  4. 启动init进程,进入用户空间

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions