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