cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

iosm.rst (3642B)


      1.. SPDX-License-Identifier: GPL-2.0-only
      2
      3.. Copyright (C) 2020-21 Intel Corporation
      4
      5.. _iosm_driver_doc:
      6
      7===========================================
      8IOSM Driver for Intel M.2 PCIe based Modems
      9===========================================
     10The IOSM (IPC over Shared Memory) driver is a WWAN PCIe host driver developed
     11for linux or chrome platform for data exchange over PCIe interface between
     12Host platform & Intel M.2 Modem. The driver exposes interface conforming to the
     13MBIM protocol [1]. Any front end application ( eg: Modem Manager) could easily
     14manage the MBIM interface to enable data communication towards WWAN.
     15
     16Basic usage
     17===========
     18MBIM functions are inactive when unmanaged. The IOSM driver only provides a
     19userspace interface MBIM "WWAN PORT" representing MBIM control channel and does
     20not play any role in managing the functionality. It is the job of a userspace
     21application to detect port enumeration and enable MBIM functionality.
     22
     23Examples of few such userspace application are:
     24- mbimcli (included with the libmbim [2] library), and
     25- Modem Manager [3]
     26
     27Management Applications to carry out below required actions for establishing
     28MBIM IP session:
     29- open the MBIM control channel
     30- configure network connection settings
     31- connect to network
     32- configure IP network interface
     33
     34Management application development
     35==================================
     36The driver and userspace interfaces are described below. The MBIM protocol is
     37described in [1] Mobile Broadband Interface Model v1.0 Errata-1.
     38
     39MBIM control channel userspace ABI
     40----------------------------------
     41
     42/dev/wwan0mbim0 character device
     43~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     44The driver exposes an MBIM interface to the MBIM function by implementing
     45MBIM WWAN Port. The userspace end of the control channel pipe is a
     46/dev/wwan0mbim0 character device. Application shall use this interface for
     47MBIM protocol communication.
     48
     49Fragmentation
     50~~~~~~~~~~~~~
     51The userspace application is responsible for all control message fragmentation
     52and defragmentation as per MBIM specification.
     53
     54/dev/wwan0mbim0 write()
     55~~~~~~~~~~~~~~~~~~~~~~~
     56The MBIM control messages from the management application must not exceed the
     57negotiated control message size.
     58
     59/dev/wwan0mbim0 read()
     60~~~~~~~~~~~~~~~~~~~~~~
     61The management application must accept control messages of up the negotiated
     62control message size.
     63
     64MBIM data channel userspace ABI
     65-------------------------------
     66
     67wwan0-X network device
     68~~~~~~~~~~~~~~~~~~~~~~
     69The IOSM driver exposes IP link interface "wwan0-X" of type "wwan" for IP
     70traffic. Iproute network utility is used for creating "wwan0-X" network
     71interface and for associating it with MBIM IP session. The Driver supports
     72upto 8 IP sessions for simultaneous IP communication.
     73
     74The userspace management application is responsible for creating new IP link
     75prior to establishing MBIM IP session where the SessionId is greater than 0.
     76
     77For example, creating new IP link for a MBIM IP session with SessionId 1:
     78
     79  ip link add dev wwan0-1 parentdev-name wwan0 type wwan linkid 1
     80
     81The driver will automatically map the "wwan0-1" network device to MBIM IP
     82session 1.
     83
     84References
     85==========
     86[1] "MBIM (Mobile Broadband Interface Model) Errata-1"
     87      - https://www.usb.org/document-library/
     88
     89[2] libmbim - "a glib-based library for talking to WWAN modems and
     90      devices which speak the Mobile Interface Broadband Model (MBIM)
     91      protocol"
     92      - http://www.freedesktop.org/wiki/Software/libmbim/
     93
     94[3] Modem Manager - "a DBus-activated daemon which controls mobile
     95      broadband (2G/3G/4G) devices and connections"
     96      - http://www.freedesktop.org/wiki/Software/ModemManager/