From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 65EB94414E; Tue, 4 Jun 2024 10:49:14 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B0B694355C; Tue, 4 Jun 2024 10:48:47 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21]) by mails.dpdk.org (Postfix) with ESMTP id 333C443550 for ; Tue, 4 Jun 2024 10:48:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1717490926; x=1749026926; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3mv75m2w3ii8yU5Ridqn8NVVYe2XaKg7kTy6gH8M/gY=; b=akq86bBz19Xt3ziB+fWfU0//KbllMTLqnC0ouHXysHHJcdTiWhidSZGj JL4CCgp++0j3fJF/a9uzqSz+op2Hcrbak8GNqynfm8Y/FOEiqw0MHwRgn zxTLKijo+YpiVO1xSYxDXdEoTggG9FL11YGm59PrLZvJ++yflWuFpzmi5 FVDqvd/DtCK6XHaY/cDbmn/GOmxfGe0F6JuYBiSl1d72EDN1W0N2lxE5D oG8qnRQzQy8i7OuvCxKZ0aLCwGqDCepNgKjK8B1d180qJTrWCL8blSdHQ zNXcqI9X8Fssc4dyqAxcHgOz+GCEX3iShcC0mOgqm1kef57kBst1PjTNc w==; X-CSE-ConnectionGUID: XaFXPuwbTB2O7PNdhqW0Cg== X-CSE-MsgGUID: saAkG0OWQYiW5Oa+fiJINg== X-IronPort-AV: E=McAfee;i="6600,9927,11092"; a="13971695" X-IronPort-AV: E=Sophos;i="6.08,213,1712646000"; d="scan'208";a="13971695" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jun 2024 01:48:46 -0700 X-CSE-ConnectionGUID: 8fCvVgM9T3yEjWqeI6YAqA== X-CSE-MsgGUID: 8vSi6eUFTUupstlwPVIVPw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,213,1712646000"; d="scan'208";a="42268638" Received: from unknown (HELO npf-hyd-clx-03..) ([10.145.170.182]) by orviesa004.jf.intel.com with ESMTP; 04 Jun 2024 01:48:44 -0700 From: Soumyadeep Hore To: bruce.richardson@intel.com, anatoly.burakov@intel.com Cc: dev@dpdk.org Subject: [PATCH v2 04/21] common/idpf: moved the idpf HW into API header file Date: Tue, 4 Jun 2024 08:05:54 +0000 Message-ID: <20240604080611.2197835-5-soumyadeep.hore@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240604080611.2197835-1-soumyadeep.hore@intel.com> References: <20240528072839.867100-1-soumyadeep.hore@intel.com> <20240604080611.2197835-1-soumyadeep.hore@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org There is an issue of recursive header file includes in accessing the idpf_hw structure. The controlq.h has the structure definition and osdep header file needs that. The problem is the controlq.h also needs the osdep header file contents, basically both dependent on each other. Moving the definition from controlq.h into api.h resolves the problem. Signed-off-by: Soumyadeep Hore --- drivers/common/idpf/base/idpf_common.c | 4 +- drivers/common/idpf/base/idpf_controlq.h | 107 +------------------ drivers/common/idpf/base/idpf_controlq_api.h | 35 ++++++ drivers/common/idpf/base/idpf_osdep.h | 72 ++++++++++++- drivers/common/idpf/base/idpf_type.h | 4 +- 5 files changed, 111 insertions(+), 111 deletions(-) diff --git a/drivers/common/idpf/base/idpf_common.c b/drivers/common/idpf/base/idpf_common.c index 7181a7f14c..bb540345c2 100644 --- a/drivers/common/idpf/base/idpf_common.c +++ b/drivers/common/idpf/base/idpf_common.c @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2001-2023 Intel Corporation + * Copyright(c) 2001-2024 Intel Corporation */ -#include "idpf_type.h" #include "idpf_prototype.h" +#include "idpf_type.h" #include diff --git a/drivers/common/idpf/base/idpf_controlq.h b/drivers/common/idpf/base/idpf_controlq.h index 80ca06e632..3f74b5a898 100644 --- a/drivers/common/idpf/base/idpf_controlq.h +++ b/drivers/common/idpf/base/idpf_controlq.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2001-2023 Intel Corporation + * Copyright(c) 2001-2024 Intel Corporation */ #ifndef _IDPF_CONTROLQ_H_ @@ -96,111 +96,6 @@ struct idpf_mbxq_desc { u32 pf_vf_id; /* used by CP when sending to PF */ }; -enum idpf_mac_type { - IDPF_MAC_UNKNOWN = 0, - IDPF_MAC_PF, - IDPF_MAC_VF, - IDPF_MAC_GENERIC -}; - -#define ETH_ALEN 6 - -struct idpf_mac_info { - enum idpf_mac_type type; - u8 addr[ETH_ALEN]; - u8 perm_addr[ETH_ALEN]; -}; - -#define IDPF_AQ_LINK_UP 0x1 - -/* PCI bus types */ -enum idpf_bus_type { - idpf_bus_type_unknown = 0, - idpf_bus_type_pci, - idpf_bus_type_pcix, - idpf_bus_type_pci_express, - idpf_bus_type_reserved -}; - -/* PCI bus speeds */ -enum idpf_bus_speed { - idpf_bus_speed_unknown = 0, - idpf_bus_speed_33 = 33, - idpf_bus_speed_66 = 66, - idpf_bus_speed_100 = 100, - idpf_bus_speed_120 = 120, - idpf_bus_speed_133 = 133, - idpf_bus_speed_2500 = 2500, - idpf_bus_speed_5000 = 5000, - idpf_bus_speed_8000 = 8000, - idpf_bus_speed_reserved -}; - -/* PCI bus widths */ -enum idpf_bus_width { - idpf_bus_width_unknown = 0, - idpf_bus_width_pcie_x1 = 1, - idpf_bus_width_pcie_x2 = 2, - idpf_bus_width_pcie_x4 = 4, - idpf_bus_width_pcie_x8 = 8, - idpf_bus_width_32 = 32, - idpf_bus_width_64 = 64, - idpf_bus_width_reserved -}; - -/* Bus parameters */ -struct idpf_bus_info { - enum idpf_bus_speed speed; - enum idpf_bus_width width; - enum idpf_bus_type type; - - u16 func; - u16 device; - u16 lan_id; - u16 bus_id; -}; - -/* Function specific capabilities */ -struct idpf_hw_func_caps { - u32 num_alloc_vfs; - u32 vf_base_id; -}; - -/* Define the APF hardware struct to replace other control structs as needed - * Align to ctlq_hw_info - */ -struct idpf_hw { - /* Some part of BAR0 address space is not mapped by the LAN driver. - * This results in 2 regions of BAR0 to be mapped by LAN driver which - * will have its own base hardware address when mapped. - */ - u8 *hw_addr; - u8 *hw_addr_region2; - u64 hw_addr_len; - u64 hw_addr_region2_len; - - void *back; - - /* control queue - send and receive */ - struct idpf_ctlq_info *asq; - struct idpf_ctlq_info *arq; - - /* subsystem structs */ - struct idpf_mac_info mac; - struct idpf_bus_info bus; - struct idpf_hw_func_caps func_caps; - - /* pci info */ - u16 device_id; - u16 vendor_id; - u16 subsystem_device_id; - u16 subsystem_vendor_id; - u8 revision_id; - bool adapter_stopped; - - LIST_HEAD_TYPE(list_head, idpf_ctlq_info) cq_list_head; -}; - int idpf_ctlq_alloc_ring_res(struct idpf_hw *hw, struct idpf_ctlq_info *cq); diff --git a/drivers/common/idpf/base/idpf_controlq_api.h b/drivers/common/idpf/base/idpf_controlq_api.h index 6b6f3e84c2..f3a397ea58 100644 --- a/drivers/common/idpf/base/idpf_controlq_api.h +++ b/drivers/common/idpf/base/idpf_controlq_api.h @@ -154,6 +154,41 @@ enum idpf_mbx_opc { idpf_mbq_opc_send_msg_to_peer_drv = 0x0804, }; +/* Define the APF hardware struct to replace other control structs as needed + * Align to ctlq_hw_info + */ +struct idpf_hw { + /* Some part of BAR0 address space is not mapped by the LAN driver. + * This results in 2 regions of BAR0 to be mapped by LAN driver which + * will have its own base hardware address when mapped. + */ + u8 *hw_addr; + u8 *hw_addr_region2; + u64 hw_addr_len; + u64 hw_addr_region2_len; + + void *back; + + /* control queue - send and receive */ + struct idpf_ctlq_info *asq; + struct idpf_ctlq_info *arq; + + /* subsystem structs */ + struct idpf_mac_info mac; + struct idpf_bus_info bus; + struct idpf_hw_func_caps func_caps; + + /* pci info */ + u16 device_id; + u16 vendor_id; + u16 subsystem_device_id; + u16 subsystem_vendor_id; + u8 revision_id; + bool adapter_stopped; + + LIST_HEAD_TYPE(list_head, idpf_ctlq_info) cq_list_head; +}; + /* API supported for control queue management */ /* Will init all required q including default mb. "q_info" is an array of * create_info structs equal to the number of control queues to be created. diff --git a/drivers/common/idpf/base/idpf_osdep.h b/drivers/common/idpf/base/idpf_osdep.h index 74a376cb13..b2af8f443d 100644 --- a/drivers/common/idpf/base/idpf_osdep.h +++ b/drivers/common/idpf/base/idpf_osdep.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2001-2023 Intel Corporation + * Copyright(c) 2001-2024 Intel Corporation */ #ifndef _IDPF_OSDEP_H_ @@ -353,4 +353,74 @@ idpf_hweight32(u32 num) #endif +enum idpf_mac_type { + IDPF_MAC_UNKNOWN = 0, + IDPF_MAC_PF, + IDPF_MAC_VF, + IDPF_MAC_GENERIC +}; + +#define ETH_ALEN 6 + +struct idpf_mac_info { + enum idpf_mac_type type; + u8 addr[ETH_ALEN]; + u8 perm_addr[ETH_ALEN]; +}; + +#define IDPF_AQ_LINK_UP 0x1 + +/* PCI bus types */ +enum idpf_bus_type { + idpf_bus_type_unknown = 0, + idpf_bus_type_pci, + idpf_bus_type_pcix, + idpf_bus_type_pci_express, + idpf_bus_type_reserved +}; + +/* PCI bus speeds */ +enum idpf_bus_speed { + idpf_bus_speed_unknown = 0, + idpf_bus_speed_33 = 33, + idpf_bus_speed_66 = 66, + idpf_bus_speed_100 = 100, + idpf_bus_speed_120 = 120, + idpf_bus_speed_133 = 133, + idpf_bus_speed_2500 = 2500, + idpf_bus_speed_5000 = 5000, + idpf_bus_speed_8000 = 8000, + idpf_bus_speed_reserved +}; + +/* PCI bus widths */ +enum idpf_bus_width { + idpf_bus_width_unknown = 0, + idpf_bus_width_pcie_x1 = 1, + idpf_bus_width_pcie_x2 = 2, + idpf_bus_width_pcie_x4 = 4, + idpf_bus_width_pcie_x8 = 8, + idpf_bus_width_32 = 32, + idpf_bus_width_64 = 64, + idpf_bus_width_reserved +}; + +/* Bus parameters */ +struct idpf_bus_info { + enum idpf_bus_speed speed; + enum idpf_bus_width width; + enum idpf_bus_type type; + + u16 func; + u16 device; + u16 lan_id; + u16 bus_id; +}; + +/* Function specific capabilities */ +struct idpf_hw_func_caps { + u32 num_alloc_vfs; + u32 vf_base_id; +}; + #endif /* _IDPF_OSDEP_H_ */ diff --git a/drivers/common/idpf/base/idpf_type.h b/drivers/common/idpf/base/idpf_type.h index a22d28f448..2ff818035b 100644 --- a/drivers/common/idpf/base/idpf_type.h +++ b/drivers/common/idpf/base/idpf_type.h @@ -1,11 +1,11 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2001-2023 Intel Corporation + * Copyright(c) 2001-2024 Intel Corporation */ #ifndef _IDPF_TYPE_H_ #define _IDPF_TYPE_H_ -#include "idpf_controlq.h" +#include "idpf_osdep.h" #define UNREFERENCED_XPARAMETER #define UNREFERENCED_1PARAMETER(_p) -- 2.43.0