arm linux核心啟動條件(ARM Linux Kernel Boot Requirements)

NO IMAGE

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