334 lines
9.9 KiB
C
334 lines
9.9 KiB
C
|
|
//-----------------------------------
|
|
#define CFG_START_WORD0_ADDR 0x0000
|
|
#define PPDU_MODE_OFFSET 29
|
|
#define PPDU_MODE_MASK 0xE0000000
|
|
#define PB_NUM_OFFSET 26
|
|
#define PB_NUM_MASK 0x1C000000
|
|
#define NEED_ACK_OFFSET 25
|
|
#define NEED_ACK_MASK 0x02000000
|
|
#define SG_BANDSEL_OFFSET 23
|
|
#define SG_BANDSEL_MASK 0x01800000
|
|
#define TX_RATE_MODE_OFFSET 21
|
|
#define TX_RATE_MODE_MASK 0x00600000
|
|
#define TX_PB_MODULATION_OFFSET 18
|
|
#define TX_PB_MODULATION_MASK 0x001C0000
|
|
#define NEED_ENCRY_OFFSET 17
|
|
#define NEED_ENCRY_MASK 0x00020000
|
|
#define TX_PHASE_OFFSET 15
|
|
#define TX_PHASE_MASK 0x00018000
|
|
#define TX_POWER_OFFSET 7
|
|
#define TX_POWER_MASK 0x00007F80
|
|
#define TX_PORT_OFFSET 5
|
|
#define TX_PORT_MASK 0x00000060
|
|
#define PROTO_TYPE_OFFSET 2
|
|
#define PROTO_TYPE_MASK 0x0000001C
|
|
#define DESC_TYPE_OFFSET 0
|
|
#define DESC_TYPE_MASK 0x00000003
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD1_ADDR 0x0004
|
|
#define PB_HDR_CRC_LEN_OFFSET 28
|
|
#define PB_HDR_CRC_LEN_MASK 0xF0000000
|
|
#define SW_TX_FL_PPB_OFFSET 14
|
|
#define SW_TX_FL_PPB_MASK 0x0FFFC000
|
|
#define TX_SYMBNUM_PPB_OFFSET 5
|
|
#define TX_SYMBNUM_PPB_MASK 0x00003FE0
|
|
#define TX_TONE_AMP_OFFSET 0
|
|
#define TX_TONE_AMP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD2_ADDR 0x0008
|
|
#define NEXT_OFFSET 0
|
|
#define NEXT_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD3_ADDR 0x000C
|
|
#define TX_STATUS_OFFSET 0
|
|
#define TX_STATUS_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD4_ADDR 0x0010
|
|
#define PB_LIST_OFFSET 0
|
|
#define PB_LIST_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD5_ADDR 0x0014
|
|
#define FC0_OFFSET 0
|
|
#define FC0_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD6_ADDR 0x0018
|
|
#define FC1_OFFSET 0
|
|
#define FC1_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD7_ADDR 0x001C
|
|
#define FC2_OFFSET 0
|
|
#define FC2_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD8_ADDR 0x0020
|
|
#define FC3_OFFSET 0
|
|
#define FC3_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD9_ADDR 0x0024
|
|
#define OFFSET_OFFSET 16
|
|
#define OFFSET_MASK 0xFFFF0000
|
|
#define TOTAL_BYTES_OFFSET 3
|
|
#define TOTAL_BYTES_MASK 0x0000FFF8
|
|
#define SW_PB_CRC_OFFSET 2
|
|
#define SW_PB_CRC_MASK 0x00000004
|
|
#define SW_FC_CRC_OFFSET 1
|
|
#define SW_FC_CRC_MASK 0x00000002
|
|
#define RESV0_OFFSET 0
|
|
#define RESV0_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD10_ADDR 0x0028
|
|
#define START_TIME_OFFSET 0
|
|
#define START_TIME_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD11_ADDR 0x002C
|
|
#define RESV11_OFFSET 5
|
|
#define RESV11_MASK 0xFFFFFFE0
|
|
#define SWQ_ID_OFFSET 0
|
|
#define SWQ_ID_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD12_ADDR 0x0030
|
|
#define SW_BUF_OFFSET_OFFSET 20
|
|
#define SW_BUF_OFFSET_MASK 0xFFF00000
|
|
#define PAUSE_ON_XTRETRY_OFFSET 19
|
|
#define PAUSE_ON_XTRETRY_MASK 0x00080000
|
|
#define TX_DESC_REUSE_OFFSET 18
|
|
#define TX_DESC_REUSE_MASK 0x00040000
|
|
#define PB_BUF_REUSE_OFFSET 17
|
|
#define PB_BUF_REUSE_MASK 0x00020000
|
|
#define LIST_END_OFFSET 16
|
|
#define LIST_END_MASK 0x00010000
|
|
#define LIST_START_OFFSET 15
|
|
#define LIST_START_MASK 0x00008000
|
|
#define KEY_IDX_OFFSET 10
|
|
#define KEY_IDX_MASK 0x00007C00
|
|
#define KEY_TABLE_IDX_OFFSET 8
|
|
#define KEY_TABLE_IDX_MASK 0x00000300
|
|
#define AVLN_IDX_OFFSET 5
|
|
#define AVLN_IDX_MASK 0x000000E0
|
|
#define HW_RETRY_CNT_OFFSET 2
|
|
#define HW_RETRY_CNT_MASK 0x0000001C
|
|
#define CTS_ENABLE_OFFSET 1
|
|
#define CTS_ENABLE_MASK 0x00000002
|
|
#define RTS_ENABLE_OFFSET 0
|
|
#define RTS_ENABLE_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_START_WORD13_ADDR 0x0034
|
|
#define HP10_FC_OFFSET 0
|
|
#define HP10_FC_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD0_ADDR 0x0000
|
|
#define SACK_BITMAP_OFFSET 16
|
|
#define SACK_BITMAP_MASK 0xFFFF0000
|
|
#define TOTAL_RETRY_CNT_OFFSET 13
|
|
#define TOTAL_RETRY_CNT_MASK 0x0000E000
|
|
#define MAC_EVENT_ID_OFFSET 9
|
|
#define MAC_EVENT_ID_MASK 0x00001E00
|
|
#define IS_MACERR_OFFSET 8
|
|
#define IS_MACERR_MASK 0x00000100
|
|
#define IS_FILTERED_OFFSET 7
|
|
#define IS_FILTERED_MASK 0x00000080
|
|
#define PHYERR_ID_OFFSET 3
|
|
#define PHYERR_ID_MASK 0x00000078
|
|
#define IS_PHYERR_OFFSET 2
|
|
#define IS_PHYERR_MASK 0x00000004
|
|
#define TX_OK_OFFSET 1
|
|
#define TX_OK_MASK 0x00000002
|
|
#define TX_DONE_OFFSET 0
|
|
#define TX_DONE_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD1_ADDR 0x0004
|
|
#define FIRST_TRY_TS_OFFSET 0
|
|
#define FIRST_TRY_TS_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD2_ADDR 0x0008
|
|
#define TRY0_RESV_OFFSET 28
|
|
#define TRY0_RESV_MASK 0xF0000000
|
|
#define TRY0_TX_PACKET_OFFSET 27
|
|
#define TRY0_TX_PACKET_MASK 0x08000000
|
|
#define TRY0_TX_RTSCTS_OFFSET 26
|
|
#define TRY0_TX_RTSCTS_MASK 0x04000000
|
|
#define TRY0_RETRY_TIME_OFFSET_OFFSET 0
|
|
#define TRY0_RETRY_TIME_OFFSET_MASK 0x03FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD3_ADDR 0x000C
|
|
#define TRY1_RESV_OFFSET 28
|
|
#define TRY1_RESV_MASK 0xF0000000
|
|
#define TRY1_TX_PACKET_OFFSET 27
|
|
#define TRY1_TX_PACKET_MASK 0x08000000
|
|
#define TRY1_TX_RTSCTS_OFFSET 26
|
|
#define TRY1_TX_RTSCTS_MASK 0x04000000
|
|
#define TRY1_RETRY_TIME_OFFSET_OFFSET 0
|
|
#define TRY1_RETRY_TIME_OFFSET_MASK 0x03FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD4_ADDR 0x0010
|
|
#define TRY2_RESV_OFFSET 28
|
|
#define TRY2_RESV_MASK 0xF0000000
|
|
#define TRY2_TX_PACKET_OFFSET 27
|
|
#define TRY2_TX_PACKET_MASK 0x08000000
|
|
#define TRY2_TX_RTSCTS_OFFSET 26
|
|
#define TRY2_TX_RTSCTS_MASK 0x04000000
|
|
#define TRY2_RETRY_TIME_OFFSET_OFFSET 0
|
|
#define TRY2_RETRY_TIME_OFFSET_MASK 0x03FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD5_ADDR 0x0014
|
|
#define TRY3_RESV_OFFSET 28
|
|
#define TRY3_RESV_MASK 0xF0000000
|
|
#define TRY3_TX_PACKET_OFFSET 27
|
|
#define TRY3_TX_PACKET_MASK 0x08000000
|
|
#define TRY3_TX_RTSCTS_OFFSET 26
|
|
#define TRY3_TX_RTSCTS_MASK 0x04000000
|
|
#define TRY3_RETRY_TIME_OFFSET_OFFSET 0
|
|
#define TRY3_RETRY_TIME_OFFSET_MASK 0x03FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD6_ADDR 0x0018
|
|
#define TRY4_RESV_OFFSET 28
|
|
#define TRY4_RESV_MASK 0xF0000000
|
|
#define TRY4_TX_PACKET_OFFSET 27
|
|
#define TRY4_TX_PACKET_MASK 0x08000000
|
|
#define TRY4_TX_RTSCTS_OFFSET 26
|
|
#define TRY4_TX_RTSCTS_MASK 0x04000000
|
|
#define TRY4_RETRY_TIME_OFFSET_OFFSET 0
|
|
#define TRY4_RETRY_TIME_OFFSET_MASK 0x03FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD7_ADDR 0x001C
|
|
#define TRY5_RESV_OFFSET 28
|
|
#define TRY5_RESV_MASK 0xF0000000
|
|
#define TRY5_TX_PACKET_OFFSET 27
|
|
#define TRY5_TX_PACKET_MASK 0x08000000
|
|
#define TRY5_TX_RTSCTS_OFFSET 26
|
|
#define TRY5_TX_RTSCTS_MASK 0x04000000
|
|
#define TRY5_RETRY_TIME_OFFSET_OFFSET 0
|
|
#define TRY5_RETRY_TIME_OFFSET_MASK 0x03FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD8_ADDR 0x0020
|
|
#define TRY6_RESV_OFFSET 28
|
|
#define TRY6_RESV_MASK 0xF0000000
|
|
#define TRY6_TX_PACKET_OFFSET 27
|
|
#define TRY6_TX_PACKET_MASK 0x08000000
|
|
#define TRY6_TX_RTSCTS_OFFSET 26
|
|
#define TRY6_TX_RTSCTS_MASK 0x04000000
|
|
#define TRY6_RETRY_TIME_OFFSET_OFFSET 0
|
|
#define TRY6_RETRY_TIME_OFFSET_MASK 0x03FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD9_ADDR 0x0024
|
|
#define TRY7_RESV_OFFSET 28
|
|
#define TRY7_RESV_MASK 0xF0000000
|
|
#define TRY7_TX_PACKET_OFFSET 27
|
|
#define TRY7_TX_PACKET_MASK 0x08000000
|
|
#define TRY7_TX_RTSCTS_OFFSET 26
|
|
#define TRY7_TX_RTSCTS_MASK 0x04000000
|
|
#define TRY7_RETRY_TIME_OFFSET_OFFSET 0
|
|
#define TRY7_RETRY_TIME_OFFSET_MASK 0x03FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD10_ADDR 0x0028
|
|
#define SACK_TIMESTAMP_OFFSET 0
|
|
#define SACK_TIMESTAMP_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD11_ADDR 0x002C
|
|
#define PB3_STATUS_OFFSET 24
|
|
#define PB3_STATUS_MASK 0xFF000000
|
|
#define PB2_STATUS_OFFSET 16
|
|
#define PB2_STATUS_MASK 0x00FF0000
|
|
#define PB1_STATUS_OFFSET 8
|
|
#define PB1_STATUS_MASK 0x0000FF00
|
|
#define PB0_STATUS_OFFSET 0
|
|
#define PB0_STATUS_MASK 0x000000FF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD12_ADDR 0x0030
|
|
#define TX_FRAME_CUR_PTR_OFFSET 0
|
|
#define TX_FRAME_CUR_PTR_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD13_ADDR 0x0034
|
|
#define TX_FRAME_OFFSET_OFFSET 16
|
|
#define TX_FRAME_OFFSET_MASK 0xFFFF0000
|
|
#define TX_FRAME_BYTE_OFFSET 0
|
|
#define TX_FRAME_BYTE_MASK 0x0000FFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD14_ADDR 0x0038
|
|
#define TXWINDSZ_OFFSET 28
|
|
#define TXWINDSZ_MASK 0xF0000000
|
|
#define OLDEST_PB_TRY_NUMBER_OFFSET 24
|
|
#define OLDEST_PB_TRY_NUMBER_MASK 0x0F000000
|
|
#define MINTXSSN_OFFSET 8
|
|
#define MINTXSSN_MASK 0x00FFFF00
|
|
#define PB_STATUS_OFFSET 0
|
|
#define PB_STATUS_MASK 0x000000FF
|
|
|
|
//-----------------------------------
|
|
#define CFG_END_WORD15_ADDR 0x003C
|
|
#define RESV_OFFSET 4
|
|
#define RESV_MASK 0xFFFFFFF0
|
|
#define MFSCMD_STATE_OFFSET 0
|
|
#define MFSCMD_STATE_MASK 0x0000000F
|
|
|
|
//-----------------------------------
|
|
#define CFG_TX_PB_START_0_ADDR 0x0000
|
|
#define NEXT_PB_OFFSET 0
|
|
#define NEXT_PB_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_TX_PB_START_1_ADDR 0x0004
|
|
#define PB_BUF_ADDR_OFFSET 0
|
|
#define PB_BUF_ADDR_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_TX_PB_START_2_ADDR 0x0008
|
|
#define SOF_PB_HEADER_OFFSET 0
|
|
#define SOF_PB_HEADER_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_TX_PB_START_3_ADDR 0x000c
|
|
#define PB_CRC_OFFSET 0
|
|
#define PB_CRC_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_TX_DUMMY_0_ADDR 0x0000
|
|
#define DUMMY_RESRV0_OFFSET 2
|
|
#define DUMMY_RESRV0_MASK 0xFFFFFFFC
|
|
#define DESC_TYPE_OFFSET 0
|
|
#define DESC_TYPE_MASK 0x00000003
|
|
|
|
//-----------------------------------
|
|
#define CFG_TX_DUMMY_1_ADDR 0x0004
|
|
#define DUMMY_RESRV1_OFFSET 1
|
|
#define DUMMY_RESRV1_MASK 0xFFFFFFFE
|
|
#define TX_DONE_OFFSET 0
|
|
#define TX_DONE_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_TX_DUMMY_2_ADDR 0x0008
|
|
#define DUMMY_NEXT_OFFSET 0
|
|
#define DUMMY_NEXT_MASK 0xFFFFFFFF
|
|
|
|
//HW module read/write macro
|
|
#define RGF_MAC_TX_DESC_READ_REG(addr) SOC_READ_REG(RGF_MAC_TX_DESC_BASEADDR + addr)
|
|
#define RGF_MAC_TX_DESC_WRITE_REG(addr,value) SOC_WRITE_REG(RGF_MAC_TX_DESC_BASEADDR + addr,value)
|