首页 > 作文

引导 ARM Linux

更新时间:2023-04-03 22:05:58 阅读: 评论:0

引导 arm linux

本文翻译自:https://www.kernel.org/doc/html/latest/arm/booting.html

引导 arm linux 需要一个引导加载程序,它是一个先于内核运行的小段程序。引导加载程序被用于初始化各种设备,并最终调用 linux 内核,同时给内核传递参数。

总之,引导加载程序需要提供一下几种功能:

设置和初始化内存 初始化一个串口 检测机器类型 设置内核标签列表 加载 initramfs 调用内核镜像

1. 设置和初始化内存

existing boot loaders: mandatory new boot loaders: mandatory

引导加载程序用来查询和初始化所有内存,该过程是体系结构相关的。

2. 初始化一个串口

existing boot loader走进霍金的宇宙世界2s: optional冬季健康, recommended new boot loaders: optional, recommended

引导加载程序应该在目标办上初始化和使能一个串口,这样可以使内核串口驱动自动地检测哪个串口可用于内核控制台。

另外,引导加载程序可以通过标记列表人生领悟传递 ‘console=’ 选项给内核指定端口,串口参数格式选项详见:documentation/admin-guide/kernel-parameters.rst

3. 检测机器类型

existing boot loaders: optional new boot loaders: mandatory except for dt-only platforms

引导加载程序需要通过一些方法来检测目标板类型,最终提供给内核一个mach_type_xxx的值给内核,该值详见:linux/arch/arm/tools易学派/mach-types。该值需要放在寄存器 r1 中。

4. 设置引导数据

existing boot loaders: optional, highly recommended new boot loaders: mandatory

引导加载程序必须一个标记列表或者 dtb 镜像给内核,该引导数据的物理地址需要放置在寄存器 r2 中。

引导家在程序必须创建和初始化内核标记列表,一个有效的标记列表开始于atag_core,结束于atag_none。引导加载程序最少要传递系统内存的大小和位置以及文件系统位置。因此最小的标记列表类似于:

+-----------+ba->|atag_core||+-----------+||atag_mem||increasingaddress+-----------+||atag_none||+-----------+v

标记列表应该放置在系统 ram 中,推荐放置在前 16kib 处,以防止被内核解压缩程序覆盖掉。

5. 加载 initramfs

existing boot loaders: optional new boot loaders: optional

6. 调用内核镜像

existing boot loaders: mandatory new boot loaders: mandatory

御前演出 调用内核镜像 zimage 有两种可能,如果 zimage 位于 flash 中,并且被正确链接,那么就可以直接在 flash 中调用 zimage。同时 zimage 也可能在 ram 中调用,内核应该放置在内存的前 128mib 中,推荐加载到 32mib 之上来避免内核在解压缩之前重定位,这可以加快引导速度。

如果引导的是原生的内核,那么内核的加载位置就必须严格等于 text_offt – page_offt。

无论什么情况,以下条件必须得到满足:

关闭所有 dma 相关的设备 cpu 寄存器设置 r0 = 0 r1 = 机器类型码 r3 = 标记列表在系统内存中的物理地址 cpu 模式 关闭所有中断 cpu 必须处于 svc 模式 缓存和 mmu mmu 必须关闭 指令缓存可以打开可以关闭 数据缓存必须关闭 引导加载程序应该直接跳转到内核镜像处执行第一条指令

原文地址:/d/file/titlepic/12782463.html

本文发布于:2023-04-03 22:05:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/ef128b561c8186a3b58e560e6f2779ec.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:引导 ARM Linux.doc

本文 PDF 下载地址:引导 ARM Linux.pdf

标签:内核   加载   程序   初始化
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图