From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: redhat.com, ip: 209.132.183.28, mailfrom: lersek@redhat.com) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by groups.io with SMTP; Tue, 25 Jun 2019 06:47:26 -0700 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 018FFB2DCE; Tue, 25 Jun 2019 13:47:26 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-204.ams2.redhat.com [10.36.116.204]) by smtp.corp.redhat.com (Postfix) with ESMTP id E32621972B; Tue, 25 Jun 2019 13:47:24 +0000 (UTC) Subject: Re: [PATCH v2 7/7] OvmfPkg: don't assign PCI BARs above 4GiB when CSM enabled To: David Woodhouse , devel@edk2.groups.io Cc: Ray Ni References: <20190625114859.795331-1-dwmw2@infradead.org> <20190625114859.795331-7-dwmw2@infradead.org> From: "Laszlo Ersek" Message-ID: <7c4b9723-3519-cdab-3b46-03282062ad10@redhat.com> Date: Tue, 25 Jun 2019 15:47:23 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20190625114859.795331-7-dwmw2@infradead.org> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Tue, 25 Jun 2019 13:47:26 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 06/25/19 13:48, David Woodhouse wrote: > Mostly, this is only necessary for devices that the CSM might have > native support for, such as VirtIO and NVMe; PciBusDxe will already > degrade devices to 32-bit if they have an OpROM. > > However, there doesn't seem to be a generic way of requesting PciBusDxe > to downgrade specific devices. > > There's IncompatiblePciDeviceSupportProtocol but that doesn't provide > the PCI class information or a handle to the device itself, so there's > no simple way to just match on all NVMe devices, for example. > > Just leave gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size set to zero for > CSM builds, until/unless that can be fixed. > > Signed-off-by: David Woodhouse > --- > OvmfPkg/OvmfPkgIa32X64.dsc | 4 ++++ > OvmfPkg/OvmfPkgX64.dsc | 4 ++++ > 2 files changed, 8 insertions(+) > > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index 639e33cb28..ad20531ceb 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -543,7 +543,11 @@ > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0 > +!ifdef $(CSM_ENABLE) > + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x0 > +!else > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 > +!endif > > gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0 > > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index 69a3497c2c..0542ac2235 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -542,7 +542,11 @@ > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0 > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0 > +!ifdef $(CSM_ENABLE) > + gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x0 > +!else > gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 > +!endif > > gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0 > > Reviewed-by: Laszlo Ersek Thanks! Laszlo