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