1. BMIPS 设备树引导

一些引导加载程序仅支持单个入口点,即内核镜像的开头。其他引导加载程序将跳转到 ELF 起始地址。两种方案都受支持; CONFIG_BOOT_RAW=y 和 CONFIG_NO_EXCEPT_FILL=y,因此第一条指令立即跳转到 kernel_entry()。

与 arch/arm 情况 (b) 类似,支持 DT 的引导加载程序应设置以下寄存器

a0 : 0

a1 : 0xffffffff

a2 : RAM 中设备树块的物理指针(在第二章中定义)。设备树可以位于物理地址空间的前 512MB 中的任何位置(0x00000000 - 0x1fffffff),以 64 位边界对齐。

传统引导加载程序不使用此约定,并且不传入 DT 块。在这种情况下,Linux 将查找内置 DTB,通过 CONFIG_DT_* 选择。

此约定仅为 32 位系统定义,因为目前没有任何 64 位 BMIPS 实现。