本文介绍基于开源UDK+FSP方案在Intel 10代酷睿Cometlake-U硬件平台上实现power on实战,以及介绍如何使用完全开源的UDK来实现对我们OEM的板子进行porting与debug方法。主要从几个方面进行介绍分别是:目标的硬件开发板、需要准备开发环境 、OEM porting及构建、烧录并测试、持续改进等主题。通过使用开源UEFI方案我们现在我们可以在不花钱购买IBV如AMI、Insyde的代码的情况下开发基于X86的主板,使用开源方案可以节省数十万的的向IBV购买代码的开销,今天这一篇先分享当前的进展情况,后面会详细介绍。
- 图1是我们实验用的主板的简单框图,实验的是intel的第十代cometlake-u的CPU,搭配SODIMM的DDR4-2666内存,存储使用PCIE NVME的SSD,目前的进展来看CPU、DDR、EDP、HDMI、USB3.0、USB2.0、LPC、SMBUS、HDA等外设均能正常在windows10下正常工作。
- 图2是代码的目录结构,主要包括UDK、FSP、edk2-platforms/edk2-non-osi等模块,以及自己写的快速编译代码的脚本文件oembuild.sh/oemclean.sh,代码在linux环境下可以正常编译。
- 图3是编译完成后截取的部分编译日志文件,可以看到生成了多个FV,及最终的COMETLAKEURVP.fd文件。这个文件名是参考RVP的名字,可以修改成任何文件名。
- 图4是编译完成并把COMETLAKEURVP.fd与ME、ECmerge到一起后,用SF600烧录到目标板子上之后开机按键盘热键,打开的BIOS boot manger窗口,在这里我们可以选择不同的启动设备来启动系统。这里我们选择从U盘启动就可以给SSD安装操作系统。系统安装成功之后可以选择从硬盘启动到windows,当然我们也可以选择启动到内部的UEFI SHELL环境来进行debug或其他信息的查看。
- 图5是最新目标机器启动到windows之后输入msinfo命令查看的系统信息,我们可以在这里看到BIOS的版本是“Intel EDK”而不是传统的insyde或者AMI。