Message ID | 1570653603-9889-4-git-send-email-igor.druzhinin@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | EFI GOP fixes | expand |
On 09.10.2019 22:40, Igor Druzhinin wrote: > If a bootloader is using native driver instead of EFI GOP it might > reset graphics mode to be different from what has been originally set > by firmware. While booting through MB2 Xen either need to parse video > setting passed by MB2 and use them instead of what GOP reports or > reset the mode to synchronise it with firmware - prefer the latter. > > Observed while booting Xen using MB2 with EFI GRUB2 compiled with > all possible video drivers where native drivers take priority over firmware. > > Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com>
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c index 6cef429..6b069c4 100644 --- a/xen/common/efi/boot.c +++ b/xen/common/efi/boot.c @@ -1051,8 +1051,12 @@ static void __init efi_set_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop, UINTN gop EFI_STATUS status; UINTN info_size; - /* Set graphics mode. */ - if ( gop_mode < gop->Mode->MaxMode && gop_mode != gop->Mode->Mode ) + /* + * Set graphics mode to a selected one and reset it if we didn't come + * directly from EFI loader as video settings might have been already modified. + */ + if ( gop_mode < gop->Mode->MaxMode && + (gop_mode != gop->Mode->Mode || !efi_enabled(EFI_LOADER)) ) gop->SetMode(gop, gop_mode); /* Get graphics and frame buffer info. */
If a bootloader is using native driver instead of EFI GOP it might reset graphics mode to be different from what has been originally set by firmware. While booting through MB2 Xen either need to parse video setting passed by MB2 and use them instead of what GOP reports or reset the mode to synchronise it with firmware - prefer the latter. Observed while booting Xen using MB2 with EFI GRUB2 compiled with all possible video drivers where native drivers take priority over firmware. Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com> --- xen/common/efi/boot.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)