Hi Ard,

On 03/05/20 14:46, Ard Biesheuvel wrote:
> Replace the open coded sequence to load Linux on x86 with a short and
> generic sequence invoking QemuLoadImageLib, which can be provided by
> a generic version that only supports the LoadImage and StartImage boot
> services, and one that incorporates the entire legacy loading sequence
> as well.
> 
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2566
> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
> Reviewed-by: Laszlo Ersek <ler...@redhat.com>
> ---
>  OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf |   2 +-
>  OvmfPkg/Library/PlatformBootManagerLib/QemuKernel.c               | 144 
> ++------------------
>  2 files changed, 14 insertions(+), 132 deletions(-)
> 
> diff --git 
> a/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf 
> b/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> index c479f113b92b..e470b9a6a3e5 100644
> --- a/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> +++ b/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> @@ -49,7 +49,7 @@ [LibraryClasses]
>    NvVarsFileLib
>    QemuFwCfgLib
>    QemuFwCfgS3Lib
> -  LoadLinuxLib
> +  QemuLoadImageLib
>    QemuBootOrderLib
>    ReportStatusCodeLib
>    UefiLib

This hunk (in commit 859b55443a42) seems to break the OvmfXen platform build:

Active Platform          = OvmfPkg/OvmfXen.dsc

build.py...
OvmfPkg/OvmfXen.dsc(...): error 4000: Instance of library class 
[QemuLoadImageLib] is not found
        in [OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf] 
[X64]
        consumed by module [MdeModulePkg/Universal/BdsDxe/BdsDxe.inf]

Can you please send a patch?

I think resolving the lib class to the generic instance suffices. 
gBS->LoadImage() will return EFI_NOT_FOUND from QemuLoadKernelImage(), because 
OvmfPkg/QemuKernelLoaderFsDxe is not included in the Xen platform.

An alternative fix that's larger in source code, but lighter in binary code, 
would be to add a Null instance of QemuLoadImageLib, and use that in the Xen 
platform.

For the future, please include OvmfXen.dsc in your build / CI scripts.

Thanks!
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#55551): https://edk2.groups.io/g/devel/message/55551
Mute This Topic: https://groups.io/mt/71749527/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to