Re: [闲聊] 为什么BIOS芯片要做小颗?

楼主: sharkbay (Shark Bay)   2019-07-14 07:37:50
没营养又爱吃饵的闲聊仔又来啦
刚好几位版友问到的是关于PI (Platform Initialization)的问题
https://github.com/tianocore/tianocore.github.io/wiki/PI-Boot-Flow
https://uefi.org/sites/default/files/resources/PI_Spec_1_7_final_Jan_2019.pdf
请先简单翻过这两本文件(真的有难度只看图也行),我只提出跟大小(size)有关的部分
1. SEC 阶段
这里的程式都是纯组合语言编译的
这个阶段需要划定CAR (Cache As RAM)的位置跟大小. 除非特别指定, CAR通常等量拆半.
A. HOB(Hand-off block), 待会紧接着PEI模组彼此交换资料之用
B. Stack, 执行C语言程式编译的PEI模组群需要一块堆叠空间
最后跳往PEI的头(entry point)结束这回合
2. PEI 阶段
从这个阶段之后都是用C做为主要编写语言(99.9%).
这个阶段主要任务是
A. 完成内存初始化(就是知道装多大的RAM)
B. 把压缩过的DXE模组群解压缩到RAM
C. 跳往DXE的头(entry point)结束这回合
PEI模组群的执行速度差异极大, 跟是否曾经执行过且保留在在Cache有关.
剩下的DXE之后就不谈了.
举个例子好了, 假定PEI模组群要2.5MB, CAR画0.5MB, 其他功能保留0.5MB.
这样的配置在3/4MB Cache的CPU上面会发生开机速度差异
+
作者: bluesapphire (Blue Sapphire)   2019-07-14 13:19:00
原po 知道 intrl or amd DDR calibration程式码是intel amd 写好提供的吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com