[BUG] efi_loader: ESRT table not correctly built

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Sat Jan 29 22:28:09 CET 2022


Function efi_esrt_populate() is used to populate the ESRT table.

If one of the FMP protocols malfunctions when calling GetImageInfo(), 
e.g because the dfu environment variables are not set, we should still 
add all other FMP protocols to the ESRT table, e.g the one added in the 
ESRT unit test.

The sequence of operation in efi_esrt_populate() should be changed:

1) get the number of FMP protocols from LocateHandleBuffer
2)
   a) allocate an ESRT that is big enough
   b) set FwResourceCountMax.
3) iterate over the FMP protocols
    For each valid FMP protocol:
    a) increase FwResourceCount
    b) add the info block.

Best regards

Heinrich


More information about the U-Boot mailing list