Platform
- CometLake 7C43 Project:M80T MB with UEFI Windows 10 System .
- Product: Aptio 5.x.
Test Objective:
- Confirm that Firmware can be updated using Windows architecture.
Test Procedures:
- System With SDK and WINDDK Installed
下载并安装最新WDK和SDK到测试机
WDK:该驱动程序开发工具包(WDK)是从软件工具集微软,使开发设备驱动程序针对微软的Windows平台。它包括用于驱动程序开发人员的文档,样本,构建环境和工具。用于驱动程序开发的完整工具集还需要以下内容:编译器Visual Studio,Windows SDK和Windows HLK。
SDK:Microsoft Windows SDK及其先前的Platform SDK和.NET Framework SDK是Microsoft的软件开发工具包(SDK),其中包含开发Microsoft Windows和.NET Framework应用程序所需的文档,头文件,库,示例和工具。Platform SDK专门开发用于Windows 2000,XP和Windows Server 2003的应用程序。.NET Framework SDK专门用于开发用于 .NET Framework 1.1和.NET Framework 2.0。Windows SDK是这两者的继承者,并支持为Windows XP和更高版本以及.NET Framework 3.0和更高版本开发应用程序。
- Create a folder C:\WFU and place *.inf and .cap file in it(.cap file built from project source)
*.inf文件示例如下,具体参考微软官网INF相关说明
[Version]
Signature = "$WINDOWS NT$"
Provider = %Provider%
Class = Firmware
ClassGuid = {f2e7dd72-6468-4e36-b6f1-6488f42c1b52}
DriverVer = 07/28/2020,1.0.0.43
CatalogFile = M2TKT2CA.cat
PnpLockdown = 1
[Manufacturer]
%MfgName% = Firmware,NTamd64
[Firmware.NTamd64]
%FirmwareDesc% = Firmware_Install,UEFI\RES_{5deafc1a-69b6-4a95-8572-2c888cabf533}
[Firmware_Install.NT]
CopyFiles = Firmware_CopyFiles
[Firmware_CopyFiles]
M2TKT2CA.cap
[Firmware_Install.NT.Hw]
AddReg = Firmware_AddReg
[Firmware_AddReg]
HKR,,FirmwareId,,{5deafc1a-69b6-4a95-8572-2c888cabf533}
HKR,,FirmwareVersion,%REG_DWORD%,0x0001002C
HKR,,FirmwareFilename,,{5deafc1a-69b6-4a95-8572-2c888cabf533}\M2TKT2CA.cap
[SourceDisksNames]
1 = %DiskName%
[SourceDisksFiles]
M2TKT2CA.cap = 1
[DestinationDirs]
DefaultDestDir = %DIRID_WINDOWS%,Firmware\{5deafc1a-69b6-4a95-8572-2c888cabf533}
[Strings]
; localizable
Provider = "Lenovo Ltd."
MfgName = "Lenovo Ltd."
FirmwareDesc = "ThinkCentre M90t/s, M80t/s, M70t/s, M993t, M930t/s, M737t, QT M630, YT P780 System Firmware 1.0.0.43"
DiskName = "Firmware Update"
; non-localizable
DIRID_WINDOWS = 10
REG_DWORD = 0x00010001
Change related cap and cat file name in *.inf file, make these match the prefix of your cap file name, example M2TKT2CA.cat and M2TKT2CA.cap (如下图2、4、8、9处)
将M2TKT2CA.inf文件的GUID替换为BIOS Source Code里对应的需要更新Firmware GUID(如上图3、5、7、10处)
Edit M2TKT2CA.inf file, find string “DriverVer=07/10/2020,1.0.0.42” and increase last two digits to 43, must increment for each flash(如上图1、11处)
Edit M2TKT2CA.inf, find string “HKR,,FirmwareVersion,%REG_DWORD%,0x0001002B and increase to 0x0001002C”, must increment for each flash.(如上图6处)
(Note: 0x2C is hex values of BIOS version, ex: BIOS version is 043, the hex values is 0x2C)以管理员身份运行PowerShell,切换目录到C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86
Run .\makecert.exe -r -pe -a sha256 -eku 1.3.6.1.5.5.7.3.3 -n CN=Foo -sv fwu.pvk fwu.cer
Password window will appear, set and verify this password: wfutest123
In powershell run .\pvk2pfx.exe -pvk fwu.pvk -spc fwu.cer -pi wfutest123 -spc fwu.cer -pfx fwu.pfx
If a .cat with your BIOS name, example m2tkt2ca.cat exists in the Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86 folder delete it.
In powershell run .\Inf2Cat.exe /driver:c:\WFU /os:10_x64
In powershell run .\signtool sign /fd sha256 /f fwu.pfx /p wfutest123 C:\WFU\M2TKT2CA.cat
In powershell run .\fwu.cer
A Window should be displayed. Install certificate, local machine, next, browse, select Trusted Root Certification Authorities
In powershell run bcdedit.exe /set testsigning on
Right click My computer -> Manage -> Device Manager -> Firmware -> Update Driver Software -> Browse -> Let me Pick -> Hard Disk -> Select inf -> restart
- Firmware update should complete without errors.