X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fifc%2Fbase%2Fifcvf.h;fp=drivers%2Fnet%2Fifc%2Fbase%2Fifcvf.h;h=0000000000000000000000000000000000000000;hb=5c060bf17816a1bf802044346476a7754d8d9eeb;hp=9be2770fea9b64e22467ad3a39207e59329242c1;hpb=6222035e1af43c1c1d588eb0cc5004d62591e1b4;p=dpdk.git diff --git a/drivers/net/ifc/base/ifcvf.h b/drivers/net/ifc/base/ifcvf.h deleted file mode 100644 index 9be2770fea..0000000000 --- a/drivers/net/ifc/base/ifcvf.h +++ /dev/null @@ -1,162 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2018 Intel Corporation - */ - -#ifndef _IFCVF_H_ -#define _IFCVF_H_ - -#include "ifcvf_osdep.h" - -#define IFCVF_VENDOR_ID 0x1AF4 -#define IFCVF_DEVICE_ID 0x1041 -#define IFCVF_SUBSYS_VENDOR_ID 0x8086 -#define IFCVF_SUBSYS_DEVICE_ID 0x001A - -#define IFCVF_MAX_QUEUES 1 -#define VIRTIO_F_IOMMU_PLATFORM 33 - -/* Common configuration */ -#define IFCVF_PCI_CAP_COMMON_CFG 1 -/* Notifications */ -#define IFCVF_PCI_CAP_NOTIFY_CFG 2 -/* ISR Status */ -#define IFCVF_PCI_CAP_ISR_CFG 3 -/* Device specific configuration */ -#define IFCVF_PCI_CAP_DEVICE_CFG 4 -/* PCI configuration access */ -#define IFCVF_PCI_CAP_PCI_CFG 5 - -#define IFCVF_CONFIG_STATUS_RESET 0x00 -#define IFCVF_CONFIG_STATUS_ACK 0x01 -#define IFCVF_CONFIG_STATUS_DRIVER 0x02 -#define IFCVF_CONFIG_STATUS_DRIVER_OK 0x04 -#define IFCVF_CONFIG_STATUS_FEATURES_OK 0x08 -#define IFCVF_CONFIG_STATUS_FAILED 0x80 - -#define IFCVF_MSI_NO_VECTOR 0xffff -#define IFCVF_PCI_MAX_RESOURCE 6 - -#define IFCVF_LM_CFG_SIZE 0x40 -#define IFCVF_LM_RING_STATE_OFFSET 0x20 - -#define IFCVF_LM_LOGGING_CTRL 0x0 - -#define IFCVF_LM_BASE_ADDR_LOW 0x10 -#define IFCVF_LM_BASE_ADDR_HIGH 0x14 -#define IFCVF_LM_END_ADDR_LOW 0x18 -#define IFCVF_LM_END_ADDR_HIGH 0x1c - -#define IFCVF_LM_DISABLE 0x0 -#define IFCVF_LM_ENABLE_VF 0x1 -#define IFCVF_LM_ENABLE_PF 0x3 -#define IFCVF_LOG_BASE 0x100000000000 -#define IFCVF_MEDIATED_VRING 0x200000000000 - -#define IFCVF_32_BIT_MASK 0xffffffff - - -struct ifcvf_pci_cap { - u8 cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */ - u8 cap_next; /* Generic PCI field: next ptr. */ - u8 cap_len; /* Generic PCI field: capability length */ - u8 cfg_type; /* Identifies the structure. */ - u8 bar; /* Where to find it. */ - u8 padding[3]; /* Pad to full dword. */ - u32 offset; /* Offset within bar. */ - u32 length; /* Length of the structure, in bytes. */ -}; - -struct ifcvf_pci_notify_cap { - struct ifcvf_pci_cap cap; - u32 notify_off_multiplier; /* Multiplier for queue_notify_off. */ -}; - -struct ifcvf_pci_common_cfg { - /* About the whole device. */ - u32 device_feature_select; - u32 device_feature; - u32 guest_feature_select; - u32 guest_feature; - u16 msix_config; - u16 num_queues; - u8 device_status; - u8 config_generation; - - /* About a specific virtqueue. */ - u16 queue_select; - u16 queue_size; - u16 queue_msix_vector; - u16 queue_enable; - u16 queue_notify_off; - u32 queue_desc_lo; - u32 queue_desc_hi; - u32 queue_avail_lo; - u32 queue_avail_hi; - u32 queue_used_lo; - u32 queue_used_hi; -}; - -struct ifcvf_net_config { - u8 mac[6]; - u16 status; - u16 max_virtqueue_pairs; -} __attribute__((packed)); - -struct ifcvf_pci_mem_resource { - u64 phys_addr; /**< Physical address, 0 if not resource. */ - u64 len; /**< Length of the resource. */ - u8 *addr; /**< Virtual address, NULL when not mapped. */ -}; - -struct vring_info { - u64 desc; - u64 avail; - u64 used; - u16 size; - u16 last_avail_idx; - u16 last_used_idx; -}; - -struct ifcvf_hw { - u64 req_features; - u8 notify_region; - u32 notify_off_multiplier; - struct ifcvf_pci_common_cfg *common_cfg; - struct ifcvf_net_config *dev_cfg; - u8 *isr; - u16 *notify_base; - u16 *notify_addr[IFCVF_MAX_QUEUES * 2]; - u8 *lm_cfg; - struct vring_info vring[IFCVF_MAX_QUEUES * 2]; - u8 nr_vring; - struct ifcvf_pci_mem_resource mem_resource[IFCVF_PCI_MAX_RESOURCE]; -}; - -int -ifcvf_init_hw(struct ifcvf_hw *hw, PCI_DEV *dev); - -u64 -ifcvf_get_features(struct ifcvf_hw *hw); - -int -ifcvf_start_hw(struct ifcvf_hw *hw); - -void -ifcvf_stop_hw(struct ifcvf_hw *hw); - -void -ifcvf_enable_logging(struct ifcvf_hw *hw, u64 log_base, u64 log_size); - -void -ifcvf_disable_logging(struct ifcvf_hw *hw); - -void -ifcvf_notify_queue(struct ifcvf_hw *hw, u16 qid); - -u8 -ifcvf_get_notify_region(struct ifcvf_hw *hw); - -u64 -ifcvf_get_queue_notify_off(struct ifcvf_hw *hw, int qid); - -#endif /* _IFCVF_H_ */