From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=66.187.233.73; helo=mx1.redhat.com; envelope-from=lersek@redhat.com; receiver=edk2-devel@lists.01.org Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 23DAF226612B9 for ; Wed, 25 Apr 2018 07:08:47 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 673E6402290A; Wed, 25 Apr 2018 14:08:46 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-121-20.rdu2.redhat.com [10.10.121.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id CB2122023239; Wed, 25 Apr 2018 14:08:45 +0000 (UTC) To: Gerd Hoffmann References: <20180425121055.19688-1-kraxel@redhat.com> Cc: edk2-devel@lists.01.org, Phil Dennis-Jordan From: Laszlo Ersek Message-ID: <92f69b02-b5ab-ed7c-e726-7bdf646494e6@redhat.com> Date: Wed, 25 Apr 2018 16:08:45 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180425121055.19688-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Wed, 25 Apr 2018 14:08:46 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Wed, 25 Apr 2018 14:08:46 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'lersek@redhat.com' RCPT:'' Subject: Re: [PATCH] QemuVideoDxe: round up FrameBufferSize to full page X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2018 14:08:47 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Hi Gerd, On 04/25/18 14:10, Gerd Hoffmann wrote: > Guests do the same, because the framebuffer is mapped somewhere, which > obviously works with page granularity only. > > When not rounding up to full page size we get messages like this one > (linux kernel): > > efifb: framebuffer at 0x80000000, using 1876k, total 1875k > ^^^^^ ^^^^^ > Also sysfb is confused and throws an error: > > sysfb: VRAM smaller than advertised > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Gerd Hoffmann > --- > OvmfPkg/QemuVideoDxe/Gop.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/OvmfPkg/QemuVideoDxe/Gop.c b/OvmfPkg/QemuVideoDxe/Gop.c > index d51efc2a83..2bd905efea 100644 > --- a/OvmfPkg/QemuVideoDxe/Gop.c > +++ b/OvmfPkg/QemuVideoDxe/Gop.c > @@ -69,6 +69,8 @@ QemuVideoCompleteModeData ( > Mode->FrameBufferBase = FrameBufDesc->AddrRangeMin; > Mode->FrameBufferSize = Info->HorizontalResolution * Info->VerticalResolution; > Mode->FrameBufferSize = Mode->FrameBufferSize * ((ModeData->ColorDepth + 7) / 8); > + Mode->FrameBufferSize = > + (Mode->FrameBufferSize + EFI_PAGE_SIZE - 1) & ~EFI_PAGE_MASK; > DEBUG ((EFI_D_INFO, "FrameBufferBase: 0x%Lx, FrameBufferSize: 0x%Lx\n", > Mode->FrameBufferBase, (UINT64)Mode->FrameBufferSize)); > > thanks for the patch; can you please implement three updates: (1) Please use the EFI_SIZE_TO_PAGES() macro for rounding up the size. (EFI_SIZE_TO_PAGES() takes one UINTN argument, but there's no need for an explicit cast, because "EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE.FrameBufferSize" is already UINTN.) (2) Please do the same rounding-up in the QemuVideoVmwareSvgaCompleteModeData() function. (I'm copying Phil, should he want to comment.) (3) Please replace "QemuVideoDxe" with "OvmfPkg/QemuVideoDxe" in the subject line. Also, can you please verify that the "basic MS video adapter" works in Windows 8 / Windows 10, after this change? (Apologies if you've already done that.) Thank you! Laszlo