Author: janderwald
Date: Sun Feb 12 16:10:58 2012
New Revision: 55564
URL:
http://svn.reactos.org/svn/reactos?rev=55564&view=rev
Log:
[USBEHCI]
- Add 64-bit data structures
- Print message when controller is using 64-Bit Addressing
- Should fix Host System Error when controller is operating in 64-Bit mode
Modified:
branches/usb-bringup-trunk/drivers/usb/usbehci/hardware.cpp
branches/usb-bringup-trunk/drivers/usb/usbehci/hardware.h
Modified: branches/usb-bringup-trunk/drivers/usb/usbehci/hardware.cpp
URL:
http://svn.reactos.org/svn/reactos/branches/usb-bringup-trunk/drivers/usb/u…
==============================================================================
--- branches/usb-bringup-trunk/drivers/usb/usbehci/hardware.cpp [iso-8859-1] (original)
+++ branches/usb-bringup-trunk/drivers/usb/usbehci/hardware.cpp [iso-8859-1] Sun Feb 12
16:10:58 2012
@@ -374,6 +374,26 @@
DPRINT1("Controler EHCI Caps HCCParamsLong %x\n",
m_Capabilities.HCCParamsLong);
DPRINT1("Controler EHCI Caps PowerControl %x\n",
m_Capabilities.HCSParams.PortPowerControl);
+ if (m_Capabilities.HCCParams.EECPCapable)
+ {
+ DPRINT1("Controller has Extended Capabilities Support\n");
+ }
+
+ if (m_Capabilities.HCCParams.ParkMode)
+ {
+ DPRINT1("Controller supports Asynchronous Schedule
Park\n");
+ }
+
+ if (m_Capabilities.HCCParams.VarFrameList)
+ {
+ DPRINT1("Controller supports Programmable Frame List
Size\n");
+ }
+
+ if (m_Capabilities.HCCParams.CurAddrBits)
+ {
+ DPRINT1("Controller uses 64-Bit Addressing\n");
+ }
+
if (m_Capabilities.HCSParams.PortRouteRules)
{
Count = 0;
Modified: branches/usb-bringup-trunk/drivers/usb/usbehci/hardware.h
URL:
http://svn.reactos.org/svn/reactos/branches/usb-bringup-trunk/drivers/usb/u…
==============================================================================
--- branches/usb-bringup-trunk/drivers/usb/usbehci/hardware.h [iso-8859-1] (original)
+++ branches/usb-bringup-trunk/drivers/usb/usbehci/hardware.h [iso-8859-1] Sun Feb 12
16:10:58 2012
@@ -145,14 +145,15 @@
ULONG DWord;
} Token;
ULONG BufferPointer[5];
-
+ ULONG ExtendedBufferPointer[5];
+
//Software
ULONG PhysicalAddr;
LIST_ENTRY DescriptorEntry;
ULONG TotalBytesToTransfer;
} QUEUE_TRANSFER_DESCRIPTOR, *PQUEUE_TRANSFER_DESCRIPTOR;
-C_ASSERT(FIELD_OFFSET(QUEUE_TRANSFER_DESCRIPTOR, PhysicalAddr) == 0x20);
+C_ASSERT(FIELD_OFFSET(QUEUE_TRANSFER_DESCRIPTOR, PhysicalAddr) == 0x34);
//
// EndPointSpeeds Flags and END_POINT_CHARACTERISTICS
@@ -212,6 +213,7 @@
ULONG DWord;
} Token;
ULONG BufferPointer[5];
+ ULONG ExtendedBufferPointer[5];
//Software
ULONG PhysicalAddr;
@@ -231,7 +233,7 @@
C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, AlternateNextPointer) == 0x14);
C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, Token) == 0x18);
C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, BufferPointer) == 0x1C);
-C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, PhysicalAddr) == 0x30);
+C_ASSERT(FIELD_OFFSET(QUEUE_HEAD, PhysicalAddr) == 0x44);
//