arm linux内核启动条件(ARM Linux Kernel Boot Requirements)

本文详细介绍了启动ARMLinux所需的关键组件——启动加载器(Bootloader),并阐述了ARM处理器在启动过程中的必备状态。包括RAM初始化、串口初始化、机器类型检测、内核标签列表设置以及调用内核等核心步骤。同时,概述了ARM处理器在启动前应具备的特定状态,如CPU寄存器设置、CPU模式切换、缓存和MMU的配置、设备状态管理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

In order to boot ARM Linux, you require a boot loader, which is a small program that runs before the main kernel. The boot loader is expected to initialise various devices, and eventually call the Linux kernel, passing information to the kernel.

Essentially, the boot loader should provide (as a minimum) the following:

  1. Setup and initialise the RAM.
  2. Initialise one serial port.
  3. Detect the machine type.
  4. Setup the kernel tagged list.
  5. Call the kernel image

为了启动arm linux,你需要一个启动引导程序(boot loader),在内核启动之前需要运行的一个程序。这个程序主要用来初始化各种硬件资源,最终将信息传递给内核,并调用内核。

事实上,boot loader 应该提供以下信息:

1.设置和初始化RAM。

2.初始化一个串口。

3.检测机器类型。

4.设置内核标签列表。

5.调用内核。之前ARM处理器应该达到的状态:

1)CPU寄存器设置:R0=0;R1存放在步骤3中检测到的机器类型;R2存放内核标签列表的物理地址

2)CPU模式:所有的中断必须被禁止;CPU必须处理SVC模式(Angel除外)

3)Caches,MMUs:MMU必须关闭;Instructon Cache 可关可开;Data Cache必须关闭,且不包含任何旧的数据

4)设备:DMA设备必须被停用

5)bootloader能过直接跳转到内核镜像的第一条指令来调用内核。


原文地址:http://www.arm.linux.org.uk/developer/booting.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值