241 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			241 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef __TX_ENTRY_H
 | |
| #define __TX_ENTRY_H
 | |
| 
 | |
| #include "phy_bb.h"
 | |
| #include "phy_phase.h"
 | |
| #include "tx_mpdu_start.h"
 | |
| #include "iot_irq.h"
 | |
| 
 | |
| #define MAC_TX_BEACON                   0
 | |
| #define MAC_TX_SOF                      1
 | |
| #define MAC_TX_SACK                     2
 | |
| #define MAC_TX_CTS                      3
 | |
| #define MAC_TX_SOUND                    4
 | |
| #define MAC_TX_RSOF                     5
 | |
| #define MAC_TX_TMI                      10
 | |
| #define MAC_TX_MIX_MODE                 11
 | |
| #define MAC_TX_GP_EXT                   12
 | |
| #define MAC_TX_GP_TONE_MASK             13
 | |
| #define MAC_TX_BURN                     14
 | |
| #define MAC_TX_BAND_SWITCH              15
 | |
| #define MAC_TX_GP_HYBRID                16
 | |
| #define PHY_BURST_MODE                  17
 | |
| #define MAC_TX_INTR_BCN_ALT             100
 | |
| #define MAC_TX_INTR_MPDU_COMPLETE       101
 | |
| #define MAC_TX_SCHED_BCN_AHEAD_ALERT    102
 | |
| #define MAC_TX_PHY_TD_START             103
 | |
| #define MAC_TX_EMC_SCAN                 104
 | |
| #define MAC_PHY_RST_FLOW                105
 | |
| #define MAC_SOUND_TMAP                  106
 | |
| #define MAC_TX_TEST_ID                  MAC_TX_BEACON
 | |
| 
 | |
| #define MAC_TMI_0                       0
 | |
| #define MAC_TMI_1                       1
 | |
| #define MAC_TMI_2                       2
 | |
| #define MAC_TMI_3                       3
 | |
| #define MAC_TMI_4                       4
 | |
| #define MAC_TMI_5                       5
 | |
| #define MAC_TMI_6                       6
 | |
| #define MAC_TMI_7                       7
 | |
| #define MAC_TMI_8                       8
 | |
| #define MAC_TMI_9                       9
 | |
| #define MAC_TMI_10                      10
 | |
| #define MAC_TMI_11                      11
 | |
| #define MAC_TMI_12                      12
 | |
| #define MAC_TMI_13                      13
 | |
| #define MAC_TMI_14                      14
 | |
| #define MAC_EXT_TMI_0                   15
 | |
| #define MAC_EXT_TMI_1                   16
 | |
| #define MAC_EXT_TMI_2                   17
 | |
| #define MAC_EXT_TMI_3                   18
 | |
| #define MAC_EXT_TMI_4                   19
 | |
| #define MAC_EXT_TMI_5                   20
 | |
| #define MAC_EXT_TMI_6                   21
 | |
| #define MAC_EXT_TMI_7                   22
 | |
| #define MAC_EXT_TMI_8                   23
 | |
| #define MAC_EXT_TMI_9                   24
 | |
| #define MAC_EXT_TMI_10                  25
 | |
| #define MAC_EXT_TMI_11                  26
 | |
| #define MAC_EXT_TMI_12                  27
 | |
| #define MAC_EXT_TMI_13                  28
 | |
| #define MAC_EXT_TMI_14                  29
 | |
| #define MAC_EXT_TMI_MAX                 30
 | |
| #define MAC_TMI_ID                      MAC_TMI_4
 | |
| 
 | |
| #define MAC_PB_NUM_0                    0
 | |
| #define MAC_PB_NUM_1                    1
 | |
| #define MAC_PB_NUM_2                    2
 | |
| #define MAC_PB_NUM_3                    3
 | |
| #define MAC_PB_NUM_4                    4
 | |
| #if MAC_TX_TEST_ID == MAC_TX_TMI
 | |
| #define MAC_PB_NUM_ID                   MAC_PB_NUM_4
 | |
| #else
 | |
| #define MAC_PB_NUM_ID                   MAC_PB_NUM_1
 | |
| #endif
 | |
| 
 | |
| #define MAC_DESC_SRC_TEI                1
 | |
| #define MAC_DESC_DST_TEI                2
 | |
| #define MAC_PB_SIZE_MAX                 PB_SIZE_520
 | |
| #define PHY_TMAP_TEST_ADDR              (0x73fc0000)
 | |
| #define TX_PKT_SEND_INTERVAL            100
 | |
| 
 | |
| /* multi rate support */
 | |
| #define MAC_RATE_RANDOM_SUPPORT         0
 | |
| 
 | |
| /* multi band support */
 | |
| #define MAC_MULTI_BAND_SUPPORT          0
 | |
| 
 | |
| /* tx always enable */
 | |
| #define PHY_TX_ALWAYS_EN                0
 | |
| 
 | |
| /* tx random tmap enable */
 | |
| #define PHY_TMAP_RANDOM_EN              0
 | |
| 
 | |
| /* compatible with nid bit width of all protocols */
 | |
| #define PHY_TXRX_NID_VAL                (0xb)
 | |
| 
 | |
| /* tx glb cfg */
 | |
| typedef struct _iot_tx_cfg_info {
 | |
|     /* phase */
 | |
|     PHY_PHASE_OVR_ID phase;
 | |
|         /* mac type */
 | |
|     uint32_t m_type :3,
 | |
|         /* current packet type */
 | |
|         p_type  :3,
 | |
|         /* current test type */
 | |
|         t_type  :7,
 | |
|         /* TMI */
 | |
|         tmi     :5,
 | |
|         /* pb num */
 | |
|         pb_num  :4,
 | |
|         /* band mode */
 | |
|         band_id :8,
 | |
|         /* gi */
 | |
|         gi :2;
 | |
|         /* source tei */
 | |
|     uint32_t src_tei : 12,
 | |
|         /* destination tei */
 | |
|         dst_tei : 12,
 | |
|         /* hwq num */
 | |
|         hwq_num :2,
 | |
|         /* ppdu mode */
 | |
|         ppdu_mode :2,
 | |
|         /* mpdu cnt */
 | |
|         mpdu_cnt :2,
 | |
|         /* turbo rate */
 | |
|         turbo_rate:2;
 | |
|         /* modulation */
 | |
|     uint16_t modu :3,
 | |
|         /* nid */
 | |
|         nid :8,
 | |
|         /* rate mode */
 | |
|         rate_mode :4,
 | |
|         /* sof ack en */
 | |
|         ack_en  :1;
 | |
| } iot_tx_cfg_info_t;
 | |
| 
 | |
| /* register tx intr */
 | |
| typedef struct _iot_mac_intr_info {
 | |
|     uint32_t       int_num;
 | |
|     iot_irq_t      handle;
 | |
| } iot_mac_intr_info_t;
 | |
| 
 | |
| extern volatile tx_mpdu_start *mpdu_start;
 | |
| extern iot_tx_cfg_info_t glb_cfg;
 | |
| extern uint32_t bcn_period_ms;
 | |
| extern uint32_t print_tx_period_ms;
 | |
| extern volatile bool_t mac_tx_complete_flag;
 | |
| extern volatile bool_t mac_beacon_alert_flag;
 | |
| extern iot_mac_intr_info_t mac_info;
 | |
| #if IOT_DTEST_ONLY_SUPPORT == 1
 | |
| extern uint16_t band_cnt[MAC_BB_MAX_RATE][MAX_HW_BAND];
 | |
| #else
 | |
| extern uint16_t *band_cnt[MAC_BB_MAX_RATE];
 | |
| #endif
 | |
| 
 | |
| /**
 | |
|  *@brief tx_common_init.
 | |
|  *  The common API function is designed for external calling by MP
 | |
|  *  or the other compositive scenario.
 | |
|  *
 | |
|  *@param band_idx           [band index.]
 | |
|  *@param enable             [bool type, true or false.]
 | |
|  *@exception                [none.]
 | |
|  *@return                   [none.]
 | |
| */
 | |
| void tx_common_init(uint32_t band_idx);
 | |
| 
 | |
| /**
 | |
|  *@brief phy_tx_gain_rms_set.
 | |
|  *  config tx td rms value to fix power.
 | |
|  *
 | |
|  *@param para_int           [int parameter.]
 | |
|  *@exception                [none.]
 | |
|  *@return                   [none.]
 | |
| */
 | |
| void phy_tx_gain_rms_set(uint8_t para_int);
 | |
| 
 | |
| /**
 | |
|  *@brief mac_tx_handle.
 | |
|  *  mac tx APIs to send specail pkt. such as phase,
 | |
|  *  mac prototype, packet type, number and if wait
 | |
|  *  rx or not.
 | |
|  *
 | |
|  *@param phase              [tx phase.]
 | |
|  *@param mac_type           [mac prototype.]
 | |
|  *@param pkt_type           [packet type.]
 | |
|  *@param num                [number.]
 | |
|  *@param wait_rx            [true or false.]
 | |
|  *@exception                [none.]
 | |
|  *@return                   [none.]
 | |
| */
 | |
| void mac_tx_handle(PHY_PHASE_OVR_ID phase, \
 | |
|     uint32_t mac_type, \
 | |
|     uint32_t pkt_type, \
 | |
|     uint32_t num, \
 | |
|     bool_t wait_rx);
 | |
| 
 | |
| /**
 | |
|  *@brief mac_glb_map.
 | |
|  *  update the newest global mac info.
 | |
|  *
 | |
|  *@param mac_type           [mac prototype.]
 | |
|  *@param pkt_type           [packet type.]
 | |
|  *@param test_type          [test id.]
 | |
|  *@exception                [none.]
 | |
|  *@return                   [none.]
 | |
| */
 | |
| void mac_glb_map(uint32_t mac_type, uint32_t pkt_type, uint32_t test_type);
 | |
| 
 | |
| /**
 | |
|  *@brief phy_interrupt_init.
 | |
|  *  phy interrupt initialize.
 | |
|  *
 | |
|  *@param none               [none.]
 | |
|  *@exception                [none.]
 | |
|  *@return                   [none.]
 | |
| */
 | |
| void phy_interrupt_init();
 | |
| 
 | |
| /**
 | |
|  *@brief tx_send_packet_interval.
 | |
|  *  use for tx sending packet at interval.
 | |
|  *
 | |
|  *@param interval           [time interval.]
 | |
|  *@exception                [none.]
 | |
|  *@return                   [none.]
 | |
|  */
 | |
| void tx_send_packet_interval(uint32_t interval);
 | |
| 
 | |
| /**
 | |
|  *@brief phy_tmap_common_init.
 | |
|  *  phy sound tone map common init.
 | |
|  *
 | |
|  *@param none               [none.]
 | |
|  *@exception                [none.]
 | |
|  *@return                   [none.]
 | |
|  */
 | |
| void phy_tmap_common_init();
 | |
| 
 | |
| #endif
 |