~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/networking/device_drivers/ethernet/huawei/hinic.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 ============================================================
  4 Linux Kernel Driver for Huawei Intelligent NIC(HiNIC) family
  5 ============================================================
  6 
  7 Overview:
  8 =========
  9 HiNIC is a network interface card for the Data Center Area.
 10 
 11 The driver supports a range of link-speed devices (10GbE, 25GbE, 40GbE, etc.).
 12 The driver supports also a negotiated and extendable feature set.
 13 
 14 Some HiNIC devices support SR-IOV. This driver is used for Physical Function
 15 (PF).
 16 
 17 HiNIC devices support MSI-X interrupt vector for each Tx/Rx queue and
 18 adaptive interrupt moderation.
 19 
 20 HiNIC devices support also various offload features such as checksum offload,
 21 TCP Transmit Segmentation Offload(TSO), Receive-Side Scaling(RSS) and
 22 LRO(Large Receive Offload).
 23 
 24 
 25 Supported PCI vendor ID/device IDs:
 26 ===================================
 27 
 28 19e5:1822 - HiNIC PF
 29 
 30 
 31 Driver Architecture and Source Code:
 32 ====================================
 33 
 34 hinic_dev - Implement a Logical Network device that is independent from
 35 specific HW details about HW data structure formats.
 36 
 37 hinic_hwdev - Implement the HW details of the device and include the components
 38 for accessing the PCI NIC.
 39 
 40 hinic_hwdev contains the following components:
 41 ===============================================
 42 
 43 HW Interface:
 44 =============
 45 
 46 The interface for accessing the pci device (DMA memory and PCI BARs).
 47 (hinic_hw_if.c, hinic_hw_if.h)
 48 
 49 Configuration Status Registers Area that describes the HW Registers on the
 50 configuration and status BAR0. (hinic_hw_csr.h)
 51 
 52 MGMT components:
 53 ================
 54 
 55 Asynchronous Event Queues(AEQs) - The event queues for receiving messages from
 56 the MGMT modules on the cards. (hinic_hw_eqs.c, hinic_hw_eqs.h)
 57 
 58 Application Programmable Interface commands(API CMD) - Interface for sending
 59 MGMT commands to the card. (hinic_hw_api_cmd.c, hinic_hw_api_cmd.h)
 60 
 61 Management (MGMT) - the PF to MGMT channel that uses API CMD for sending MGMT
 62 commands to the card and receives notifications from the MGMT modules on the
 63 card by AEQs. Also set the addresses of the IO CMDQs in HW.
 64 (hinic_hw_mgmt.c, hinic_hw_mgmt.h)
 65 
 66 IO components:
 67 ==============
 68 
 69 Completion Event Queues(CEQs) - The completion Event Queues that describe IO
 70 tasks that are finished. (hinic_hw_eqs.c, hinic_hw_eqs.h)
 71 
 72 Work Queues(WQ) - Contain the memory and operations for use by CMD queues and
 73 the Queue Pairs. The WQ is a Memory Block in a Page. The Block contains
 74 pointers to Memory Areas that are the Memory for the Work Queue Elements(WQEs).
 75 (hinic_hw_wq.c, hinic_hw_wq.h)
 76 
 77 Command Queues(CMDQ) - The queues for sending commands for IO management and is
 78 used to set the QPs addresses in HW. The commands completion events are
 79 accumulated on the CEQ that is configured to receive the CMDQ completion events.
 80 (hinic_hw_cmdq.c, hinic_hw_cmdq.h)
 81 
 82 Queue Pairs(QPs) - The HW Receive and Send queues for Receiving and Transmitting
 83 Data. (hinic_hw_qp.c, hinic_hw_qp.h, hinic_hw_qp_ctxt.h)
 84 
 85 IO - de/constructs all the IO components. (hinic_hw_io.c, hinic_hw_io.h)
 86 
 87 HW device:
 88 ==========
 89 
 90 HW device - de/constructs the HW Interface, the MGMT components on the
 91 initialization of the driver and the IO components on the case of Interface
 92 UP/DOWN Events. (hinic_hw_dev.c, hinic_hw_dev.h)
 93 
 94 
 95 hinic_dev contains the following components:
 96 ===============================================
 97 
 98 PCI ID table - Contains the supported PCI Vendor/Device IDs.
 99 (hinic_pci_tbl.h)
100 
101 Port Commands - Send commands to the HW device for port management
102 (MAC, Vlan, MTU, ...). (hinic_port.c, hinic_port.h)
103 
104 Tx Queues - Logical Tx Queues that use the HW Send Queues for transmit.
105 The Logical Tx queue is not dependent on the format of the HW Send Queue.
106 (hinic_tx.c, hinic_tx.h)
107 
108 Rx Queues - Logical Rx Queues that use the HW Receive Queues for receive.
109 The Logical Rx queue is not dependent on the format of the HW Receive Queue.
110 (hinic_rx.c, hinic_rx.h)
111 
112 hinic_dev - de/constructs the Logical Tx and Rx Queues.
113 (hinic_main.c, hinic_dev.h)
114 
115 
116 Miscellaneous
117 =============
118 
119 Common functions that are used by HW and Logical Device.
120 (hinic_common.c, hinic_common.h)
121 
122 
123 Support
124 =======
125 
126 If an issue is identified with the released source code on the supported kernel
127 with a supported adapter, email the specific information related to the issue to
128 aviad.krawczyk@huawei.com.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php