X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnxt%2Ftf_core%2Ftf_em.h;h=b5c3acb09a8a86303de9156ce7a03fe6428d88c4;hb=7100b0e5511e58269498900aea30bc03e15ba2fd;hp=617b07587456740d6bb89a45e8ccc07a44198202;hpb=fc4075b744b2dad7c04051e798b01b3326bed928;p=dpdk.git diff --git a/drivers/net/bnxt/tf_core/tf_em.h b/drivers/net/bnxt/tf_core/tf_em.h index 617b075874..b5c3acb09a 100644 --- a/drivers/net/bnxt/tf_core/tf_em.h +++ b/drivers/net/bnxt/tf_core/tf_em.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2019-2020 Broadcom + * Copyright(c) 2019-2021 Broadcom * All rights reserved. */ @@ -9,12 +9,10 @@ #include "tf_core.h" #include "tf_session.h" -#define SUPPORT_CFA_HW_P4 1 -#define SUPPORT_CFA_HW_P58 0 -#define SUPPORT_CFA_HW_P59 0 -#define SUPPORT_CFA_HW_ALL 0 +#include "hcapi/cfa/hcapi_cfa_defs.h" -#include "hcapi/hcapi_cfa_defs.h" +#define TF_EM_MIN_ENTRIES (1 << 15) /* 32K */ +#define TF_EM_MAX_ENTRIES (1 << 27) /* 128M */ #define TF_HW_EM_KEY_MAX_SIZE 52 #define TF_EM_KEY_RECORD_SIZE 64 @@ -69,6 +67,9 @@ #error "Invalid Page Size specified. Please use a TF_EM_PAGE_SIZE_n define" #endif +/* + * System memory always uses 4K pages + */ #define TF_EM_PAGE_SIZE (1 << TF_EM_PAGE_SHIFT) #define TF_EM_PAGE_ALIGNMENT (1 << TF_EM_PAGE_SHIFT) @@ -155,52 +156,15 @@ struct tf_em_cfg_parms { * * @ref tf_em_ext_common_unbind * - * @ref tf_em_ext_host_alloc - * - * @ref tf_em_ext_host_free + * @ref tf_em_ext_alloc * - * @ref tf_em_ext_system_alloc - * - * @ref tf_em_ext_system_free + * @ref tf_em_ext_free * * @ref tf_em_ext_common_free * * @ref tf_em_ext_common_alloc */ -/** - * Allocates EEM Table scope - * - * [in] tfp - * Pointer to TruFlow handle - * - * [in] parms - * Pointer to input parameters - * - * Returns: - * 0 - Success - * -EINVAL - Parameter error - * -ENOMEM - Out of memory - */ -int tf_alloc_eem_tbl_scope(struct tf *tfp, - struct tf_alloc_tbl_scope_parms *parms); - -/** - * Free's EEM Table scope control block - * - * [in] tfp - * Pointer to TruFlow handle - * - * [in] parms - * Pointer to input parameters - * - * Returns: - * 0 - Success - * -EINVAL - Parameter error - */ -int tf_free_eem_tbl_scope_cb(struct tf *tfp, - struct tf_free_tbl_scope_parms *parms); - /** * Insert record in to internal EM table * @@ -374,8 +338,8 @@ int tf_em_ext_common_unbind(struct tf *tfp); * 0 - Success * -EINVAL - Parameter error */ -int tf_em_ext_host_alloc(struct tf *tfp, - struct tf_alloc_tbl_scope_parms *parms); +int tf_em_ext_alloc(struct tf *tfp, + struct tf_alloc_tbl_scope_parms *parms); /** * Free for external EEM using host memory @@ -390,11 +354,11 @@ int tf_em_ext_host_alloc(struct tf *tfp, * 0 - Success * -EINVAL - Parameter error */ -int tf_em_ext_host_free(struct tf *tfp, - struct tf_free_tbl_scope_parms *parms); +int tf_em_ext_free(struct tf *tfp, + struct tf_free_tbl_scope_parms *parms); /** - * Alloc for external EEM using system memory + * Common free table scope for external EEM using host or system memory * * [in] tfp * Pointer to TruFlow handle @@ -406,11 +370,11 @@ int tf_em_ext_host_free(struct tf *tfp, * 0 - Success * -EINVAL - Parameter error */ -int tf_em_ext_system_alloc(struct tf *tfp, - struct tf_alloc_tbl_scope_parms *parms); +int tf_em_ext_common_free(struct tf *tfp, + struct tf_free_tbl_scope_parms *parms); /** - * Free for external EEM using system memory + * Common alloc table scope for external EEM using host or system memory * * [in] tfp * Pointer to TruFlow handle @@ -422,11 +386,10 @@ int tf_em_ext_system_alloc(struct tf *tfp, * 0 - Success * -EINVAL - Parameter error */ -int tf_em_ext_system_free(struct tf *tfp, - struct tf_free_tbl_scope_parms *parms); - +int tf_em_ext_common_alloc(struct tf *tfp, + struct tf_alloc_tbl_scope_parms *parms); /** - * Common free for external EEM using host or system memory + * Map a set of parifs to a set of EEM base addresses (table scope) * * [in] tfp * Pointer to TruFlow handle @@ -438,22 +401,87 @@ int tf_em_ext_system_free(struct tf *tfp, * 0 - Success * -EINVAL - Parameter error */ -int tf_em_ext_common_free(struct tf *tfp, - struct tf_free_tbl_scope_parms *parms); +int tf_em_ext_map_tbl_scope(struct tf *tfp, + struct tf_map_tbl_scope_parms *parms); /** - * Common alloc for external EEM using host or system memory + * Allocate External Tbl entry from the scope pool. * * [in] tfp - * Pointer to TruFlow handle + * Pointer to Truflow Handle + * [in] parms + * Allocation parameters * + * Return: + * 0 - Success, entry allocated - no search support + * -ENOMEM -EINVAL -EOPNOTSUPP + * - Failure, entry not allocated, out of resources + */ +int +tf_tbl_ext_alloc(struct tf *tfp, + struct tf_tbl_alloc_parms *parms); + +/** + * Free External Tbl entry to the scope pool. + * + * [in] tfp + * Pointer to Truflow Handle * [in] parms - * Pointer to input parameters + * Allocation parameters * - * Returns: - * 0 - Success - * -EINVAL - Parameter error + * Return: + * 0 - Success, entry freed + * + * - Failure, entry not successfully freed for these reasons + * -ENOMEM + * -EOPNOTSUPP + * -EINVAL */ -int tf_em_ext_common_alloc(struct tf *tfp, - struct tf_alloc_tbl_scope_parms *parms); +int +tf_tbl_ext_free(struct tf *tfp, + struct tf_tbl_free_parms *parms); + +/** + * Sets the specified external table type element. + * + * This API sets the specified element data by invoking the + * firmware. + * + * [in] tfp + * Pointer to TF handle + * + * [in] parms + * Pointer to table set parameters + * + * Returns + * - (0) if successful. + * - (-EINVAL) on failure. + */ +int tf_tbl_ext_common_set(struct tf *tfp, + struct tf_tbl_set_parms *parms); + +/** + * Sets the specified external table type element. + * + * This API sets the specified element data by invoking the + * firmware. + * + * [in] tfp + * Pointer to TF handle + * + * [in] parms + * Pointer to table set parameters + * + * Returns + * - (0) if successful. + * - (-EINVAL) on failure. + */ +int tf_tbl_ext_set(struct tf *tfp, + struct tf_tbl_set_parms *parms); + +int +tf_em_ext_system_bind(struct tf *tfp, + struct tf_em_cfg_parms *parms); + +int offload_system_mmap(struct tf_tbl_scope_cb *tbl_scope_cb); #endif /* _TF_EM_H_ */