Runtime Capsule Update Support


Mayur Gudmeti
 

Hi,

I was wondering if can update the FMP capsule in storage with CapsuleInRamSupport enabled and without system reset. I was referring to this file https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Library/DxeCapsuleLibFmp/CapsuleOnDisk.c where gRT->UpdateCapsule is called when PcdCapsuleInRamSupport is enabled. In UpdateCapsule API, service which can be called by operating system too, checks whether CAPSULE_FLAGS_PERSIST_ACROSS_RESET and CAPSULE_FLAGS_INITIATE_RESET are set. If these flags are not set, then ProcessCapsuleImage is called which in turn calls ProcessThisCapsuleImage and then ProcessFmpCapsuleImage. ProcessFmpCapsuleImage calls a boot time service locate handle buffer through GetFmpHandleBufferByType. Now this is a runtime service calling a boottime service. Is this a possible bug or am I missing something here?

Thanks,
Mayur