906 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			906 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/****************************************************************************
 | 
						|
 | 
						|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | 
						|
 | 
						|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | 
						|
be copied by any method or incorporated into another program without
 | 
						|
the express written consent of Aerospace C.Power. This Information or any portion
 | 
						|
thereof remains the property of Aerospace C.Power. The Information contained herein
 | 
						|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | 
						|
liability for its use in any way and conveys no license or title under
 | 
						|
any patent or copyright and makes no representation or warranty that this
 | 
						|
Information is free from patent or copyright infringement.
 | 
						|
 | 
						|
****************************************************************************/
 | 
						|
 | 
						|
#ifndef MAC_STATUS_H
 | 
						|
#define MAC_STATUS_H
 | 
						|
#include "os_types.h"
 | 
						|
#include "hw_tonemap.h"
 | 
						|
#include "os_timer_api.h"
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    MAC_DUMP_TYPE_1 = 1,
 | 
						|
    MAC_DUMP_TYPE_2,
 | 
						|
    MAC_DUMP_TYPE_3,
 | 
						|
    MAC_DUMP_TYPE_4,
 | 
						|
    MAC_DUMP_TYPE_5,
 | 
						|
    MAC_DUMP_TYPE_6,
 | 
						|
    MAC_DUMP_TYPE_7,
 | 
						|
    MAC_DUMP_TYPE_8,
 | 
						|
    MAC_DUMP_TYPE_9,
 | 
						|
    MAC_DUMP_TYPE_10,
 | 
						|
} MAC_DUMP_TYPE;
 | 
						|
 | 
						|
typedef struct _mac_rx_status{
 | 
						|
    uint32_t mac_rx_msdu_cnt;  //msdu
 | 
						|
    uint32_t mac_rx_mpdu_cnt;  //mpdu
 | 
						|
    uint32_t mac_rx_bcn_ok_cnt;
 | 
						|
    uint32_t mac_rx_bcn_upload_cnt;
 | 
						|
    uint32_t mac_rx_pb_cnt;
 | 
						|
    uint32_t mac_rx_fc_err_cnt;
 | 
						|
    uint32_t mac_rx_fc_err_no_match_cnt; //hw/sw check fc crc no match
 | 
						|
    uint32_t mac_rx_bcn_pb_err_cnt;
 | 
						|
    uint32_t mac_rx_sof_pb_err_cnt;
 | 
						|
    uint32_t mac_rx_pld_err_cnt;
 | 
						|
    uint32_t mac_rx_abort_cnt;
 | 
						|
    uint32_t mac_rx_overflow_cnt;
 | 
						|
    uint32_t mac_rx_unicast_cnt;    //unicast
 | 
						|
    uint32_t mac_rx_broadcast_cnt;  //broadcast
 | 
						|
    uint32_t mac_rx_mpdu_tpye_err_cnt;  //broadcast
 | 
						|
    uint32_t mac_rx_msdu_crc_err_cnt;
 | 
						|
    uint32_t mac_rx_msdu_null_first_pb_cnt;
 | 
						|
    uint32_t mac_rx_half_pkt_cnt;
 | 
						|
    uint32_t mac_rx_att_not_done_cnt;
 | 
						|
    uint32_t mac_rx_msdu_len_is_0_cnt;
 | 
						|
    uint32_t mac_rx_proto_nomatch_cnt;
 | 
						|
    uint32_t mac_rx_bcn_err_cnt;
 | 
						|
    uint32_t mac_rx_fc_invalid_cnt;
 | 
						|
}mac_rx_status_t;
 | 
						|
 | 
						|
typedef struct _mac_tx_status{
 | 
						|
    uint32_t mac_mpdu_tx_cnt;
 | 
						|
    uint32_t mac_tx_no_ack_cnt;
 | 
						|
    uint32_t mac_mpdu_tx_unicast_cnt;     //unicast
 | 
						|
    uint32_t mac_mpdu_tx_broadcast_cnt;  //broadcast
 | 
						|
    uint32_t mac_tx_no_msdu_cnt;    //no msdu to send
 | 
						|
    uint32_t mac_tx_underflow_cnt; //force phy underflow cnt
 | 
						|
    uint32_t mac_tx_no_ack_cnt_pco;
 | 
						|
    uint32_t mac_mpdu_tx_unicast_cnt_pco;     //unicast
 | 
						|
    uint32_t mac_tx_unicast_pb_all_err_cnt;
 | 
						|
    uint32_t mac_tx_unicast_pb_all_err_cnt_pco;
 | 
						|
    uint32_t mac_tx_bcsma_flush_q_cnt;
 | 
						|
    /* just calc sof tx completed by phy count and exclude retry count */
 | 
						|
    uint32_t mac_msdu_tx_cnt;
 | 
						|
    uint32_t tx_msdu_comp_trigger_cnt;
 | 
						|
    uint32_t send_msdu_trigger_cnt;
 | 
						|
    uint32_t swq_to_hwq_cnt;
 | 
						|
    uint32_t csma_ignore_cca_cnt;
 | 
						|
}mac_tx_status_t;
 | 
						|
 | 
						|
enum TMI_ID_TYPE {
 | 
						|
    P_TMI_0 ,       // 0
 | 
						|
    P_TMI_1 ,       // 1
 | 
						|
    P_TMI_2 ,       // 2
 | 
						|
    P_TMI_3 ,       // 3
 | 
						|
    P_TMI_4 ,       // 4
 | 
						|
    P_TMI_6 ,       // 5
 | 
						|
    P_TMI_7 ,       // 6
 | 
						|
    P_TMI_9 ,       // 7
 | 
						|
    P_TMI_11 ,      // 8
 | 
						|
    P_TMI_12 ,      // 9
 | 
						|
    P_TMI_13 ,      // 10
 | 
						|
    P_TMI_14 ,      // 11
 | 
						|
    P_EXTMI_6 ,     // 12
 | 
						|
    P_EXTMI_11 ,    // 13
 | 
						|
    P_EXTMI_12 ,    // 14
 | 
						|
    P_EXTMI_13 ,    // 15
 | 
						|
    P_TMI_MAX       // 16
 | 
						|
};
 | 
						|
 | 
						|
#define MAX_SOF_ERR_CNT_DEPTH   3
 | 
						|
typedef struct _mac_sof_err_status{
 | 
						|
    /*rid pbnum*/
 | 
						|
    uint32_t sof_err_cnt[P_TMI_MAX][MAX_PB_NUM_4];
 | 
						|
    uint32_t record_depth;
 | 
						|
    uint32_t illega_pkt_cnt;
 | 
						|
}mac_sof_err_status;
 | 
						|
 | 
						|
typedef struct _mac_status_zc_cnt {
 | 
						|
    /* phase event counter */
 | 
						|
    uint32_t phase_a_change_cnt;
 | 
						|
    uint32_t phase_b_change_cnt;
 | 
						|
    uint32_t phase_c_change_cnt;
 | 
						|
    uint32_t event_cnt;
 | 
						|
    uint32_t reset_hw_cnt;
 | 
						|
    uint32_t zc_req_cnt;
 | 
						|
} mac_status_zc_cnt_t;
 | 
						|
 | 
						|
/* save mac zc core parameter */
 | 
						|
typedef union _mac_status_zc_para {
 | 
						|
    struct {
 | 
						|
        /* phase A status */
 | 
						|
        uint32_t    phase_a_status      : 1,
 | 
						|
        /* phase B status */
 | 
						|
                    phase_b_status      : 1,
 | 
						|
        /* phase C status */
 | 
						|
                    phase_c_status      : 1,
 | 
						|
        /* zc hw is half collect */
 | 
						|
                    hw_is_half_clct     : 1,
 | 
						|
        /* zc hw cap edge */
 | 
						|
                    hw_cap_edge         : 1,
 | 
						|
        /* for kl1/2: is switch gpio collect
 | 
						|
         * for kl3: is double edge collect
 | 
						|
         */
 | 
						|
                    is_switch_gpio_clct : 1,
 | 
						|
        /* reserved for future */
 | 
						|
                    rsvd0               : 10,
 | 
						|
        /* support phase/collect bitmap */
 | 
						|
                    support_btm         : 6,
 | 
						|
        /* reserved for future */
 | 
						|
                    rsvd1               : 10;
 | 
						|
    };
 | 
						|
    uint32_t data;
 | 
						|
} mac_status_zc_para_t;
 | 
						|
 | 
						|
typedef struct _mac_isr_status {
 | 
						|
    uint32_t  isr_cnt;
 | 
						|
    uint32_t  dsr_isr_sync_cnt;
 | 
						|
} mac_isr_status_t;
 | 
						|
 | 
						|
typedef struct _mac_status_zc_record {
 | 
						|
    mac_status_zc_cnt_t cnt;
 | 
						|
    mac_status_zc_para_t para;
 | 
						|
} mac_status_zc_record_t;
 | 
						|
 | 
						|
typedef struct _mac_stream_status {
 | 
						|
    /* timeout stream delete counter */
 | 
						|
    uint32_t timeout_cnt;
 | 
						|
} mac_stream_status_t;
 | 
						|
 | 
						|
typedef enum _mac_peer_type {
 | 
						|
    PEER_SELF = 0,      /* peer type of self */
 | 
						|
    PEER_BCAST,         /* peer type of broadcast */
 | 
						|
    PEER_PROXY,         /* peer type of proxy */
 | 
						|
    PEER_SUB,           /* peer type of sub node */
 | 
						|
    PEER_TMP,           /* peer type of temporary */
 | 
						|
    PEER_FAIL           /* peer type of fail delete */
 | 
						|
} mac_peer_type_t;
 | 
						|
 | 
						|
typedef struct _mac_peer_del_cnt {
 | 
						|
    /* overflow sub peer delete counter */
 | 
						|
    uint32_t sub_peer_del_cnt       : 12,
 | 
						|
    /* overflow temporary peer delete counter */
 | 
						|
             temp_peer_del_cnt      : 12,
 | 
						|
    /* overflow peer delete fail counter */
 | 
						|
             peer_del_fail_cnt      : 8;
 | 
						|
} mac_peer_del_cnt_t;
 | 
						|
 | 
						|
typedef union _mac_peer_status {
 | 
						|
    /* count of all type peer */
 | 
						|
    uint32_t cnt;
 | 
						|
    /* detailed peer delete count */
 | 
						|
    mac_peer_del_cnt_t del_cnt;
 | 
						|
} mac_peer_status_t;
 | 
						|
 | 
						|
typedef struct _mac_sync_ntb_record {
 | 
						|
    /* sync ntb overflow war1 */
 | 
						|
    uint32_t sync_ntb_ovf_way1_cnt  : 16,
 | 
						|
    /* sync ntb overflow war1 success */
 | 
						|
             way1_success_cnt       : 16;
 | 
						|
    /* sync ntb overflow war2 */
 | 
						|
    uint32_t sync_ntb_ovf_way2_cnt  : 16,
 | 
						|
    /* sync ntb overflow war2 success */
 | 
						|
             way2_success_cnt       : 16;
 | 
						|
    /* sync ntb overflow war3 */
 | 
						|
    uint32_t sync_ntb_ovf_way3_cnt  : 16,
 | 
						|
    /* sync ntb overflow war3 success */
 | 
						|
             way3_success_cnt       : 16;
 | 
						|
    /* sync ntb overflow war4 */
 | 
						|
    uint32_t sync_ntb_ovf_way4_cnt  : 16,
 | 
						|
    /* sync ntb overflow war4 success */
 | 
						|
             way4_success_cnt       : 16;
 | 
						|
    /* sync ntb overflow war5 */
 | 
						|
    uint32_t sync_ntb_ovf_way5_cnt;
 | 
						|
    /* sync ntb overflow war6 */
 | 
						|
    uint32_t sync_ntb_ovf_way6_cnt;
 | 
						|
} mac_sync_ntb_record_t;
 | 
						|
 | 
						|
/* 32 BYTE */
 | 
						|
typedef struct _mac_status {
 | 
						|
    mac_rx_status_t rx_status;
 | 
						|
    mac_tx_status_t tx_status;
 | 
						|
    mac_sof_err_status sof_err_st;
 | 
						|
    mac_status_zc_record_t zc_record;
 | 
						|
    mac_isr_status_t isr_status;
 | 
						|
    mac_stream_status_t stream_status;
 | 
						|
    mac_peer_status_t peer_status;
 | 
						|
    mac_sync_ntb_record_t sync_ntb_record;
 | 
						|
} mac_status_t;
 | 
						|
 | 
						|
#define MAX_WAIT_DUMP_CNT 10000000
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_msdu_cnt               mac rx msdu operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_msdu_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_msdu_cnt               mac rx msdu operation.
 | 
						|
 *@return                                  rx msdu count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_msdu_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_msdu_cnt               mac rx mpdu operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_mpdu_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_mpdu_cnt               mac rx mpdu operation.
 | 
						|
 *@return                                  rx mpdu count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_mpdu_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_bcn_ok_cnt             mac rx beacon ok operation.
 | 
						|
 *@return                                  rx mpdu count
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_bcn_ok_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_bcn_ok_cnt             mac rx beacon ok operation.
 | 
						|
 *@return                                  rx mpdu count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_bcn_ok_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_bcn_upload_cnt         mac rx beacon upload operation.
 | 
						|
 *@return                                  rx mpdu count
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_bcn_upload_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_bcn_upload_cnt         mac rx beacon upload operation.
 | 
						|
 *@return                                  rx mpdu count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_bcn_upload_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_pb_cnt                 mac rx pb operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_pb_cnt();
 | 
						|
 | 
						|
 /**
 | 
						|
  *@brief mac_get_rx_pb_cnt                mac rx pb operation.
 | 
						|
  *@return                                 rx pkt count
 | 
						|
 */
 | 
						|
uint32_t mac_get_rx_pb_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_fc_err_cnt             mac rx fc err operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_fc_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_fc_err_cnt             mac rx fc err operation.
 | 
						|
 *@return                                  rx fc err count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_fc_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_fc_err_no_match_cnt    mac rx fc err no match operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_fc_err_no_match_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_fc_err_no_match_cnt    mac rx fc err no match operation.
 | 
						|
 *@return                                  rx fc err count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_fc_err_no_match_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_bcn_pb_err_cnt         mac rx pb err operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_bcn_pb_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_bcn_pb_err_cnt         mac rx bcn pb err operation.
 | 
						|
 *@return                                  rx bcn pb err count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_bcn_pb_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_sof_pb_err_cnt         mac rx sof pb err operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_sof_pb_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_sof_pb_err_cnt         mac rx sof bcn pb err operation.
 | 
						|
 *@return                                  rx sof pb err count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_sof_pb_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_pld_err_cnt            mac rx pld err operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_pld_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_pld_err_cnt            mac rx pkt operation.
 | 
						|
 *@return                                  rx pld err count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_pld_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_abort_cnt              mac rx abort operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_abort_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_abort_cnt              mac rx abort operation.
 | 
						|
 *@return                                  rx abort count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_abort_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_overflow_cnt           mac rx overflow operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_overflow_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_overflow_cnt           mac rx overflow operation.
 | 
						|
 *@return                                  rx overflow count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_overflow_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_unicast_cnt            mac rx unicast operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_unicast_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_unicast_cnt            mac rx unicast operation.
 | 
						|
 *@return                                  rx unicast count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_unicast_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_broadcast_cnt          mac rx broadcast operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_broadcast_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_broadcast_cnt          mac rx broadcast operation.
 | 
						|
 *@return                                  rx broadcast count
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_broadcast_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_mpdu_type_err_cnt      mac rx mpdu type operation.
 | 
						|
 *@return                                  0:ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_mpdu_type_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_mpdu_type_err_cnt      mac rx mpdu type operation.
 | 
						|
 *@return                                  mac_rx_mpdu_tpye_err_cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_mpdu_type_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_msdu_crc_err_cnt       mac rx msdu type operation.
 | 
						|
 *@return                                  0:ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_msdu_crc_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_msdu_crc_err_cnt       mac rx msdu type operation.
 | 
						|
 *@return                                  mac_rx_msdu_crc_err_cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_msdu_crc_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_msdu_null_first_pb_cnt mac rx msdu type operation.
 | 
						|
 *@return                                  0:ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_msdu_null_first_pb_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_msdu_null_first_pb_cnt mac rx msdu type operation.
 | 
						|
 *@return                                  mac_rx_msdu_flush_err_cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_msdu_null_first_pb_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_half_pkt_cnt           mac rx half pkt operation.
 | 
						|
 *@return                                  0:ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_half_pkt_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_half_pkt_cnt           mac rx half pkt operation.
 | 
						|
 *@return                                  mac_rx_half_pkt_cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_half_pkt_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_att_not_done_cnt       mac rx mpdu not done operation.
 | 
						|
 *@return                                  0:ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_att_not_done_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_att_not_done_cnt       mac rx mpdu not done operation.
 | 
						|
 *@return                                  mac_rx_att_not_done_cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_att_not_done_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_msdu_len_is_0_cnt      mac rx mpdu len is 0 operation.
 | 
						|
 *@return                                  0:ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_msdu_len_is_0_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_msdu_len_is_0_cnt      mac rx mpdu len is 0 operation.
 | 
						|
 *@return                                  mac_rx_msdu_len_is_0_cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_msdu_len_is_0_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_proto_nomatch_cnt      add mac rx proto nomatch cnt.
 | 
						|
 *@return                                  mac_rx_msdu_len_is_0_cnt
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_proto_nomatch_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_proto_nomatch_cnt      get mac rx proto nomatch cnt.
 | 
						|
 *@return                                  mac rx proto nomatch cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_proto_nomatch_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_bcn_err_cnt            add mac rx error beacon cnt.
 | 
						|
 *@return                                  0
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_bcn_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_proto_nomatch_cnt      get mac rx error beacon cnt.
 | 
						|
 *@return                                  mac rx error beacon cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_bcn_err_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_rx_fc_invalid_cnt         add mac rx fc invalid cnt.
 | 
						|
 *@return                                  0
 | 
						|
*/
 | 
						|
uint32_t mac_add_rx_fc_invalid_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_rx_fc_invalid_cnt         get mac rx fc invalid cnt.
 | 
						|
 *@return                                  mac rx fc invalid cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_rx_fc_invalid_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_mpdu_tx_cnt               mac tx mpdu pkt operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_mpdu_tx_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_mpdu_tx_cnt               mac tx pkt operation.
 | 
						|
 *@return                                  tx pkt count
 | 
						|
*/
 | 
						|
uint32_t mac_get_mpdu_tx_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_tx_no_ack_cnt             mac tx not receive ack .
 | 
						|
 *@param is_pco                            1: for pco's statistic;
 | 
						|
 *@param                                   0: for total's statistic
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_tx_no_ack_cnt(uint32_t is_pco);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_tx_no_ack_cnt             mac tx not receive ack.
 | 
						|
 *@param is_pco                            1: for pco's statistic;
 | 
						|
 *@param                                   0: for total's statistic
 | 
						|
 *@return                                  tx ok count
 | 
						|
*/
 | 
						|
uint32_t mac_get_tx_no_ack_cnt(uint32_t is_pco);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_tx_unicast_all_pb_err_cnt
 | 
						|
 *                                         mac tx receive ack, but result = 1 .
 | 
						|
 *@param is_pco                            1: for pco's statistic;
 | 
						|
 *@param                                   0: for total's statistic
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_tx_unicast_all_pb_err_cnt(uint32_t is_pco);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_tx_unicast_all_pb_err_cnt mac tx receive ack, but result = 1.
 | 
						|
 *@param is_pco                            1: for pco's statistic;
 | 
						|
 *@param                                   0: for total's statistic
 | 
						|
 *@return                                  tx ok count
 | 
						|
*/
 | 
						|
uint32_t mac_get_tx_unicast_all_pb_err_cnt(uint32_t is_pco);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_mpdu_tx_unicast_cnt       mac tx unicast operation.
 | 
						|
 *@param is_pco                            1: for pco's statistic;
 | 
						|
 *@param                                   0: for total's statistic
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
 | 
						|
uint32_t mac_add_mpdu_tx_unicast_cnt(uint32_t is_pco);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_mpdu_tx_unicast_cnt       mac tx unicast operation.
 | 
						|
 *@param is_pco                            1: for pco's statistic;
 | 
						|
 *@param                                   0: for total's statistic
 | 
						|
 *@return                                  tx unicast count
 | 
						|
*/
 | 
						|
uint32_t mac_get_mpdu_tx_unicast_cnt(uint32_t is_pco);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_mpdu_tx_broadcast_cnt     mac tx broadcast operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_mpdu_tx_broadcast_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_mpdu_tx_broadcast_cnt     mac tx broadcast operation.
 | 
						|
 *@return                                  tx broadcast count
 | 
						|
*/
 | 
						|
uint32_t mac_get_mpdu_tx_broadcast_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_no_msdu_to_send_cnt       mac no msdu to send operation.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_no_msdu_to_send_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_no_msdu_to_send_cnt       get no msdu to send cnt.
 | 
						|
 *@return                                  no msdu to send cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_no_msdu_to_send_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_set_tx_underflow_cnt          set tx underflow cnt.
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_set_tx_underflow_cnt(uint32_t cnt);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_tx_underflow_cnt          get tx underflow cnt.
 | 
						|
 *@return                                  tx underflow force cnt
 | 
						|
*/
 | 
						|
uint32_t mac_get_tx_underflow_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_sof_err_cnt               mac add sof err cnt.
 | 
						|
 *@param uint32_t proto                    [p_tmi]
 | 
						|
 *@param uint32_t rid                      [rid id]
 | 
						|
 *@param uint8_t pb_num                    [pb num 1 - 4]
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_add_sof_err_cnt(uint32_t proto, uint32_t rid, uint8_t pb_num);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_sof_err_cnt               mac add sof err cnt.
 | 
						|
 *@param uint32_t proto                    [p_tmi]
 | 
						|
 *@param uint32_t rid                      [rid id]
 | 
						|
 *@param uint8_t pb_num                    [pb num 1 - 4]
 | 
						|
 *@return                                  0: ok
 | 
						|
*/
 | 
						|
uint32_t mac_get_sof_err_cnt(uint32_t proto, uint32_t rid, uint8_t pb_num);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_add_zc_reset_cnt       add zc reset hw counter.
 | 
						|
 *
 | 
						|
 *@return                                  none
 | 
						|
 */
 | 
						|
void mac_status_add_zc_reset_hw_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_add_zc_reset_cnt       get zc reset hw counter.
 | 
						|
 *
 | 
						|
 *@return                                  counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_status_get_zc_reset_hw_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_add_zc_event_cnt       add zc event count
 | 
						|
 *@return                                  none
 | 
						|
 */
 | 
						|
void mac_status_add_zc_event_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_get_zc_event_cnt       get zc event counter.
 | 
						|
 *
 | 
						|
 *@return                                  counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_status_get_zc_event_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_add_zc_req_cnt       get zc request counter.
 | 
						|
 *
 | 
						|
 *@return                                  counter value.
 | 
						|
 */
 | 
						|
void mac_status_add_zc_req_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_get_zc_req_cnt       get zc request counter.
 | 
						|
 *
 | 
						|
 *@return                                  counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_status_get_zc_req_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_add_zc_phase_chg_cnt    updata phase change count
 | 
						|
 *@param phase_id                           changed phase id
 | 
						|
 *@return                                   none
 | 
						|
 */
 | 
						|
void mac_status_add_zc_phase_chg_cnt(uint8_t phase_id);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_get_zc_phase_chg_cnt    get phase change count
 | 
						|
 *@param phase_id                           which phase to get
 | 
						|
 *@return                                   phase change count
 | 
						|
 */
 | 
						|
uint32_t mac_status_get_zc_phase_chg_cnt(uint8_t phase_id);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_zc_status_para_update  updata zc phase status to flash
 | 
						|
 *@param phase_status                      phase status.
 | 
						|
 *@param phase_id                          which phase status to be update
 | 
						|
 *@return                                  none
 | 
						|
 */
 | 
						|
void mac_status_zc_status_para_update(uint8_t phase_status,
 | 
						|
    uint8_t phase_id);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief mac_status_zc_nv_para_update     update nv info to flash
 | 
						|
 * @param is_half_clct                     zc hw is half collect
 | 
						|
 * @param cap_edge                         zc hw cap edge
 | 
						|
 * @param support_btm                      support phase bitmap
 | 
						|
 * @param is_switch_gpio_clct              is switch gpio collect
 | 
						|
 * @return                                 none
 | 
						|
 */
 | 
						|
void mac_status_zc_nv_para_update(uint8_t is_half_clct,
 | 
						|
    uint8_t cap_edge, uint8_t support_btm, uint8_t is_switch_gpio_clct);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_get_zc_phase_para      get zc parameter (include phase
 | 
						|
 *                                         status and nv info)
 | 
						|
 *@return                                  none
 | 
						|
 */
 | 
						|
uint32_t mac_status_get_zc_phase_para(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_get_zc_phase_valid     get mac zc phase valid bitmap
 | 
						|
 *
 | 
						|
 *@return                                  0: phase invalid, 1: phase valid
 | 
						|
 *                                         bit0 = phase a,
 | 
						|
 *                                         bit1 = phase b,
 | 
						|
 *                                         bit2 = phase c.
 | 
						|
 */
 | 
						|
uint32_t mac_status_get_zc_phase_valid(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_status_printf             mac status write to flash.
 | 
						|
 *@return                                  null
 | 
						|
*/
 | 
						|
void mac_get_status_printf();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_dump_buf                      mac dump data.
 | 
						|
 *@param   MAC_DUMP_TYPE type:             dump type.
 | 
						|
 *@param   uint32_t *desc:                 mpdu descriptione.
 | 
						|
 *@param   uint32_t desc_len               desc len.
 | 
						|
 *@param   uint32_t *buf_addr0             dump data addr0.
 | 
						|
 *@param   uint32_t value_len0             buf len0
 | 
						|
 *@param   uint32_t *buf_addr1             dump data addr1.
 | 
						|
 *@param   uint32_t value_len1             buf len1
 | 
						|
 *@param   uint8_t is_assert               1: assert   0: non assert
 | 
						|
 *@return                                  null
 | 
						|
*/
 | 
						|
void mac_dump_buf(MAC_DUMP_TYPE type, uint32_t *desc, uint32_t desc_len,
 | 
						|
                  uint32_t *buf_addr0, uint32_t value_len0, uint32_t *buf_addr1,
 | 
						|
                  uint32_t value_len1, uint8_t is_assert);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_phy_print_debug_info          print mac and phy register.
 | 
						|
 *@return                                  null
 | 
						|
*/
 | 
						|
void mac_phy_print_debug_info();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_rid_get_p_tmi                 mac rid get p_tmi.
 | 
						|
 *@param   uint32_t proto                  proto.
 | 
						|
 *@param   uint32_t rid                    rid index.
 | 
						|
 *@param   uint32_t *p_tmi                 p_tmi.
 | 
						|
 *@return                                  0
 | 
						|
*/
 | 
						|
uint32_t mac_rid_get_p_tmi(uint32_t proto, uint32_t rid, uint32_t *p_tmi);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_sof_err_cnt_clr               clear mac status cnt.
 | 
						|
 *@return                                  0
 | 
						|
*/
 | 
						|
uint32_t mac_status_cnt_clr();
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_isr_cnt                   add isr cnt
 | 
						|
 *
 | 
						|
 *@return                                  none
 | 
						|
 */
 | 
						|
uint32_t mac_add_isr_cnt();
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_status_get_zc_req_cnt       get isr counter.
 | 
						|
 *
 | 
						|
 *@return                                counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_get_isr_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_dsr_isr_sync_cnt        add counter of mac dsr isr calls.
 | 
						|
 *
 | 
						|
 *@return                                counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_add_dsr_isr_sync_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_dsr_isr_sync_cnt        get counter of mac dsr isr calls.
 | 
						|
 *
 | 
						|
 *@return                                counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_get_dsr_isr_sync_cnt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_flush_tx_bcsma_cnt      get counter of flush tx bcsma cnt.
 | 
						|
 *
 | 
						|
 *@return                                counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_add_flush_tx_bcsma_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_timeout_stream_del_cnt  add counter of timeout stream delete
 | 
						|
 *
 | 
						|
 *@return                                none.
 | 
						|
 */
 | 
						|
uint32_t mac_add_timeout_stream_del_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_timeout_stream_del_cnt  get counter of timeout stream delete
 | 
						|
 *
 | 
						|
 *@return                                counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_get_timeout_stream_del_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_overflow_peer_del_cnt     add count of peer delete
 | 
						|
 *@biref peer_type                         which type of peer to add count
 | 
						|
 *@return                                  none.
 | 
						|
 */
 | 
						|
uint32_t mac_add_overflow_peer_del_cnt(mac_peer_type_t peer_type);
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_overflow_peer_del_cnt     get count of peer overflow delete
 | 
						|
 *@
 | 
						|
 *@return                                  counter value.
 | 
						|
 */
 | 
						|
uint32_t mac_get_overflow_peer_del_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_peer_stream_overflow_cnt_dbglog  print debug log of stream overflow
 | 
						|
 *       times and peer delete count to flash
 | 
						|
 *@param                                      none
 | 
						|
 *@return                                     none
 | 
						|
 */
 | 
						|
void mac_peer_stream_overflow_cnt_dbglog();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_msdu_tx_cnt        add packets of msdu tx count
 | 
						|
 *@param                                   none
 | 
						|
 *@return                                  none
 | 
						|
 */
 | 
						|
void mac_add_msdu_tx_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_msdu_tx_cnt     get packets of msdu tx count
 | 
						|
 *@param                                   none
 | 
						|
 *@return                                  msdu tx count
 | 
						|
 */
 | 
						|
uint32_t mac_get_msdu_tx_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_send_msdu_cnt          add send msdu count
 | 
						|
 *@param                                none
 | 
						|
 *@return                               none
 | 
						|
 */
 | 
						|
void mac_add_send_msdu_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_send_msdu_cnt          get send msdu count
 | 
						|
 *@param                                none
 | 
						|
 *@return                               send msdu count
 | 
						|
 */
 | 
						|
uint32_t mac_get_send_msdu_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_swq_to_hwq_cnt         add swq to hwq msdu count
 | 
						|
 *@param                                none
 | 
						|
 *@return                               none
 | 
						|
 */
 | 
						|
void mac_add_swq_to_hwq_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_swq_to_hwq_cnt         get swq to hwq msdu count
 | 
						|
 *@param                                none
 | 
						|
 *@return                               swq to hwq msdu count
 | 
						|
 */
 | 
						|
uint32_t mac_get_swq_to_hwq_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_tx_msdu_comp_trigger_cnt   add tx msdu complete trigger swq
 | 
						|
 *                                      count
 | 
						|
 *@param                                none
 | 
						|
 *@return                               none
 | 
						|
 */
 | 
						|
void mac_add_tx_msdu_comp_trigger_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_tx_msdu_comp_trigger_cnt   get tx msdu complete trigger swq
 | 
						|
 *                                      count
 | 
						|
 *@param                                none
 | 
						|
 *@return                               tx msdu complete trigger count
 | 
						|
 */
 | 
						|
uint32_t mac_get_tx_msdu_comp_trigger_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_add_csma_ignore_cca_cnt    add tx csma ignore cca count
 | 
						|
 *
 | 
						|
 *@param                                none
 | 
						|
 *@return                               none
 | 
						|
 */
 | 
						|
void mac_add_csma_ignore_cca_cnt();
 | 
						|
 | 
						|
/**
 | 
						|
 *@brief mac_get_csma_ignore_cca_cnt    get tx csma ignore cca count
 | 
						|
 *
 | 
						|
 *@param                                none
 | 
						|
 *@return                               tx csma ignore cca count
 | 
						|
 */
 | 
						|
uint32_t mac_get_csma_ignore_cca_cnt();
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |