Transcription of System Firmware and Device Firmware Updates using …
1 Presented bySystem Firmware and Device Firmware Updates using Unified Extensible Firmware Interface (UEFI) CapsulesFall 2018 UEFI PlugfestOctober 15 19, 2018 Presented by Brian Richardson (Intel)Materials by Michael Kinney (Intel) and Distributing UEFI Capsules for Firmware CapsulePublish UEFIC apsuleDistribute UEFIC apsuleProcess UEFI CapsuleMicrosoft* Windows UpdateorLinux* Vendor Firmware Service (LVFS) * Other names and brands may be claimed as property of othersPlatform Initialization (PI) Architecture Firmware PhasesPre EFII nitialization (PEI) Driver Execution Environment (DXE)Boot DevSelect(BDS) Transient System Load(TSL)After Life(AL)Power on[ .. Platform initialization .. ][ .. OS boot .. ]ShutdownRun Time(RT)?OS-PresentAppFinal OS EnvironmentFinal OS Boot LoaderOS-AbsentAppTransient OS EnvironmentTransient OS Boot LoaderBoot ManagerCPUInitChipset InitBoard InitverifyDevice, Bus, or Service DriverExposedPlatformInterfacePre VerifierEFI Driver DispatcherIntrinsic ServicessecuritySecurity (SEC) Architecture Firmware PhasesExample: UEFI Capsule ProcessingPre EFII nitialization (PEI) Driver Execution Environment (DXE)Boot DevSelect(BDS) Transient System Load(TSL)After Life(AL)Power on[.]
2 Platform initialization .. ][ .. OS boot .. ]ShutdownRun Time(RT)Receive UEFI Capsules (LVFS) based on matching ESRTP rocess UEFI CapsulesCoalesce UEFI CapsulesSecurity (SEC) Final OS Boot LoaderResetSystem()Normal BootLoad UEFI CapsuleCall UpdateCapsule()ResetSystem()Boot onFLASH UpdatePass UEFI Capsule to matchingFirmware Management ProtocolResetSystem()Normal BootVerify update from ESRTN ormal BootSave UEFI CapsuleESRT = EFI System Resource UEFI CapsuleSystem FirmwareFMP DriverImageTypeIdGUID APublic Key(s)GUID AESRT TablePayloadPayload Header(Extensible)FMP HeaderUEFI Capsule HeaderUEFI CapsuleAuthInfoUpdateSetImage()Authentic ate1234 PublishFMP = UEFI Firmware Management ProtocolGUID = Globally Unique II UEFI Capsule FeaturesEFI Development Kit II ( )FeatureUDK2017 / UDK2018edk2-stable201808 GenerateUEFIC apsuleIntegrated EDK II BuildStandalonePython* ScriptUpdate GranularityFocusedon MonolithicDesigned to support Multiple ComponentsAuthenticationPKCS7 Single KeyPKCS7 Multiple KeysPre CheckN/APower/Battery, Thermal, SystemUpdateIndicatorRequires platformcodeBuilt-in with ConsistentUX and Progress BarFirmwareManagement Protocol (FMP)Requires full implementationProducedby FmpDxemodule customizedusing configuration data and small librariesTest Key DetectionRequiresplatform codeBuilt-inWatchdogRequiresplatform codeBuilt-inESRT DriverLegacy + FMPS maller/Simpler FMP only version* Other names and brands may be claimed as property of update Experience(UX)
3 CapsuleBitmap MessageUEFI Graphics ConsoleEFI_GRAPHICS_OUTPUT_PROTOCOLUEFI Text ConsoleEFI_SIMPLE_TEXT_OUTPUT_PROTOCOLU pdate Progress 100% update Progress 100% update Progress 100% update Progress 32%Customize with a new DisplayUpdateProgressLibinstanceFmpDxeMo dule VendorPlatform VendorFmpAuthenticationLibBaseCryptLibOp enSslLibFMP DXE ModuleConfigured through PCDsProduces UEFI Firmware Management ProtocolPCD = Platform Configuration DatabaseFmpDxeModule ConfigurationNameDescriptionFILE_GUIDESR TGUID ValuePcdFmpDeviceImageIdNameFMPI mage Descriptor -Unicode stringPcdFmpDeviceBuildTimeLowestSupport edVersionBuild time FMP/ESRT default valuePcdFmpDeviceLockEventGuidEvent GUID to lock FW storage is End of on each progress updatePcdFmpDeviceProgressColor24-bit Progress Bar Color (0x00rrggbb)PcdFmpDevicePkcs7 CertBufferXdrOneor more PKCS7 Certs in XDR w/ BaseTools/Scripts/BinToPcdPcdFmpDeviceTe stKeySha256 DigestSetto {0}to disable test key detectionXDR = External Data Representation using Variable-Length Opaque Data format from RFC Platform Specific LibraryNameDescriptionCheckSystemPower() Is System power/battery ok forFW update ?
4 CheckSystemThermal()Issystem temperature ok for FW update ?CheckSystemEnvironment()Is the System environment ok for FW update ?IsLowestSupportedVersionCheckRequ ired()Skip lowest supported version check?( Service Mode)IsLockFmpDeviceAtLockEventGuidRequi red()Skip firmwarestorage devicelock action?( Manufacturing Mode) Specific LibraryNameDescriptionRegisterFmpInstall er()Future expansionfor add-in ()Size of currently stored FW ()ESRT/FMP GUID. Overrides FILE_GUID ()FMP Attributes ()LSV from currentlystored FW ()Unicode version stringfrom currentlystored FW ()32-bitversion value from currentlystored FW ()Retrievecopy of currentlystored FW ()Checkif a new FW image is valid for this () update FW storagewith a new FW ()Lock FW storageto prevent any further GUIDs and Keys (Multiple Components) System FirmwareVital Product Data (VPD)Public Key(s)FMP DriverPublic Key(s)FMP DriverPublic Key(s)FMP DriverFMP DriverImageTypeIdGUID AGUID AGUID BGUID CGUID DESRTI mageTypeIdGUID BImageTypeIdGUID CImageTypeIdGUID GUIDs and Keys3rdParty FMP DriverSystem FirmwareVital Product Data (VPD)Public Key(s)FMP DriverImageTypeIdGUID ASystemKey(s)FMP DriverImageTypeIdGUID BFMP DriverImageTypeIdGUID A3rdPartyKey(s)3rdPartyFMP DriverImportDriverReplace with System Key(s)GUID AGUID BESRT3rdParty UEFI Capsules must be re-signed with System GUIDs and Keys3rdParty FMP DriverSystem FirmwareVital Product Data (VPD)Public Key(s)
5 FMP DriverImageTypeIdGUID A3rdPartyKey(s)FMP DriverImageTypeIdGUID BFMP DriverImageTypeIdGUID A3rdPartyKey(s)3rdPartyFMP DriverImportDriverGUID AGUID BESRTS ystem allows UEFI Capsules from 3rd Party to be FMP to Existing Device DriverSystem FirmwareDevice DriverFMP DriverImageTypeIdGUID CPublic Key(s)FMP DriverImageTypeIdGUID BPublic Key(s)FMP LibraryImageTypeIdGUID APublicKey(s)GUID AGUID BGUID New UEFI Capsule update Features in EDK II Platform Firmware and Device Firmware (ESRT/FMP) Multiple authentication keys & test key detection Improved UX and System update pre-checks Simplified capsule generation (Python script) Supports OS-based Firmware update workflow Model Based Servicing via Microsoft Windows update Linux Vendor Firmware Service (LVFS) via to Action Add UEFI Capsule Support to platforms Implement UEFI Capsule update for devices Take advantage of EDK II FmpDevicePkgfeatures Use Windows update & LVFS to simplify distribution of Firmware Updates Provide feedback and contribute!
6 TianoCore - LVFS - for attending the Fall 2018 UEFI Seminar and PlugfestFor more information on the Unified EFI Forum and UEFI Specifications, visit Legal NoticeIntel, the Intel logo are trademarks of Intel Corporation or its subsidiaries in the and/or other countries.*Other names and brands may be claimed as the property of others Intel