public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Zhong, Zarcd" <zarcd.zhong@intel.com>
To: "Ni, Ray" <ray.ni@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Wu, Hao A" <hao.a.wu@intel.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in high 32bit of MEM64.
Date: Thu, 14 Jan 2021 02:47:52 +0000	[thread overview]
Message-ID: <MWHPR11MB13095530BF74D46FB72D9353FBA80@MWHPR11MB1309.namprd11.prod.outlook.com> (raw)
In-Reply-To: <CO1PR11MB49303AE73A74B7AF6FFB90098CA90@CO1PR11MB4930.namprd11.prod.outlook.com>


[-- Attachment #1.1: Type: text/plain, Size: 2106 bytes --]

Hi Ray,

Attached patch is updated with below add. Thanks for your remind.

PciIoDevice->VfPciBar[BarIndex].BarType = PciBarTypeUnknown;


From: Ni, Ray <ray.ni@intel.com>
Sent: Wednesday, January 13, 2021 3:01 PM
To: Zhong, Zarcd <zarcd.zhong@intel.com>; devel@edk2.groups.io
Cc: Wu, Hao A <hao.a.wu@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: RE: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in high 32bit of MEM64.

Zarcd,
I can understand that this patch is needed for some buggy pci devices whose
VF bar behaves strangely. Incompatible PCI protocol can only deal with normal
PCI bar. And this patch is just to enhance the error handling logic.

Can you please use below code for error handling?
+        PciIoDevice->VfPciBar[BarIndex].BarType     = PciBarTypeUnknown

I understand that your change is aligned to existing error handling in the beginning
of PciIovParseVfBar().
But that logic runs before PciIoDevice->VfPciBar[BarIndex].BarType is assigned.
The key is to reset the BarType to PciBarTypeUnknown so that the resource summary
code doesn't count this bar.

Thanks,
Ray

From: Zhong, Zarcd <zarcd.zhong@intel.com<mailto:zarcd.zhong@intel.com>>
Sent: Monday, January 4, 2021 5:48 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>
Cc: Ni, Ray <ray.ni@intel.com<mailto:ray.ni@intel.com>>; Wu, Hao A <hao.a.wu@intel.com<mailto:hao.a.wu@intel.com>>
Subject: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in high 32bit of MEM64.

>From 7518212a85269e486d06dcea927a3d34e23372c2 Mon Sep 17 00:00:00 2001
From: Zarcd Zhong <zarcd.zhong@intel.com<mailto:zarcd.zhong@intel.com>>
Date: Mon, 4 Jan 2021 17:32:54 +0800
Subject: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in high 32bit of MEM64.

    REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3149

    Clear length and alignment for low 32bit of MEM64 BAR if sizing fail in high 32bit.

    Cc: Ray Ni <ray.ni@intel.com<mailto:ray.ni@intel.com>>
    Cc: Hao A Wu <hao.a.wu@intel.com<mailto:hao.a.wu@intel.com>>

[-- Attachment #1.2: Type: text/html, Size: 5840 bytes --]

[-- Attachment #2: 0001-MdeModulePkg-Bus-Pci-PciBusDxe-Handle-BAR-sizing-fai.patch --]
[-- Type: application/octet-stream, Size: 1554 bytes --]

From 6b8c8dfb8a4a3d8358e9065272d2cb24efdc9c57 Mon Sep 17 00:00:00 2001
From: Zarcd Zhong <zarcd.zhong@intel.com>
Date: Mon, 4 Jan 2021 17:32:54 +0800
Subject: [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in
 high 32bit of MEM64.

    REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3149

    Clear length and aligment for low 32bit of MEM64 BAR if sizing fail in high 32bit.

    Cc: Ray Ni <ray.ni@intel.com>
    Cc: Hao A Wu <hao.a.wu@intel.com>
---
 MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
index 1b64924b7b..bf84653ebf 100644
--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
@@ -1686,6 +1686,17 @@ PciIovParseVfBar (
                 );
 
       if (EFI_ERROR (Status)) {
+        //
+        // Reset length/alignment for low 32bit in MEM64 BAR if sizing fail in high 32bit.
+        //
+        PciIoDevice->VfPciBar[BarIndex].BaseAddress = 0;
+        PciIoDevice->VfPciBar[BarIndex].Length      = 0;
+        PciIoDevice->VfPciBar[BarIndex].Alignment   = 0;
+        //
+        // Decrement the offset to lower 32bit of MEM64 BAR.
+        //
+        PciIoDevice->VfPciBar[BarIndex].Offset = (UINT16) (Offset - 4);
+        PciIoDevice->VfPciBar[BarIndex].BarType = PciBarTypeUnknown;
         return Offset + 4;
       }
 
-- 
2.16.2.windows.1


  reply	other threads:[~2021-01-14  2:47 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-04  9:48 [PATCH] MdeModulePkg/Bus/Pci/PciBusDxe: Handle BAR sizing fail in high 32bit of MEM64 Zhong, Zarcd
2021-01-06 14:27 ` [edk2-devel] " Laszlo Ersek
2021-01-13  7:01 ` Ni, Ray
2021-01-14  2:47   ` Zhong, Zarcd [this message]
2021-01-14  5:58     ` Ni, Ray
2021-01-14  6:31       ` Zhong, Zarcd
2021-01-14 17:37         ` Kim, Andrew
2021-01-14 18:13           ` Kim, Andrew
2021-01-15  7:52             ` Kim, Andrew
2021-01-15  8:10               ` Zhong, Zarcd
2021-01-15  8:11                 ` Ni, Ray
2021-01-15  8:30                   ` Zhong, Zarcd
2021-01-15  8:36                     ` Wu, Hao A
2021-01-15  9:00             ` [edk2-devel] " Laszlo Ersek
     [not found] <3149>
2021-01-15  9:34 ` nmd5434
2021-01-15  9:39   ` Zhong, Zarcd

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MWHPR11MB13095530BF74D46FB72D9353FBA80@MWHPR11MB1309.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox