Ericsson C5621gw and GPS support
Bjørn Mork
bjorn at mork.no
Mon May 12 09:17:17 PDT 2014
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.
Hope this helps. Boy, I have too many modems :-)
Bjørn
More information about the ModemManager-devel
mailing list