From patchwork Wed Oct 9 20:40:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Druzhinin X-Patchwork-Id: 11182113 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2183876 for ; Wed, 9 Oct 2019 20:41:38 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F1A2820B7C for ; Wed, 9 Oct 2019 20:41:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="VVggxNDJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F1A2820B7C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iIIkv-0000kg-R5; Wed, 09 Oct 2019 20:40:21 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iIIku-0000kI-BW for xen-devel@lists.xenproject.org; Wed, 09 Oct 2019 20:40:20 +0000 X-Inumbo-ID: fcb423a8-ead4-11e9-97f9-12813bfff9fa Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id fcb423a8-ead4-11e9-97f9-12813bfff9fa; Wed, 09 Oct 2019 20:40:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1570653611; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=3yZ+qX2raC25cFSjaFhjUelclgLPU8erspmvsYEsNS4=; b=VVggxNDJvqdnkBQ3HChiSCvf+YKfQhA2p/6uc/s2Lml+AJ66HJOtzxv7 VQmJiV8dxrvFrXOxlM3sttfimaPyHO9aJQ8HQ7R77eVr8bDxm+CIDdBzE cn0OMbHs59Hm/J9l/xVlYup11Nke4bIM8aLaJwhm0NG93dqOg3+uM7H0t 0=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=igor.druzhinin@citrix.com; spf=Pass smtp.mailfrom=igor.druzhinin@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of igor.druzhinin@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="igor.druzhinin@citrix.com"; x-sender="igor.druzhinin@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa1.hc3370-68.iphmx.com: domain of igor.druzhinin@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="igor.druzhinin@citrix.com"; x-sender="igor.druzhinin@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="igor.druzhinin@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: ttgu0X3XqvrCWE/ECLqmST/sVuA+DDT4DqhYmuZh4+6ID8971R9PIM2O+pbKZUQk4rhnR1h7Xg 1qkUm5OvRvLPYi9KhAcGqEFQpz1BgzWXsKkH/pTc4zotqIlle+LyVHFdmSd3iHuApOnMt+EcKj lBxPp+EIKEvV/mPbYBHuLmadqMVewFWNgGVNg42J8XJdOy8aN+U7ooMyUyYQS6CCjIbUOOrRe/ mO+tveP0yGLQZ76gBavX2K1OJb/NKjJD/qBwx+bGqXXTSOihKbYiALJU8xCo5PGPqGZgE7bms4 obU= X-SBRS: 2.7 X-MesageID: 6761495 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.67,277,1566878400"; d="scan'208";a="6761495" From: Igor Druzhinin To: Date: Wed, 9 Oct 2019 21:40:03 +0100 Message-ID: <1570653603-9889-4-git-send-email-igor.druzhinin@citrix.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1570653603-9889-1-git-send-email-igor.druzhinin@citrix.com> References: <1570653603-9889-1-git-send-email-igor.druzhinin@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH for-4.13 v2 3/3] efi/boot: make sure graphics mode is set while booting through MB2 X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: jgross@suse.com, Igor Druzhinin , wl@xen.org, andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" 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 Reviewed-by: Jan Beulich --- xen/common/efi/boot.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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. */