Daniele Palmas <dnlplm@xxxxxxxxx> writes: > Unfortunately the application has a proprietary firmware flashing > protocol under NDA, so I am not able to share it. I know that I will > lose points for that... I was afraid of that. > I can confirm that it is not a stupid device name assumption, since > the device name is an argument of the flashing application. OK, thanks. > Being the device an "Infineon" device, it would be really interesting > what developers at Infineon think about that... I guess you have to do s/Infineon/Intel/ now. Not sure that helps much, though. The Intel modem division haven't been much more open about their business than Infineon used to be (or Qualcomm is for that sake - it looks like a radio modem related disease) > But I see that Infineon flashing devices in newer chipsets have become > an only bulk serial link device (see device 0x8087/0x0716 in > usb-serial-simple), so maybe this has a meaning... Yes. I have a Sierra Wireless EM7345 modem which is based on the same chipset. I haven't really paid much attemtion to the flashloader functionality before, but this is how that modem looks before it loads its Sierra firmware: Bus 003 Device 013: ID 8087:0716 Intel Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x8087 Intel Corp. idProduct 0x0716 bcdDevice 0.00 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 46 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 500mA ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered There are a couple of oddities in the above lsusb output which I believe supports the proposed patch: Note the use of a "CDC Data" class interface for an assumed vendor specific function. There is no "Communications" interface here. And do note the three unrecognised descriptors. These are obviously CDC class specific functional descriptors. You have the Header: 05 24 00 10 01 Call Management: 05 24 01 00 00 ACM: 04 24 02 02 So this device looks very much like an ACM device, except that it is missing the necessary control interface and status endpoint. And without a control interface there is of course no way to send a properly formatted CDC control request either. I assume the different vendors also use the same Intel provided firmware toolkit, making the firmwares share basic functionality like bootloader and flashing. But the USB descriptors are likely configurable by the vendor. Telit might have tried to "improve" the above into a proper ACM device. I believe this supports the assumption that Infineon Flash Loader devices have some ACM descriptors without actually being ACM class devices, and that it is best to just collect them all in the usb-serial-simple "flashloader" driver. Bjørn -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html