- Add usbd to bootcd because usbohci depends on it
- Make device interface creation failure a non-fatal error so the port drivers start successfully in 1st stage
svn path=/branches/usb-bringup-trunk/; revision=55034
- Create a branch to do a proper merge of USB work from a trunk base instead of from cmake-bringup
- In the future, DO NOT under any circumstances branch another branch. This leads to merge problems!
svn path=/branches/usb-bringup-trunk/; revision=55018
- Add a ReactOS hack to let the hid stack initialize
- Add input.inf
- HID Mouse initializes and starts, now win32k needs some work to open the mice
svn path=/branches/usb-bringup/; revision=54838
- Fix creating instance id
- Print debug message
- Sync msmouse with head and add hid installation
- Needs input.inf written
- HID stack starts to initializes and then fails the to enable the device interface (/drivers/hid/hidclass/pdo.c:511), Logs show that IoGetDeviceObjectPointer() fails with STATUS_UNSUCCESSFUL
svn path=/branches/usb-bringup/; revision=54837
- Create a pesudo random instance id
- Fixes assert when plugin usb devices whose device descriptor don't provide a serial number
svn path=/branches/usb-bringup/; revision=54836
- Silence a few traces
- Add a hack for handling URB_FUNCTION_CLASS_INTERFACE. The hid bus driver performs this request with zero buffer length, which is not valid. Needs more investigation
svn path=/branches/usb-bringup/; revision=54777
- Add stub hidusb driver
- Hidusb driver is reponsible to connect with the hidclass driver (not yet present) and connect hid framework with usb hid devices
svn path=/branches/usb-bringup/; revision=53500
- Don't leave DISPATCH_LEVEL while holding a spin lock acquired at DISPATCH_LEVEL
- Synchronize cancellation checking by acquiring the cancel spin lock
svn path=/branches/usb-bringup/; revision=52071
- Comment out getting usb device interface. It is currently unused and usbhub does not yet support it
- Forward pnp capabilities request to lower device object
- Fix compilation by Usurp
svn path=/branches/usb-bringup/; revision=52063
- Check if the port is usb 2.0 controller. In that case call the Usb2.0 initialize function
- Prevents crash when used with usbohci
svn path=/branches/usb-bringup/; revision=52036
- Fix OHCI_ISO_TD structure. Fixes host system crashes in Windows XP
- Fix multiple bugs in isochronous transfer implementation
- Still not yet working, as the interrupt completion is not fired yet
svn path=/branches/usb-bringup/; revision=51998
- Implement function to retrieve isochronous head endpoint descriptor
- Implement function to retrieve current frame number
- Set isochronous descriptor flag for head endpoint
- Implement retrieve device status for devices
- Implement retrieve class status from device
- Partly implement isochronous descriptor handling in usb queue
- Start implementing isochronous transfers in ISUBRequest
- Code currently not tested as the Virtual Machine with XP + ReactOS usbohci driver brings down the host system when starting the iso transfers. Ironically it crashes in MS usbohci driver
svn path=/branches/usb-bringup/; revision=51957
- Set up periodic threshold (90 %)
- Add function to retrieve interrupt endpoints
- Add function to retrieve specific descriptors from interface. These are used by HID devices such as mice / keyboards
- Add function to retrieve interrupt interval
- Enqueue all endpoint descriptors at the end of the associated queue
- Only notify hardware of insertion when it is an bulk / control request
- Scan interrupt endpoint list to find the completed transfer descriptor
- Add debugging function to print out linked endpoint descriptors
- Interrupt transfers are now implemented.
- Tested in Windows XP SP3 + Vbox 4.04 + Microsoft 5-Button Mouse. The HID mouse installs, initializes and starts up. Unfortunately the mouse does not work as expected yet
svn path=/branches/usb-bringup/; revision=51922
- Remove dead code
- Silence traces
- Pass status & DoneHead as parameters to dpc routine
- Move IUSBRequest cleanup code into new function and use it for bulk / control transfer cleanup
- Fix bugs in AllocateEndpointDescriptor. It did not take the device address into account. It also did not respect the direction of the descriptor
- Implement support for bulk transfer requests
- Handle irp completion in CompletionCallback
- Tested in Windows XP SP3 + Vbox 4.04 + USB2.0 disabled + ReactOS usbstor + USB mass storage device
- OHCI Mass storage support is now also ready
- Next interrupt transfers
svn path=/branches/usb-bringup/; revision=51917
- Add glue code for supporting iso transfers
- Remove dead from Handle
- Remove broken asserts
- Add support for string descriptors
- Add support for class specific endpoint requests (Needs be ported to usbehci)
- Link to usbd driver
- Add support for retrieving string descriptor
- Rewrite configuration descriptor handling in IUSBDevice. New code is smaller, smarter and handles a lot more cases. Needs to be ported to usbehci
- Wrap usbdlib.h include in extern c macro, it has c linkage
- Control transfers should now work
- Need to implement support for isochronous / bulk / interrupt transfers until functional
- Tested with Bluetooth USB Stick (multi function, interrupt / bulk / control / isochronous) / USB Microphone (isochronous & control) in XP SP3
svn path=/branches/usb-bringup/; revision=51900
- Add sanity checks
- Preserve command status value when notifying the hc that a control / bulk endpoint was added
- Re-enable root hub notification interrupt when reset port has been completed
- Dispatch processing to USBQeueu when DoneHead event arrives
- Scan endpoints to find the logical endpoint which was completed by the hardware
- Signal completion to IUSBRequest by calling CompletionCallback
- Create a final transfer descriptor which is linked to the endpoint descriptor
- Control transfers now appear to be working (Device retrieves device descriptor / configuration descriptor and succeeds in setting device address)
- Configuration parsing code needs more work now (currently fails there due to invalid / unexpected configuration descriptor from device)
svn path=/branches/usb-bringup/; revision=51888
- Enable global power mode
- Wait untill reset is complete
- Clear reset complete bit when reset is done
- Enable port
- Reset port now works
- USBOHCI still hangs after adding first control request, needs more investigation
svn path=/branches/usb-bringup/; revision=51883
- Start implementing control transfers
- Move initialization of usb queue after the bulk / control head endpoints have been created
- Add interface functions to retrieve bulk / control head endpoint descriptors
- Add macros for setting transfer descriptors field (taken from Haiku)
- Partly implement IUSBQueue::AddUSBRequest for control / bulk transfers
- Create endpoint descriptor for control request and link setup descriptor to it
- Link setup descriptors to data descriptor / status descriptor
- WIP (needs fixes)
svn path=/branches/usb-bringup/; revision=51864
- Fix bug in calculating offset of status register
- Start implementing deferred processing routine
- Signal status change when new device is arrived
- Implement basic GetPortStatus
- Start implementing SetPortFeature, ClearPortStatus
- ResetPort not yet fully working, WIP
svn path=/branches/usb-bringup/; revision=51858
- Add check that controller is functional state
- enable interrupts after the controller has been started
- partly implement isr routine
svn path=/branches/usb-bringup/; revision=51852
- Start of OHCI support
- Based on new usbehci driver and Haiku USB Stack
- Driver initializes the controller and retrieve number of ports
svn path=/branches/usb-bringup/; revision=51851
- Pass memory manager to USBQueue object
- Fix bug in memory manager which did not check if an allocation equals page size
- Implement interrupt queue head array with frequencys of 1ms up to 32ms
- Store queue heads in the sync schedule array
- WIP
svn path=/branches/usb-bringup/; revision=51826
- Add error handling to USBSTOR_CSWCompletionRoutine for errors that can be recovered via reset of pipe/port/controller. Only pipe reset is attempted. WIP.
svn path=/branches/usb-bringup/; revision=51808
- Implement retrieving serial number from device
- Use serial number to format instance id and retrieve in StorageDeviceProperty requests
- Silence traces
svn path=/branches/usb-bringup/; revision=51770
- Add asserts
- Rewrite queue methods to accept the FDO only
- Fix multiple synchronization bugs
- Don't start next irp before current irp has completed
- Use contiouslogicalbytes blocks from srb
- Should fix race conditions
svn path=/branches/usb-bringup/; revision=51764