none
USBSER driver failure with CDC-ACM device RRS feed

  • Question

  • Hi,

    I have a CDC-ACM compliant radio and I am attempting to use the native CDC-ACM USBSER class driver to create a virtual comm port to allow higher level code communicate with the radio. This is failing on the target during the USB initialisation phase; I have included the debug output below togther with the relevant registry settings that I am using. The platform in EC7.

    I can see that there is an invalid parameter when parsing the USB descriptor but can someone suggest the reason behind this? Am I correct in using the USBSER driver in this way to create the virtual COMM port?

    There are also a few DEBUGCHK messages after the failure. I'm not sure if this is part of the same issue.

    TID:22e0002 CHub(Root tier 0)::HubStatusChangeThread - port 1, change = 0x0001, status = 0x0101
     866766 PID:400002 TID:22e0002 hubStatus PortEnableChange = 0
     866766 PID:400002 TID:22e0002 hubStatus PortEnabled = 0
     866766 PID:400002 TID:22e0002 hubStatus PortConnected = 1
     866766 PID:400002 TID:22e0002 hubStatus ForceDetach = 0
     866766 PID:400002 TID:22e0002 hubStatus.change.port.ConnectStatusChange = 1
     867106 PID:400002 TID:22e0002 CHub(Root tier 0)::HubStatusChangeThread - device attached on port 1
     867106 PID:400002 TID:22e0002 +CHub(Root tier 0)::AttachDevice - port = 1, fIsLowSpeed = 0
     867106 PID:400002 TID:22e0002 AttachDevice: with CHub(0xccd5de50) ResetEvent
     867106 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_OPENING_ENDPOINT0_PIPE, failures = 0
     867106 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_USING_ADDRESS0, failures = 0
     867106 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_RESET_AND_ENABLE_PORT, failures = 0
     867225 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SCHEDULING_GET_DEVICE_DESCRIPTOR_TEST, failures = 0
     867225 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SCHEDULING_SET_ADDRESS, failures = 0
     867225 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_LEAVE_ADDRESS0, failures = 0
     867239 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SCHEDULING_GET_INITIAL_DEVICE_DESCRIPTOR, failures = 0
     867239 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SCHEDULING_GET_DEVICE_DESCRIPTOR, failures = 0
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SETUP_CONFIGURATION_DESCRIPTOR_ARRAY, failures = 0
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SCHEDULING_GET_INITIAL_CONFIG_DESCRIPTOR, failures = 0
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SCHEDULING_GET_CONFIG_DESCRIPTOR, failures = 0
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_DETERMINE_CONFIG_TO_CHOOSE, failures = 0
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - Select Configuration 0 on DEVICE_CONFIG_STATUS_DETERMINE_CONFIG_TO_CHOOSE step
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SCHEDULING_SET_CONFIG, failures = 0
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_CREATE_NEW_FUNCTION, failures = 0
     867242 PID:400002 TID:22e0002     UsbHost : New Function [address(1) / layer(0)]
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_INSERT_NEW_DEVICE_INTO_UPSTREAM_HUB_PORT_ARRAY, failures = 0
     867242 PID:400002 TID:22e0002 CHub(Root tier 0)::AttachDevice - status = DEVICE_CONFIG_STATUS_SIGNAL_NEW_DEVICE_ENTER_OPERATIONAL_STATE, failures = 0
     867242 PID:400002 TID:22e0002 OSAXST1: >>> Loading Module 'usbser.dll' (0xC083BF40) at address 0xEEA00000-0xEEA23000 in Process 'NK.EXE' (0x8781FAD0)
    PB Debugger Loaded symbols for 'C:\WINCE700\OSDESIGNS\IMX53_RCOM5\RELDIR\FREESCALE_I_MX53_RCOM5_ARMV7_RELEASE\USBSER.DLL'
     867327 PID:400002 TID:22e0002 OSAXST1: >>> Loading Module 'usb8023.dll' (0xC083DC0C) at address 0xEEA50000-0xEEA6C000 in Process 'NK.EXE' (0x8781FAD0)
    PB Debugger Loaded symbols for 'C:\WINCE700\OSDESIGNS\IMX53_RCOM5\RELDIR\FREESCALE_I_MX53_RCOM5_ARMV7_DEBUG\USB8023.DLL'
     867424 PID:400002 TID:22e0002 OSAXST1: >>> Loading Module 'rndismp.dll' (0xC08463A8) at address 0xEEA30000-0xEEA4A000 in Process 'NK.EXE' (0x8781FAD0)
    PB Debugger Loaded symbols for 'C:\WINCE700\OSDESIGNS\IMX53_RCOM5\RELDIR\FREESCALE_I_MX53_RCOM5_ARMV7_DEBUG\RNDISMP.DLL'
     867427 PID:400002 TID:22e0002 ParseUsbDescriptors failed!
     867427 PID:400002 TID:22e0002 Invalid Parameter
     867427 PID:400002 TID:22e0002 OSAXST1: <<< Unloading Module 'usb8023.dll' (0xC083DC0C) at address 0xEEA50000-0xEEA6C000 in Process 'NK.EXE' (0x8781FAD0)
    PB Debugger Unloaded symbols for 'C:\WINCE700\OSDESIGNS\IMX53_RCOM5\RELDIR\FREESCALE_I_MX53_RCOM5_ARMV7_DEBUG\USB8023.DLL'
     867537 PID:400002 TID:22e0002 RNDISMP: DllUnload called!
     867537 PID:400002 TID:22e0002 OSAXST1: <<< Unloading Module 'rndismp.dll' (0xC08463A8) at address 0xEEA30000-0xEEA4A000 in Process 'NK.EXE' (0x8781FAD0)
    PB Debugger Unloaded symbols for 'C:\WINCE700\OSDESIGNS\IMX53_RCOM5\RELDIR\FREESCALE_I_MX53_RCOM5_ARMV7_DEBUG\RNDISMP.DLL'
     867537 PID:400002 TID:22e0002 Unknown: DEBUGCHK failed in file d:\chelanrtm14\public\common\oak\drivers\serial\serpddcm\cserpdd.cpp at line 534

    985934 PID:400002 TID:22e0002 Unknown: DEBUGCHK failed in file d:\chelanrtm14\public\common\oak\drivers\usb\class\clientcmn\usbserv.cpp at line 131
    1032651 PID:400002 TID:22e0002 OSAXST1: <<< Unloading Module 'usbser.dll' (0xC083BF40) at address 0xEEA00000-0xEEA23000 in Process 'NK.EXE' (0x8781FAD0)

    ; @CESYSGEN IF CE_MODULES_USBSER

    [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\4431_4660\Default\Default\USBSER_CLASS]
       "Prefix"="COM"
       "Dll"="USBSER.DLL"

    [HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\USBSER_CLASS]
       "Prefix"="COM"
       "Dll"="USBSER.DLL"
       "DeviceArrayIndex"=dword:5
       "RxBufferSize"=dword:4000
       "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"

    [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\4431_4660\Default\Default\SERIAL_CLASS]
       "Prefix"="COM"
       "Dll"="USBSER.DLL"

    [HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\SERIAL_CLASS]
       "Prefix"="COM"
       "Dll"="USBSER.DLL"
       "RxBufferSize"=dword:4000
       "DeviceArrayIndex"=dword:5
       "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"

    ; @CESYSGEN ENDIF CE_MODULES_USBSER

    Thanks,

    Bruno

    Tuesday, July 24, 2012 1:09 PM

All replies

  • I think the problem relates to the fact that the Radio presents 3 USB interfaces and that you need separate drivers/registry entries for each of the interfaces. I only have one registry entry.

    This leads to a separate issue about the use of different instantiations of the USBSER driver for the different interfaces when using the Cellcore component. I have raised a separate question about this.

    http://social.msdn.microsoft.com/Forums/en-US/winembplatdev/thread/5ab21634-111f-4a2e-86b0-0201c527d3df

    Friday, July 27, 2012 10:20 AM