[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 Bug ID: 266840 Summary: umodem: CH552 is not attached Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: usb Assignee: usb@FreeBSD.org Reporter: trombik1...@gmail.com a CH552 board does not attach as umodem(4). the board works on Linux (as /dev/ttyACM0). ugen0.6: at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (200mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x00ef bDeviceSubClass = 0x0002 bDeviceProtocol = 0x0001 bMaxPacketSize0 = 0x0008 idVendor = 0x1209 idProduct = 0xc550 bcdDevice = 0x0101 iManufacturer = 0x0001 iProduct = 0x0002 iSerialNumber = 0x0003 bNumConfigurations = 0x0001 Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x004b bNumInterfaces = 0x0002 bConfigurationValue = 0x0001 iConfiguration = 0x bmAttributes = 0x0080 bMaxPower = 0x0064 Additional Descriptor bLength = 0x08 bDescriptorType = 0x0b bDescriptorSubType = 0x00 RAW dump: 0x00 | 0x08, 0x0b, 0x00, 0x02, 0x02, 0x02, 0x01, 0x04 Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x bAlternateSetting = 0x bNumEndpoints = 0x0001 bInterfaceClass = 0x0002 bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0001 iInterface = 0x0004 Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x00 RAW dump: 0x00 | 0x05, 0x24, 0x00, 0x10, 0x01 Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x05, 0x24, 0x01, 0x00, 0x00 Additional Descriptor bLength = 0x04 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x04, 0x24, 0x02, 0x02 Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x06 RAW dump: 0x00 | 0x05, 0x24, 0x06, 0x00, 0x01 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 bmAttributes = 0x0003 wMaxPacketSize = 0x0008 bInterval = 0x0040 bRefresh = 0x bSynchAddress = 0x Interface 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x bNumEndpoints = 0x0002 bInterfaceClass = 0x000a bInterfaceSubClass = 0x bInterfaceProtocol = 0x iInterface = 0x0004 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0002 bmAttributes = 0x0002 wMaxPacketSize = 0x0040 bInterval = 0x bRefresh = 0x bSynchAddress = 0x device Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0082 bmAttributes = 0x0002 wMaxPacketSize = 0x0040 bInterval = 0x bRefresh = 0x bSynchAddress = 0x -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 --- Comment #1 from Tomoyuki Sakurai --- Oct 5 15:43:15 t480s kernel: ugen0.6: at usbus0 Oct 5 15:43:15 t480s kernel: umodem0 on uhub0 Oct 5 15:43:15 t480s kernel: umodem0: on usbus0 Oct 5 15:43:15 t480s kernel: umodem0: data interface 0, has no CM over data, has no break Oct 5 15:43:15 t480s kernel: umodem0: Can't setup transfer Oct 5 15:43:15 t480s kernel: device_attach: umodem0 attach returned 6 -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 Hans Petter Selasky changed: What|Removed |Added CC||hsela...@freebsd.org --- Comment #2 from Hans Petter Selasky --- Hi, There is something called a CM descriptor, and your device apparently got it wrong! sys/dev/usb/usb.h:#define UDESC_CS_INTERFACE 0x24 sys/dev/usb/usb_cdc.h:#define UDESCSUB_CDC_CM 1 /* Call Management */ sys/dev/usb/usb_cdc.h:struct usb_cdc_cm_descriptor { Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x05, 0x24, 0x01, 0x00, 0x00 ^^^ bDataInterface should be 1, because that is were the data BULK endpoints are! struct usb_cdc_cm_descriptor { uByte bLength; uByte bDescriptorType; uByte bDescriptorSubtype; uByte bmCapabilities; #define USB_CDC_CM_DOES_CM 0x01 #define USB_CDC_CM_OVER_DATA0x02 uByte bDataInterface; } __packed; I'm sorry to say that your USB modem device is not USB class compliant. Please notify the manufacturer! --HPS -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 Hans Petter Selasky changed: What|Removed |Added Resolution|--- |Not A Bug Status|New |Closed -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266819] ID 06cb:75bf not recognized as Synaptics
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266819 --- Comment #10 from Chris Hutchinson --- Unless there's anything else that might be performed here. I'm inclined to close this. It also occurs to me that given I could not find this elusive solution anywhere on the internet, including the FreeBSD Synaptics wiki page[1]. Maybe this should be documented? I don't have the credentials to make the entry on the wiki page, or I'd have done it myself. :-) Also. I'm wondering if there isn't something else that might be done (a hint) so that FreeBSD at least suggests the solution to this? --chris 1. https://wiki.freebsd.org/SynapticsTouchpad -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 --- Comment #3 from Tomoyuki Sakurai --- (In reply to Hans Petter Selasky from comment #2) i understand what is going on (i think). the board is a development board. https://github.com/WeActStudio/WeActStudio.CH552CoreBoard when a button is pressed and the dev board is plugged into a machine, the bootloader, which accepts firmware, runs. Oct 6 04:23:18 t480s kernel: ugen0.6: at usbus0 after 10 sec, it runs the user application (probably, an example firmware). the Oct 6 04:23:27 t480s kernel: ugen0.6: at usbus0 (disconnected) Oct 6 04:23:27 t480s kernel: ugen0.6: at usbus0 Oct 6 04:23:27 t480s kernel: umodem0 on uhub0 Oct 6 04:23:27 t480s kernel: umodem0: on usbus0 Oct 6 04:23:27 t480s kernel: umodem0: data interface 0, has no CM over data, has no break Oct 6 04:23:27 t480s kernel: umodem0: Can't setup transfer Oct 6 04:23:27 t480s kernel: device_attach: umodem0 attach returned 6 my understanding is that, if vendor and product ID are defined and added to umodem_host_devs in umodem.c, it should work when the bootloader is running. am I correct? -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 --- Comment #4 from Tomoyuki Sakurai --- below is dump_device_desc when the bootloader is running. ugen0.6: at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x00ff bDeviceSubClass = 0x0080 bDeviceProtocol = 0x0055 bMaxPacketSize0 = 0x0008 idVendor = 0x4348 idProduct = 0x55e0 bcdDevice = 0x0250 iManufacturer = 0x iProduct = 0x iSerialNumber = 0x bNumConfigurations = 0x0001 Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x0020 bNumInterfaces = 0x0001 bConfigurationValue = 0x0001 iConfiguration = 0x bmAttributes = 0x0080 bMaxPower = 0x0032 Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x bAlternateSetting = 0x bNumEndpoints = 0x0002 bInterfaceClass = 0x00ff bInterfaceSubClass = 0x0080 bInterfaceProtocol = 0x0055 iInterface = 0x Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0082 bmAttributes = 0x0002 wMaxPacketSize = 0x0040 bInterval = 0x bRefresh = 0x bSynchAddress = 0x Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0002 bmAttributes = 0x0002 wMaxPacketSize = 0x0040 bInterval = 0x bRefresh = 0x bSynchAddress = 0x -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 --- Comment #5 from Hans Petter Selasky --- I think you need a special tool using libusb to access this device. umodem does not support this kind of devices :-( -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 --- Comment #6 from Hans Petter Selasky --- Adding, to...@cedro.info . Have you seen such a device before? What do you think? -- You are receiving this mail because: You are the assignee for the bug.
[Bug 266840] umodem: CH552 is not attached
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840 --- Comment #7 from Tomoyuki Sakurai --- (In reply to Hans Petter Selasky from comment #5) things get clearer. there are several tools to upload firmware. https://github.com/MarsTechHAN/ch552tool https://github.com/hexeguitar/CH55x_python_flasher although i haven't looked at the sources yet, my guess is that, there is no kernel driver for the bootloader. when the bootloader is running, these tools directly talk to it using a protocol. -- You are receiving this mail because: You are the assignee for the bug.