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

来源:互联网 发布:李涛淘宝骗局 编辑:程序博客网 时间:2024/04/28 22:31

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

原创粉丝点击