Windows Firmware Update Guide


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.


文章作者: Holy Chen
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Holy Chen !
  目录