Bios放在flash里面,如何启动(xip)

这篇具有很好参考价值的文章主要介绍了Bios放在flash里面,如何启动(xip)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Bios放在falsh里面,刚开始上电的时候,cpu的内存并没有初始化好。那么,它是怎么样启动的呢?

这就要讲到eXecute-In-Place(xip)了。

xip,通俗易懂的来说,就是就地执行,即把bios在flash里面执行。

先来看看wiki上对XIP的一段介绍:

典型的第一阶段引导加载器是一个XIP程序,它链接到在加电时闪存芯片映射的地址上运行,并包含一个最小的程序来设置系统RAM(这取决于单个板上使用的组件,不能进行充分的通用化,以便将正确的序列嵌入到处理器硬件中),然后加载第二阶段引导加载器或OS内核加载到RAM中。 在初始化期间,可写内存可能不可用,因此所有计算都必须在处理器寄存器中执行。出于这个原因,第一阶段引导加载程序倾向于用汇编语言编写,并且只为下一个程序提供一个正常的执行环境。一些处理器要么在芯片本身嵌入少量SRAM[1],要么允许使用板载高速缓存作为RAM[2],以使第一阶段引导加载程序更易于使用高级语言编写。 对于内核或引导加载程序,地址空间通常是内部分配的,因此为了对它们使用XIP,只要指示链接器将不可修改和可修改的数据放置在不同的地址范围中,并提供一种机制,以便在运行任何假定数据可以正常访问的代码之前将可修改的复制到可写内存中即可。这可以作为前一阶段的一部分完成,也可以在程序开始时的一小段代码中完成。 如果地址空间是外部分配的,例如在不提供虚拟内存的系统上运行的应用程序中,编译器需要通过向指向数据区域的私有副本的指针添加偏移量来访问所有可修改数据。在这种情况下,外部加载器负责设置特定于实例的内存区域。 BIOS和UEFI使用XIP初始化主内存。

大概总结一下:意思就是说xip会执行最小代码,这个和大多数的嵌入式设备是一致的,不同的就是直连flash的是pch,怎么样才能把pch内容映射过来?

在CPU上电的时候,programmable attribute map(PAM)寄存器缺省的值会把0x D0000到0xFFFFF的内存decode消息传递到DMI,同样也会把0xFFFD0000到0xFFFFFFF的memory decode传递到DMI。而这里就是系统的reset vector,也就是BIOS的内容所在地。

PAM范围的内存解码会转到DMI,再通过DMI总线到南桥PCH。PCH会把memory decode的消息传递给SPI的控制器,它会把它翻译成SPI的封包,放到串行的SPI总线上;读到东西后再原路一层层返回,直到CPU。文章来源地址https://www.toymoban.com/news/detail-520968.html

到了这里,关于Bios放在flash里面,如何启动(xip)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows 引导启动流程详述(BIOS-UEFI)

    上个世纪70年代初,“只读内存”(read-only memory,缩写为ROM)发明,开机程序被刷入ROM芯片,计算机通电后,第一件事就是读取它。 这块芯片里的程序叫做\\\"基本輸出輸入系統\\\"(Basic Input/Output System),简称为BIOS。 存储在 ROM 芯片中的这一小段程序就是 BIOS 程序,虽然现在新

    2024年02月11日
    浏览(35)
  • UEFI与 Legacy BIOS两种启动模式详解

    参考链接1 参考链接2 (1)、 UEFI启动模式 与 legacy启动模式 legacy启动模式: 就是这么多年来PC一直在使用的启动方式(从MBR中加载启动程序),UEFI BIOS作为一种新的BIOS自然也应该兼容这种老的启动方式; UEFI启动模式: UEFI BIOS下新的启动技术。如果你的PC在UEFI启动模式下预装了

    2024年02月04日
    浏览(80)
  • bios设置u盘启动重装系统教程

    ​ 如今,大部分人都会采用U盘启动盘装系统,而使用U盘装系统之前,有一个很重要的步骤,那就是设置U盘启动。大部分电脑都可以直接通过u盘启动快捷键来选择U盘启动,少部分电脑只能通过bios设置u盘为第一启动项。那么,U盘装系统的时候,到底应该怎么设置bios呢? 工具

    2024年02月04日
    浏览(47)
  • 戴尔笔记本电脑BIOS设置U盘启动(新版)

    1.开机时摁F12或者F2 2.在选项中选择BIOS Setup 3.在左端选择栏选择Bot Configuration 4.在Boot Configuration 中选择SecureBoot  Off (也就是改为Off) 5.在Storage选项中选择AHCI 6.选择应用这些设置并保存退出 7.重启后重新进入BIOS并选择你的UEFI(一般会后面有提示,比如说你U盘是闪迪U盘,会有

    2024年02月19日
    浏览(51)
  • Window + Ubuntu 双系统无Ubuntu Bios 启动项

    可以和Windows在同一硬盘。 安装不同盘都无启动项! 简单卷无法安装Ubuntu!!! 我没有解决简单卷到主分区的转换问题, 只能全部格式化重新分盘/(ㄒoㄒ)/~~ 版本Ubuntu 22.04 ubuntu与windows双系统的启动项丢失 进行修复 打开终端(Ctrl + Alt + T),执行 输入一个8到16位数的临时密

    2024年04月28日
    浏览(24)
  • ubuntu升级22.04无法启动--ACPI BIOS Error

    今天闲的慌,看我的ubuntu20又一次提示更新22.04, 特意去查下22有啥好的更新—— 紧凑的 Desktop UI、改进的桌面图标、酷炫的多任务切换、多色主题、压缩加密 、巴拉巴拉。。。 这么好耶,确认更新走起,一通下载新系统后,自信重启,眼巴巴等着22.0优秀的外观出现! 最后

    2024年02月06日
    浏览(64)
  • 操作系统启动相关概念(BIOS、MBR、GPT、BRUB)

            不管是 Windows 还是 Linux 操作系统,底层设备一般均为物理硬件,操作系统启动之前会对硬件进行检测,然后硬盘引导启动操作系统,如下为操作系统启动相关的各个概念。         基本输入输出系统(Basic Input Output System,BIOS)是一组固化到计算机主板上的只

    2024年02月16日
    浏览(45)
  • 【经验分享】最新Microsoft Edge Dev游览器游览Flash网页的办法

    工具:Microsoft Edge Dev 系统版本:Windows 10 描述:需要正常游览Flash页面的所有内容,不能有缺少的动画 提示: 本文章是最简单的且直接的,若你的电脑不适合这个游览器,可以看我另外一篇文章。https://www.cnblogs.com/boluo0423/p/17358646.html 若按照教程还是无法完成操作,可以进入

    2024年02月04日
    浏览(44)
  • 戴尔笔记本重装系统bios设置u盘启动

    戴尔笔记本重装系统bios设置u盘启动如何操作?有不少朋友使用的是戴尔电脑,在系统出现问题无法进入桌面的时候许多人想到要重装系统,已经制作好U盘启动盘,就是不知道戴尔笔记本重装系统bios设置u盘启动的方法,今天,小编就把该方法分享给大家。 工具/原料: 系统版

    2024年02月05日
    浏览(63)
  • iOS pod EaseIMKit库如何放在本地使用

    在使用环信EaseIMKit库的时候,发现有些开发者需要改动库中的一些逻辑,或者有UI上的一些调整,如果直接去改pods里面的库,在之后的库版本升级会把之前修改过的代码覆盖掉,这个时候我们就需要pod指向本地的库,去比较好的实现本地组件化,也不会在pod install的时候造成

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包