€•èDŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”ŒC/translations/zh_CN/networking/device_drivers/ethernet/huawei/hinic”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒC/translations/zh_TW/networking/device_drivers/ethernet/huawei/hinic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒC/translations/it_IT/networking/device_drivers/ethernet/huawei/hinic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒC/translations/ja_JP/networking/device_drivers/ethernet/huawei/hinic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒC/translations/ko_KR/networking/device_drivers/ethernet/huawei/hinic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒC/translations/pt_BR/networking/device_drivers/ethernet/huawei/hinic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒC/translations/sp_SP/networking/device_drivers/ethernet/huawei/hinic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ]/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/huawei/hinic.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒh²hh³hÇh´Kubhï)”}”(hŒ19e5:1822 - HiNIC PF”h]”hŒ19e5:1822 - HiNIC PF”…””}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj>h²hubeh}”(h]”Œ"supported-pci-vendor-id-device-ids”ah ]”h"]”Œ#supported pci vendor id/device ids:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ$Driver Architecture and Source Code:”h]”hŒ$Driver Architecture and Source Code:”…””}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjeh²hh³hÇh´K ubhï)”}”(hŒ|hinic_dev - Implement a Logical Network device that is independent from specific HW details about HW data structure formats.”h]”hŒ|hinic_dev - Implement a Logical Network device that is independent from specific HW details about HW data structure formats.”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K"hjeh²hubhï)”}”(hŒjhinic_hwdev - Implement the HW details of the device and include the components for accessing the PCI NIC.”h]”hŒjhinic_hwdev - Implement the HW details of the device and include the components for accessing the PCI NIC.”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K%hjeh²hubeh}”(h]”Œ#driver-architecture-and-source-code”ah ]”h"]”Œ$driver architecture and source code:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)”}”(hhh]”hÎ)”}”(hŒ.hinic_hwdev contains the following components:”h]”hŒ.hinic_hwdev contains the following components:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjšh²hh³hÇh´K)ubah}”(h]”Œ-hinic-hwdev-contains-the-following-components”ah ]”h"]”Œ.hinic_hwdev contains the following components:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K)ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ HW Interface:”h]”hŒ HW Interface:”…””}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj³h²hh³hÇh´K,ubhï)”}”(hŒdThe interface for accessing the pci device (DMA memory and PCI BARs). (hinic_hw_if.c, hinic_hw_if.h)”h]”hŒdThe interface for accessing the pci device (DMA memory and PCI BARs). (hinic_hw_if.c, hinic_hw_if.h)”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K.hj³h²hubhï)”}”(hŒzConfiguration Status Registers Area that describes the HW Registers on the configuration and status BAR0. (hinic_hw_csr.h)”h]”hŒzConfiguration Status Registers Area that describes the HW Registers on the configuration and status BAR0. (hinic_hw_csr.h)”…””}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K1hj³h²hubeh}”(h]”Œ hw-interface”ah ]”h"]”Œ hw interface:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K,ubhÉ)”}”(hhh]”(hÎ)”}”(hŒMGMT components:”h]”hŒMGMT components:”…””}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjèh²hh³hÇh´K5ubhï)”}”(hŒŽAsynchronous Event Queues(AEQs) - The event queues for receiving messages from the MGMT modules on the cards. (hinic_hw_eqs.c, hinic_hw_eqs.h)”h]”hŒŽAsynchronous Event Queues(AEQs) - The event queues for receiving messages from the MGMT modules on the cards. (hinic_hw_eqs.c, hinic_hw_eqs.h)”…””}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K7hjèh²hubhï)”}”(hŒApplication Programmable Interface commands(API CMD) - Interface for sending MGMT commands to the card. (hinic_hw_api_cmd.c, hinic_hw_api_cmd.h)”h]”hŒApplication Programmable Interface commands(API CMD) - Interface for sending MGMT commands to the card. (hinic_hw_api_cmd.c, hinic_hw_api_cmd.h)”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K:hjèh²hubhï)”}”(hŒùManagement (MGMT) - the PF to MGMT channel that uses API CMD for sending MGMT commands to the card and receives notifications from the MGMT modules on the card by AEQs. Also set the addresses of the IO CMDQs in HW. (hinic_hw_mgmt.c, hinic_hw_mgmt.h)”h]”hŒùManagement (MGMT) - the PF to MGMT channel that uses API CMD for sending MGMT commands to the card and receives notifications from the MGMT modules on the card by AEQs. Also set the addresses of the IO CMDQs in HW. (hinic_hw_mgmt.c, hinic_hw_mgmt.h)”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K=hjèh²hubeh}”(h]”Œmgmt-components”ah ]”h"]”Œmgmt components:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K5ubhÉ)”}”(hhh]”(hÎ)”}”(hŒIO components:”h]”hŒIO components:”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj+h²hh³hÇh´KCubhï)”}”(hŒ†Completion Event Queues(CEQs) - The completion Event Queues that describe IO tasks that are finished. (hinic_hw_eqs.c, hinic_hw_eqs.h)”h]”hŒ†Completion Event Queues(CEQs) - The completion Event Queues that describe IO tasks that are finished. (hinic_hw_eqs.c, hinic_hw_eqs.h)”…””}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KEhj+h²hubhï)”}”(hXWork Queues(WQ) - Contain the memory and operations for use by CMD queues and the Queue Pairs. The WQ is a Memory Block in a Page. The Block contains pointers to Memory Areas that are the Memory for the Work Queue Elements(WQEs). (hinic_hw_wq.c, hinic_hw_wq.h)”h]”hXWork Queues(WQ) - Contain the memory and operations for use by CMD queues and the Queue Pairs. The WQ is a Memory Block in a Page. The Block contains pointers to Memory Areas that are the Memory for the Work Queue Elements(WQEs). (hinic_hw_wq.c, hinic_hw_wq.h)”…””}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KHhj+h²hubhï)”}”(hX Command Queues(CMDQ) - The queues for sending commands for IO management and is used to set the QPs addresses in HW. The commands completion events are accumulated on the CEQ that is configured to receive the CMDQ completion events. (hinic_hw_cmdq.c, hinic_hw_cmdq.h)”h]”hX Command Queues(CMDQ) - The queues for sending commands for IO management and is used to set the QPs addresses in HW. The commands completion events are accumulated on the CEQ that is configured to receive the CMDQ completion events. (hinic_hw_cmdq.c, hinic_hw_cmdq.h)”…””}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KMhj+h²hubhï)”}”(hŒ‰Queue Pairs(QPs) - The HW Receive and Send queues for Receiving and Transmitting Data. (hinic_hw_qp.c, hinic_hw_qp.h, hinic_hw_qp_ctxt.h)”h]”hŒ‰Queue Pairs(QPs) - The HW Receive and Send queues for Receiving and Transmitting Data. (hinic_hw_qp.c, hinic_hw_qp.h, hinic_hw_qp_ctxt.h)”…””}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KRhj+h²hubhï)”}”(hŒHIO - de/constructs all the IO components. (hinic_hw_io.c, hinic_hw_io.h)”h]”hŒHIO - de/constructs all the IO components. (hinic_hw_io.c, hinic_hw_io.h)”…””}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KUhj+h²hubeh}”(h]”Œ io-components”ah ]”h"]”Œio components:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KCubhÉ)”}”(hhh]”(hÎ)”}”(hŒ HW device:”h]”hŒ HW device:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjŠh²hh³hÇh´KXubhï)”}”(hŒÃHW device - de/constructs the HW Interface, the MGMT components on the initialization of the driver and the IO components on the case of Interface UP/DOWN Events. (hinic_hw_dev.c, hinic_hw_dev.h)”h]”hŒÃHW device - de/constructs the HW Interface, the MGMT components on the initialization of the driver and the IO components on the case of Interface UP/DOWN Events. (hinic_hw_dev.c, hinic_hw_dev.h)”…””}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KZhjŠh²hubeh}”(h]”Œ hw-device”ah ]”h"]”Œ hw device:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KXubhÉ)”}”(hhh]”(hÎ)”}”(hŒ,hinic_dev contains the following components:”h]”hŒ,hinic_dev contains the following components:”…””}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj±h²hh³hÇh´K`ubhï)”}”(hŒNPCI ID table - Contains the supported PCI Vendor/Device IDs. (hinic_pci_tbl.h)”h]”hŒNPCI ID table - Contains the supported PCI Vendor/Device IDs. (hinic_pci_tbl.h)”…””}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kbhj±h²hubhï)”}”(hŒvPort Commands - Send commands to the HW device for port management (MAC, Vlan, MTU, ...). (hinic_port.c, hinic_port.h)”h]”hŒvPort Commands - Send commands to the HW device for port management (MAC, Vlan, MTU, ...). (hinic_port.c, hinic_port.h)”…””}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kehj±h²hubhï)”}”(hŒªTx Queues - Logical Tx Queues that use the HW Send Queues for transmit. The Logical Tx queue is not dependent on the format of the HW Send Queue. (hinic_tx.c, hinic_tx.h)”h]”hŒªTx Queues - Logical Tx Queues that use the HW Send Queues for transmit. The Logical Tx queue is not dependent on the format of the HW Send Queue. (hinic_tx.c, hinic_tx.h)”…””}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khhj±h²hubhï)”}”(hŒ¯Rx Queues - Logical Rx Queues that use the HW Receive Queues for receive. The Logical Rx queue is not dependent on the format of the HW Receive Queue. (hinic_rx.c, hinic_rx.h)”h]”hŒ¯Rx Queues - Logical Rx Queues that use the HW Receive Queues for receive. The Logical Rx queue is not dependent on the format of the HW Receive Queue. (hinic_rx.c, hinic_rx.h)”…””}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Klhj±h²hubhï)”}”(hŒShinic_dev - de/constructs the Logical Tx and Rx Queues. (hinic_main.c, hinic_dev.h)”h]”hŒShinic_dev - de/constructs the Logical Tx and Rx Queues. (hinic_main.c, hinic_dev.h)”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kphj±h²hubeh}”(h]”Œ+hinic-dev-contains-the-following-components”ah ]”h"]”Œ,hinic_dev contains the following components:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K`ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Miscellaneous”h]”hŒ Miscellaneous”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´Kuubhï)”}”(hŒYCommon functions that are used by HW and Logical Device. (hinic_common.c, hinic_common.h)”h]”hŒYCommon functions that are used by HW and Logical Device. (hinic_common.c, hinic_common.h)”…””}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kwhjh²hubeh}”(h]”Œ miscellaneous”ah ]”h"]”Œ miscellaneous”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KuubhÉ)”}”(hhh]”(hÎ)”}”(hŒSupport”h]”hŒSupport”…””}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj7h²hh³hÇh´K|ubhï)”}”(hŒ»If an issue is identified with the released source code on the supported kernel with a supported adapter, email the specific information related to the issue to aviad.krawczyk@huawei.com.”h]”(hŒ¡If an issue is identified with the released source code on the supported kernel with a supported adapter, email the specific information related to the issue to ”…””}”(hjHh²hh³Nh´NubhŒ reference”“”)”}”(hŒaviad.krawczyk@huawei.com”h]”hŒaviad.krawczyk@huawei.com”…””}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ mailto:aviad.krawczyk@huawei.com”uh1jPhjHubhŒ.”…””}”(hjHh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K~hj7h²hubeh}”(h]”Œsupport”ah ]”h"]”Œsupport”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K|ubeh}”(h]”Œ;linux-kernel-driver-for-huawei-intelligent-nic-hinic-family”ah ]”h"]”Œj”jej­jšjâj³j%jèj„j+j«jŠj j±j1jjnj7uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.