linux在arm上启动过程分析

这篇博客探讨了Linux在ARM设备上的启动过程,主要包括Boot ROM、X-loader、U-boot和Linux内核的启动阶段。U-boot作为bootloader,负责初始化RAM、设置串口、检测机器类型、构建内核标签列表以及加载initramfs(如果有的话)。Linux内核的启动则在kernel_start位置开始,该位置位于kernel.S文件中,标志着kernel真正运行的开始。

linux在arm上启动过程分析


*内容主要来源于阅读linux-4.4.1/Documentation/arm中和链接: Boot Sequence

启动过程

从大的方面来讲主要包含四个步骤:
Boot sequence (in order)

  • Boot ROM
  • X-loader
  • U-boot
  • Linux

不去细说其中的细节,主要找找u-boot和linux内核在源代码中的具体位置

u-boot

u-boot,也就是bootloader,需要完成以下几个功能:

  1. Setup and initialise the RAM.
  2. Initialise one serial port.
  3. Detect the machine type.
  4. Setup the kernel tagged list.
  5. Load initramfs.(可选的)
  6. Call the kernel image.

在linux源码中,u-boot对应 linux-4.4.1/arch/arm/boot/bootp/init.S
在同一个目录下的bootp.lds文件制定了生成的u-boot文件的格式。
bootp.lds文件如下所示:
在这里插入图片描述
第一行:OUTPUT_ARCH(arm)指定了cpu的类型,这正是u-boot的功能3。
第二行:ENTRY(_start) 指定了u-boot的开始执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值