History log of /dpdk/drivers/net/bnxt/tf_core/v3/tfc_init.c (Results 1 – 1 of 1)
Revision Date Author Comments
# 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 ...