[edk2] [Patch][edk2-platforms/devel-MinnowBoard3] Fixed reconnect -r issue.

lushifex posted 1 patch 6 years, 11 months ago
Failed in applying to current master (apply log)
.../PlatformSettings/PlatformDxe/PciDevice.c       | 33 +++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
[edk2] [Patch][edk2-platforms/devel-MinnowBoard3] Fixed reconnect -r issue.
Posted by lushifex 6 years, 11 months ago
System will hang up when run reconnect -r with SD Card insert.
---
 .../PlatformSettings/PlatformDxe/PciDevice.c       | 33 +++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformDxe/PciDevice.c b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformDxe/PciDevice.c
index b8645a2..421ac10 100644
--- a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformDxe/PciDevice.c
+++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformDxe/PciDevice.c
@@ -1,7 +1,7 @@
 /** @file
   Platform PCI Bus Initialization Driver.
 
-  Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 1999 - 2017, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -405,6 +405,8 @@ PciBusEvent (
   UINTN                         Index;
   UINT8                         mCacheLineSize = 0x10;
   UINTN                         Seg, Bus, Dev, Fun;
+  UINT32                        AcpiIoPortBaseAddr;
+  UINT32                        CmdValue;
 
   while (TRUE) {
     BufferSize = sizeof (EFI_HANDLE);
@@ -448,6 +450,35 @@ PciBusEvent (
       //
       Status = PciIo->GetLocation (PciIo, &Seg, &Bus, &Dev, &Fun);
       if ((Seg ==0) && (Bus == 0) && (Dev == 13) && (Fun == 1)) {
+        //
+        // Set PMC acpi io port address
+        //        
+        AcpiIoPortBaseAddr = (UINT32) PcdGet16 (PcdScAcpiIoPortBaseAddress);
+        PciIo->Pci.Write (
+                     PciIo,
+                     EfiPciIoWidthUint32,
+                     0x20,
+                     1,
+                     &AcpiIoPortBaseAddr
+                     );
+
+        PciIo->Pci.Read (
+                     PciIo,
+                     EfiPciIoWidthUint8,
+                     PCI_COMMAND_OFFSET,
+                     1,
+                     &CmdValue
+                     );
+
+        CmdValue |= BIT0;
+        PciIo->Pci.Write (
+                     PciIo,
+                     EfiPciIoWidthUint8,
+                     PCI_COMMAND_OFFSET,
+                     1,
+                     &CmdValue
+                     );	
+	
         Supports |= BIT0;
       }
       //
-- 
2.7.0.windows.1


_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch][edk2-platforms/devel-MinnowBoard3] Fixed reconnect -r issue.
Posted by Wei, David 6 years, 11 months ago
Reviewed-by: zwei4  <david.wei@intel.com> 

Thanks,
David  Wei                                 

-----Original Message-----
From: Lu, ShifeiX A 
Sent: Wednesday, May 10, 2017 2:58 PM
To: edk2-devel@lists.01.org
Cc: Wei, David <david.wei@intel.com>
Subject: [Patch][edk2-platforms/devel-MinnowBoard3] Fixed reconnect -r issue.

System will hang up when run reconnect -r with SD Card insert.
---
 .../PlatformSettings/PlatformDxe/PciDevice.c       | 33 +++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformDxe/PciDevice.c b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformDxe/PciDevice.c
index b8645a2..421ac10 100644
--- a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformDxe/PciDevice.c
+++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformDxe/PciDevice.c
@@ -1,7 +1,7 @@
 /** @file
   Platform PCI Bus Initialization Driver.
 
-  Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 1999 - 2017, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -405,6 +405,8 @@ PciBusEvent (
   UINTN                         Index;
   UINT8                         mCacheLineSize = 0x10;
   UINTN                         Seg, Bus, Dev, Fun;
+  UINT32                        AcpiIoPortBaseAddr;
+  UINT32                        CmdValue;
 
   while (TRUE) {
     BufferSize = sizeof (EFI_HANDLE);
@@ -448,6 +450,35 @@ PciBusEvent (
       //
       Status = PciIo->GetLocation (PciIo, &Seg, &Bus, &Dev, &Fun);
       if ((Seg ==0) && (Bus == 0) && (Dev == 13) && (Fun == 1)) {
+        //
+        // Set PMC acpi io port address
+        //        
+        AcpiIoPortBaseAddr = (UINT32) PcdGet16 (PcdScAcpiIoPortBaseAddress);
+        PciIo->Pci.Write (
+                     PciIo,
+                     EfiPciIoWidthUint32,
+                     0x20,
+                     1,
+                     &AcpiIoPortBaseAddr
+                     );
+
+        PciIo->Pci.Read (
+                     PciIo,
+                     EfiPciIoWidthUint8,
+                     PCI_COMMAND_OFFSET,
+                     1,
+                     &CmdValue
+                     );
+
+        CmdValue |= BIT0;
+        PciIo->Pci.Write (
+                     PciIo,
+                     EfiPciIoWidthUint8,
+                     PCI_COMMAND_OFFSET,
+                     1,
+                     &CmdValue
+                     );	
+	
         Supports |= BIT0;
       }
       //
-- 
2.7.0.windows.1


_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel