x86 处理器开机顺序
无论是千万行的linux ,还是百万行的uefi ,或者百十行的app, 它都有一个主线。应用程序是main() 函数里面全部函数运行完,程序结束。这里main() 做为程序的起点,uefi 能够觉得,就是peimain.c dxemain.c bds.c 这三个函数运行完,bios 结束。假设进一步的细分。 假设 把pei 和 sec 叫做early initialization, 这一阶段 主要就是在做microcode 更新。跳到保护模式,用cache 去模拟内存以便实现C函数的子过程调用,内存配置,内存(控制器)的配置,就是mrc
的运行,事实上就是依照 JEDEC 定好的初始化顺序,主要是取得这些信息, rank的数量。 地址是8 bit 还是16 bit, 内存容量,内存的电源管理。page 关闭策略, 内存初始化好之后,就是进行memory 測试。最常见的就是ECC. 当这一切做完了,就把bios 代码 shadowing 到内存上面。 剩下来就是完毕 板子上其它设备的初始化了, GPIO, 中断控制器,timer, 串口, 时钟(超频), pci bus 初始化(就是找到它们,并给它们分资源。 事实上就是内存,i/o space,
mmio, irq, 找到option rom ,以及运行option rom). 网卡初始化, usb, sata. 最后就是 装载os, 通过efi 的 load image 或者 int 19h 去调用 os loader.
Application Processor (AP) 初始化
CPUID-线程以及core
Startup Inter-Processor Interrupt (SIPI)
详细来说是通过BSP 的LAPIC , LAPIC 标识了SIPI 要发给哪一个AP.
AP Wakeup State
x86 处理器开机顺序的更多相关文章
- ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构
★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存 ...
- 6.3 x86处理器如何处理MSI-X中断请求
PCIe设备发出MSI-X中断请求的方法与发出MSI中断请求的方法类似,都是向Message Address所在的地址写Message Data字段包含的数据.只是MSI-X中断机制为了支持更多的中断 ...
- 分配粒度和内存页面大小(x86处理器平台的分配粒度是64K,内存页是4K,所以section都是0x1000对齐,硬盘扇区大小是512字节,所以PE文件默认文件对齐是0x200)
分配粒度和内存页面大小 x86处理器平台的分配粒度是64K,32位CPU的内存页面大小是4K,64位是8K,保留内存地址空间总是要和分配粒度对齐.一个分配粒度里包含16个内存页面. 这是个概念,具体不 ...
- 中国自主X86处理器工艺跃进:国产28nm升级16nm(上海兆芯)
提到X86处理器,世人皆知Intel.AMD,殊不知还有个VIA(威盛),在Intel反垄断世纪大战中VIA公司作为Intel霸权的受害者也最终确认了X86授权,不过VIA与前面两家的实力相差太远,X ...
- windows和linux的开机顺序
windows的开机顺序: 启动自检阶段---初始化启动阶段---Boot加载阶段---检测和配置硬件阶段---内核加载阶段---屏幕显示. linux的开机启动顺序: 加载Bios---读取MBR- ...
- [转帖]年经贴: ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器?
ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器? https://www.cnbeta.com/articles/tech/899421.htm . 之前苹果的哥们说过 谁特别在意自己的软 ...
- [转帖]兆芯发布国产X86处理器KX-6000和KH-30000,性能提升达50%,附详情介绍
兆芯发布国产X86处理器KX-6000和KH-30000,性能提升达50%,附详情介绍 2019-06-20 09:56:38作者:linux人稿源:快科技 https://ywnz.com/linu ...
- 【转帖】国产x86处理器KX-6000发布
国产最先进x86处理器KX-6000发布:8核3.0GHz 力压酷睿i5处理器 https://www.cnbeta.com/articles/tech/858981.htm 全网所有的网页都写错了 ...
- [转帖]又一国产x86处理器可大规模上市:Intel至强核心 安全监测管控
又一国产x86处理器可大规模上市:Intel至强核心 安全监测管控 https://www.cnbeta.com/articles/tech/850525.htm 不知道是不是有一起汉芯事件 国产CP ...
随机推荐
- 密码学那些事———SHA-512及其C++实现
SHA-512及其C++实现 转载请注明出处 一.引言 相信大家对于哈希压缩加密算法应该不陌生,在我们用微信或者支付宝接口的时候经常会遇到用这类算法加密,以验证数据的完整性.可以说这类算法无处不在,那 ...
- JavaScript系列-----Object之toString()和valueOf()方法 (2)
深入理解toString()和valueOf()函数 1.我们为什么要了解这两种方法 众所周知,toString()函数和valueOf函数,这两个函数是Object类的对象生来就拥有的,而且他们还可 ...
- spring返回@ResponseBody报406
HTTP Status 406 - type Status report message description The resource identified by this request is ...
- Owin中间件动手玩
摘要:本文目的是了解Owin基本原理.讲述如何从控制台创建一个自宿主的OwinHost,然后再编写一两个中间件 准备工作 首先通过VisualStudio创建一个控制台应用 然后添加Owin的Nuge ...
- [转载] 使用HTML5的十大原因
转载自http://www.williamlong.info/archives/3024.html 你难道还没有考虑使用HTML5? 当然我猜想你可能有自己的原因:它现在还没有被广泛的支持,在IE中不 ...
- iOS 远程推送消息解析及逻辑处理
关于远程推送的相关配置网上已经有足够多的教程,这里就不复述了.这里讲述当客户端收到推送消息后,应怎样对其进行相应的逻辑处理. 工程的AppDelegate.m文件里提供了如下方法: //当应用程序启动 ...
- 创建简单的Python列表
比如给出电影列表: The Holy Grail The Life of Brian The Meaning of Life 转换为Python可读的列表,需要遵循以下4个步骤: 1.在数据两边加引号 ...
- 初试pyspider
灵感来源: https://zhuanlan.zhihu.com/p/31421316 抓取页面: https://www.nvshens.com/tag/new/ 页面分析: 首页获取所有图片详情页 ...
- python学习笔记 改变字符串中的某一位
a = ' a = list(a) a[2] = ' news = ''.join(a) print news,a 注意不能使用 news = '' news.join(a) 因为news.join只 ...
- Bone Collector-HDU
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...