X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnxt%2Ftf_core%2Ftfp.h;h=2e4ca7ac448e42f38ff50b5230d769f80f0293ed;hb=0475c7770502cb4166b2577df3ff446af9d85515;hp=8d5e94e1a1e69137cec3d49822707bcbe8b0f75f;hpb=8430a8b841c84a6a3cd84fb983013cf581c7d6a1;p=dpdk.git diff --git a/drivers/net/bnxt/tf_core/tfp.h b/drivers/net/bnxt/tf_core/tfp.h index 8d5e94e1a1..2e4ca7ac44 100644 --- a/drivers/net/bnxt/tf_core/tfp.h +++ b/drivers/net/bnxt/tf_core/tfp.h @@ -1,16 +1,25 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2019-2020 Broadcom + * Copyright(c) 2019-2021 Broadcom * All rights reserved. */ -/* This header file defines the Portability structures and APIs for +/* + * This header file defines the Portability structures and APIs for * TruFlow. */ #ifndef _TFP_H_ #define _TFP_H_ +#include #include +#include +#include + +/** + * DPDK/Driver specific log level for the BNXT Eth driver. + */ +extern int bnxt_logtype_driver; /** Spinlock */ @@ -18,13 +27,21 @@ struct tfp_spinlock_parms { rte_spinlock_t slock; }; +#define TFP_DRV_LOG_RAW(level, fmt, args...) \ + rte_log(RTE_LOG_ ## level, bnxt_logtype_driver, "%s(): " fmt, \ + __func__, ## args) + +#define TFP_DRV_LOG(level, fmt, args...) \ + TFP_DRV_LOG_RAW(level, fmt, ## args) + /** * @file * * TrueFlow Portability API Header File */ -/** send message parameter definition +/** + * send message parameter definition */ struct tfp_send_msg_parms { /** @@ -62,7 +79,8 @@ struct tfp_send_msg_parms { uint32_t *resp_data; }; -/** calloc parameter definition +/** + * calloc parameter definition */ struct tfp_calloc_parms { /** @@ -96,43 +114,15 @@ struct tfp_calloc_parms { * @ref tfp_send_msg_tunneled * * @ref tfp_calloc - * @ref tfp_free * @ref tfp_memcpy + * @ref tfp_free * * @ref tfp_spinlock_init * @ref tfp_spinlock_lock * @ref tfp_spinlock_unlock * - * @ref tfp_cpu_to_le_16 - * @ref tfp_le_to_cpu_16 - * @ref tfp_cpu_to_le_32 - * @ref tfp_le_to_cpu_32 - * @ref tfp_cpu_to_le_64 - * @ref tfp_le_to_cpu_64 - * @ref tfp_cpu_to_be_16 - * @ref tfp_be_to_cpu_16 - * @ref tfp_cpu_to_be_32 - * @ref tfp_be_to_cpu_32 - * @ref tfp_cpu_to_be_64 - * @ref tfp_be_to_cpu_64 */ -#define tfp_cpu_to_le_16(val) rte_cpu_to_le_16(val) -#define tfp_le_to_cpu_16(val) rte_le_to_cpu_16(val) -#define tfp_cpu_to_le_32(val) rte_cpu_to_le_32(val) -#define tfp_le_to_cpu_32(val) rte_le_to_cpu_32(val) -#define tfp_cpu_to_le_64(val) rte_cpu_to_le_64(val) -#define tfp_le_to_cpu_64(val) rte_le_to_cpu_64(val) -#define tfp_cpu_to_be_16(val) rte_cpu_to_be_16(val) -#define tfp_be_to_cpu_16(val) rte_be_to_cpu_16(val) -#define tfp_cpu_to_be_32(val) rte_cpu_to_be_32(val) -#define tfp_be_to_cpu_32(val) rte_be_to_cpu_32(val) -#define tfp_cpu_to_be_64(val) rte_cpu_to_be_64(val) -#define tfp_be_to_cpu_64(val) rte_be_to_cpu_64(val) -#define tfp_bswap_16(val) rte_bswap16(val) -#define tfp_bswap_32(val) rte_bswap32(val) -#define tfp_bswap_64(val) rte_bswap64(val) - /** * Provides communication capability from the TrueFlow API layer to * the TrueFlow firmware. The portability layer internally provides @@ -162,9 +152,39 @@ int tfp_send_msg_direct(struct tf *tfp, * -1 - Global error like not supported * -EINVAL - Parameter Error */ -int tfp_send_msg_tunneled(struct tf *tfp, +int tfp_send_msg_tunneled(struct tf *tfp, struct tfp_send_msg_parms *parms); +/** + * Sends OEM command message to Chimp + * + * [in] session, pointer to session handle + * [in] max_flows, max number of flows requested + * + * Returns: + * 0 - Success + * -1 - Global error like not supported + * -EINVAL - Parameter Error + */ +int +tfp_msg_hwrm_oem_cmd(struct tf *tfp, + uint32_t max_flows); + +/** + * Sends OEM command message to Chimp + * + * [in] session, pointer to session handle + * [in] max_flows, max number of flows requested + * + * Returns: + * 0 - Success + * -1 - Global error like not supported + * -EINVAL - Parameter Error + */ +int +tfp_msg_hwrm_oem_cmd(struct tf *tfp, + uint32_t max_flows); + /** * Allocates zero'ed memory from the heap. * @@ -179,10 +199,89 @@ int tfp_send_msg_tunneled(struct tf *tfp, * -EINVAL - Parameter error */ int tfp_calloc(struct tfp_calloc_parms *parms); - -void tfp_free(void *addr); void tfp_memcpy(void *dest, void *src, size_t n); +void tfp_free(void *addr); + void tfp_spinlock_init(struct tfp_spinlock_parms *slock); void tfp_spinlock_lock(struct tfp_spinlock_parms *slock); void tfp_spinlock_unlock(struct tfp_spinlock_parms *slock); + +/** + * Lookup of the FID in the platform specific structure. + * + * [in] session + * Pointer to session handle + * + * [out] fw_fid + * Pointer to the fw_fid + * + * Returns: + * 0 - Success + * -EINVAL - Parameter error + */ +int tfp_get_fid(struct tf *tfp, uint16_t *fw_fid); + + +/* + * @ref tfp_cpu_to_le_16 + * @ref tfp_le_to_cpu_16 + * @ref tfp_cpu_to_le_32 + * @ref tfp_le_to_cpu_32 + * @ref tfp_cpu_to_le_64 + * @ref tfp_le_to_cpu_64 + * @ref tfp_cpu_to_be_16 + * @ref tfp_be_to_cpu_16 + * @ref tfp_cpu_to_be_32 + * @ref tfp_be_to_cpu_32 + * @ref tfp_cpu_to_be_64 + * @ref tfp_be_to_cpu_64 + */ + +#define tfp_cpu_to_le_16(val) rte_cpu_to_le_16(val) +#define tfp_le_to_cpu_16(val) rte_le_to_cpu_16(val) +#define tfp_cpu_to_le_32(val) rte_cpu_to_le_32(val) +#define tfp_le_to_cpu_32(val) rte_le_to_cpu_32(val) +#define tfp_cpu_to_le_64(val) rte_cpu_to_le_64(val) +#define tfp_le_to_cpu_64(val) rte_le_to_cpu_64(val) +#define tfp_cpu_to_be_16(val) rte_cpu_to_be_16(val) +#define tfp_be_to_cpu_16(val) rte_be_to_cpu_16(val) +#define tfp_cpu_to_be_32(val) rte_cpu_to_be_32(val) +#define tfp_be_to_cpu_32(val) rte_be_to_cpu_32(val) +#define tfp_cpu_to_be_64(val) rte_cpu_to_be_64(val) +#define tfp_be_to_cpu_64(val) rte_be_to_cpu_64(val) +#define tfp_bswap_16(val) rte_bswap16(val) +#define tfp_bswap_32(val) rte_bswap32(val) +#define tfp_bswap_64(val) rte_bswap64(val) + +/** + * Lookup of the FID in the platform specific structure. + * + * [in] session + * Pointer to session handle + * + * [out] fw_fid + * Pointer to the fw_fid + * + * Returns: + * 0 - Success + * -EINVAL - Parameter error + */ +int tfp_get_fid(struct tf *tfp, uint16_t *fw_fid); + +/** + * Get the PF associated with the fw communications channel. + * + * [in] session + * Pointer to session handle + * + * [out] pf + * Pointer to the pf id + * + * Returns: + * 0 - Success + * -EINVAL - Failure + * + */ +int tfp_get_pf(struct tf *tfp, uint16_t *pf); + #endif /* _TFP_H_ */