]> git.proxmox.com Git - mirror_edk2.git/blobdiff - CorebootPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c
CorebootPayloadPkg/PciHostBridgeLib: clear aperture vars for (re)init
[mirror_edk2.git] / CorebootPayloadPkg / Library / PciHostBridgeLib / PciHostBridgeSupport.c
index 0f1c8cb1a2105835a3e4d6df2ec6d413406f7149..18dcbafdf0c6776e5d6bc192580c0dc88d8842e1 100644 (file)
@@ -91,7 +91,7 @@ AdjustRootBridgeResource (
   // Align IO  resource at 4K  boundary\r
   //\r
   Mask        = 0xFFFULL;\r
-  Io->Limit   = (Io->Limit + Mask) & ~Mask;\r
+  Io->Limit   = ((Io->Limit + Mask) & ~Mask) - 1;\r
   if (Io->Base != MAX_UINT64) {\r
     Io->Base &= ~Mask;\r
   }\r
@@ -100,7 +100,7 @@ AdjustRootBridgeResource (
   // Align MEM resource at 1MB boundary\r
   //\r
   Mask        = 0xFFFFFULL;\r
-  Mem->Limit  = (Mem->Limit + Mask) & ~Mask;\r
+  Mem->Limit  = ((Mem->Limit + Mask) & ~Mask) - 1;\r
   if (Mem->Base != MAX_UINT64) {\r
     Mem->Base &= ~Mask;\r
   }\r
@@ -328,8 +328,13 @@ ScanForRootBridges (
   for (PrimaryBus = 0; PrimaryBus <= PCI_MAX_BUS; PrimaryBus = SubBus + 1) {\r
     SubBus = PrimaryBus;\r
     Attributes = 0;\r
+\r
+    ZeroMem (&Io, sizeof (Io));\r
+    ZeroMem (&Mem, sizeof (Mem));\r
+    ZeroMem (&MemAbove4G, sizeof (MemAbove4G));\r
+    ZeroMem (&PMem, sizeof (PMem));\r
+    ZeroMem (&PMemAbove4G, sizeof (PMemAbove4G));\r
     Io.Base = Mem.Base = MemAbove4G.Base = PMem.Base = PMemAbove4G.Base = MAX_UINT64;\r
-    Io.Limit = Mem.Limit = MemAbove4G.Limit = PMem.Limit = PMemAbove4G.Limit = 0;\r
     //\r
     // Scan all the PCI devices on the primary bus of the PCI root bridge\r
     //\r