[edk2-devel] [PATCH 1/1] MdeModulePkg:Pci: Fix for PM1733 U.2 SSD abnormal VF BAR4

Andrew Kim andrew.kim at intel.com
Mon Jan 4 20:10:02 UTC 2021


Symptom: With PM1733 U.2 SSD on system, there's abnormal VF BAR
alignment 0xFFFFFFFFFFFFFFFF in POST message as below.
 VFBAR[3]: Type = PMem64; Alignment = 0xFFFFFFFFFFFFFFFF;Length = 0x0;Offset = 0x21C

In addition, system might not boot into Yocto. System will output below message and hang.
[   13.225541] zswap: default zpool zbud not available
[   13.230465] zswap: pool creation failed

Rootcause: PM1733 VF BAR4 request for 64bit prefetchable memory resource,
But VF BAR4-5 didn't response any size.
Workaround: In general, higher address of a 64bit BAR should not have
zero size. Reset alignment to be 0 for this special case.

Signed-off-by: Andrew Kim <andrew.kim at intel.com>
Cc: Jian J Wang <jian.j.wang at intel.com>
Cc: Hao A Wu <hao.a.wu at intel.com>
Cc: Ray Ni <ray.ni at intel.com>

---
 MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
index 6c68a97d4e46..907a0a9288b8 100644
--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
@@ -1686,6 +1686,14 @@ PciIovParseVfBar (
                 );
 
       if (EFI_ERROR (Status)) {
+        PciIoDevice->VfPciBar[BarIndex].BaseAddress = 0;
+        PciIoDevice->VfPciBar[BarIndex].Length      = 0;
+        PciIoDevice->VfPciBar[BarIndex].Alignment   = 0;
+
+        //
+        // Scan all the BARs anyway
+        //
+        PciIoDevice->VfPciBar[BarIndex].Offset = (UINT16) Offset;
         return Offset + 4;
       }
 
-- 
2.26.2.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#69664): https://edk2.groups.io/g/devel/message/69664
Mute This Topic: https://groups.io/mt/79438990/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list