EFI和UEFI的起源及Romstage和Ramstage有什么区别?
EFI和UEFI的起源
随着时代发展,BIOS的劣势逐渐凸显,尤以分区支持局限、分辨率不足和驱动支持有限而突出。Intel于2001年推出EFI(Extensible Firmware Interface), 构建了DXE虚拟环境中,EFI程序采用字节码,运行于此。EFI用C语言编写,抛弃BIOS的实模式,可运行32位或64位。
EFI访问内存前先跑通DRAM Calibration或DRAM参数加载,确认DRAM可访问后,EFI环境可访问所有内存空间,这在BIOS时代是不可想象的。
逐渐,intel公开了EFI,各大公司联合形成了UEFI(Unified EFI), UEFI相比EFI增加了更强大的图形驱动,不再像BIOS时代VGA分辨率(已经不能适应目前大屏幕),更提供了安全启动保证安全。
Romstage和Ramstage有什么区别?
Romstage和Ramstage有什么区别?
一般而言,系统启动初期,会运行BIOS或者UEFI,Coreboot也是一个启动器。以Coreboot为例,DRAM内存硬体是需要calibration或者tuning后才能正常work,所以,在DRAM work之前,被称为romstage. 此时,内存不能用,但CPU寄存器肯定不够用,就借用Cache当做内存,又被称为"Cache as RAM", 即CAR, 另外一种称呼就叫Cache Shared SRAM. 利用SRAM加载DRAM初始化程序,做完DRAM Calibration后,DRAM可以work,此时就进入所谓ramstage, 大部分程序员都熟悉这种模式了,可以直接访问DRAM内存。当然,之前借用的Cache也可以归还了。
有Bootloader,为什么还要BROM?
若文章对您有帮助,欢迎关注。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。