Revision: 14288
          http://edk2.svn.sourceforge.net/edk2/?rev=14288&view=rev
Author:   niruiyu
Date:     2013-04-18 05:46:13 +0000 (Thu, 18 Apr 2013)
Log Message:
-----------
Enhance DebugCommunicationLibUsb to reset the debug port when the PORT_ENABLE 
bit is not set.

Signed-off-by: Ruiyu Ni <[email protected]>
Reviewed-by: Feng Tian <[email protected]>

Modified Paths:
--------------
    
branches/UDK2010.SR1/SourceLevelDebugPkg/Library/DebugCommunicationLibUsb/DebugCommunicationLibUsb.c

Modified: 
branches/UDK2010.SR1/SourceLevelDebugPkg/Library/DebugCommunicationLibUsb/DebugCommunicationLibUsb.c
===================================================================
--- 
branches/UDK2010.SR1/SourceLevelDebugPkg/Library/DebugCommunicationLibUsb/DebugCommunicationLibUsb.c
        2013-04-18 05:37:12 UTC (rev 14287)
+++ 
branches/UDK2010.SR1/SourceLevelDebugPkg/Library/DebugCommunicationLibUsb/DebugCommunicationLibUsb.c
        2013-04-18 05:46:13 UTC (rev 14288)
@@ -674,10 +674,16 @@
   //
   if (((MmioRead32((UINTN)&UsbDebugPortRegister->ControlStatus) & 
(USB_DEBUG_PORT_OWNER | USB_DEBUG_PORT_IN_USE))
        != (USB_DEBUG_PORT_OWNER | USB_DEBUG_PORT_IN_USE)) || 
(Handle->Initialized == USBDBG_RESET)) {
+    DEBUG ((
+      EFI_D_INFO,
+      "UsbDbg: Need to reset the host controller. ControlStatus = %08x\n",
+      MmioRead32((UINTN)&UsbDebugPortRegister->ControlStatus)
+      ));
     //
     // If the host controller is halted, then reset and restart it.
     //
     if ((MmioRead32((UINTN)UsbStatus) & BIT12) != 0) {
+      DEBUG ((EFI_D_INFO, "UsbDbg: Reset the host controller.\n"));
       //
       // reset the host controller.
       //
@@ -712,7 +718,9 @@
     return RETURN_NOT_FOUND;
   }
 
-  if (Handle->Initialized != USBDBG_INIT_DONE) {
+  if (Handle->Initialized != USBDBG_INIT_DONE ||
+      (MmioRead32 ((UINTN) &UsbDebugPortRegister->ControlStatus) & 
USB_DEBUG_PORT_ENABLE) == 0) {
+    DEBUG ((EFI_D_INFO, "UsbDbg: Reset the debug port.\n"));
     //
     // Reset the debug port
     //

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to