Date
1 - 9 of 9
ESRT in OVMF
Sandeep Dhanvada
Hi,
I am trying to test capsule based FMP device upgrade in OVMF. I have a PCI NIC Adapter with PCI Passthrough enabled and need to upgrade firmware for this NIC in ovmf. I generated capsule file with embedded driver as FMP driver and payload as option ROM image. I tried CapsuleApp.efi from OVMF Shell and also fwupdate tool from Linux. Below is the observation with CapsuleApp.efi: 1. "CapsuleApp.efi -E" command from ovmf shell, but, it is not displaying any entries. 2. "CapsuleApp.efi -D <CapsuleFile>" is showing Capsule Header, Fmp Header and Fmp Payload Image Header properly. Below is the observation with fwupdate tool in Linux: 1. CONFIG_EFI_ESRT is enabled in Kernel Config. 2. /sys/firmware/efi sysfs entry is created, but, there is no esrt entry under this. 3. Since there is no esrt sysfs entry, "fwupdate -s" command is showing that firmware updates are not supported. Please let me know how to add ESRT table in OVMF so that i can upgrade device firmware. Thanks, Sandeep |
|
Laszlo Ersek
Hello Sandeep,
On 07/29/20 05:03, Sandeep Dhanvada wrote: Hi,This is out of scope for the current OvmfPkg platforms. Clearly I'm not saying that capsule updates "should not" be supported by OVMF "ever", all I'm saying is that for such use cases, a new OvmfPkg platform DSC will be necessary. (If the intent with the capsule update is to upgrade the firmware add-on devices *only*, that is, not the platform firmware itself, then *maybe* the current OVMF DSC files could accommodate that, introducing a new (default-off) build feature flag. I'm not sure.) Mike Kinney and Peter Jones have done some work around capsule updates in OVMF; I'm CC'ing them. Perhaps you can use their results for your experiments. Thanks Laszlo I have a PCI NIC Adapter with PCI Passthrough enabled and need to upgrade firmware for this NIC in ovmf. I generated capsule file with embedded driver as FMP driver and payload as option ROM image. |
|
Sandeep Dhanvada
Hello Laszlo,
Thanks for your inputs. I will wait for updates from Mike Kinney and Peter Jones. In DSC, i made the change mentioned in below patch, but still i am not able to see ESRT table. https://www.redhat.com/archives/edk2-devel-archive/2019-July/msg00167.html Thanks, Sandeep |
|
Michael D Kinney
Sandeep,
toggle quoted message
Show quoted text
I agree with Laszlo that a new DSC/FDF file would be required. Adding full set of UEFI feature to a new DSC/FDF file would also enable more platform tests in EDK II CI as well, so it would be valuable for more than just the use case described here. It is not a large change to add ESRT/FMP support. You can look at edk2-platforms/Platform/Intel/Vlv2TbltDevicePkg for a working platform example. Best regards, Mike -----Original Message----- |
|
Peter Jones <pjones@...>
On Wed, Jul 29, 2020 at 11:52:42AM +0200, Laszlo Ersek wrote:
Hello Sandeep,I have a couple of ancient branches in various states of disrepair that were used as part of an API tester at one point. It's from before FMP was really driving anything and before the ESRT data structures were fully pushed to edk2, and such they are clearly well unmaintained and have totally rotted, but if there's any chance they help at all, they're at: https://github.com/vathpela/edk2/tree/fake-capsule https://github.com/vathpela/edk2/tree/fake-capsule-0 https://github.com/vathpela/edk2/tree/fake-capsule-1 Thanks-- Peter |
|
Sandeep Dhanvada
Hi,
I am able to upgrade firmware using CaspsuleApp.efi with the help of Tomas Pilar in other thread in this mailing list. however, i have some modifications in edk2 source code for this to happen. please let me know what is the process for sending patches to mailing list. Thanks, Sandeep |
|
Tomas Pilar (tpilar)
Hi Sandeep,
You should probably discuss on this list what you want to add to the main tree before sending patches, you might get good pointers. Otherwise, there is a good guide as to how it works here: https://github.com/tianocore/tianocore.github.io/wiki/Laszlo's-unkempt-git-guide-for-edk2-contributors-and-maintainers . Cheers, Tom On Tue, Sep 22, 2020 at 6:23 AM Sandeep Dhanvada < sandeep.dhanvada@...> wrote: Hi, |
|
Sandeep Dhanvada
Hi Tom,
Please see the patches attached and let me know in case of any issues. I used all the "git config" options mentioned in the link you referred, but, I am not able to remove the line breaks at EOL in the patch. Thanks, Sandeep |
|
Tomas Pilar (tpilar)
I don't think you will be allowed to modify the DxeCapsuleLib to connect
all controllers when it's loading the FMP embedded driver. There is probably a better way of doing it. Also, you need to send the patches to the mailing list devel@ rather than attaching them here. Here is another link describing the process: https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process The second patch looks okay but you'll need to expand on the commit message a lot more with motivation, use-cases etc. If you search through the devel@ mailing list, you will see that a similar discussion was already had in the past. Cheers, Tom On Tue, Oct 6, 2020 at 1:06 PM Sandeep Dhanvada <sandeep.dhanvada@...> wrote: Hi Tom, |
|