You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
5.4 KiB

/*
* Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2021. All rights reserved.
* Description: tsr2rcipher hal func decl.
* Author: Hisilicon
* Create: 2019-08-02
*/
#ifndef __HAL_TSR2RCIPHER_H__
#define __HAL_TSR2RCIPHER_H__
#include "drv_tsr2rcipher_define.h"
#ifdef __cplusplus
extern "C" {
#endif
/* TSR2RCIPHER RX hal level functions. */
td_void tsc_hal_rx_config(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, enum tsc_buf_type buf_type);
td_void tsc_hal_rx_de_config(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_rx_set_buf(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_u64 src_buf_addr, td_u32 src_buf_len);
td_bool tsc_hal_rx_get_dsp_tor_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_rx_set_buf_addr(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_u64 src_addr);
td_void tsc_hal_rx_set_buf_len(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_u32 src_len);
td_void tsc_hal_rx_add_dsc(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_rx_set_ctrl(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, enum tsc_buf_type buf_type,
td_u32 rx_pkg_th);
td_void tsc_hal_rx_set_int(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_bool dsc_rd, td_bool rx_pkt);
td_u32 tsc_hal_rx_get_dsc_rd_total_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_rx_get_pkt_cnt_total_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_rx_get_dsc_rd_int_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_rx_cls_dsc_rd_int_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_u32 tsc_hal_rx_get_pkt_cnt_int_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_rx_cls_pkt_cnt_int_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_rx_get_dsc_rd_total_int_value(const struct tsr2rcipher_mgmt *mgmt, td_u32 *value_array);
td_void tsc_hal_rx_get_pkt_cnt_total_int_value(const struct tsr2rcipher_mgmt *mgmt, td_u32 *value_array);
td_void tsc_hal_set_mode_ctl(const struct tsr2rcipher_mgmt *mgmt, struct tsr2rcipher_r_ch *rch,
enum tsc_crypt_type crypt_type);
td_void tsc_hal_en_mode_ctl(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_dis_mode_ctl(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_clr_chan(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_lock_config(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_bool is_tee_lock);
td_void tsc_hal_lock_deconfig(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
/* TSR2RCIPHER TX hal level functions. */
td_void tsc_hal_tx_config(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, enum tsc_buf_type buf_type);
td_void tsc_hal_tx_de_config(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_tx_set_buf(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_u64 dst_buf_addr, td_u32 dst_buf_len);
td_bool tsc_hal_tx_get_dsp_tor_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_tx_set_buf_addr(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_u64 dst_addr);
td_void tsc_hal_tx_set_buf_len(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_u32 dst_len);
td_void tsc_hal_tx_add_dsc(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_tx_set_ctrl(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, enum tsc_buf_type buf_type,
td_u32 tx_pkg_th);
td_void tsc_hal_tx_set_int(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_bool dsc_rd, td_bool tx_pkt);
td_u32 tsc_hal_tx_get_dsc_rd_total_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_tx_get_pkt_cnt_total_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_tx_get_dsc_rd_int_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_tx_cls_dsc_rd_int_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_u32 tsc_hal_tx_get_pkt_cnt_int_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_tx_cls_pkt_cnt_int_status(const struct tsr2rcipher_mgmt *mgmt, td_u32 id);
td_void tsc_hal_tx_get_dsc_rd_total_int_value(const struct tsr2rcipher_mgmt *mgmt, td_u32 *value_array);
td_void tsc_hal_tx_get_pkt_cnt_total_int_value(const struct tsr2rcipher_mgmt *mgmt, td_u32 *value_array);
/* TSR2RCIPHER TOP hal level functions. */
td_void tsc_hal_top_set_int(const struct tsr2rcipher_mgmt *mgmt, td_bool rx_int, td_bool tx_int, td_bool cipher_int);
td_u32 tsc_hal_top_get_rx_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_top_get_rx_raw_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_void tsc_hal_top_cls_rx_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_top_get_tx_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_top_get_tx_raw_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_void tsc_hal_top_cls_tx_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_top_get_cipher_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_u32 tsc_hal_top_get_cipher_raw_int_status(const struct tsr2rcipher_mgmt *mgmt);
td_void tsc_hal_top_cls_cipher_int_status(const struct tsr2rcipher_mgmt *mgmt);
/* empty */
td_void tsc_hal_init_hw(const struct tsr2rcipher_mgmt *mgmt);
td_void tsc_hal_de_init_hw(const struct tsr2rcipher_mgmt *mgmt);
td_void tsc_hal_mdscset_en(const struct tsr2rcipher_mgmt *mgmt, td_u32 id, td_bool ca_en, td_bool ca_chan_scr_en);
td_void tsc_hal_en_mmu(struct tsr2rcipher_mgmt *mgmt);
td_void tsc_hal_dis_mmu(const struct tsr2rcipher_mgmt *mgmt);
#ifdef __cplusplus
}
#endif
#endif /* __HAL_TSR2RCIPHER_H__ */