/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ /* QLogic qed NIC Driver *Copyright(c)2015-2017QLogicCorporation *Copyright(c)2019-2020MarvellInternationalLtd.
*/
struct qed_public_vf_info { /* These copies will later be reflected in the bulletin board, *butthiscopyshouldbenewer.
*/
u8 forced_mac[ETH_ALEN];
u16 forced_vlan;
u8 mac[ETH_ALEN];
/* IFLA_VF_LINK_STATE_<X> */ int link_state;
/* Currently configured Tx rate in MB/sec. 0 if unconfigured */ int tx_rate;
/* Number of requested Queues; Currently, don't support different *numberofRx/Txqueues.
*/
u16 num_queues;
/* Allow the client to choose which qzones to use for Rx/Tx, *andwhichqueue_basetouseforTxqueuesonaper-queuebasis. *NoticevaluesshouldberelativetothePFresources.
*/
u16 req_rx_queue[QED_MAX_VF_CHAINS_PER_PF];
u16 req_tx_queue[QED_MAX_VF_CHAINS_PER_PF];
};
/* This struct is part of qed_dev and contains data relevant to all hwfns; *InitializedonlyifSR-IOVcpababilityisexposedinPCIeconfigspace.
*/ struct qed_hw_sriov_info { int pos; /* capability position */ int nres; /* number of resources */
u32 cap; /* SR-IOV Capabilities */
u16 ctrl; /* SR-IOV Control */
u16 total_vfs; /* total VFs associated with the PF */
u16 num_vfs; /* number of vfs that have been started */
u16 initial_vfs; /* initial VFs associated with the PF */
u16 nr_virtfn; /* number of VFs available */
u16 offset; /* first VF Routing ID offset */
u16 stride; /* following VF stride */
u16 vf_device_id; /* VF device id */
u32 pgsz; /* page size for BAR alignment */
u8 link; /* Function Dependency Link */
u32 first_vf_in_pf;
};
/* This mailbox is maintained per VF in its PF contains all information *requiredforsending/receivingamessage.
*/ struct qed_iov_vf_mbx { union vfpf_tlvs *req_virt;
dma_addr_t req_phys; union pfvf_tlvs *reply_virt;
dma_addr_t reply_phys;
/* Address in VF where a pending message is located */
dma_addr_t pending_req;
/* Message from VF awaits handling */ bool b_pending_msg;
/* Stores the configuration requested by VF */ struct qed_vf_shadow_config shadow_config;
/* A bitfield using bulletin's valid-map bits, used to indicate *whichofthebulletinboardfeatureshavebeenconfigured.
*/
u64 configured_features; #define QED_IOV_CONFIGURED_FEATURES_MASK ((1 << MAC_ADDR_FORCED) | \
(1 << VLAN_ADDR_FORCED))
};
/* This structure is part of qed_hwfn and used only for PFs that have sriov *capabilityenabled.
*/ struct qed_pf_iov { struct qed_vf_info vfs_array[MAX_NUM_VFS];
u64 pending_flr[QED_VF_ARRAY_LENGTH];
/* Allocate message address continuosuly and split to each VF */ void *mbx_msg_virt_addr;
dma_addr_t mbx_msg_phys_addr;
u32 mbx_msg_size; void *mbx_reply_virt_addr;
dma_addr_t mbx_reply_phys_addr;
u32 mbx_reply_size; void *p_bulletins;
dma_addr_t bulletins_phys;
u32 bulletins_size;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.