[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