Telit Modules Linux USB Drivers Software User Guide

June 5, 2024
Telit

Telit Modules Linux USB Drivers
Software User Guide

Telit Technical Documentation

APPLICABILITY TABLE

PRODUCTS AVAILABLE SINCE KERNEL VERSION
DE910 SERIES 3.4
FD980 SERIES 5.14
FN980 SERIES 5.5
FN990 SERIES 5.16
GE910 SERIES 4.4
HE910 SERIES 4.4
LE866 SERIES 2.6.39
LE910 SERIES 3.18
LE910Cx SERIES 4.11
LE910C1-EUX SERIES 5.8
LE910D1 SERIES 2.6.39
LE910R1 SERIES 5.17
LE910S1 SERIES 5.13
LE910 V2 SERIES 3.12
LM940 SERIES 4.1
LM960 SERIES 4.1
LN920 SERIES 5.15
LN940 SERIES 4.2
ME910C1 SERIES 4.15
MEx10G1 SERIES 5.5
ML865C1 SERIES 4.15
ML865G1 SERIES 5.5
UE866 SERIES 4.4
UE910 SERIES 4.4
UL865 SERIES 4.4

INTRODUCTION

1.1.Scope
This document describes which Linux kernel drivers should be used for the Telit modules listed in the applicability table and how Linux devices can be used for typical use cases.

1.2.Audience

This document is intended for Telit customers, especially system integrators, who are about to implement the Telit modules listed in the applicability table in a Linux environment.

1.3.Contact Information, Support

For general contact, technical support services, technical questions, and reports of documentation errors contact Telit Technical Support at:

Alternatively, use:
https://www.telit.com/contact-us/

For detailed information about where you can buy the Telit modules or for recommendations on accessories and components visit: https://www.telit.com Our aim is to make his guide as helpful as possible. Keep us informed of your comments and suggestions for improvements. Telit appreciates the user feedback on our information.
1.4. Symbol Conventions

| Danger: This information MUST be followed or catastrophic equipment failure or personal injury may occur.
---|---
| Warning: Alerts the user on important steps about the module integration.
| Note/Tip: Provides advice and suggestions that may be useful when
integrating the module.
| Electro-static Discharge: Notifies the user to take proper grounding
precautions before handling the product.

Table 1: Symbol Conventions

All dates are in ISO 8601 format, that is YYYY-MM-DD.

1.5. Related Documents

  • Telit QMI SDK and TQCM User Guide, 1VV0301643
  • uxfp Software User Guide, 1VV0301613
  • AT Commands Reference Guide of Telit modules listed in the applicability table

2. OPERATING SYSTEM SETUP

2.1. Summary
The Telit modules listed in the Applicability Table expose different kinds of devices according to the Product ID (PID) in use. The table below lists the association between the device type and the kernel driver used:

Device type Kernel module
Serial port following the CDC-ACM standard cdc_acm
Serial port (reduced ACM) option
Network adapter following the CDC-ECM standard cdc_ether
Network adapter following the CDC-NCM standard cdc_ncm
Network adapter following Microsoft RNDIS specification rndis_host
Mobile broadband adapter following CDC-MBIM standard cdc_mbim
Rmnet mobile broadband adapter qmi_wwan
Android Debug Bridge (ADB) N/A (managed at the userspace level)
Audio device snd-usb-audio

In order to use a specific device type, the related module should be included in the kernel build.

Some kernel modules can be found starting with a specific kernel version (e.g. cdc_mbim is available from 3.8). If the driver is not supported by the kernel version in use, consider upgrading the kernel or backporting the needed patches.

2.2 USB Compositions

2.2.1. PIDs and Related Compositions
The following table lists the currently supported USB compositions in Linux according to
the PID:

PID Composition
0x1071 5 reduced ACM devices + 1 MBIM adapter + 1 ADB
0x1072 5 reduced ACM devices + 1 RNDIS network adapter + 1 ADB
0x1073 5 reduced ACM devices + 1 ECM network adapter + 1 ADB
0x1100 2 reduced ACM devices + 1 rent adapter + 1 QDSS device (not supported)
0x1101 3 reduced ACM devices + 1 net adapter
0x1102 3 reduced ACM devices + 1 ECM network adapter
0x110a 3 reduced ACM devices. The composition presents also 1 rent adapter,

but it can’t be used for data calls, just for controlling the device
0x110b| 3 reduced ACM devices + 1 ECM network adapter
0x1200| 5 reduced ACM devices + 1 rent adapter + 1 ADB
0x1201| 5 reduced ACM devices + 1 rent adapter + 1 ADB
0x1203| 5 reduced ACM devices + 1 RNDIS network adapter + 1 ADB
0x1204| 5 reduced ACM devices + 1 MBIM adapter + 1 ADB
0x1206| 5 reduced ACM devices + 1 ECM network adapter + 1 ADB
0x1207| 2 reduced ACM devices
0x1208| 3 reduced ACM devices + 1 ADB
0x1211| 1 reduced ACM device + 1 ECM network adapter + 1 ADB
0x1212| 1 reduced ACM device + 1 ADB
0x1213| 1 reduced ACM device + 1 ECM network adapter
0x1214| 2 reduced ACM devices + 1 ECM network adapter + 1 ADB
0x1230| 5 reduced ACM devices + 1 rent adapter + 1 ADB + 1 audio device
0x1231| 5 reduced ACM devices + 1 RNDIS network adapter + 1 ADB + 1 audio device
0x1260| 5 reduced ACM devices + 1 rent adapter + 1 ADB
0x1261| 5 reduced ACM devices + 1 rent adapter + 1 ADB
0x1900| 4 reduced ACM devices + 1 rent adapter
0x1901| 4 reduced ACM devices + 1 MBIM adapter
0x2300| Config. 1: 3 CDC-ACM devices + 1 RNDIS network adapter
Config. 2: 3 CDC-ACM devices + 1 ECM network adapter
0x7010| 3 reduced ACM devices + 1 RNDIS network adapter
0x7011| 3 reduced ACM devices + 1 ECM network adapter
0x701a| 3 reduced ACM devices + 1 RNDIS network adapter
0x701b| 3 reduced ACM devices + 1 ECM network adapter

Table 3: PIDs and related compositions

For additional details on the composition, please refer to the software user guide of the module in use.
The command:
$ lsusb
can be used for listing the USB devices connected to the host.

Refer to the modem user guide to understand how to change the USB composition and to identify the scope of the exposed devices.

2.2.2. Multi-configuration compositions
Some compositions show multiple configurations (e.g. 0x1056): by default the first
configuration is used by the system.
To change the configuration, the desired value should be written to the file:
/sys/bus/USB/devices//configuration value e.g.

echo > /sys/bus/USB/devices/<device

path>/configuration value
Tool usb_modeswitch can also be used to change the configuration, e.g.:

usb_modeswitch -v 0x1bc7 -p -u

2.2.3. Kernel Module Option
When using a supported composition requiring the option kernel module and the serial ports are not available in /dev, it is possible that support for that composition has been
added in a more recent kernel version than the one in use.
The solution is to upgrade the kernel version or backport the needed patches among the ones listed in chapter 5.
It is possible to add runtime support for the composition in use. With root privileges, type the following commands:

Telit Modules Linux USB Drivers Software User Guide

modprobe option

echo 1bc7 > /sys/bus/USB-serial/drivers/option1/new_id

where is the PID of the composition to be supported.

If a network adapter is also available in the composition, make sure it is properly recognized by the kernel before adding runtime support for serial ports.
If the ADB device is available in the composition, adding runtime support for serial ports prevents the ADB device from working properly, since it is bound to a serial port.

For the most up-to-date list of Telit PIDs supported as an option, refer to the source code in mainline, looking for all the device entries with TELIT_VENDOR_ID Vendor ID (VID).
If support for a composition missing in paragraph 2.2.1 is needed, contact customer support with the request.

2.2.4. Kernel Module qmi_wwan
When using a supported composition requiring the qmi_wwan kernel module and no modem-related network interface is available in the list provided by the command:
$ IP link show
it is possible that support for that composition has been added in a newer kernel version than the one in use.
The solution is to upgrade the kernel version or backport the needed patches among the ones listed in chapter 5.
If the kernel in use has to commit CDC-WDM: fix “out-of-sync” due to missing notifications, it should be reverted as done in commit USB:
Revert “CDC-WDM: fix “out-of-sync” due to missing notifications”
For the most up-to-date list of Telit PIDs supported as an option, refer to the source code in mainline, looking for all the entries of the device with Vendor ID (VID) 0x1bc7.

If support for a composition missing in paragraph 2.2.1 is needed, contact customer support with the request.

2.2.4.1. qmi_wwan and QMAP
Since kernel version 4.12, qmi_wwan supports Qualcomm Multiplexing and Aggregation Protocol (QMAP).
QMAP is needed for multiple concurrent PDNs management and to get the most from high-cat modems in terms of throughput.
Kernel side QMAP management is done through qmi_wwan sys files: check kernel documentation for further details.
QMAP enablement requires also a special modem configuration executed at the userspace level: the procedure to follow depends on the used tools.
Please check relevant qmi_wwan QMAP-related fixes in paragraph 6.2 to get a stable version.

When QMAP is not set, the RX URB size in qmi_wwan should be greater than 2048 bytes.
This setting can be configured at runtime, changing the MTU of the network interface to an allowed value > 2048 (should not be a multiple of the endpoint max packet size) before setting up the data connection, e.g. IP link set

MTU 2500 For a permanent setting, the following line: dev->rx_urb_size = 2048; should be added to qmi_wwan.c function qmi_wwan_bind before returning in the successful case.

USING THE MODEM

3.1 Using the Serial Ports
According to the driver in use, the following devices are created for serial ports:

Device type Kernel module
/dev/ttyACMx cdc_acm
/dev/ttyUSBx option

Table 4: device names and related kernel modules
These are Linux character devices and support most of the features implemented by the tty layer: for example, a terminal emulator like minicom can be used to send AT commands.
When writing code for using these devices, please refer to the programming language API related to character devices. As an example, C applications can use the exported functions in the system header files fcntl. h and unistd. h. Please refer to the related man page for further details.

**** When sending AT commands, it is mandatory to have the DTR asserted to get the response.

3.1.1. Data Connection through Serial Ports
To create dial-up connections through serial ports the software pppd can be used. Please refer to pppd official website for further details and updated source code.

3.2 Using the Network Adapter
If a network adapter or mobile broadband device is available and the related kernel module is loaded, a network interface is created by the operating system.
Standard Linux commands (e.g. IP, ifconfig) can be used to manage the network interface: please refer to the man page of the command for further details.

3.2.1. Data Connection through the Network Interface
For establishing a data connection through the network interface refer to the instructions in the table below according to the kernel module in use:

Telit Modules Linux USB Drivers Software User Guide

Kernel module Procedure
qmi_wwan The libqmi project can be used: refer to the project documentation

for further details.
Telit provides also a proprietary QMI SDK, refer to document 1VV0301643,
cdc_mbim| The libmbim project can be used: refer to the project documentation for further details.
cdc_ether| AT commands should be used: refer to the modem documentation for further details.
cdc_ncm| AT commands should be used: refer to the modem documentation for further details.
rndis_host| AT commands should be used: refer to the modem documentation for further details.

Table 5: kernel module in use for the network device and related data connection procedure

3.3 Using the Modem with ModemManager and NetworkManager

ModemManager is a DBus-activated daemon that controls mobile broadband (2G/3G/4G) devices and connections.
ModemManager provides a unified high-level API for communicating with mobile broadband modems, regardless of the protocol used to communicate with the actual device (AT commands, MBIM, QMI).
For managing non-AT-based modems, ModemManager uses external libraries: freedesktop.org libqmi for QMI-based modems, libmbim for MBIM-based modems.
ModemManager can be used with freedesktop.org NetworkManager for easier network connections management.
NetworkManager is the standard Linux network configuration tool suite. It supports a wide range of networking setups, from desktop to server and mobile, integrating well with popular desktop environments and server configuration management tools.
NetworkManager provides a complete D-Bus API used to access the NetworkManager daemon. This interface can be used to query network status and the details of network interfaces such as current IP addresses or DHCP options. The API can also be used for managing the connections (creation, activation, deactivation…).
NetworkManager uses freedesktop.org ModemManager to support mobile broadband devices.

FLASHING DEVICES

4.1 Overview
The modems listed in the following table support firmware updates through special flashing devices that may require binding to a kernel module:

Product VID:PID Kernel module Device name

FD980, FN980, FN990,
LE910C1-EUX, LN920| 0x1bc7:0x9010| option| /dev/ttyUSBx
GE/HE/UE910, UE866, UL865| 0x058b:0x0041| usb-serial-simple| /dev/ttyUSBx
LE910Cx, LM940, LM960| 0x18d1:0xd00d| Managed at the userspace level| n/a
LE910 V2| 0x8087:0x0716| usb-serial-simple| /dev/ttyUSBx
LE866, LE910D1| 0x216F:0x0051| cdc_acm| /dev/ttyACMx
LE910S1| 0x1bc7:0x9200| option| /dev/ttyUSBx
LE910R1| 0x1bc7:0x9201| option| /dev/ttyUSBx

Table 6: flashing devices
The Flashing devices available in GE/HE/UE910, UE866, UL865, LE910 V2, LE940B6, and LE866 appear for a few seconds when the modem is turned on: if the flashing application is not running, the flashing device disconnects and the modem proceeds in normal operative mode.

Check chapter 5 for flashing device support in kernel versions.

4.2 Flashing Device 0x18d1:0xd00d
The Flashing device 0x18d1:0xd00d is managed at the userspace level by the Telit firmware update application up. Refer to document 1VV0301613 for further details.

Legacy Telit firmware update application life requires binding the device to the option driver.
This can be permanently done by adding the following line: { USB_DEVICE(0x18d1, 0xd00d) } to the struct usb_device_id option_ids in the kernel source drivers/USB/serial/option.c
For testing purposes, the procedure described in paragraph 2.2.2 can be used:
$ modprobe option
$ echo 18d1 d00d > /sys/bus/usb-serial/drivers/option1/new_id

4.3 Flashing Device 0x058b:0x0041
Even though the flashing device 0x058b:0x0041 presents itself as an ACM device, it should be driven by the kernel driver usb-serial-simple. Support for this device is available since kernel version 4.4.
Previous kernel versions require commits kernel/git/torvalds/linux.git – Linux kernel source tree and kernel/git/torvalds/linux.git – Linux kernel source tree.

4.4 Flashing Device 0x8087:0x0716
Support for flashing device 0x8087:0x0716 is available since kernel version 3.12 with driver USB-serial-simple.
Previous kernel versions require committing kernel/git/torvalds/linux.git – Linux kernel source tree

TELIT KERNEL COMMITS

Below is a list of kernel commits related to the compositions available for the modems listed in the applicability table: consider backporting if the required PID is not available
in the used kernel version.

Summary VID:PID Commit Availability

USB: option driver: adding support for
Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL modems| 0x1bc7:0x1005
0x1bc7:0x1006
0x1bc7:0x1010| 7204cf584836c24b4b06e4ad4a8e6bb8ea84908e | v3.4-rc1
USB: option driver, add support for Telit
UE910v2| 0x1bc7:0x1012| d6de486bc22255779bd54b0fceb4c240962bf146 | v3.15-rc2
USB: option: add support for Telit
LE920| 0x1bc7:0x1200| 03eb466f276ceef9dcf023dc5474db02af68aad9 | v3.8-rc7
NET: qmi_wwan: add Telit LE920 support| 0x1bc7:0x1200| 3d6d7ab5881b1d4431529410b949ba2e946f3b0f | v3.8-rc7
net: qmi_wwan: add Telit LE920 newer
firmware support| 0x1bc7:0x1201| 905468fa4d54c3e572ed3045cd47cce37780716e | v3.13-rc1
usb: option: add support for Telit
LE910| 0x1bc7:0x1201| 2d0eb862dd477c3c4f32b201254ca0b40e6f465c | v3.18-rc3
USB: cdc_acm: Ignore Infineon Flash
Loader utility| 0x058b:0x0041| f33a7f72e5fc033daccbb8d4753d7c5c41a4d67b | v4.4-rc5
USB: serial: Another Infineon flash loader USB ID| 0x058b:0x0041| a0e80fbd56b4573de997c9a088a33abbc1121400 | v4.4-rc5
USB: serial: option: Adding support for
Telit LE922| 0x1bc7:0x1042
0x1bc7:0x1043| ff4e2494dc17b173468e1713fdf6237fd8578bc7 | v4.5-rc2
USB: serial: option: add support for Telit
LE922 PID 0x1045| 0x1bc7:0x1045| 5deef5551c77e488922cc4bf4bc76df63be650d0 | v4.5-rc7
net: USB: cdc_ncm: adding Telit LE910 V2 mobile broadband card| 0x1bc7:0x0036| 79f4223257bfef52b0a26d0d7ad4019e764be6ce | v4.6-rc2
USB: serial: option: add support for Telit
LE910 PID 0x1206| 0x1bc7:0x1206| 3c0415fa08548e3bc63ef741762664497ab187ed | v4.8-rc1
USB: serial: option: add support for Telit
LE920A4| 0x1bc7:0x1207
0x1bc7:0x1208
0x1bc7:0x1211
0x1bc7:0x1212
0x1bc7:0x1213
0x1bc7:0x1214| 01d7956b58e644ea0d2e8d9340c5727a8fc39d70 | v4.8-rc3
NET: USB: qmi_wwan: add support for Telit LE922A PID 0x1040| 0x1bc7:0x1040| 9bd813da24cd49d749911d7fdc0e9ae9a673d746 | v4.9-rc8
NET: USB: cdc_mbim: add quirk for
supporting Telit LE922A| 0x1bc7:0x1041| 7b8076ce8a00d553ae9d3b7eb5f0cc3e63cb16f1 | v4.9
USB: serial: option: add support for Telit
LE922A PIDs 0x1040, 0x1041| 0x1bc7:0x1040
0x1bc7:0x1041| 5b09eff0c379002527ad72ea5ea38f25da8a8650 | v4.10-rc1
drivers: net: USB: qmi_wwan: add
QMI_QUIRK_SET_DT R for Telit PID 0x1201| 0x1bc7:0x1201| 14cf4a771b3098e431d2677e3533bdd962e478d8 | v4.11-rc7
net: USB: qmi_wwan: add Telit ME910
support| 0x1bc7:0x1100| 4c54dc0277d0d55a9248c43aebd31858f926a056 | v4.12-rc1
USB: serial: option: add Telit ME910
support| 0x1bc7:0x1100| 40dd46048c155b8f0683f468c950a1c107f77a7c | v4.12-rc1
net: USB: qmi_wwan:add Telit ME910 PID0x1101 support| 0x1bc7:0x1101| c647c0d62c82eb3ddf78a0d8b3d58819d9f552aa | v4.15-rc4
USB: serial: option: add support for Telit
ME910 PID 0x1101| 0x1bc7:0x1101| 08933099e6404f588f81c2050bfec7313e06eeaf | v4.15-rc6
net: USB: cdc_mbim: add flag
FLAG_SEND_ZLP| 0x1bc7:0x1041| 9f7c728332e8966084242fcd951aa46583bc308c | v4.17
USB: serial: option:add Telit LN940
series| 0x1bc7:0x1900
0x1bc7:0x1901| 28a86092b1753b802ef7e3de8a4c4a69a9c1bb03 | v4.20
qmi_wwan: Added support for Telit
LN940 series| 0x1bc7:0x1900| 1986af16e8ed355822600c24b3d2f0be46b573df | v4.20
USB: CDC-ACM: send ZLP for Telit 3G Intel-based modems| 0x1bc7:0x0021
0x1bc7:0x0023| 34aabf918717dd14e05051896aaecd3b16b53d95 | v5.0-rc2
USB: serial: option: add Telit ME910 ECM composition| 0x1bc7:0x1102| 6431866b6707d27151be381252d6eef13025cfce | v5.1-rc1
net: USB: qmi_wwan: add Telit 0x1260 and 0x1261 compositions| 0x1bc7:0x12600x1bc7:0x1261| b4e467c82f8c12af78b6f6fa5730cb7dea7af1b4 | v5.2-rc2
USB: serial: option: add Telit 0x1260 and
0x1261 compositions| 0x1bc7:0x12600x1bc7:0x1261| f3dfd4072c3ee6e287f501a18b5718b185d6a940 | v5.2-rc5
USB: serial: option: add Telit FN980
compositions| 0x1bc7:0x1050
0x1bc7:0x1051
0x1bc7:0x1052
0x1bc7:0x1053| 5eb3f4b87a0e7e949c976f32f296176a06d1a93b | v5.4-rc3
net: USB: qmi_wwan: add Telit 0x1050
composition| 0x1bc7:0x1050| e0ae2c578d3909e60e9448207f5d83f785f1129f | v5.4-rc4
USB: serial: option: add Telit ME910G1
0x110a composition| 0x1bc7:0x110a| 0d3010fa442429f8780976758719af05592ff19f | v5.5-rc6
USB: serial: option: add ZLP support for
0x1bc7/0x9010| 0x1bc7:0x9010| 2438c3a19dec5e98905fd3ffcc2f24716aceda6b | v5.5-rc6
USB: serial: option: add ME910G1 ECM
composition 0x110b| 0x1bc7:0x110b| 8e852a7953be2a6ee371449f7257fe15ace6a1fc | v5.6-rc7
net: usb: qmi_wwan:add Telit  LE910C1EUX composition| 0x1bc7:0x1031| 591612aa578cd7148b7b9d74869ef40118978389 | v5.7
USB: serial: option: add Telit LE910C1EUX compositions| 0x1bc7:0x1031
0x1bc7:0x1033| 399ad9477c523f721f8e51d4f824bdf7267f120c | v5.8-rc1
USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231| 0x1bc7:0x1203
0x1bc7:0x1230
0x1bc7:0x1231| 489979b4aab490b6b917c11dc02d81b4b742784a| v5.10-rc3
net: USB: qmi_wwan: add Telit LE910Cx
0x1230 composition| 0x1bc7:0x1230| 5fd8477ed8ca77e64b93d44a6dae4aa70c191396 | v5.10-rc3
USB: serial: option: add Telit FN980
composition 0x1055| 0x1bc7:0x1055| db0362eeb22992502764e825c79b922d7467e0eb| v5.10-rc3
USB: serial: option: add Telit LE910-S1
compositions 0x7010, 0x7011| 0x1bc7:0x7010
0x1bc7:0x7011| e467714f822b5d167a7fb03d34af91b5b6af1827 | v5.13-rc4
USB: serial: option: add Telit FD980
composition 0x1056| 0x1bc7:0x1056| 5648c073c33d33a0a19d0cb1194a4eb88efe2b71 | v5.14-rc5
net: USB: cdc_mbim: avoid alt setting
toggling for Telit LN920| 0x1bc7:0x1061| aabbdc67f3485b5db27ab4eba01e5fbf1ffea62c | v5.15-rc1
net: USB: qmi_wwan: add Telit 0x1060
composition| 0x1bc7:0x1060| 8d17a33b076d24aa4861f336a125c888fb918605 | v5.15-rc1
USB: serial: option: add Telit LN920
compositions| 0x1bc7:0x1060
0x1bc7:0x1061
0x1bc7:0x1062
0x1bc7:0x1063| 7bb057134d609b9c038a00b6876cf0d37d0118ce | v5.15-rc3
USB: serial: option: add Telit LE910Cx
composition 0x1204| 0x1bc7:0x1204| f5a8a07edafed8bede17a95ef8940fe3a57a77d5 | v5.15-rc6
USB: serial: option: add Telit LE910S1
0x9200 composition| 0x1bc7:0x9200| e353f3e88720300c3d72f49a4bea54f42db1fa5e | v5.16-rc3
USB: serial: option: add Telit FN990
compositions| 0x1bc7:0x1070
0x1bc7:0x1071
0x1bc7:0x1072
0x1bc7:0x1073| 2b503c8598d1b232e7fc7526bce9326d92331541 | v5.16-rc6
net: USB: qmi_wwan: add Telit 0x1070
composition| 0x1bc7:0x1070| 94f2a444f28a649926c410eb9a38afb13a83ebe0 | v5.16-rc6
net: USB: cdc_mbim: avoid alt setting
toggling for Telit FN990| 0x1bc7:0x1071| 21e8a96377e6b6debae42164605bf9dcbe5720c5 | v5.17-rc5
USB: serial: option: add Telit LE910R1
compositions| 0x1bc7:0x701a
0x1bc7:0x701b
0x1bc7:0x9201| cfc4442c642d568014474b6718ccf65dc7ca6099 | v5.17-rc6

Table 7: kernel commits related to Telit modules

ADDITIONAL KERNEL COMMITS

6.1 Raw-Ip Support and Important Fixes for qmi_wwan
Below is a list of commits for adding Raw-Ip support to qmi_wwan and addressing important issues.

Summary Commit Availability
net: qmi_wwan: MDM9x30 specific power management

93725149794d3d418cf1eddcae60c7b536c5faa1 | v4.5-rc1
usbnet: allow mini-drivers to consume L2
headers| 81e0ce79f2919dbd5f025894d29aa806af8695c7 | v4.5-rc1
net: qmi_wwan: support “raw IP” mode| 32f7adf633b9f99ad5089901bc7ebff57704aaa9 | v4.5-rc1
net: qmi_wwan: should hold RTNL while changing netdev type| 6c730080e663b1d629f8aa89348291fbcdc46cd9 | v4.5-rc1
net: qmi_wwan: ignore bogus CDC Union descriptors| 34a55d5e858e81a20d33fd9490149d6a1058be0c | v4.5-rc1
qmi_wwan: Add missing skb_reset_mac_header-call| 0de0add10e587effa880c741c9413c874f16be91 | v4.14
usbnet: fix alignment for frames with no ethernet header| a4abd7a80addb4a9547f7dfc7812566b60ec505c | v4.15-rc3
qmi_wwan: set FLAG_SEND_ZLP to avoid network-initiated disconnect| 245d21190aec547c0de64f70c0e6de871c185a24 | v4.16-rc1
qmi_wwan: Fix out-of-bounds read| 904d88d743b0c94092c5117955eab695df8109e8 | v5.2-rc7

Table 8: qmi_wwan relevant kernel commits

6.2 QMAP Support in qmi_wwan
Below is a list of commits for adding QMAP support to qmi_wwan.

Summary Commit Availability
net: usb: qmi_wwan: add map mux protocol support

c6adf77953bcec0ad63d7782479452464e50f7a3 | v4.12-rc1
qmi_wwan: fix NULL deref on disconnect| bbae08e592706dc32e5c7c97827b13c1c178668b | v4.13-rc5
qmi_wwan: Fix map header retrieval in qmimux_rx_fixup| d667044f49513d55fcfefe4fa8f8d96091782901 | v4.20
qmi_wwan: add MTU default to map network
interface| f87118d5760f00af7228033fbe783c7f380d2866 | v5.0-rc3
qmi_wwan: add support for QMAP padding in the RX path| 61356088ace1866a847a727d4d40da7bf00b67fc | v5.2-rc6
qmi_wwan: add network device usage statistics for qmimux devices| 44f82312fe9113bab6642f4d0eab6b1b7902b6e1 | v5.2-rc6
qmi_wwan: avoid RCU stalls on device disconnect when in QMAP mode| a8fdde1cb830e560208af42b6c10750137f53eb3 | v5.2-rc6
qmi_wwan: extend permitted QMAP mux_id value range| 36815b416fa48766ac5a98e4b2dc3ebc5887222e | v5.2-rc6
qmi_wwan: Increase headroom for QMAP SKBs| 2e4233870557ac12387f885756b70fc181cb3806 | v5.12
net: USB: qmi_wwan: add map id sys file for
qmimux interfaces| e594ad980ec26fb7351d02c84abaa77ecdb4e522| v5.12-rc1dontuse
net: usb: qmi_wwan: allow qmimux add/del with master up| 6c59cff38e66584ae3ac6c2f0cbd8d039c710ba7 | v5.12-rc3

Table 9: qmi_wwan QMAP relevant kernel commits

PRODUCT AND SAFETY INFORMATION

7.1 Copyrights and Other Notices

SPECIFICATIONS ARE SUBJECT TO CHANGE WITHOUT NOTICE
Although reasonable efforts have been made to ensure the accuracy of this document, Telit assumes no liability resulting from any inaccuracies or omissions in this document, or from the use of the information contained herein. The information contained in this document has been carefully checked and is believed to be reliable. Telit reserves the right to make changes to any of the products described herein, to revise them, and to make changes from time to time without any obligation to notify anyone of such revisions or changes. Telit does not assume any liability arising from the application or use of any product, software, or circuit described herein; neither does it convey a license under its patent rights or the rights of others.
This document may contain references or information about Telit’s products (machines and programs), or services that are not announced in your country. Such references or the information does not necessarily mean that Telit intends to announce such Telit products, programming, or services in your country.

7.1.1. Copyrights
This instruction manual and the Telit products described herein may include or describe Telit copyrighted material, such as computer programs stored in semiconductor memories or other media. The laws in Italy and in other countries reserve to Telit and its licensors certain exclusive rights for copyrighted material, including the exclusive right to copy, reproduce in any form, distribute and make derivative works of the copyrighted material. Accordingly, any of Telit’s or its licensors’ copyrighted material contained herein or described in this instruction manual, shall not be copied, reproduced, distributed, merged or modified in any way without the express written permission of the owner. Furthermore, the purchase of Telit products shall not be deemed to grant in any way, neither directly nor by implication, or estoppel, any license.
7.1.2. Computer Software Copyrights
Telit and the Third Party supplied Software (SW) products, described in this instruction manual may include Telit’s and other Third Party’s copyrighted computer programs stored in semiconductor memories or other media. Laws in Italy and in other countries reserve to Telit and other Third parties, SW exclusive rights for copyrighted computer programs, including – but not limited to – the exclusive right to copy or reproduce in any form the copyrighted products. Accordingly, any copyrighted computer programs contained in Telit’s products described in this instruction manual shall not be copied (reverse engineered) or reproduced in any manner without the express written permission of the copyright owner, being Telit or the Third Party software supplier.
Furthermore, the purchase of Telit products shall not be deemed to grant either directly or by implication, estoppel, or in any other way, any license under the copyrights, patents, or patent applications of Telit or other Third Party supplied SW, except for the normal non-exclusive, royalty free license to use arising by operation of law in the sale of a product.

7.2 Usage and Disclosure Restrictions
7.2.1. License Agreements
The software described in this document is owned by Telit and its licensors. It is furnished by express license agreement only and shall be used exclusively in accordance with the terms of such agreement.
7.2.2. Copyrighted Materials
The Software and the documentation are copyrighted materials. Making unauthorized copies is prohibited by law. The software or the documentation shall not be
reproduced, transmitted, transcribed, even partially, nor stored in a retrieval system, nor translated into any language or computer language, in any form or by any means, without prior written permission of Telit.
7.2.3. High-Risk Materials
Components, units, or third-party goods used in the making of the product described herein are NOT fault-tolerant and are NOT designed, manufactured, or intended for use as online control equipment in the following hazardous environments requiring fail-safe controls: operations of Nuclear Facilities, Aircraft Navigation or Aircraft Communication Systems, Air Traffic Control, Life Support, or Weapons Systems (“High-Risk Activities”). Telit and its supplier(s) specifically disclaim any expressed or implied warranty of fitness eligibility for such High-Risk Activities.

7.2.4. Trademarks
TELIT and the Stylized T-Logo are registered in the Trademark Office. All other product or service names are the property of their respective owners.
7.2.5. Third Party Rights
The software may include Third Party’s software Rights. In this case, the user agrees to comply with all terms and conditions imposed in respect of such separate software rights. In addition to Third Party Terms, the disclaimer of warranty and limitation of liability provisions in this License shall apply to the Third Party Rights software as well.
TELIT HEREBY DISCLAIMS ANY AND ALL WARRANTIES EXPRESSED OR IMPLIED FROM ANY THIRD PARTY REGARDING ANY SEPARATE FILES, ANY THIRD PARTY MATERIALS INCLUDED IN THE SOFTWARE, ANY THIRD PARTY MATERIALS FROM WHICH THE SOFTWARE IS DERIVED (COLLECTIVELY “OTHER CODES”), AND THE USE OF ANY OR ALL OTHER CODES IN CONNECTION WITH THE SOFTWARE, INCLUDING (WITHOUT LIMITATION) ANY WARRANTIES OF SATISFACTORY QUALITY OR FITNESS FOR A PARTICULAR PURPOSE.
NO THIRD-PARTY LICENSORS OF OTHER CODES MUST BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOSS OF PROFITS), HOWEVER, CAUSED AND WHETHER MADE UNDER CONTRACT, TORT, OR OTHER LEGAL THEORY, ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE OTHER CODES OR THE EXERCISE OF ANY RIGHTS GRANTED UNDER EITHER OR BOTH THIS LICENSE AND THE LEGAL TERMS APPLICABLE TO ANY SEPARATE FILES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7.2.6. Waiver of Liability
IN NO EVENT WILL TELIT AND ITS AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, GENERAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, OR EXEMPLARY INDIRECT DAMAGE OF ANY KIND WHATSOEVER, INCLUDING BUT NOT LIMITED TO REIMBURSEMENT OF COSTS, COMPENSATION OF ANY DAMAGE, LOSS OF PRODUCTION, LOSS OF PROFIT, LOSS OF USE, LOSS OF BUSINESS, LOSS OF DATA OR REVENUE, WHETHER OR NOT THE POSSIBILITY OF SUCH DAMAGES COULD HAVE BEEN REASONABLY FORESEEN, CONNECTED IN ANY WAY TO THE USE OF THE PRODUCT/S OR TO THE INFORMATION CONTAINED IN THE PRESENT DOCUMENTATION, EVEN IF TELIT AND/OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR THEY ARE FORESEEABLE OR FOR CLAIMS BY ANY THIRD PARTY.

7.3 Safety Recommendations
Make sure the use of this product is allowed in your country and in the environment required. The use of this product may be dangerous and has to be avoided in areas where:

  • it can interfere with other electronic devices, particularly in environments such as hospitals, airports, aircraft, etc.
  • there is a risk of explosion such in gasoline stations, oil refineries, etc. It is the responsibility of the user to enforce the country’s regulations and the specific environmental regulation.

Do not disassemble the product; any mark of tampering will compromise the warranty validity. We recommend following the instructions of the hardware user guides for the correct wiring of the product. The product has to be supplied with a stabilized voltage source and the wiring has to be conformed to the security and fire prevention regulations.
The product has to be handled with care, avoiding any contact with the pins because electrostatic discharges may damage the product itself. Same cautions have to be taken for the SIM, checking carefully the instruction for its use. Do not insert or remove the SIM when the product is in power-saving mode.
The system integrator is responsible for the functioning of the final product. Therefore, the external components of the module, as well as any project or installation issue, have
to be handled with care. Any interference may cause the risk of disturbing the GSM network or external devices or having an impact on the security system. Should there be any doubt, please refer to the technical documentation and the regulations in force. Every module has to be equipped with a proper antenna with specific characteristics. The antenna has to be installed carefully in order to avoid any interference with other electronic devices and has to guarantee a minimum distance from the body (20 cm). In case this requirement cannot be satisfied, the system integrator has to assess the final product against the SAR regulation.
The equipment is intended to be installed in a restricted area location.
The equipment must be supplied by an external specific limited power source in compliance with the standard EN 62368-1:2014.
The European Community provides some Directives for the electronic equipment introduced on the market. All of the relevant information is available on the European Community website:
https://ec.europa.eu/growth/sectors/electrical-engineering_en

GLOSSARY

ACM Abstract Control Model
ADD Android Debug Bridge
CDC Communications Class Device
ECM Ethernet Control Model
MB Mobile Broadband Interface Model
NCM Network Control Model
PPP Point to Point Protocol
MAP Qualcomm Multiplexing and Aggregation Protocol
USB Universal Serial Bus

DOCUMENT HISTORY

Revision Date Changes
14 2022-03-02 Added LE910R1 in the applicability table

Added LE910R1 compositions 0x701A, 0x701B
Added LE910R1 composition 0x9201 and related entry in Table 6
13| 2021-12-13| Added LE910C1 composition 0x1204
Added LE910S1 composition 0x9200 and related entry in Table 6
Added FN990 compositions 0x1070, 0x1071, 0x1072, 0x1073
12| 2021-09-24| Added LN920 in the applicability table and related kernel commits
11| 2021-08-09| Added FD980 composition 0x1056
Added FD980 in the applicability table
Added paragraph “Multi-configuration compositions”
10| 2021-06-14| Changed document template and reworded some paragraphs
Fixed FN980 kernel version availability in applicability table
Added LE910S1 to the applicability table
Added LE910S1 0x7010 and 0x7011 composition description and related kernel commits
Added QMAP paragraph and related kernel commits
Modified flashing device information for 0x18d1:0xd00d and 0x8087:0x0801 (removed)
Changed kernel commit references from GitHub to git.kernel.org
9| 2020-11-09| Added LE910Cx compositions 0x1203, 0x1230, 0x1231 and FN980 composition 0x1055
Removed references to deprecated ModemManager and
NetworkManager documents
Removed references to deprecated life
8| 2020-09-01| Added LE910C1-EUX support and updated kernel patches list
Added LM960 0x1040 qmi_wwan RX urb size note
7| 2020-03-27| Changed ME910G1 to MEx10G1 in the applicability table
Added ML865C1 and ML865G1 to the applicability table
Updated kernel patches list for composition 0x110b
6| 2020-01-13| Added ME910G1 0x110a composition
Added FN980 0x9010 flashing device composition
Updated kernel patches list
Updated applicability table
5| 2019-10-21| Added FN980 in the applicability table and related kernel commits
4| 2019-05-24| Removed automotive modules from the applicability table
Added LN940 and UE866 in the applicability table
Added LM940 kernel commit for fixing big data packets issue
Added ME910 composition 0x1102, LECx910 compositions 0x1260 and 0x1261
Updated kernel patches list
3| 2018-05-07| Added LE866 flashing device details
Added kernel commit for PID 0x0036
Added LE910D1 in the applicability table
2| 2018-02-13| Added LM960 in the applicability table
Added ME910 composition 0x1101
Added “Additional Kernel Commits” chapter
Added “Minimum Kernel Version” in the applicability table
1| 2017-11-24| Added LE920A4 and LE910C1 composition 0x1201
Added LM940 in the applicability table
Added reference to committing CDC-WDM: fix “out-of-sync” due to missing notifications
0| 2017-04-28| First issue

Connect to our site and contact our technical support team for any questions www.telit.com

Telit reserves all rights to this document and the information contained herein. Products, names, logos, and designs described herein may in whole or in part be subject to intellectual property rights. The information contained herein is provided “as is”. No warranty of any kind, either express or implied, is made in relation to the accuracy, reliability, fitness for a particular purpose or content of this document. This document may be revised by Telit at any time. For the most recent documents, please visit www.telit.com
Copyright © 2021, Telit
1VV0301371 Rev. 14 – 2022-03-02

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals