162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci.. include:: ../../disclaimer-zh_CN.rst 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci:Original: Documentation/arch/mips/booting.rst 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci:翻译: 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci 司延腾 Yanteng Si <siyanteng@loongson.cn> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci.. _cn_booting: 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciBMIPS设备树引导 1462306a36Sopenharmony_ci------------------------ 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci 一些bootloaders只支持在内核镜像开始地址处的单一入口点。而其它 1762306a36Sopenharmony_ci bootloaders将跳转到ELF的开始地址处。两种方案都支持的;因为 1862306a36Sopenharmony_ci CONFIG_BOOT_RAW=y and CONFIG_NO_EXCEPT_FILL=y, 所以第一条指令 1962306a36Sopenharmony_ci 会立即跳转到kernel_entry()入口处执行。 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci 与arch/arm情况(b)类似,dt感知的引导加载程序需要设置以下寄存器: 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci a0 : 0 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci a1 : 0xffffffff 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci a2 : RAM中指向设备树块的物理指针(在chapterII中定义)。 2862306a36Sopenharmony_ci 设备树可以位于前512MB物理地址空间(0x00000000 - 2962306a36Sopenharmony_ci 0x1fffffff)的任何位置,以64位边界对齐。 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci 传统bootloaders不会使用这样的约定,并且它们不传入DT块。 3262306a36Sopenharmony_ci 在这种情况下,Linux将通过选中CONFIG_DT_*查找DTB。 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci 以上约定只在32位系统中定义,因为目前没有任何64位的BMIPS实现。 35