Cstyle的UEFI导读:Open source UEFI BIOS开发实战简介,基于Intel 10代酷睿Cometlake-U硬件平台

本文介绍了如何在Intel 10代酷睿Cometlake-U硬件上,使用开源UDK+FSP开发UEFI BIOS。内容包括开发环境搭建、OEM porting、编译烧录、系统安装及驱动调试等步骤,展示了使用开源方案替代商业BIOS代码的可能性。

本文介绍基于开源UDK+FSP方案在Intel 10代酷睿Cometlake-U硬件平台上实现power on实战,以及介绍如何使用完全开源的UDK来实现对我们OEM的板子进行porting与debug方法。主要从几个方面进行介绍分别是:目标的硬件开发板、需要准备开发环境 、OEM porting及构建、烧录并测试、持续改进等主题。通过使用开源UEFI方案我们现在我们可以在不花钱购买IBV如AMI、Insyde的代码的情况下开发基于X86的主板,使用开源方案可以节省数十万的的向IBV购买代码的开销,今天这一篇先分享当前的进展情况,后面会详细介绍。

  1. 图1是我们实验用的主板的简单框图,实验的是intel的第十代cometlake-u的CPU,搭配SODIMM的DDR4-2666内存,存储使用PCIE NVME的SSD,目前的进展来看CPU、DDR、EDP、HDMI、USB3.0、USB2.0、LPC、SMBUS、HDA等外设均能正常在windows10下正常工作。
  2. 图2是代码的目录结构,主要包括UDK、FSP、edk2-platforms/edk2-non-osi等模块,以及自己写的快速编译代码的脚本文件oembuild.sh/oemclean.sh,代码在linux环境下可以正常编译。
  3. 图3是编译完成后截取的部分编译日志文件,可以看到生成了多个FV,及最终的COMETLAKEURVP.fd文件。这个文件名是参考RVP的名字,可以修改成任何文件名。
  4. 图4是编译完成并把COMETLAKEURVP.fd与ME、ECmerge到一起后,用SF600烧录到目标板子上之后开机按键盘热键,打开的BIOS boot manger窗口,在这里我们可以选择不同的启动设备来启动系统。这里我们选择从U盘启动就可以给SSD安装操作系统。系统安装成功之后可以选择从硬盘启动到windows,当然我们也可以选择启动到内部的UEFI SHELL环境来进行debug或其他信息的查看。
  5. 图5是最新目标机器启动到windows之后输入msinfo命令查看的系统信息,我们可以在这里看到BIOS的版本是“Intel EDK”而不是传统的insyde或者AMI。

一.实验开发板

  1. CPU:Intel Core I7-10710U (10代CometLake)
  2. DDR:16GB 2Rx8 PC4-2666V-SE1-11
  3. SSD:MZVLB256HAHQ
  4. OS:Win10 1909 64bit (10.0.18363 build 18363 )
  5. 其他:键盘,鼠标,屏幕,显示器等

                                              图1

二.开发工具和实验环境:

  1. Ubuntu
  2. UDK/FSP/edk2-platforms/edk2-non-osi
  3. nasm
  4. ASL
  1. Ubuntu 20.04 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)

$root@DESKTOP-Cstyle:/usr/bin# cat /proc/version

Linux version 4.4.0-19041-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #488-Microsoft Mon Sep 01 13:43:00 PST 2020

  1. acpica-unix2-20200717.tar

$root@DESKTOP-Cstyle:/usr/bin# iasl -v

Intel ACPI Component Architecture ASL+ Optimizing Compiler/Disassembler version 20200717 Copyright (c) 2000 - 2020 Intel Corporation

  1. nasm-2.15.03.tar.bz2

$root@DESKTOP-Cstyle:~# nasm -v

NASM version 2.15.03 compiled on Aug 8 2020

  1. UDK及FSP

从GitHub下载最新版本如下图:

                                                   图2

三.基于硬件设计UEFI BIOS Porting

  1. 参考Platform board的选择,这里我们选择“CometlakeURvp”
  2. GPIO 设定
  3. 内存SPD设定
  4. GOP设定
  5. ME设定
  6. 其他UEFI代码porting

 

四.构建UEFI固件

  1. 切换到UDK根目录
  2. 执行oembuild.sh
  3. 切换到windows系统手动merge ME 与EC
  4. 使用SF600烧录BIN文件到目标机器
  5. 开机

                                                                                               图3

 五.安装系统

  1. 选用32GB以上U盘制作windows安装镜像
  2. 开机按热键选择从U盘启动
  3. 安装系统

                                                                              图4

六.安装驱动

  1. 正常启动到WIN10
  2. 查看BIOS版本(如图:INTEL EDK......)
  3. 安装驱动
  4. 确保所有外设可以正常使用

七.测试&解Debug

  1. 根据测试报告定位并解决各种Bug
  2. 与测试&EE&ME&Thermal等部门协助解决Bug直至达到出货标准
  3. 大规模出货

                                                                             图5

 八.持续改进,后续会分享更多Open source UDK UEFI BIOS在intel最新硬件平台上开发的细节,可持续关注。

转载请注明出处,或可关注微信公众号:固件C字营

Cstyle.z.zhou@outlook.com   //  http://blog.youkuaiyun.com/CStyle_0x007 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值