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
 |