X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fqede%2Fbase%2Fecore_hw.h;h=238bdb9dbc598691fd4f0e910b5ee844a30b2887;hb=1e8d75d8059701fd15876416be06064735ec5e87;hp=f3f513e8a2b1e87e9712f7b525d268996106d52e;hpb=9adde217205959bd74c500a19dca20abfd13bcb6;p=dpdk.git diff --git a/drivers/net/qede/base/ecore_hw.h b/drivers/net/qede/base/ecore_hw.h index f3f513e8a2..238bdb9dbc 100644 --- a/drivers/net/qede/base/ecore_hw.h +++ b/drivers/net/qede/base/ecore_hw.h @@ -1,18 +1,15 @@ -/* +/* SPDX-License-Identifier: BSD-3-Clause * Copyright (c) 2016 - 2018 Cavium Inc. * All rights reserved. * www.cavium.com - * - * See LICENSE.qede_pmd for copyright and licensing details. */ #ifndef __ECORE_HW_H__ #define __ECORE_HW_H__ #include "ecore.h" -#include "ecore_dev_api.h" -/* Forward decleration */ +/* Forward declaration */ struct ecore_ptt; enum reserved_ptts { @@ -33,23 +30,7 @@ enum reserved_ptts { #define MISC_REG_DRIVER_CONTROL_0_SIZE MISC_REG_DRIVER_CONTROL_1_SIZE #endif -enum _dmae_cmd_dst_mask { - DMAE_CMD_DST_MASK_NONE = 0, - DMAE_CMD_DST_MASK_PCIE = 1, - DMAE_CMD_DST_MASK_GRC = 2 -}; - -enum _dmae_cmd_src_mask { - DMAE_CMD_SRC_MASK_PCIE = 0, - DMAE_CMD_SRC_MASK_GRC = 1 -}; - -enum _dmae_cmd_crc_mask { - DMAE_CMD_COMP_CRC_EN_MASK_NONE = 0, - DMAE_CMD_COMP_CRC_EN_MASK_SET = 1 -}; - -/* definitions for DMA constants */ +/* Definitions for DMA constants */ #define DMAE_GO_VALUE 0x1 #ifdef __BIG_ENDIAN @@ -71,10 +52,8 @@ enum _dmae_cmd_crc_mask { * @brief ecore_gtt_init - Initialize GTT windows * * @param p_hwfn -* @param p_ptt */ -void ecore_gtt_init(struct ecore_hwfn *p_hwfn, - struct ecore_ptt *p_ptt); +void ecore_gtt_init(struct ecore_hwfn *p_hwfn); /** * @brief ecore_ptt_invalidate - Forces all ptt entries to be re-configured @@ -102,7 +81,6 @@ void ecore_ptt_pool_free(struct ecore_hwfn *p_hwfn); /** * @brief ecore_ptt_get_bar_addr - Get PPT's external BAR address * - * @param p_hwfn * @param p_ptt * * @return u32 @@ -113,8 +91,8 @@ u32 ecore_ptt_get_bar_addr(struct ecore_ptt *p_ptt); * @brief ecore_ptt_set_win - Set PTT Window's GRC BAR address * * @param p_hwfn - * @param new_hw_addr * @param p_ptt + * @param new_hw_addr */ void ecore_ptt_set_win(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, @@ -136,8 +114,8 @@ struct ecore_ptt *ecore_get_reserved_ptt(struct ecore_hwfn *p_hwfn, * * @param p_hwfn * @param p_ptt - * @param val * @param hw_addr + * @param val */ void ecore_wr(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, @@ -149,7 +127,6 @@ void ecore_wr(struct ecore_hwfn *p_hwfn, * * @param p_hwfn * @param p_ptt - * @param val * @param hw_addr */ u32 ecore_rd(struct ecore_hwfn *p_hwfn, @@ -224,6 +201,18 @@ void ecore_port_pretend(struct ecore_hwfn *p_hwfn, void ecore_port_unpretend(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt); +/** + * @brief ecore_port_fid_pretend - pretend to another port and another function + * when accessing the ptt window + * + * @param p_hwfn + * @param p_ptt + * @param port_id - the port to pretend to + * @param fid - fid field of pxp_pretend structure. Can contain either pf / vf. + */ +void ecore_port_fid_pretend(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, + u8 port_id, u16 fid); + /** * @brief ecore_vfid_to_concrete - build a concrete FID for a * given VF ID @@ -249,14 +238,101 @@ enum _ecore_status_t ecore_dmae_info_alloc(struct ecore_hwfn *p_hwfn); */ void ecore_dmae_info_free(struct ecore_hwfn *p_hwfn); +/** + * @brief ecore_dmae_host2grc - copy data from source address to + * dmae registers using the given ptt + * + * @param p_hwfn + * @param p_ptt + * @param source_addr + * @param grc_addr (dmae_data_offset) + * @param size_in_dwords + * @param p_params (default parameters will be used in case of OSAL_NULL) + * + * @return enum _ecore_status_t + */ +enum _ecore_status_t +ecore_dmae_host2grc(struct ecore_hwfn *p_hwfn, + struct ecore_ptt *p_ptt, + u64 source_addr, + u32 grc_addr, + u32 size_in_dwords, + struct dmae_params *p_params); + +/** + * @brief ecore_dmae_grc2host - Read data from dmae data offset + * to source address using the given ptt + * + * @param p_ptt + * @param grc_addr (dmae_data_offset) + * @param dest_addr + * @param size_in_dwords + * @param p_params (default parameters will be used in case of OSAL_NULL) + * + * @return enum _ecore_status_t + */ +enum _ecore_status_t +ecore_dmae_grc2host(struct ecore_hwfn *p_hwfn, + struct ecore_ptt *p_ptt, + u32 grc_addr, + dma_addr_t dest_addr, + u32 size_in_dwords, + struct dmae_params *p_params); + +/** + * @brief ecore_dmae_host2host - copy data from to source address + * to a destination address (for SRIOV) using the given ptt + * + * @param p_hwfn + * @param p_ptt + * @param source_addr + * @param dest_addr + * @param size_in_dwords + * @param p_params (default parameters will be used in case of OSAL_NULL) + * + * @return enum _ecore_status_t + */ +enum _ecore_status_t +ecore_dmae_host2host(struct ecore_hwfn *p_hwfn, + struct ecore_ptt *p_ptt, + dma_addr_t source_addr, + dma_addr_t dest_addr, + u32 size_in_dwords, + struct dmae_params *p_params); + +enum _ecore_status_t ecore_dmae_sanity(struct ecore_hwfn *p_hwfn, + struct ecore_ptt *p_ptt, + const char *phase); + enum _ecore_status_t ecore_init_fw_data(struct ecore_dev *p_dev, const u8 *fw_data); void ecore_hw_err_notify(struct ecore_hwfn *p_hwfn, enum ecore_hw_err_type err_type); -enum _ecore_status_t ecore_dmae_sanity(struct ecore_hwfn *p_hwfn, - struct ecore_ptt *p_ptt, - const char *phase); +/** + * @brief ecore_ppfid_wr - Write value to BAR using the given ptt while + * pretending to a PF to which the given PPFID pertains. + * + * @param p_hwfn + * @param p_ptt + * @param abs_ppfid + * @param hw_addr + * @param val + */ +void ecore_ppfid_wr(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, + u8 abs_ppfid, u32 hw_addr, u32 val); + +/** + * @brief ecore_ppfid_rd - Read value from BAR using the given ptt while + * pretending to a PF to which the given PPFID pertains. + * + * @param p_hwfn + * @param p_ptt + * @param abs_ppfid + * @param hw_addr + */ +u32 ecore_ppfid_rd(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, + u8 abs_ppfid, u32 hw_addr); #endif /* __ECORE_HW_H__ */