Ericsson C5621gw and GPS support
Dan Williams
dcbw at redhat.com
Mon May 12 10:23:32 PDT 2014
On Mon, 2014-05-12 at 18:17 +0200, Bjørn Mork wrote:
> Aleksander Morgado <aleksander at aleksander.es> writes:
>
> > I'm not really familiar to how Ericsson sets up the interfaces in the
> > USB interface, so it may be that the GPS port is always a specific
> > interface number or something, so worth checking that first. If that
> > is the case, udev tag would be much easier.
>
> I believe it always is the highest numbered CDC ACM interface pair
> (control + data), and they seem to always have a string descriptor with
> "GPS" in it (both control and data interfaces). Examples from modems
> I've tested below. Note that all of these support multiple
> configurations, typical some with and some without GPS port.
>
> I believe they also have some models without GPS, and that the 'g' in
> the model name indicates GPS support.
>
> These examples are all from the default configuration (#1):
>
> F5521gw (0bdb:190d):
>
> bNumInterfaces 11
> ..
>
>
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 9
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 2 Communications
> bInterfaceSubClass 2 Abstract (modem)
> bInterfaceProtocol 1 AT-commands (v.25ter)
> iInterface 17 F5521gw Mobile Broadband GPS Port
> CDC Header:
> bcdCDC 1.10
> CDC Union:
> bMasterInterface 9
> bSlaveInterface 10
> CDC Call Management:
> bmCapabilities 0x03
> call management
> use DataInterface
> bDataInterface 10
> CDC ACM:
> bmCapabilities 0x07
> sends break
> line coding and serial state
> get/set/clear comm features
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x84 EP 4 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0010 1x 16 bytes
> bInterval 8
>
> H5321gw (0bdb:1926):
>
> bNumInterfaces 11
> ..
>
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 9
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 2 Communications
> bInterfaceSubClass 2 Abstract (modem)
> bInterfaceProtocol 1 AT-commands (v.25ter)
> iInterface 17 H5321 gw Mobile Broadband GPS Port
> CDC Header:
> bcdCDC 1.20
> CDC Union:
> bMasterInterface 9
> bSlaveInterface 10
> CDC Call Management:
> bmCapabilities 0x03
> call management
> use DataInterface
> bDataInterface 10
> CDC ACM:
> bmCapabilities 0x06
> sends break
> line coding and serial state
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x84 EP 4 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0020 1x 32 bytes
> bInterval 8
>
>
> F3507g (0bdb:1900):
> bNumInterfaces 11
> ..
>
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 9
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 2 Communications
> bInterfaceSubClass 2 Abstract (modem)
> bInterfaceProtocol 1 AT-commands (v.25ter)
> iInterface 17 Ericsson F3507g Mobile Broadband Minicard GPS Port
> CDC Header:
> bcdCDC 1.10
> CDC Union:
> bMasterInterface 9
> bSlaveInterface 10
> CDC Call Management:
> bmCapabilities 0x03
> call management
> use DataInterface
> bDataInterface 12
> CDC ACM:
> bmCapabilities 0x07
> sends break
> line coding and serial state
> get/set/clear comm features
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x85 EP 5 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0010 1x 16 bytes
> bInterval 8
>
> H5321gw (0930:1319):
> bNumInterfaces 11
> ..
>
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 9
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 2 Communications
> bInterfaceSubClass 2 Abstract (modem)
> bInterfaceProtocol 1 AT-commands (v.25ter)
> iInterface 17 Ericsson H5321gw for TOSHIBA Mobile Broadband GPS Port
> CDC Header:
> bcdCDC 1.20
> CDC Union:
> bMasterInterface 9
> bSlaveInterface 10
> CDC Call Management:
> bmCapabilities 0x03
> call management
> use DataInterface
> bDataInterface 10
> CDC ACM:
> bmCapabilities 0x06
> sends break
> line coding and serial state
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x84 EP 4 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0020 1x 32 bytes
> bInterval 8
>
>
>
> Although these all end up with the same interface number, you are not
> guaranteed that. Ericsson does strict consecutive numbering of
> interfaces. So looking at the descripton and/or the ACM function order
> is the only safe way. This is cfg #3 from the same Ericsson H5321gw as
> above (0bdb:1926):
>
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 254
> bNumInterfaces 5
> bConfigurationValue 3
> iConfiguration 20 WMC MBIM Device with GPS
> bmAttributes 0xe0
> Self Powered
> Remote Wakeup
> MaxPower 0mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 2 Communications
> bInterfaceSubClass 8 Wireless Handset Control
> bInterfaceProtocol 0
> iInterface 5 H5321 gw Mobile Broadband Device
> CDC Header:
> bcdCDC 1.20
> CDC WHCM:
> bcdVersion 1.10
> CDC Union:
> bMasterInterface 0
> bSlaveInterface 1 2 3 4
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 2 Communications
> bInterfaceSubClass 13
> bInterfaceProtocol 0
> iInterface 11 Ericsson H5321 gw
> CDC Header:
> bcdCDC 1.20
> CDC Union:
> bMasterInterface 1
> bSlaveInterface 2
> CDC Ethernet:
> iMacAddress 12 0215E0EC0100
> bmEthernetStatistics 0x00000000
> wMaxSegmentSize 1514
> wNumberMCFilters 0x8040
> bNumberPowerFilters 1
> CDC NCM:
> bcdNcmVersion 1.00
> bmNetworkCapabilities 0x1b
> crc mode
> max datagram size
> net address
> packet filter
> CDC Command Set:
> bcdVersion 1.00
> iCommandSet 13 S_NCM_CMD_FUNC
> bGUID {52998303-e62a-4723-b1ba-e9421e201bca}
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x86 EP 6 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0020 1x 32 bytes
> bInterval 7
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 1
> bNumEndpoints 1
> bInterfaceClass 2 Communications
> bInterfaceSubClass 14
> bInterfaceProtocol 0
> iInterface 11 Ericsson H5321 gw
> CDC Header:
> bcdCDC 1.20
> CDC Union:
> bMasterInterface 1
> bSlaveInterface 2
> CDC MBIM:
> bcdMBIMVersion 1.00
> wMaxControlMessage 512
> bNumberFilters 16
> bMaxFilterSize 192
> wMaxSegmentSize 2048
> bmNetworkCapabilities 0x1f
> max datagram size
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x86 EP 6 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0020 1x 32 bytes
> bInterval 7
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 2
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 10 CDC Data
> bInterfaceSubClass 0 Unused
> bInterfaceProtocol 1
> iInterface 14 Ericsson H5321 gw
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 2
> bAlternateSetting 1
> bNumEndpoints 2
> bInterfaceClass 10 CDC Data
> bInterfaceSubClass 0 Unused
> bInterfaceProtocol 1
> iInterface 15 Ericsson H5321 gw
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x05 EP 5 OUT
> 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 0x85 EP 5 IN
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0200 1x 512 bytes
> bInterval 0
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 2
> bAlternateSetting 2
> bNumEndpoints 2
> bInterfaceClass 10 CDC Data
> bInterfaceSubClass 0 Unused
> bInterfaceProtocol 2
> iInterface 15 Ericsson H5321 gw
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x05 EP 5 OUT
> 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 0x85 EP 5 IN
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0200 1x 512 bytes
> bInterval 0
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 3
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 2 Communications
> bInterfaceSubClass 2 Abstract (modem)
> bInterfaceProtocol 1 AT-commands (v.25ter)
> iInterface 17 H5321 gw Mobile Broadband GPS Port
> CDC Header:
> bcdCDC 1.20
> CDC Union:
> bMasterInterface 3
> bSlaveInterface 4
> CDC Call Management:
> bmCapabilities 0x03
> call management
> use DataInterface
> bDataInterface 4
> CDC ACM:
> bmCapabilities 0x06
> sends break
> line coding and serial state
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x84 EP 4 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0020 1x 32 bytes
> bInterval 8
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 4
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 10 CDC Data
> bInterfaceSubClass 0 Unused
> bInterfaceProtocol 0
> iInterface 18 H5321 gw Mobile Broadband GPS Port
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x03 EP 3 OUT
> 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 0x83 EP 3 IN
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0200 1x 512 bytes
> bInterval 0
>
>
> Notice how they reuse the string descriptors (control interface
> descriptor is #17 in cfg #1 and #17 and cfg#3), but the GPS function is
> now moved to interfaces #3 and #4. Which still is the last CDC ACM
> function in this configuration.
Given the historical consistency of Ericsson modems, I think we can
probably rely on looking for the "GPS" in the iInterface string and just
use that to find the GPS port. Sounds fine to me.
> Hope this helps. Boy, I have too many modems :-)
Have you seen my collection? :)
Dan
More information about the ModemManager-devel
mailing list