Re: [PATCH 1/2] cdc_acm: Ignore Infineon Flash Loader utility

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

2015-11-12 14:55 GMT+01:00 Bjørn Mork <bjorn@xxxxxxx>:
> 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.
>

Thanks for this analysis, it is very very interesting!

> 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.
>

No, I can confirm you that Telit does not modify the USB descriptors
of the flashing 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

Thanks,
Daniele
--
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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux