Ruiyu Ni of Intel has posted an 12-part patch addding UEFI 2.5’s Platform Recovery feature to the public Tianocore EDK2 trunk.
Amongst the features of UEFI 2.5, the last public release of UEFI from the UEFI Forum, was #1227 “UEFI.Next feature – Platform recovery“. Load up the multi-thousand page UEFI 2.5 specification, with a PDF viewer with good search abilities, to find all the locations in the spec which Platform Recovery impacts. A good place to start would be around page 119, the OsRecovery#### and PlatformRecovery#### variables that’re new to UEFI 2.5.
Given that the patch includes a question from Intel asked HP: “Could you please check my patch to see whether it can meet your real requirement?“, it appears that HP already has an existing implementation of this, perhaps already publicly available, probably separate from the Tianocore implementation, like they did with HTTP Boot. I’m not sure of other vendors with existing UEFI 2.5 Platform Recovery support.
Given UEFI capsule updates can add new features, your next firmware update may include this feature; is your organization ready to deal with UEFI 2.5 Platform Recovery support appearing in the near future? I’m not ready. I don’t understand what this feature really means, in terms of system impact. Earlier (not in this patch), there was a LOT of new code dealing with recovery in drivers. I don’t now know how to test this feature yet in Tianocore. Are there any new tools involved with this feature, for sysadmins to use? How do I test if this feature is working in a specific driver, or in the entire system? Where are some test scripts that exercise the feature? If someone has any more pointers to using this new feature, please add a Comment to this post (see left), thanks!
Subject: [Patch 00/11] Add Platform Recovery support
OS Recovery will be added later.
Ruiyu Ni (11):
MdePkg: Add Platform Recovery definitions.
MdeModulePkg: Add Bm prefix for internal functions
MdeModulePkg: Use BmCharToUint in BmIsKeyOptionVariable
MdeModulePkg: Use BM_OPTION_NAME_LEN instead of sizeof L”Boot####”
MdeModulePkg: Use BmForEachVariable to collect all key options
MdeModulePkg: Support to expand File device path
MdeModulePkg: Add Platform recovery support
MdeModulePkg: Add missing PrintLib to BdsDxe.inf
MdeModulePkg: Use UefiSpec.h defined macro to replace L”xxx” string
MdeModulePkg: Add PlatformRecovery#### pointing to default file path
MdeModulePkg: Enable PlatformRecovery in BdsDxe driver
MdeModulePkg/Include/Library/UefiBootManagerLib.h | 1 +
MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c | 76 ++++
MdeModulePkg/Library/UefiBootManagerLib/BmHotkey.c | 181 +++++—-
…/Library/UefiBootManagerLib/BmLoadOption.c | 155 +++++–
MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c | 26 ++
…/Library/UefiBootManagerLib/InternalBm.h | 30 +-
…/UefiBootManagerLib/UefiBootManagerLib.inf | 1 +
MdeModulePkg/Universal/BdsDxe/Bds.h | 3 –
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf | 1 +
MdeModulePkg/Universal/BdsDxe/BdsEntry.c | 447 ++++++—————
MdePkg/Include/Uefi/UefiSpec.h | 1 +
11 files changed, 474 insertions(+), 448 deletions(-)