net/octeontx2: support CN98xx
[dpdk.git] / doc / guides / platform / octeontx2.rst
index 3a5e030..13255ee 100644 (file)
@@ -13,6 +13,7 @@ More information about OCTEON TX2 SoC can be found at `Marvell Official Website
 Supported OCTEON TX2 SoCs
 -------------------------
 
+- CN98xx
 - CN96xx
 - CN93xx
 
@@ -60,6 +61,12 @@ DPDK subsystem.
    +---+-----+--------------------------------------------------------------+
    | 6 | TIM | rte_event_timer_adapter                                      |
    +---+-----+--------------------------------------------------------------+
+   | 7 | LBK | rte_ethdev                                                   |
+   +---+-----+--------------------------------------------------------------+
+   | 8 | DPI | rte_rawdev                                                   |
+   +---+-----+--------------------------------------------------------------+
+   | 9 | SDP | rte_ethdev                                                   |
+   +---+-----+--------------------------------------------------------------+
 
 PF0 is called the administrative / admin function (AF) and has exclusive
 privileges to provision RVU functional block's LFs to each of the PF/VF.
@@ -81,6 +88,42 @@ resource provisioning example where,
 2. PFx-VF1 ethdev driver bound to the first DPDK application.
 3. PFy ethdev driver, PFy-VF0 ethdev driver, PFz eventdev driver, PFm-VF0 cryptodev driver bound to the second DPDK application.
 
+LBK HW Access
+-------------
+
+Loopback HW Unit (LBK) receives packets from NIX-RX and sends packets back to NIX-TX.
+The loopback block has N channels and contains data buffering that is shared across
+all channels. The LBK HW Unit is abstracted using ethdev subsystem, Where PF0's
+VFs are exposed as ethdev device and odd-even pairs of VFs are tied together,
+that is, packets sent on odd VF end up received on even VF and vice versa.
+This would enable HW accelerated means of communication between two domains
+where even VF bound to the first domain and odd VF bound to the second domain.
+
+Typical application usage models are,
+
+#. Communication between the Linux kernel and DPDK application.
+#. Exception path to Linux kernel from DPDK application as SW ``KNI`` replacement.
+#. Communication between two different DPDK applications.
+
+SDP interface
+-------------
+
+System DPI Packet Interface unit(SDP) provides PCIe endpoint support for remote host
+to DMA packets into and out of OCTEON TX2 SoC. SDP interface comes in to live only when
+OCTEON TX2 SoC is connected in PCIe endpoint mode. It can be used to send/receive
+packets to/from remote host machine using input/output queue pairs exposed to it.
+SDP interface receives input packets from remote host from NIX-RX and sends packets
+to remote host using NIX-TX. Remote host machine need to use corresponding driver
+(kernel/user mode) to communicate with SDP interface on OCTEON TX2 SoC. SDP supports
+single PCIe SRIOV physical function(PF) and multiple virtual functions(VF's). Users
+can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports.
+
+The primary use case for SDP is to enable the smart NIC use case. Typical usage models are,
+
+#. Communication channel between remote host and OCTEON TX2 SoC over PCIe.
+#. Transfer packets received from network interface to remote host over PCIe and
+   vice-versa.
+
 OCTEON TX2 packet flow
 ----------------------
 
@@ -98,6 +141,20 @@ HW Offload Drivers
 
 This section lists dataplane H/W block(s) available in OCTEON TX2 SoC.
 
+#. **Ethdev Driver**
+   See :doc:`../nics/octeontx2` for NIX Ethdev driver information.
+
+#. **Mempool Driver**
+   See :doc:`../mempool/octeontx2` for NPA mempool driver information.
+
+#. **Event Device Driver**
+   See :doc:`../eventdevs/octeontx2` for SSO event device driver information.
+
+#. **DMA Rawdev Driver**
+   See :doc:`../rawdevs/octeontx2_dma` for DMA driver information.
+
+#. **Crypto Device Driver**
+   See :doc:`../cryptodevs/octeontx2` for CPT crypto device driver information.
 
 Procedure to Setup Platform
 ---------------------------
@@ -141,6 +198,8 @@ compatible board:
         # Enable if netdev VF driver required
         CONFIG_OCTEONTX2_VF=y
         CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=y
+        # Enable if OCTEONTX2 DMA PF driver required
+        CONFIG_OCTEONTX2_DPI_PF=n
 
 2. **ARM64 Linux Tool Chain**
 
@@ -201,54 +260,54 @@ The file structure under ``/sys/kernel/debug`` is as follows
 .. code-block:: console
 
         octeontx2/
-        ├── cgx
-        │   ├── cgx0
-        │   │   └── lmac0
-        │   │       └── stats
-        │   ├── cgx1
-        │   │   ├── lmac0
-        │   │   │   └── stats
-        │   │   └── lmac1
-        │   │       └── stats
-        │   └── cgx2
-        │       └── lmac0
-        │           └── stats
-        ├── cpt
-        │   ├── cpt_engines_info
-        │   ├── cpt_engines_sts
-        │   ├── cpt_err_info
-        │   ├── cpt_lfs_info
-        │   └── cpt_pc
-        ├──── nix
-        │   ├── cq_ctx
-        │   ├── ndc_rx_cache
-        │   ├── ndc_rx_hits_miss
-        │   ├── ndc_tx_cache
-        │   ├── ndc_tx_hits_miss
-        │   ├── qsize
-        │   ├── rq_ctx
-        │   ├── sq_ctx
-        │   └── tx_stall_hwissue
-        ├── npa
-        │   ├── aura_ctx
-        │   ├── ndc_cache
-        │   ├── ndc_hits_miss
-        │   ├── pool_ctx
-        │   └── qsize
-        ├── npc
-        │    ├── mcam_info
-        │    └── rx_miss_act_stats
-        ├── rsrc_alloc
-        └── sso
-             ├── hws
-             │   └── sso_hws_info
-             └── hwgrp
-                 ├── sso_hwgrp_aq_thresh
-                 ├── sso_hwgrp_iaq_walk
-                 ├── sso_hwgrp_pc
-                 ├── sso_hwgrp_free_list_walk
-                 ├── sso_hwgrp_ient_walk
-                 └── sso_hwgrp_taq_walk
+        |-- cgx
+        |   |-- cgx0
+        |   |   '-- lmac0
+        |   |       '-- stats
+        |   |-- cgx1
+        |   |   |-- lmac0
+        |   |   |   '-- stats
+        |   |   '-- lmac1
+        |   |       '-- stats
+        |   '-- cgx2
+        |       '-- lmac0
+        |           '-- stats
+        |-- cpt
+        |   |-- cpt_engines_info
+        |   |-- cpt_engines_sts
+        |   |-- cpt_err_info
+        |   |-- cpt_lfs_info
+        |   '-- cpt_pc
+        |---- nix
+        |   |-- cq_ctx
+        |   |-- ndc_rx_cache
+        |   |-- ndc_rx_hits_miss
+        |   |-- ndc_tx_cache
+        |   |-- ndc_tx_hits_miss
+        |   |-- qsize
+        |   |-- rq_ctx
+        |   |-- sq_ctx
+        |   '-- tx_stall_hwissue
+        |-- npa
+        |   |-- aura_ctx
+        |   |-- ndc_cache
+        |   |-- ndc_hits_miss
+        |   |-- pool_ctx
+        |   '-- qsize
+        |-- npc
+        |    |-- mcam_info
+        |    '-- rx_miss_act_stats
+        |-- rsrc_alloc
+        '-- sso
+             |-- hws
+             |   '-- sso_hws_info
+             '-- hwgrp
+                 |-- sso_hwgrp_aq_thresh
+                 |-- sso_hwgrp_iaq_walk
+                 |-- sso_hwgrp_pc
+                 |-- sso_hwgrp_free_list_walk
+                 |-- sso_hwgrp_ient_walk
+                 '-- sso_hwgrp_taq_walk
 
 RVU block LF allocation: