165 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			6.1 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 PLC_MAC_CFG_H
 | |
| #define PLC_MAC_CFG_H
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #define MAX_PDEV_NUM                1
 | |
| #if PLC_SUPPORT_DBG_PKT_MODE
 | |
| #define MAX_VDEV_NUM                2
 | |
| #else
 | |
| #define MAX_VDEV_NUM                1
 | |
| #endif
 | |
| 
 | |
| /* max wireless pdev num */
 | |
| #define MAX_RF_PDEV_NUM             1
 | |
| /* max wireless vdev num */
 | |
| #define MAX_RF_VDEV_NUM             1
 | |
| 
 | |
| #define PLC_SG_MAX_MSDU_SIZE        2076 //2048
 | |
| 
 | |
| /*
 | |
|  * TODO: resv value, to be refined later
 | |
|  *   sizeof(rx_mpdu_start) + \
 | |
|  *   sizeof(rx_mpdu_end) + \
 | |
|  *   sizeof(rx_pb_start) + \
 | |
|  *   sizeof(rx_pb_end)
 | |
|  */
 | |
| #define PLC_HW_RX_DESC_SIZE         (16 << 2) /* this should include FC length */
 | |
| #define PLC_RX_BUF_RESV_SIZE        (PLC_HW_RX_DESC_SIZE)
 | |
| #define PLC_RX_BUF_DATA_LEN         (PLC_FC_LEN + PLC_SG_MAX_MSDU_SIZE)
 | |
| 
 | |
| #define PLC_HW_RX_BUF_SIZE          (PLC_RX_BUF_RESV_SIZE + PLC_SG_MAX_MSDU_SIZE)
 | |
| 
 | |
| #define MAC_BCAST_DEF_RETRY_CNT                 (1)
 | |
| #define MAC_BCAST_MAX_RETRY_CNT                 (5)
 | |
| /* default retry cnt for mac layer */
 | |
| #define MAC_DEF_RETRY_CNT                       (5)
 | |
| #define MAC_UCAST_MAX_RETRY_CNT                 (5)
 | |
| /* default retry cnt for cco bcn, 0 means not retry, try once */
 | |
| #define PLC_BCN_DEF_CCO_RETRY_CNT               (1)
 | |
| /* default retry cnt for sta bcn, 0 means not retry, try once */
 | |
| #define PLC_BCN_DEF_STA_RETRY_CNT               (1)
 | |
| /* default retry cnt for iot sunsonal cco bcn, 0 means not retry, try once */
 | |
| #define PLC_BCN_DEF_CCO_RETRY_CNT_IOT_SUNSONAL  (2)
 | |
| /* default retry cnt for iot sunsonal sta sta bcn, 0 means not retry, try once */
 | |
| #define PLC_BCN_DEF_STA_RETRY_CNT_IOT_SUNSONAL  (2)
 | |
| 
 | |
| /* default retry cnt for detect pkt */
 | |
| #define PLC_BCN_DEF_DETECT_RETRY_CNT            (1)
 | |
| 
 | |
| /* rf retry cnt */
 | |
| #define MAC_RF_BCAST_DEF_RETRY_CNT   (1)
 | |
| #define MAC_RF_BCAST_MAX_RETRY_CNT   (3)
 | |
| #define MAC_RF_DEF_RETRY_CNT         (3)
 | |
| #define MAC_RF_UCAST_MAX_RETRY_CNT   (3)
 | |
| 
 | |
| /* RIFS config */
 | |
| #define MAC_MIN_SOF_SACK_RIFS_TMR           400
 | |
| #define MAC_MAX_SOF_SACK_RIFS_TMR           2300
 | |
| 
 | |
| #define MAC_FORCE_RIFS_US                   400
 | |
| /*final tx_rifs = MAC_FORCE_RIFS_US + MAC_TX_ADDTION_RIFS_US */
 | |
| #define MAC_TX_ADDTION_RIFS_US              100
 | |
| /*final rx_rifs = MAC_FORCE_RIFS_US + MAC_RX_ADDTION_RIFS_US */
 | |
| #define MAC_RX_ADDTION_RIFS_US              1900
 | |
| 
 | |
| /* Note: for cert mode, final rifs >= 900 */
 | |
| /*final cert_tx_rifs = MAC_FORCE_RIFS_US + MAC_CERT_TX_ADDTION_RIFS_US */
 | |
| #define MAC_CERT_TX_ADDTION_RIFS_US         500
 | |
| /*final cert_rx_rifs = MAC_FORCE_RIFS_US + MAC_CERT_RX_ADDTION_RIFS_US */
 | |
| #define MAC_CERT_RX_ADDTION_RIFS_US         1900
 | |
| 
 | |
| /* for special rifs addtion. */
 | |
| #define MAC_SPECIAL_RIFS_US                 1000
 | |
| /* final rifs = MAC_SPECIAL_RIFS_US + MAC_SPECIAL_TX_ADDTION_RIFS_US */
 | |
| #define MAC_SPECIAL_TX_ADDTION_RIFS_US      0
 | |
| /* final rifs = MAC_SPECIAL_RIFS_US + MAC_SPECIAL_RX_ADDTION_RIFS_US */
 | |
| #define MAC_SPECIAL_RX_ADDTION_RIFS_US      1300
 | |
| /* final rifs = MAC_SPECIAL_RIFS_US + MAC_SPECIAL_CERT_TX_ADDTION_RIFS_US */
 | |
| #define MAC_SPECIAL_CERT_TX_ADDTION_RIFS_US 0
 | |
| /* final rifs = MAC_SPECIAL_RIFS_US + MAC_SPECIAL_CERT_RX_ADDTION_RIFS_US */
 | |
| #define MAC_SPECIAL_CERT_RX_ADDTION_RIFS_US 1300
 | |
| 
 | |
| /* CIFS config */
 | |
| #define MAC_MIN_SOF_CIFS_TMR        350
 | |
| #define MAC_MAX_SOF_CIFS_TMR        1000
 | |
| #define MAC_FORCE_CIFS_US           400
 | |
| #define MAC_SPECIAL_CIFS_US         400 //TODO: check the final value
 | |
| 
 | |
| /*********************rf mac ifs configuration****************************/
 | |
| /* the macros indicate the time of backoff */
 | |
| /* define rf mac eifs 70ms */
 | |
| #define RF_MAC_EIFS_US                  (70000)
 | |
| /* define rf mac cifs 800us */
 | |
| #define RF_MAC_CIFS_US                  (800)
 | |
| /* define rf mac bifs 800us */
 | |
| #define RF_MAC_BIFS_US                  (800)
 | |
| /* define rf mac rifs 800 - 2300us */
 | |
| #define RF_MAC_TX_RIFS_US               (900)
 | |
| /* define rf mac rifs 800 - 2300us */
 | |
| #define RF_MAC_RX_RIFS_US               (2300)
 | |
| /* define rf mac rx sack certification margin, 1000us */
 | |
| #define RF_MAC_RX_SACK_CERT_MARGIN      (1000)
 | |
| 
 | |
| /* spg rf cifs */
 | |
| #define SPG_RF_MAC_CIFS_US              (1600)
 | |
| /* spg rf bifs */
 | |
| #define SPG_RF_MAC_BIFS_US              (1600)
 | |
| /* spg rf rifs 1600 ~ 5000us */
 | |
| #define SPG_RF_MAC_TX_RIFS_US           (1700)
 | |
| /* spg rf rifs 1600 ~ 5000us */
 | |
| #define SPG_RF_MAC_RX_RIFS_US           (5000)
 | |
| 
 | |
| /* mac zc config */
 | |
| /* CCO support max ntb count */
 | |
| #define MAC_ZC_NTB_SUPPORT_CNT_CCO      (12000)
 | |
| #if RUN_IN_PSRAM
 | |
| /* STA support max ntb count */
 | |
| #define MAC_ZC_NTB_SUPPORT_CNT_STA      (3000)
 | |
| /* STA 3phase support max ntb count */
 | |
| #define MAC_ZC_NTB_SUPPORT_CNT_STA_3P   (9000)
 | |
| #else
 | |
| /* STA support max ntb count */
 | |
| #define MAC_ZC_NTB_SUPPORT_CNT_STA      (1902)
 | |
| /* STA 3phase support max ntb count */
 | |
| #define MAC_ZC_NTB_SUPPORT_CNT_STA_3P   (1902)
 | |
| #endif
 | |
| 
 | |
| /* Note the max buffer size for per phase.
 | |
|  * for 50HZ system. full period collect. per phase buffer max count = 8400.
 | |
|  */
 | |
| #define MAC_ZC_BUF_PER_PHASE_MAX        (4200) //(8400)
 | |
| /* ring buffer max size for cco */
 | |
| #define MAC_ZC_BUF_SIZE_MAX_CCO         (MAC_ZC_BUF_PER_PHASE_MAX * 3)
 | |
| /* ring buffer max size for sta */
 | |
| #define MAC_ZC_BUF_SIZE_MAX_STA         MAC_ZC_BUF_PER_PHASE_MAX
 | |
| /* ring buffer max size for 3phase sta */
 | |
| #define MAC_ZC_BUF_SIZE_MAX_STA_3P      (MAC_ZC_BUF_PER_PHASE_MAX * 3)
 | |
| 
 | |
| /* mpdu payload symbol number max */
 | |
| #define MAC_MPDU_PL_SYMBOL_NUM_SG_SPG   511
 | |
| #define MAC_MPDU_PL_SYMBOL_NUM_I1901    787
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif // !PLC_MAC_CFG_H
 |