Replies: 3 comments
-
Any suggestion is highly appreciated! |
Beta Was this translation helpful? Give feedback.
-
Question 3 is not a problem because the parameters are not passed in by FmpDxe |
Beta Was this translation helpful? Give feedback.
-
If i understand correctly you are suggesting that your FmpProtocol isn't yet installed by the time the BDS does the capsule update processing. This is a choice and a design of the BDS. In some BDS designs I have seen capsules processes twice. Once in Dxe for known platform components and once again later for 3rd party or optionally connected devices. In cases where I have used UEFI drivers (drivers that use driver binding) I have added custom code to the BDS to connect that device prior to processing capsules. See Code calling this is very inconsistent, as is every BDS in tianocore (they are all different and don't represent what you usually will see in PC products). See here for an example: https://cs.github.com/tianocore/edk2-platforms/blob/86759a1bf82904fec4ce5abe3bb7c04948822767/Platform/RaspberryPi/Library/PlatformBootManagerLib/PlatformBm.c |
Beta Was this translation helpful? Give feedback.
-
Hi all,
In
\FmpDevicePkg\Library\FmpDeviceLibNull\FmpDeviceLib.c
There are comments for RegisterFmpInstaller:
However, since the ‘RegisterFmpInstaller’ of the example directly returns
EFI_UNSUPPORTED
, it does not demonstrate how to handle the DriverBinding protocol.In addition, I refer to
the example of
\MdeModulePkg\Bus\Usb\UsbMouseAbsolutePointerDxe
adding the driverbinding protocol to locate the USBMouse device to the 'RegisterFmpInstaller' function. And set the return value of RegisterFmpInstaller toEFI_SUCCESS
.where RegisterFmpInstaller is in the following file:
edk2-platforms\Platform\Intel\Vlv2TbltDevicePkg\Feature\Capsule\Library\FmpDeviceLibSample
Then tested on Minnowboard.
Test command:
CapsuleApp.efi Red.cap
The test results are as follows:
FmpDeviceSetImageWithStatus
is executed,USBMouseAbsolutePointerDriverBindingSupported
has not been executed, that is, USB Device IO cannot be operated yet.USBMouseAbsolutePointerDriverBindingSupporte
d is executed, USBIO can be operated, but at this timeFmpDeviceSetImageWithStatus
has been executed, that is, capsule update is too late to process.My questions are as follows:
FMP_DEVICE_LIB_REGISTER_FMP_INSTALLER Func
', and how should the parameterHandle
inFunc
(ieInstallFmpInstance
, see below) be passed fromFmpDxe
toFmpDeviceLib
?Beta Was this translation helpful? Give feedback.
All reactions