#
80317ff6 |
| 07-Nov-2024 |
Farah Smith <farah.smith@broadcom.com> |
net/bnxt/tf_core: support Thor2
This patch introduces tf-core (tfc) functionality for Thor2 chips. The new code is added under ~/tf_core/v3/ and ~/hcapi/cfa_v3/.
There are some dependent changes ne
net/bnxt/tf_core: support Thor2
This patch introduces tf-core (tfc) functionality for Thor2 chips. The new code is added under ~/tf_core/v3/ and ~/hcapi/cfa_v3/.
There are some dependent changes needed in some of the core bnxt pmd files. Those also have been updated accordingly.
TruFlow(TF) is the software library that exposes CFA HW resources to upper layer protocols or applications. This patch series implements the tfc library as a part of bnxt_en driver so that upper layer APIs such as flow add can access the hardware.
The tfc is designed to expose the CFA HW tables to the TF ULP via a set of TF APIs. The TF APIs are the gateway to the CFA HW resources. Most API calls will result in a call to the TF FW to carry out the actual HW programming.
The APIs support Thor2. As a first step, the tfc object is opened during which memory is allocated and initialized to manage memory associated with table scopes and store the session. Table scopes are used to manage host memory used for EM (exact match) lookups and actions. Sessions are created by the application and other hardware resources can be allocated associated with the session or associated with a function.
HCAPI (hardware control APIs) consist of APIs supporting MPC (midpath control) messages sent to the CFA to access table scope memory. Additional table scope management tools Table scope instance manager (TIM) and Table scope pool manager (TPM) reside within HCAPI to support VFs requiring table scope memory.
The HWRMs are implemented in tfc_msg.c and they are grouped as shown below:
Session management: HWRM_TFC_SESSION_ID_ALLOC HWRM_TFC_SESSION_FID_ADD HWRM_TFC_SESSION_FID_REM Table Scope management: HWRM_TFC_TBL_SCOPE_QCAPS HWRM_TFC_TBL_SCOPE_ID_ALLOC HWRM_TFC_TBL_SCOPE_CONFIG HWRM_TFC_TBL_SCOPE_DECONFIG HWRM_TFC_TBL_SCOPE_FID_ADD HWRM_TFC_TBL_SCOPE_FID_REM HWRM_TFC_TBL_SCOPE_POOL_ALLOC HWRM_TFC_TBL_SCOPE_POOL_FREE HWRM_TFC_TBL_SCOPE_CONFIG_GET HW/Table Management: HWRM_TFC_IDENT_ALLOC HWRM_TFC_IDENT_FREE HWRM_TFC_IDX_TBL_ALLOC HWRM_TFC_IDX_TBL_ALLOC_SET HWRM_TFC_IDX_TBL_SET HWRM_TFC_IDX_TBL_GET HWRM_TFC_IDX_TBL_FREE HWRM_TFC_GLOBAL_ID_ALLOC HWRM_TFC_TCAM_SET HWRM_TFC_TCAM_GET HWRM_TFC_TCAM_ALLOC HWRM_TFC_TCAM_ALLOC_SET HWRM_TFC_TCAM_FREE HWRM_TFC_IF_TBL_SET HWRM_TFC_IF_TBL_GET HWRM_TFC_RESC_USAGE_QUERY
This patch also includes the required header files to support these APIs, listed below.
TF-Core APIs: tfc.h TF HWRM messages: tfc_msg.h, tfc_vf2pf_msg.h TF Object: tfo.h TF Table Scope: tfc_em.h, tfc_action_handle.h, tfc_flow_handle.h, tfc_cpm.h, cfa_tim.h, cfa_tim_priv.h, cfa_tpm.h, cfa_tpm_priv.h TF general support: tfc_debug.h tfc_priv.h tfc_util.h CFA HW files: cfa_bld_defs.h, cfa_resource_types.h, cfa_bld_p70_defs.h, cfa_bld_p70_field_ids.h, cfa_bld_p70_fkb_keycodes.h cfa_bld_p70_mpc.h, cfa_p70.h cfa_p70_hw.h cfa_p70_mpc_structs.h, cfa_p70_mpc_structs.h, cfa_bld_mpc_field_ids.h, cfa_bld.h, cfa_bld_mpcops.h
Signed-off-by: Farah Smith <farah.smith@broadcom.com> Signed-off-by: Jay Ding <jay.ding@broadcom.com> Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com> Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com> Reviewed-by: Shahaji Bhosle <sbhosle@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|