netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v1 00/13] net: wwan: tmi: PCIe driver for MediaTek M.2 modem
@ 2022-11-22 11:11 Yanchao Yang
  2022-11-22 11:11 ` [PATCH net-next v1 01/13] net: wwan: tmi: Add PCIe core Yanchao Yang
                   ` (8 more replies)
  0 siblings, 9 replies; 22+ messages in thread
From: Yanchao Yang @ 2022-11-22 11:11 UTC (permalink / raw)
  To: Loic Poulain, Sergey Ryazanov, Johannes Berg, David S . Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev ML, kernel ML
  Cc: MTK ML, Liang Lu, Haijun Liu, Hua Yang, Ting Wang, Felix Chen,
	Mingliang Xu, Min Dong, Aiden Wang, Guohao Zhang, Chris Feng,
	Yanchao Yang, Lambert Wang, Mingchuang Qiao, Xiayu Zhang,
	Haozhe Chang, MediaTek Corporation

From: MediaTek Corporation <linuxwwan@mediatek.com>

TMI(T-series Modem Interface) is the PCIe host device driver for MediaTek's
modem. The driver uses the WWAN framework infrastructure to create the
following control ports and network interfaces for data transactions.
* /dev/wwan0at0 - Interface that supports AT commands.
* /dev/wwan0mbim0 - Interface conforming to the MBIM protocol.
* wwan0-X - Primary network interface for IP traffic.

The main blocks in the TMI driver are:
* HW layer - Abstracts the hardware bus operations for the device, and
   provides generic interfaces for the transaction layer to get the device's
   information and control the device's behavior. It includes:

   * PCIe - Implements probe, removal and interrupt handling.
   * MHCCIF (Modem Host Cross-Core Interface) - Provides interrupt channels
     for bidirectional event notification such as handshake, exception,
     power management and port enumeration.
   * RGU (Reset General Unit) - Receives reset notification from device.

* Transaction layer - Implements data transactions for the control plane
   and the data plane. It includes:

   * DPMAIF (Data Plane Modem AP Interface) - Controls the hardware 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.
   * CLDMA (Cross Layer DMA) - Manages the hardware used by the port layer
     to send control messages to the device using MediaTek's CCCI (Cross-Core
     Communication Interface) protocol.
   * TX Services - Dispatch packets from the port layer to the device.
   * RX Services - Dispatch packets to the port layer when receiving packets
     from the device.

* Port layer - Provides control plane and data plane interfaces to userspace.
   It includes:

   * Control Plane - Provides device node interfaces for controlling data
     transactions.
   * Data Plane - Provides network link interfaces wwanX (0, 1, 2...) for IP
     data transactions.

* Core logic - Contains the core logic to keep the device working.
   It includes:

   * FSM (Finite State Machine) - Monitors the state of the device, and
     notifies each module when the state changes.
   * PM (Power Management) - Reduces power consumption by putting the device
     into low power state.
   * Exception - Monitors exception events and tries to recover the device.

The compilation of the TMI driver is enabled by the CONFIG_MTK_TMI config
option which depends on CONFIG_WWAN.

List of contributors:
Min Dong <min.dong@mediatek.com>
Ting Wang <ting.wang@mediatek.com>
Hua Yang <hua.yang@mediatek.com>
Mingliang Xu <mingliang.xu@mediatek.com>
Felix Chen <felix.chen@mediatek.com>
Aiden Wang <aiden.wang@mediatek.com>
Guohao Zhang <guohao.zhang@mediatek.com>
Chris Feng <chris.feng@mediatek.com>
Michael Cai <michael.cai@mediatek.com>
Lambert Wang <lambert.wang@mediatek.com>
Mingchuang Qiao <mingchuang.qiao@mediatek.com>
Xiayu Zhang <xiayu.zhang@mediatek.com>
Haozhe Chang <haozhe.chang@mediatek.com>

MediaTek Corporation (13):
  net: wwan: tmi: Add PCIe core
  net: wwan: tmi: Add buffer management
  net: wwan: tmi: Add control plane transaction layer
  net: wwan: tmi: Add control DMA interface
  net: wwan: tmi: Add control port
  net: wwan: tmi: Add FSM thread
  net: wwan: tmi: Add AT & MBIM WWAN ports
  net: wwan: tmi: Introduce data plane hardware interface
  net: wwan: tmi: Add data plane transaction layer
  net: wwan: tmi: Introduce WWAN interface
  net: wwan: tmi: Add exception handling service
  net: wwan: tmi: Add power management support
  net: wwan: tmi: Add maintainers and documentation

 .../networking/device_drivers/wwan/index.rst  |    1 +
 .../networking/device_drivers/wwan/tmi.rst    |   48 +
 MAINTAINERS                                   |   11 +
 drivers/net/wwan/Kconfig                      |   11 +
 drivers/net/wwan/Makefile                     |    1 +
 drivers/net/wwan/mediatek/Makefile            |   25 +
 drivers/net/wwan/mediatek/mtk_bm.c            |  369 ++
 drivers/net/wwan/mediatek/mtk_bm.h            |   79 +
 drivers/net/wwan/mediatek/mtk_cldma.c         |  354 ++
 drivers/net/wwan/mediatek/mtk_cldma.h         |  162 +
 drivers/net/wwan/mediatek/mtk_common.h        |   30 +
 drivers/net/wwan/mediatek/mtk_ctrl_plane.c    |  508 ++
 drivers/net/wwan/mediatek/mtk_ctrl_plane.h    |  118 +
 drivers/net/wwan/mediatek/mtk_data_plane.h    |  124 +
 drivers/net/wwan/mediatek/mtk_dev.c           |  103 +
 drivers/net/wwan/mediatek/mtk_dev.h           |  713 +++
 drivers/net/wwan/mediatek/mtk_dpmaif.c        | 4237 +++++++++++++++++
 drivers/net/wwan/mediatek/mtk_dpmaif_drv.h    |  277 ++
 drivers/net/wwan/mediatek/mtk_ethtool.c       |  179 +
 drivers/net/wwan/mediatek/mtk_except.c        |  176 +
 drivers/net/wwan/mediatek/mtk_fsm.c           | 1321 +++++
 drivers/net/wwan/mediatek/mtk_fsm.h           |  178 +
 drivers/net/wwan/mediatek/mtk_pm.c            | 1004 ++++
 drivers/net/wwan/mediatek/mtk_port.c          | 1349 ++++++
 drivers/net/wwan/mediatek/mtk_port.h          |  305 ++
 drivers/net/wwan/mediatek/mtk_port_io.c       |  767 +++
 drivers/net/wwan/mediatek/mtk_port_io.h       |   86 +
 drivers/net/wwan/mediatek/mtk_wwan.c          |  665 +++
 .../wwan/mediatek/pcie/mtk_cldma_drv_t800.c   | 1049 ++++
 .../wwan/mediatek/pcie/mtk_cldma_drv_t800.h   |   24 +
 .../wwan/mediatek/pcie/mtk_dpmaif_drv_t800.c  | 2115 ++++++++
 .../wwan/mediatek/pcie/mtk_dpmaif_reg_t800.h  |  368 ++
 drivers/net/wwan/mediatek/pcie/mtk_pci.c      | 1356 ++++++
 drivers/net/wwan/mediatek/pcie/mtk_pci.h      |  150 +
 drivers/net/wwan/mediatek/pcie/mtk_reg.h      |   84 +
 35 files changed, 18347 insertions(+)
 create mode 100644 Documentation/networking/device_drivers/wwan/tmi.rst
 create mode 100644 drivers/net/wwan/mediatek/Makefile
 create mode 100644 drivers/net/wwan/mediatek/mtk_bm.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_bm.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_cldma.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_cldma.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_common.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_ctrl_plane.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_ctrl_plane.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_data_plane.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_dev.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_dev.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_dpmaif.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_dpmaif_drv.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_ethtool.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_except.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_fsm.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_fsm.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_pm.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_port.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_port.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_port_io.c
 create mode 100644 drivers/net/wwan/mediatek/mtk_port_io.h
 create mode 100644 drivers/net/wwan/mediatek/mtk_wwan.c
 create mode 100644 drivers/net/wwan/mediatek/pcie/mtk_cldma_drv_t800.c
 create mode 100644 drivers/net/wwan/mediatek/pcie/mtk_cldma_drv_t800.h
 create mode 100644 drivers/net/wwan/mediatek/pcie/mtk_dpmaif_drv_t800.c
 create mode 100644 drivers/net/wwan/mediatek/pcie/mtk_dpmaif_reg_t800.h
 create mode 100644 drivers/net/wwan/mediatek/pcie/mtk_pci.c
 create mode 100644 drivers/net/wwan/mediatek/pcie/mtk_pci.h
 create mode 100644 drivers/net/wwan/mediatek/pcie/mtk_reg.h

-- 
2.32.0


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2023-01-11 13:40 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-22 11:11 [PATCH net-next v1 00/13] net: wwan: tmi: PCIe driver for MediaTek M.2 modem Yanchao Yang
2022-11-22 11:11 ` [PATCH net-next v1 01/13] net: wwan: tmi: Add PCIe core Yanchao Yang
2022-11-24 11:06   ` AngeloGioacchino Del Regno
2022-12-05 12:40     ` Yanchao Yang (杨彦超)
2022-12-05 12:47       ` AngeloGioacchino Del Regno
2022-12-26  1:43     ` Yanchao Yang (杨彦超)
2022-12-04 18:52   ` Sergey Ryazanov
2022-12-07  2:33     ` Yanchao Yang (杨彦超)
2022-12-16 20:40       ` Sergey Ryazanov
2023-01-11 13:33         ` Yanchao Yang (杨彦超)
2022-11-22 11:11 ` [PATCH net-next v1 02/13] net: wwan: tmi: Add buffer management Yanchao Yang
2022-12-04 18:58   ` Sergey Ryazanov
2022-12-09 10:26     ` Yanchao Yang (杨彦超)
2022-12-16 20:17       ` Sergey Ryazanov
2023-01-11 13:37         ` Yanchao Yang (杨彦超)
2022-11-22 11:11 ` [PATCH net-next v1 03/13] net: wwan: tmi: Add control plane transaction layer Yanchao Yang
2022-11-22 11:11 ` [PATCH net-next v1 04/13] net: wwan: tmi: Add control DMA interface Yanchao Yang
2022-11-22 11:11 ` [PATCH net-next v1 05/13] net: wwan: tmi: Add control port Yanchao Yang
2022-11-22 11:11 ` [PATCH net-next v1 06/13] net: wwan: tmi: Add FSM thread Yanchao Yang
2022-11-22 11:11 ` [PATCH net-next v1 07/13] net: wwan: tmi: Add AT & MBIM WWAN ports Yanchao Yang
2022-11-22 11:11 ` [PATCH net-next v1 08/13] net: wwan: tmi: Introduce data plane hardware interface Yanchao Yang
2022-11-22 11:11 ` [PATCH net-next v1 09/13] net: wwan: tmi: Add data plane transaction layer Yanchao Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).