Dear ReactOS developers,
I follow ReactOS development for some years. I have successfully tested and reported our uLAN driver with PCI cards on ReactOS two years ago.
The latest inclusion of USB VENDOR device requests in ReactOS allowed to finally run driver with our real USB hardware with QEMU KVM USB device pass-through setup.
ReactOS tuned version of the uLAN driver installs and is fully functional when tested from CHROMuLAN application.
But there are more issues still and I would be happy if somebody can help with these or give me hint about possible incompatibility in our driver.
The tests were conducted against ReactOS 57254 build. uLAN driver is from GIT source repository
http://ulan.sourceforge.net/ http://ulan.git.sourceforge.net/git/gitweb.cgi?p=ulan/ulan-drv;a=tree;f=ul_d...
uLAN driver was build by MS WDF VC version 15.00.30729.207
The issues:
1) the first minor one - ReactOS requires minimal transfer size for URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE/USB_CONFIGURATION_DESCRIPTOR_TYPE function
(/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:244) URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE ulan: _usb_submit_urb : return from IoCallDriver USBD 103 ulan: _usb_submit_urb : URB status = 0 status = 0 irp status 0 uLan: _usb_submit_urb done with status:0x0 uLan: _usb_get_descriptor done with status:0x0 uLan: usb_device_descriptor done with status:0x0 uLan: usb_get_configuration uLan: _usb_get_descriptor (type=0x2,idx=0x0) ulan: _usb_submit_urb : enter (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:244) URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE Assertion 'Urb->UrbControlDescriptorRequest.TransferBufferLength >= sizeof(USB_CONFIGURATION_DESCRIPTOR)' failed at /srv/buildbot_ cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp line 1560 Entered debugger on embedded INT3 at 0x0008:0x80924c3a.
Unmodified uLAN driver asks for the first four bytes descriptor bytes firest and after obtaining size of the whole descriptor it prepares full size transfer. ReactOS asserts for this shorted 4 bytes transfer. I have adapted driver to use sizeof(USB_CONFIGURATION_DESCRIPTOR) size for initial probe transfer in USB_CONFIGURATION_DESCRIPTOR_TYPE case. This makes ReactOS happy, but I would like to know which side should be updated in the future.
Is there defined in some spec that initial probe for size has to be at least of sizeof(USB_CONFIGURATION_DESCRIPTOR) or the ReactOS is more strict than necessary and assert should be modified to allow truncated probes or at least 4 bytes ones in addition?
The full log at
http://cmp.felk.cvut.cz/~pisa/ulan/reactos/reactos-ul-win-confdesc.log
2) Driver can be enabled and disabled at runtime but shutdown does not finish, is blocked somehow but system/cursor is responsive
http://cmp.felk.cvut.cz/~pisa/ulan/reactos/reactos-ul-enabled-at-runtime.log
I have no idea what is the problem. Driver works correctly on Windows from 2k to Win7 and latest version supports even suspend and resume on all these platforms.
3) When driver and device are installed/present from boot time, boot hangs
http://cmp.felk.cvut.cz/~pisa/ulan/reactos/reactos-ul-during-boot.log
(/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:313) [USBLIB] SCE Request B027B048 TransferBufferLength 8 Flags 3 MDL 00000000 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 0: Status 103, Change 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 1: Status 100, Change 0 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:541) uLan2usb convertor (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:541) uLan2usb convertor (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/iorsrce.c:725) Failed opening given symbolic link! (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\pciide.sys at FCBF4000 with 7 pages (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\pciidex.sys at FCBEB000 with 9 pages (/srv/buildbot_cmake/full_cmake/build/drivers/bus/pci/pdo.c:1267) Enabling command flags for PCI device 0x21 on bus 0x0: [Bus master] [I/O space enable] (/srv/buildbot_cmake/full_cmake/build/drivers/storage/ide/pciidex/fdo.c:464) IRP_MJ_PNP / Unknown minor function 0x9 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\ul_wdm.sys at FCBD9000 with 11 pages Assertion 'IsListEmpty(&Irp->ThreadListEntry)' failed at /srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/irp.c line 1524 Entered debugger on embedded INT3 at 0x0008:0x80924c3a. kdb:> ====================================================================================
Thanks for any hints in advance.
I would be happy if the problems are resolved in the future. It could be interresting option to have livecd available with ReactOS, uLAN driver and CHROMuLAN for us one day. We can provide even some small funding for such achievement if it could work reliably on real hardware.
Other reason why ReactOS is interresting for us is that it has cached some bugs in our driver (mismatch in memory pools tags which are not reported by Windows release builds). Yet another reasons for ReactOS is to use 64-bit ReactOS build as testbed for uLAN driver Windows 64-bit version debugging. (64-bit Linux x86 version is fully supported now same as MIPS, PPC and ARM). But 64-bit Windows are pain for its signing requirements etc. And after all I do not have any (32/64-bit) Windows installed on our computers at all so ReactOS is great target for our development even if we has to depend on users use and demand for Windows.
As for CHROMuLAN and RectOS compatibility, chromatography system is functional under ReactOS except for some problem in the complex calibration files dialog which can hang the application and some harmless exception during analysis files read. Both seems to cause similar problems under Wine as well.
In each case, thanks for the big pile of the work invested to the ReactOS project,
Pavel Pisa e-mail: pisa@cmp.felk.cvut.cz www: http://cmp.felk.cvut.cz/~pisa university: http://dce.fel.cvut.cz/ company: http://www.pikron.com/
Hey Pavel,
it's great to hear that you find ReactOS useful for developing you driver! It's also excellent to have another driver confirmed working. ;)
On 2012-09-10 00:11, Pavel Pisa wrote:
The issues:
- the first minor one - ReactOS requires minimal transfer size for URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE/USB_CONFIGURATION_DESCRIPTOR_TYPE function
Is there defined in some spec that initial probe for size has to be at least of sizeof(USB_CONFIGURATION_DESCRIPTOR) or the ReactOS is more strict than necessary and assert should be modified to allow truncated probes or at least 4 bytes ones in addition?
The spec for us in most (if not all) cases is "what does Windows do", which means that this is by definition a bug in ROS's USB stack.
The ASSERT simply indicates that the code is not prepared for this case, either because the developer didn't expect it to be possible, or deemed it unnecessary to implement right away (because he hadn't seen a driver use it yet).
I've created a Jira issue for this: http://jira.reactos.org/browse/CORE-6634
Driver can be enabled and disabled at runtime but shutdown does not finish, is blocked somehow but system/cursor is responsive
http://cmp.felk.cvut.cz/~pisa/ulan/reactos/reactos-ul-enabled-at-runtime.log
I have no idea what is the problem. Driver works correctly on Windows from 2k to Win7 and latest version supports even suspend and resume on all these platforms.
Not sure where this might come from either, but I'd generally rather assume a bug in ROS rather than your driver. I suppose whatever component calls the ShutdownRoutine should be verified to do that correctly.
Perhaps you'd like to create an issue for this too. Some debugging of the relevant USB components or a method to reproduce this (though I suppose one would need a compatible piece of hardware :p) might of course be useful.
When driver and device are installed/present from boot time, boot hangs
http://cmp.felk.cvut.cz/~pisa/ulan/reactos/reactos-ul-during-boot.log
Assertion 'IsListEmpty(&Irp->ThreadListEntry)' failed at /srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/irp.c line 1524 Entered debugger on embedded INT3 at 0x0008:0x80924c3a. kdb:>
You might want to generate a backtrace here (bt command). This assert is likely to be present in a checked build of Windows as well, and indicates that the IRP that is being freed is still queued to a thread. I.e. it might be freed by someone who doesn't own it. The backtrace (and your driver's debug info) should help you determine where/how this happens, and possibly show a bug in the driver. It might of course still be a bug in ROS, though ;)
I would be happy if the problems are resolved in the future. It could be interresting option to have livecd available with ReactOS, uLAN driver and CHROMuLAN for us one day. We can provide even some small funding for such achievement if it could work reliably on real hardware.
Other reason why ReactOS is interresting for us is that it has cached some bugs in our driver (mismatch in memory pools tags which are not reported by Windows release builds). Yet another reasons for ReactOS is to use 64-bit ReactOS build as testbed for uLAN driver Windows 64-bit version debugging. (64-bit Linux x86 version is fully supported now same as MIPS, PPC and ARM). But 64-bit Windows are pain for its signing requirements etc. And after all I do not have any (32/64-bit) Windows installed on our computers at all so ReactOS is great target for our development even if we has to depend on users use and demand for Windows.
Alas, our AMD64 port still needs a lot of work in order to actually install and boot properly. A stable version, especially on real hardware, is also something that may take quite a long time.
But of course it's (again :p) great that you've found the project useful so far, and hopefully it'll continue to be ;)
Finally - because we aim for compatibility with Windows, drivers shouldn't ultimately need to be modified to work on ROS, so most of the differences you spot are probably bugs in ReactOS by definition. We'll of course gladly take further reports of such bugs ;)
Best Regards, Thomas
Hello Thomas,
thanks for analysis. I have done some more attempts to get little more info.
On Wednesday 12 September 2012 14:46:31 Thomas Faber wrote:
On 2012-09-10 00:11, Pavel Pisa wrote:
- the first minor one - ReactOS requires minimal transfer size for
URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE/USB_CONFIGURATION_DESCRIPTOR_TYPE function
I've created a Jira issue for this: http://jira.reactos.org/browse/CORE-6634
OK, I would use modified driver for ReactOS now and wait for issue resolution.
- Driver can be enabled and disabled at runtime but shutdown does not
finish, is blocked somehow but system/cursor is responsive
http://cmp.felk.cvut.cz/~pisa/ulan/reactos/reactos-ul-enabled-at-runtime. log
I have no idea what is the problem. Driver works correctly on Windows from 2k to Win7 and latest version supports even suspend and resume on all these platforms.
Not sure where this might come from either, but I'd generally rather assume a bug in ROS rather than your driver. I suppose whatever component calls the ShutdownRoutine should be verified to do that correctly.
Some observation after more testing, if all traces of the driver are deleted and fresh install is done then it seems to clean correctly during the first shutdown. It seems that problem can be caused by some lost URB which driver is waiting for during close. But not backup by any serious analysis.
- When driver and device are installed/present from boot time, boot
hangs
http://cmp.felk.cvut.cz/~pisa/ulan/reactos/reactos-ul-during-boot.log
Assertion 'IsListEmpty(&Irp->ThreadListEntry)' failed at /srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/irp.c line 1524 Entered debugger on embedded INT3 at 0x0008:0x80924c3a. kdb:>
You might want to generate a backtrace here (bt command).
There is backtrace for case when ROS boot halts but there are observed even another behavior, more next after trace
------------------------------------------------------------------------------------------------------------- (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:825) [USBUHCI] Controller initialized (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:374) Starting Controller (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:463) [USBUHCI] USBCMD: 80 USBSTS 20 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:481) [USBUHCI] Status 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:492) [USBUHCI] USBCMD: 81 USBSTS 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:523) [USBUHCI] Controller Started (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:524) [USBUHCI] Controller Status 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:525) [USBUHCI] Controller Cmd Status c1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:526) [USBUHCI] Controller Interrupt Status d (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:527) [USBUHCI] Controller Frame d8 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:528) [USBUHCI] Controller Port Status 0 83 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:529) [USBUHCI] Controller Port Status 1 80 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:198) CHubController::Initialize (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:3840) CHubController::CreatePDO: DeviceName \Device\USBPDO-0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:556) [USBLIB] Name USB\ROOT_HUB&VID8086&PID7020&REV0000 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:3899) There was no pending IRP for SCE. Did the usb hub 2.0 driver (usbhub2) load? (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:3023) USBHI_QueryDeviceInformation B01E6EE8 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:1612) Status 0, Result 0x00000040 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:1613) InformationLevel 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:1614) ActualLength 40 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:1615) PortNumber 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:1616) DeviceDescriptor 20000112 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:1617) HubAddress 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:1618) NumberofPipes 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:3208) USBHI_GetExtendedHubInformation (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:1711) HubDeviceExtension->UsbExtHubInfo.NumberOfPorts 2 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:3515) USBDI_IsDeviceHighSpeed (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:1152) [UHCI] SetPortFeature PortId 0 Feature 8 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:1152) [UHCI] SetPortFeature PortId 1 Feature 8 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:313) [USBLIB] SCE Request B01F4048 TransferBufferLength 8 Flags 3 MDL 00000000 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 0: Status 101, Change 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 1: Status 100, Change 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:1152) [UHCI] SetPortFeature PortId 0 Feature 4 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:896) [UHCI] ResetPort Id 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:929) Waiting 20 milliseconds for port reset (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbuhci/hardware.cpp:1006) [USBUhci] Port Index 0 Status after reset 85 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:313) [USBLIB] SCE Request B01F4048 TransferBufferLength 8 Flags 3 MDL 00000000 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 0: Status 103, Change 10 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:332) [USBLIB] Change state on port 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 1: Status 100, Change 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:234) Port 1 Status 103 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:235) Port 1 Change 10 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:325) Port 1 Status 103 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:326) Port 1 Change 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2649) USBHI_CreateUsbDevice (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2739) USBHI_InitializeUsbDevice (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:312) CUSBDevice::SetDeviceAddress> Address 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:846) Dumping Device Descriptor b01e76d8 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:847) bLength 12 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:848) bDescriptorType 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:849) bcdUSB 100 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:850) bDeviceClass ff (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:851) bDeviceSubClass 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:852) bDeviceProtocol 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:853) bMaxPacketSize0 40 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:854) idVendor 1669 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:855) idProduct 1001 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:856) bcdDevice 100 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:857) iManufacturer 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:858) iProduct 2 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:859) iSerialNumber 3 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:860) bNumConfigurations 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:867) Dumping ConfigurationDescriptor b01e3000 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:868) bLength 9 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:869) bDescriptorType 2 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:870) wTotalLength 20 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:871) bNumInterfaces 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:872) bConfigurationValue 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:873) iConfiguration 4 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:874) bmAttributes 80 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:875) MaxPower fa (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2835) USBHI_GetUsbDescriptors (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:16) Dumping Device Descriptor b01e6a60 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:17) bLength 12 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:18) bDescriptorType 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:19) bcdUSB 100 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:20) bDeviceClass ff (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:21) bDeviceSubClass 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:22) bDeviceProtocol 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:23) bMaxPacketSize0 40 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:24) idVendor 1669 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:25) idProduct 1001 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:26) bcdDevice 100 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:27) iManufacturer 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:28) iProduct 2 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:29) iSerialNumber 3 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:30) bNumConfigurations 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:37) Dumping ConfigurationDescriptor fcc1bcb7 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:38) bLength 9 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:39) bDescriptorType 2 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:40) wTotalLength 20 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:41) bNumInterfaces 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:42) bConfigurationValue 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:43) iConfiguration 4 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:44) bmAttributes 80 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:45) MaxPower fa (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:779) IsCompositeDevice bNumInterfaces 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:685) StringDesc->bLength 38 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:685) StringDesc->bLength 18 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:234) Port 2 Status 100 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:235) Port 2 Change 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:313) [USBLIB] SCE Request B01F4048 TransferBufferLength 8 Flags 3 MDL 00000000 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 0: Status 103, Change 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 1: Status 100, Change 0 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:541) uLan2usb convertor (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:541) uLan2usb convertor (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/iorsrce.c:725) Failed opening given symbolic link! (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\pciide.sys at FCBF4000 with 7 pages (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\pciidex.sys at FCBEB000 with 9 pages (/srv/buildbot_cmake/full_cmake/build/drivers/bus/pci/pdo.c:1267) Enabling command flags for PCI device 0x21 on bus 0x0: [Bus master] [I/O space enable] (/srv/buildbot_cmake/full_cmake/build/drivers/storage/ide/pciidex/fdo.c:464) IRP_MJ_PNP / Unknown minor function 0x9 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\ul_wdm.sys at FCBD9000 with 11 pages Assertion 'IsListEmpty(&Irp->ThreadListEntry)' failed at /srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/irp.c line 1524
Entered debugger on embedded INT3 at 0x0008:0x80924c3a. kdb:> bt Eip: <NTOSKRNL.EXE:124c3b (/srv/buildbot_cmake/full_cmake/build/lib/rtl/i386/debug_asm.S:35 (_DbgBreakPoint@0))> Frames: <NTOSKRNL.EXE:6a86f (ReactOS/ntoskrnl/io/iomgr/irp.c:1524 (IoFreeIrp@4))> <NTOSKRNL.EXE:609ad (ReactOS/ntoskrnl/io/iomgr/file.c:1512 (IopCloseFile@20))> Couldn't access memory at 0x00000005! -------------------------------------------------------------------------------------------------------------
Above halt appears only, if the device state is fully restored after ROS run attempt, i.e. device unplugged, plugged and Linux version of ul_drv driver removed.
If the device stays in some partially initialized state, i.e. after ROS run, then report about unimplemented Function 1e (URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL) appears and ROS boots. Driver pretends to be running but is not functional.
Driver submits bulk URB immediately after startup and this URB is pending for incoming data on bulk IN endpoint. I would expect, that enpoint is not restored from stale state correctly or ROS has problem with pending URB submitted so early during boot.
-------------------------------------------------------------------------------------------------------------
(/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2649) USBHI_CreateUsbDevice (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2739) USBHI_InitializeUsbDevice (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:312) CUSBDevice::SetDeviceAddress> Address 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:846) Dumping Device Descriptor b01e76d8 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:847) bLength 12 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:848) bDescriptorType 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:849) bcdUSB 100 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:850) bDeviceClass ff (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:851) bDeviceSubClass 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:852) bDeviceProtocol 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:853) bMaxPacketSize0 40 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:854) idVendor 1669 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:855) idProduct 1001 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:856) bcdDevice 100 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:857) iManufacturer 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:858) iProduct 2 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:859) iSerialNumber 3 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:860) bNumConfigurations 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:867) Dumping ConfigurationDescriptor b01e3000 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:868) bLength 9 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:869) bDescriptorType 2 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:870) wTotalLength 20 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:871) bNumInterfaces 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:872) bConfigurationValue 1 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:873) iConfiguration 4 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:874) bmAttributes 80 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:875) MaxPower fa (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2835) USBHI_GetUsbDescriptors (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:16) Dumping Device Descriptor b01e6a60 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:17) bLength 12 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:18) bDescriptorType 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:19) bcdUSB 100 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:20) bDeviceClass ff (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:21) bDeviceSubClass 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:22) bDeviceProtocol 0 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:23) bMaxPacketSize0 40 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:24) idVendor 1669 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:25) idProduct 1001 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:26) bcdDevice 100 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:27) iManufacturer 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:28) iProduct 2 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:29) iSerialNumber 3 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:30) bNumConfigurations 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:37) Dumping ConfigurationDescriptor fcc1bcb7 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:38) bLength 9 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:39) bDescriptorType 2 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:40) wTotalLength 20 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:41) bNumInterfaces 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:42) bConfigurationValue 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:43) iConfiguration 4 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:44) bmAttributes 80 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/misc.c:45) MaxPower fa (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:779) IsCompositeDevice bNumInterfaces 1 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:685) StringDesc->bLength 38 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:685) StringDesc->bLength 18 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:234) Port 2 Status 100 (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/fdo.c:235) Port 2 Change 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:313) [USBLIB] SCE Request B027B048 TransferBufferLength 8 Flags 3 MDL 00000000 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 0: Status 103, Change 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:324) [USBLIB] Port 1: Status 100, Change 0 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:541) uLan2usb convertor (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:541) uLan2usb convertor (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:2959) ZwOpenFile failed with status 0xc000003a (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/iorsrce.c:725) Failed opening given symbolic link! (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\pciide.sys at FCBF4000 with 7 pages (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\pciidex.sys at FCBEB000 with 9 pages (/srv/buildbot_cmake/full_cmake/build/drivers/bus/pci/pdo.c:1267) Enabling command flags for PCI device 0x21 on bus 0x0: [Bus master] [I/O space enable] (/srv/buildbot_cmake/full_cmake/build/drivers/storage/ide/pciidex/fdo.c:464) IRP_MJ_PNP / Unknown minor function 0x9 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\ul_wdm.sys at FCBDA000 with 11 pages uLan v0.8.3 Enter the driver! uLan: Sep 9 2012 10:51:30 uLan: All initialized! uLan: AddDevice: entered for instance 0 uLan: AddDevice: PDO = 0xb01e6968 uLan: Ready to Call IoCreateDevice for DevName="\Device\ul_drv" Len=28 uLan: AddDevice: FDO = 0xb019e870 uLan: AddDevice: Dev=\Device\ul_drv Link=\DosDevices\ul_drv uLan: AddDevice: done uLan: DispatchPnp: called uLan: DispatchPnp: Current state: uLan: STATE_NEVER_STARTED uLan: DispatchPnp: MINOR 0xD uLan: DispatchPnp: *** PNP Minor Function is IRP_MN_FILTER_RESOURCE_REQUIREMENTS uLan: DispatchPnp: Default case: Just pass it along... (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:736) PDO IRP_MJ_PNP / unknown minor function 0xd uLan: DispatchPnp: called uLan: DispatchPnp: Current state: uLan: STATE_NEVER_STARTED uLan: DispatchPnp: MINOR 0x0 uLan: DispatchPnp: *** PNP Minor Function is IRP_MN_START_DEVICE uLan: DispatchPnp: PROCESSING START_DEVICE WARNING: USBHUB_PdoStartDevice at /srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:414 is UNIMPLEMENTED! uLan: HWID : USB\Vid_1669&Pid_1001&Rev_0100 uLan: HWID : USB\Vid_1669&Pid_1001 uLan: PCI - Ven 0000 Dev 0000 SubVen 0000 SubDev 0000 uLan: USB - Ven 1669 Dev 1001 uLan: ChipOptions 00123400 uLan: usb_set_configuration (1) uLan: _usb_get_descriptor (type=0x1,idx=0x0) ulan: _usb_submit_urb : enter (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:244) URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE ulan: _usb_submit_urb : return from IoCallDriver USBD 103 ulan: _usb_submit_urb : URB status = 0 status = 0 irp status 0 uLan: _usb_submit_urb done with status:0x0 uLan: _usb_get_descriptor done with status:0x0 uLan: usb_device_descriptor done with status:0x0 uLan: usb_get_configuration uLan: _usb_get_descriptor (type=0x2,idx=0x0) ulan: _usb_submit_urb : enter (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:244) URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE ulan: _usb_submit_urb : return from IoCallDriver USBD 103 ulan: _usb_submit_urb : URB status = 0 status = 0 irp status 0 uLan: _usb_submit_urb done with status:0x0 ulan: _usb_submit_urb : enter (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:244) URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE ulan: _usb_submit_urb : return from IoCallDriver USBD 103 ulan: _usb_submit_urb : URB status = 0 status = 0 irp status 0 uLan: _usb_submit_urb done with status:0x0 uLan: _usb_get_descriptor done with status:0x0 uLan: usb_get_configuration (num. cfg.:1) uLan: usb_get_configuration done with status:0x0 uLan: next Ifc on 0xB0298E91 ulan: _usb_submit_urb : enter (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:253) URB_FUNCTION_SELECT_CONFIGURATION (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/driver.c:61) Deleting driver object '\Driver\UL_WDM' (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/usb_device.cpp:1072) CUSBDevice::SelectConfiguration New Configuration 0 Old Configuration 0 Result 0 ulan: _usb_submit_urb : return from IoCallDriver USBD 103 ulan: _usb_submit_urb : URB status = 0 status = 0 irp status 0 uLan: _usb_submit_urb done with status:0x0 uLan: usb_set_configuration done with status:0x0 ------------------------- Device Descriptor: ------------------------- bLength 18 bDescriptorType 0x1 bcdUSB 0x100 bDeviceClass 0xff bDeviceSubClass 0x0 bDeviceProtocol 0x0 bMaxPacketSize0 0x40 idVendor 0x1669 idProduct 0x1001 bcdDevice 0x100 iManufacturer 0x1 iProduct 0x2 iSerialNumber 0x3 bNumConfigurations 0x1 ------------------------- Configuration Descriptor: ------------------------- bLength 0 bDescriptorType 0x30 wTotalLength 0xb01e bNumInterfaces 0x50 bConfigurationValue 0x81 iConfiguration 0x1e bmAttributes 0xb0 MaxPower 0x50 ------------------------- Interface Information: ------------------------- NumberOfPipes 0x2 Length 0x38 Alt Setting 0x0 Interface Number 0x0 Class, subclass, protocol 0xff 0x0 0x0 ------------------------- Pipe Information: ------------------------- PipeType 0x2 EndpointAddress 0x1 MaxPacketSize 0x8 Interval 0x0 Handle 0xb01e815c MaximumTransferSize 0x1000 ------------------------- Pipe Information: ------------------------- PipeType 0x2 EndpointAddress 0x81 MaxPacketSize 0x8 Interval 0x0 Handle 0xb01e8166 MaximumTransferSize 0x1000 uLan: spin lock irql=3 uLan: uLanBaudrate:19200, uLanMyAddress:2 uLan: StartDevice: Calling ul_drv_init_ext uLan ul_drv_new : usb_ps1 ul_mem_init ret 0 uLan: DispatchPnp: Leaving with new state uLan: STATE_STARTED uLan: DispatchPnp: exit (0). uLan: DispatchPnp: called uLan: DispatchPnp: Current state: uLan: STATE_STARTED uLan: DispatchPnp: MINOR 0x9 uLan: DispatchPnp: *** PNP Minor Function is IRP_MN_QUERY_CAPABILITIES uLan: DispatchPnp: QUERY_CAPABILITIES ********* Device Capabilities ********* SystemWake = PowerSystemUnspecified (0x0) DeviceWake = PowerDeviceUnspecified (0x0) Dev State Map: sys st PowerSystemUnspecified = dev st PowerDeviceD0 Dev State Map: sys st PowerSystemWorking = dev st PowerDeviceD3 Dev State Map: sys st PowerSystemSleeping1 = dev st PowerDeviceD3 Dev State Map: sys st PowerSystemSleeping2 = dev st PowerDeviceD3 Dev State Map: sys st PowerSystemSleeping3 = dev st PowerDeviceD3 Dev State Map: sys st PowerSystemHibernate = dev st PowerDeviceD3 Dev State Map: sys st PowerSystemShutdown = dev st PowerDeviceD3 *************************************** uLan: DispatchPnp: Leaving with new state uLan: STATE_STARTED uLan: DispatchPnp: exit (0). uLan: DispatchPnp: called uLan: DispatchPnp: Current state: uLan: STATE_STARTED uLan: DispatchPnp: MINOR 0x14 uLan: DispatchPnp: *** PNP Minor Function is IRP_MN_QUERY_PNP_DEVICE_STATE uLan: DispatchPnp: Default case: Just pass it along... (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:736) PDO IRP_MJ_PNP / unknown minor function 0x14 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb uLan: DispatchPnp: called uLan: DispatchPnp: Current state: uLan: STATE_STARTED uLan: DispatchPnp: MINOR 0x7 uLan: DispatchPnp: *** PNP Minor Function is IRP_MN_QUERY_DEVICE_RELATIONS uLan: DispatchPnp: Default case: Just pass it along... (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:935) Leaking driver: ul_wdm.sys (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:411) multi(0)disk(0)rdisk(0)partition(1)\ReactOS\system32\drivers\usbd.sys <usbd.sys> (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\vbemp.sys at FCBCE000 with 8 pages uLan: usb_control_msg pipe=0x80000080, req=0x0, reqtype=0x40, value=0x4B00, idx=0x2, size=1 ulan: _usb_submit_urb : enter (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:283) URB_FUNCTION_VENDOR_DEVICE (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\videoprt.sys at FCBBA000 with 14 pages (/srv/buildbot_cmake/full_cmake/build/drivers/bus/pci/pdo.c:1267) Enabling command flags for PCI device 0x2 on bus 0x0: [Bus master] [Memory space enable] (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:848) IRP_MN_QUERY_CAPABILITIES failed with status 0xc00000bb (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:681) IopInitiatePnpIrp() failed (Status 0xc00000bb) (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpmgr.c:4030) IRP_MN_QUERY_PNP_DEVICE_STATE failed with status 0xc00000bb ulan: _usb_submit_urb : return from IoCallDriver USBD 103 ulan: _usb_submit_urb : URB status = 0 status = 0 irp status 0 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\ne2000.sys at FCBAE000 with c pages (/srv/buildbot_cmake/full_cmake/build/drivers/network/ndis/ndis/miniport.c:2601)(NdisMRegisterMiniport) Initializing an NDIS 3.0 miniport (/srv/buildbot_cmake/full_cmake/build/drivers/bus/pci/pdo.c:1250) Assigning IRQ 11 to PCI device 0x3 on bus 0x0 (/srv/buildbot_cmake/full_cmake/build/drivers/bus/pci/pdo.c:1267) Enabling command flags for PCI device 0x3 on bus 0x0: [Bus master] [I/O space enable] (/srv/buildbot_cmake/full_cmake/build/drivers/network/ndis/ndis/miniport.c:2820)(NdisMSetAttributesEx) Miniport attribute flags: 0x0 uLan: _usb_submit_urb done with status:0x0 uLan: usb_control_msg done with status:0x1 uLan: usb_clear_halt selected endpoint=0x1 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\i8042prt.sys at FCB9D000 with 11 pages ulan: _usb_submit_urb : enter (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:286) IOCTL_INTERNAL_USB_SUBMIT_URB Function 1e NOT IMPLEMENTED (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:1968) [USBLIB] URB_FUNCTION_ABORT_PIPE Status 0 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\kbdclass.sys at FCB92000 with b pages (/srv/buildbot_cmake/full_cmake/build/drivers/input/i8042prt/pnp.c:718) IRP_MJ_PNP / unknown minor function 0x9 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2018) [USBLIB] URB_FUNCTION_SYNC_CLEAR_STALL (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\mouclass.sys at FCB87000 with b pages (/srv/buildbot_cmake/full_cmake/build/drivers/input/i8042prt/pnp.c:718) IRP_MJ_PNP / unknown minor function 0x9 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2035) [USBLIB] URB_FUNCTION_CLEAR_STALL Status 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:1909) [USBLIB] URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL Status 0 ulan: _usb_submit_urb : return from IoCallDriver USBD 103 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\serial.sys at FCB7B000 with c pages (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpres.c:614) Resource conflict: IRQ (0x4 0x4 vs. 0x4 0x4) (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpres.c:1099) Boot resources for ACPI\PNP0501\0 cause a resource conflict! (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpres.c:135) Satisfying port requirement with 0x3f8 (length: 0x8) (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpres.c:384) Failed to find an available interrupt resource (0x4 to 0x4) (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpres.c:512) Unable to satisfy preferred resource or alternates in list 0 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpres.c:523) Out of alternate lists! (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/pnpmgr/pnpres.c:1122) Failed to fixup a resource list from supplied resources for ACPI\PNP0501\0 ulan: _usb_submit_urb : URB status = 0 status = 0 irp status 0 uLan: _usb_submit_urb done with status:0x0 (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\floppy.sys at FCB69000 with 12 pages (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/driver.c:1575) '\Driver\FLOPPY' initialization failed, status (0xc000000e) (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/driver.c:61) Deleting driver object '\Driver\FLOPPY' (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/io/iomgr/driver.c:1957) IopInitializeDriver() failed (Status c000000e) (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:935) Leaking driver: floppy.sys uLan: usb_clear_halt done with status:0x0 uLan: usb_clear_halt selected endpoint=0x81 ulan: _usb_submit_urb : enter (/srv/buildbot_cmake/full_cmake/build/ntoskrnl/mm/ARM3/sysldr.c:174) Loading: \SystemRoot\system32\drivers\cdrom.sys at FCB56000 with f pages (/srv/buildbot_cmake/full_cmake/build/drivers/usb/usbhub/pdo.c:286) IOCTL_INTERNAL_USB_SUBMIT_URB Function 1e NOT IMPLEMENTED Function 1e is URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL
(/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:1968) [USBLIB] URB_FUNCTION_ABORT_PIPE Status 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2018) [USBLIB] URB_FUNCTION_SYNC_CLEAR_STALL (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:2035) [USBLIB] URB_FUNCTION_CLEAR_STALL Status 0 (/srv/buildbot_cmake/full_cmake/build/lib/drivers/libusb/hub_controller.cpp:1909) [USBLIB] URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL Status 0 ulan: _usb_submit_urb : return from IoCallDriver USBD 103 ulan: _usb_submit_urb : URB status = 0 status = 0 irp status 0 uLan: _usb_submit_urb done with status:0x0 uLan: usb_clear_halt done with status:0x0 uLan: usb_bulk_msg selected endpoint=0x81 -------------------------------------------------------------------------------------------------------------
Alas, our AMD64 port still needs a lot of work in order to actually install and boot properly.
Even partially usable version in Qemu would be interresting for me. I would monitor progress.
A stable version, especially on real hardware, is also something that may take quite a long time.
I am aware of that.
Some debugging of the relevant USB components or a method to reproduce this (though I suppose one would need a compatible piece of hardware :p) might of course be useful.
The problems are specific for the driver in connection with hardware, virtual and PCI cases seems to work correctly.
As for our hardware, if there is some enthusiast for ARM based gadgets, PiKRON can donor one of its LPC2148 or LPC1768 based boards. The uLAN protocol, implementation and uLAN to USB converter code is opensource (MPL/GPL). Sources for Wind32 side and device firmware are fully available and even basic boards design is PD and more diploma thesis and other projects uses PiKRON design as base for other projects.
Hardware can be interresting even for other purposes. Our USB device implementation (maintained in uLAN/sysless repo) allows to build diffrent USB devices. One example is HID device. My colleague used base to develop head gyro, magnetometer, accelerator fused helmet for flight simulator. Example of HID code generating circle movement can be provided, etc. So HW allows to mimic different devices and even build firmware with intentional bugs to check host side robustness.
Best wishes,
Pavel
Hello Thomas,
On Wednesday 12 September 2012 14:46:31 Thomas Faber wrote:
Is there defined in some spec that initial probe for size has to be at least of sizeof(USB_CONFIGURATION_DESCRIPTOR) or the ReactOS is more strict than necessary and assert should be modified to allow truncated probes or at least 4 bytes ones in addition?
The spec for us in most (if not all) cases is "what does Windows do", which means that this is by definition a bug in ROS's USB stack.
The ASSERT simply indicates that the code is not prepared for this case, either because the developer didn't expect it to be possible, or deemed it unnecessary to implement right away (because he hadn't seen a driver use it yet).
I've created a Jira issue for this: http://jira.reactos.org/browse/CORE-6634
I have managed (again after switch to CMake) to build ReactOS from GIT sources and applied provide patch. It seems to solve short transfer issue.
Other behavior (correct driver clean install and first shutdown and then break in next start) is unchanged (as expected).
Please, update issue information in JIRA. I am not registered in JIRA, not sure where to register and I do not expected to be so active tester.
Thank for support,
Pavel
In order to use JIRA, you need to be registered on reactos.org - those credentials work as SSO.
On Sat, Sep 15, 2012, at 09:17 PM, Pavel Pisa wrote:
Hello Thomas, I have managed (again after switch to CMake) to build ReactOS from GIT sources and applied provide patch. It seems to solve short transfer issue.
Other behavior (correct driver clean install and first shutdown and then break in next start) is unchanged (as expected).
Please, update issue information in JIRA. I am not registered in JIRA, not sure where to register and I do not expected to be so active tester.
Thank for support,
Pavel
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Thanks Pavel for testing. The patch was commited to trunk and Jira has been updated accordingly. http://svn.reactos.org/svn/reactos?revision=57312&view=revision
From: ppisa4lists@pikron.com To: ros-dev@reactos.org Date: Sat, 15 Sep 2012 21:17:04 +0200 CC: thfabba@gmx.de Subject: Re: [ros-dev] uLAN driver with ReactOS USB advances and some questions
Hello Thomas,
On Wednesday 12 September 2012 14:46:31 Thomas Faber wrote:
Is there defined in some spec that initial probe for size has to be at least of sizeof(USB_CONFIGURATION_DESCRIPTOR) or the ReactOS is more strict than necessary and assert should be modified to allow truncated probes or at least 4 bytes ones in addition?
The spec for us in most (if not all) cases is "what does Windows do", which means that this is by definition a bug in ROS's USB stack.
The ASSERT simply indicates that the code is not prepared for this case, either because the developer didn't expect it to be possible, or deemed it unnecessary to implement right away (because he hadn't seen a driver use it yet).
I've created a Jira issue for this: http://jira.reactos.org/browse/CORE-6634
I have managed (again after switch to CMake) to build ReactOS from GIT sources and applied provide patch. It seems to solve short transfer issue.
Other behavior (correct driver clean install and first shutdown and then break in next start) is unchanged (as expected).
Please, update issue information in JIRA. I am not registered in JIRA, not sure where to register and I do not expected to be so active tester.
Thank for support,
Pavel
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev