lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211101035635.26999-1-ricardo.martinez@linux.intel.com>
Date:   Sun, 31 Oct 2021 20:56:21 -0700
From:   Ricardo Martinez <ricardo.martinez@...ux.intel.com>
To:     netdev@...r.kernel.org, linux-wireless@...r.kernel.org
Cc:     kuba@...nel.org, davem@...emloft.net, johannes@...solutions.net,
        ryazanov.s.a@...il.com, loic.poulain@...aro.org,
        m.chetan.kumar@...el.com, chandrashekar.devegowda@...el.com,
        linuxwwan@...el.com, chiranjeevi.rapolu@...ux.intel.com,
        haijun.liu@...iatek.com, amir.hanania@...el.com,
        andriy.shevchenko@...ux.intel.com, dinesh.sharma@...el.com,
        eliot.lee@...el.com, mika.westerberg@...ux.intel.com,
        moises.veleta@...el.com, pierre-louis.bossart@...el.com,
        muralidharan.sethuraman@...el.com, Soumya.Prakash.Mishra@...el.com,
        sreehari.kancharla@...el.com, suresh.nagaraj@...el.com,
        Ricardo Martinez <ricardo.martinez@...ux.intel.com>
Subject: [PATCH v2 00/14] net: wwan: t7xx: PCIe driver for MediaTek M.2 modem

t7xx is the PCIe host device driver for Intel 5G 5000 M.2 solution which
is based on MediaTek's T700 modem to provide WWAN connectivity.
The driver uses the WWAN framework infrastructure to create the following
control ports and network interfaces:
* /dev/wwan0mbim0 - Interface conforming to the MBIM protocol.
  Applications like libmbim [1] or Modem Manager [2] from v1.16 onwards
  with [3][4] can use it to enable data communication towards WWAN.
* /dev/wwan0at0 - Interface that supports AT commands.
* wwan0 - Primary network interface for IP traffic.

The main blocks in t7xx driver are:
* PCIe layer - Implements probe, removal, and power management callbacks.
* Port-proxy - Provides a common interface to interact with different types
  of ports such as WWAN ports.
* Modem control & status monitor - Implements the entry point for modem
  initialization, reset and exit, as well as exception handling.
* CLDMA (Control Layer DMA) - Manages the HW used by the port layer to send
  control messages to the modem using MediaTek's CCCI (Cross-Core
  Communication Interface) protocol.
* DPMAIF (Data Plane Modem AP Interface) - Controls the HW that provides
  uplink and downlink queues for the data path. The data exchange takes
  place using circular buffers to share data buffer addresses and metadata
  to describe the packets.
* MHCCIF (Modem Host Cross-Core Interface) - Provides interrupt channels
  for bidirectional event notification such as handshake, exception, PM and
  port enumeration.

The compilation of the t7xx driver is enabled by the CONFIG_MTK_T7XX config
option which depends on CONFIG_WWAN.
This driver was originally developed by MediaTek. Intel adapted t7xx to
the WWAN framework, optimized and refactored the driver source in close
collaboration with MediaTek. This will enable getting the t7xx driver on
Approved Vendor List for interested OEM's and ODM's productization plans
with Intel 5G 5000 M.2 solution.

List of contributors:
Amir Hanania <amir.hanania@...el.com>
Andriy Shevchenko <andriy.shevchenko@...ux.intel.com>
Chandrashekar Devegowda <chandrashekar.devegowda@...el.com>
Dinesh Sharma <dinesh.sharma@...el.com>
Eliot Lee <eliot.lee@...el.com>
Haijun Liu <haijun.liu@...iatek.com>
M Chetan Kumar <m.chetan.kumar@...el.com>
Mika Westerberg <mika.westerberg@...ux.intel.com>
Moises Veleta <moises.veleta@...el.com>
Pierre-louis Bossart <pierre-louis.bossart@...el.com>
Chiranjeevi Rapolu <chiranjeevi.rapolu@...el.com>
Ricardo Martinez <ricardo.martinez@...ux.intel.com>
Muralidharan Sethuraman <muralidharan.sethuraman@...el.com>
Soumya Prakash Mishra <Soumya.Prakash.Mishra@...el.com>
Sreehari Kancharla <sreehari.kancharla@...el.com>
Suresh Nagaraj <suresh.nagaraj@...el.com>

[1] https://www.freedesktop.org/software/libmbim/
[2] https://www.freedesktop.org/software/ModemManager/
[3] https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/582
[4] https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/523

v2:
- Replace pdev->driver->name with dev_driver_string(&pdev->dev).
- Replace random_ether_addr() with eth_random_addr().
- Update kernel-doc comment for enum data_policy.
- Indicate the driver is 'Supported' instead of 'Maintained'.
- Fix the Signed-of-by and Co-developed-by tags in the patches.
- Added authors and contributors in the top comment of the src files.

Chandrashekar Devegowda (1):
  net: wwan: t7xx: Add AT and MBIM WWAN ports

Haijun Lio (11):
  net: wwan: t7xx: Add control DMA interface
  net: wwan: t7xx: Add core components
  net: wwan: t7xx: Add port proxy infrastructure
  net: wwan: t7xx: Add control port
  net: wwan: t7xx: Data path HW layer
  net: wwan: t7xx: Add data path interface
  net: wwan: t7xx: Add WWAN network interface
  net: wwan: t7xx: Introduce power management support
  net: wwan: t7xx: Runtime PM
  net: wwan: t7xx: Device deep sleep lock/unlock
  net: wwan: t7xx: Add debug and test ports

Ricardo Martinez (2):
  net: wwan: Add default MTU size
  net: wwan: t7xx: Add maintainers and documentation

 .../networking/device_drivers/wwan/index.rst  |    1 +
 .../networking/device_drivers/wwan/t7xx.rst   |  120 ++
 MAINTAINERS                                   |   11 +
 drivers/net/wwan/Kconfig                      |   14 +
 drivers/net/wwan/Makefile                     |    1 +
 drivers/net/wwan/t7xx/Makefile                |   24 +
 drivers/net/wwan/t7xx/t7xx_cldma.c            |  277 +++
 drivers/net/wwan/t7xx/t7xx_cldma.h            |  168 ++
 drivers/net/wwan/t7xx/t7xx_common.h           |   76 +
 drivers/net/wwan/t7xx/t7xx_dpmaif.c           | 1524 +++++++++++++++
 drivers/net/wwan/t7xx/t7xx_dpmaif.h           |  168 ++
 drivers/net/wwan/t7xx/t7xx_hif_cldma.c        | 1663 +++++++++++++++++
 drivers/net/wwan/t7xx/t7xx_hif_cldma.h        |  156 ++
 drivers/net/wwan/t7xx/t7xx_hif_dpmaif.c       |  638 +++++++
 drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h       |  279 +++
 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c    | 1562 ++++++++++++++++
 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.h    |  117 ++
 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c    |  842 +++++++++
 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.h    |   82 +
 drivers/net/wwan/t7xx/t7xx_mhccif.c           |  124 ++
 drivers/net/wwan/t7xx/t7xx_mhccif.h           |   35 +
 drivers/net/wwan/t7xx/t7xx_modem_ops.c        |  747 ++++++++
 drivers/net/wwan/t7xx/t7xx_modem_ops.h        |   92 +
 drivers/net/wwan/t7xx/t7xx_monitor.h          |  147 ++
 drivers/net/wwan/t7xx/t7xx_netdev.c           |  545 ++++++
 drivers/net/wwan/t7xx/t7xx_netdev.h           |   63 +
 drivers/net/wwan/t7xx/t7xx_pci.c              |  789 ++++++++
 drivers/net/wwan/t7xx/t7xx_pci.h              |  121 ++
 drivers/net/wwan/t7xx/t7xx_pcie_mac.c         |  277 +++
 drivers/net/wwan/t7xx/t7xx_pcie_mac.h         |   36 +
 drivers/net/wwan/t7xx/t7xx_port.h             |  163 ++
 drivers/net/wwan/t7xx/t7xx_port_char.c        |  424 +++++
 drivers/net/wwan/t7xx/t7xx_port_ctrl_msg.c    |  150 ++
 drivers/net/wwan/t7xx/t7xx_port_proxy.c       |  829 ++++++++
 drivers/net/wwan/t7xx/t7xx_port_proxy.h       |  102 +
 drivers/net/wwan/t7xx/t7xx_port_tty.c         |  191 ++
 drivers/net/wwan/t7xx/t7xx_port_wwan.c        |  281 +++
 drivers/net/wwan/t7xx/t7xx_reg.h              |  398 ++++
 drivers/net/wwan/t7xx/t7xx_skb_util.c         |  362 ++++
 drivers/net/wwan/t7xx/t7xx_skb_util.h         |  110 ++
 drivers/net/wwan/t7xx/t7xx_state_monitor.c    |  627 +++++++
 drivers/net/wwan/t7xx/t7xx_tty_ops.c          |  205 ++
 drivers/net/wwan/t7xx/t7xx_tty_ops.h          |   44 +
 include/linux/wwan.h                          |    5 +
 44 files changed, 14590 insertions(+)
 create mode 100644 Documentation/networking/device_drivers/wwan/t7xx.rst
 create mode 100644 drivers/net/wwan/t7xx/Makefile
 create mode 100644 drivers/net/wwan/t7xx/t7xx_cldma.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_cldma.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_common.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_dpmaif.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_dpmaif.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_cldma.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_cldma.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_mhccif.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_mhccif.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_modem_ops.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_modem_ops.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_monitor.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_netdev.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_netdev.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_pci.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_pci.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_pcie_mac.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_pcie_mac.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_port.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_port_char.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_port_ctrl_msg.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_port_proxy.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_port_proxy.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_port_tty.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_port_wwan.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_reg.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_skb_util.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_skb_util.h
 create mode 100644 drivers/net/wwan/t7xx/t7xx_state_monitor.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_tty_ops.c
 create mode 100644 drivers/net/wwan/t7xx/t7xx_tty_ops.h

-- 
2.17.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ