1 #ifndef _HALMAC_8822B_CFG_H_ 2 #define _HALMAC_8822B_CFG_H_ 3 4 #include "halmac_8822b_pwr_seq.h" 5 #include "halmac_api_8822b.h" 6 #include "halmac_api_8822b_usb.h" 7 #include "halmac_api_8822b_sdio.h" 8 #include "halmac_api_8822b_pcie.h" 9 #include "../../halmac_bit2.h" 10 #include "../../halmac_reg2.h" 11 #include "../../halmac_api.h" 12 13 #if HALMAC_PLATFORM_TESTPROGRAM 14 #include "halmisc_api_8822b.h" 15 #include "halmisc_api_8822b_usb.h" 16 #include "halmisc_api_8822b_sdio.h" 17 #include "halmisc_api_8822b_pcie.h" 18 #endif 19 20 #define HALMAC_TX_FIFO_SIZE_8822B 262144 /* 256k */ 21 #define HALMAC_TX_FIFO_SIZE_LA_8822B 131072 /* 128k */ 22 #define HALMAC_RX_FIFO_SIZE_8822B 24320 /* 24k */ 23 #define HALMAC_TX_PAGE_SIZE_8822B 128 /* PageSize 128Byte */ 24 #define HALMAC_TX_PAGE_SIZE_2_POWER_8822B 7 /* 128 = 2^7 */ 25 #define HALMAC_SECURITY_CAM_ENTRY_NUM_8822B 64 /* CAM Entry Size */ 26 #define HALMAC_TX_AGG_ALIGNMENT_SIZE_8822B 8 27 #define HALMAC_TX_DESC_SIZE_8822B 48 28 #define HALMAC_RX_DESC_SIZE_8822B 24 29 #define HALMAC_WOWLAN_PATTERN_SIZE_8822B 256 30 31 /* 32 * TXFIFO LAYOUT 33 * HIGH_QUEUE 34 * NORMAL_QUEUE 35 * LOW_QUEUE 36 * EXTRA_QUEUE 37 * PUBLIC_QUEUE -- decided after all other queue are defined 38 * GAP_QUEUE -- Used to separate AC queue and Rsvd page 39 * 40 * RSVD_DRIVER -- Driver used rsvd page area 41 * RSVD_H2C_EXTRAINFO -- Extra Information for h2c 42 * RSVD_H2C_QUEUE -- h2c queue in rsvd page 43 * RSVD_CPU_INSTRUCTION -- extend fw code 44 * RSVD_FW_TXBUFF -- fw used this area to send packet 45 * 46 * Symbol : HALMAC_MODE_QUEUE_UNIT_CHIP, ex: HALMAC_LB_2BULKOUT_FWCMD_PGNUM_8822B 47 */ 48 #define HALMAC_EXTRA_INFO_BUFF_SIZE_FULL_FIFO_8822B 16384 /*16K, only used in init case*/ 49 50 #define HALMAC_RSVD_DRV_PGNUM_8822B 16 /*2048*/ 51 #define HALMAC_RSVD_H2C_EXTRAINFO_PGNUM_8822B 32 /*4096*/ 52 #define HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B 8 /*1024*/ 53 #define HALMAC_RSVD_CPU_INSTRUCTION_PGNUM_8822B 0 /*0*/ 54 #define HALMAC_RSVD_FW_TXBUFF_PGNUM_8822B 4 /*512*/ 55 56 /* 57 * Normal mode 58 */ 59 #define HALMAC_NORMAL_HPQ_PGNUM_8822B 64 /*8192*/ 60 #define HALMAC_NORMAL_NPQ_PGNUM_8822B 64 /*8192*/ 61 #define HALMAC_NORMAL_LPQ_PGNUM_8822B 64 /*8192*/ 62 #define HALMAC_NORMAL_EXPQ_PGNUM_8822B 64 /*8192*/ 63 #define HALMAC_NORMAL_GAP_PGNUM_8822B 1 /*128*/ 64 65 /* 66 * Loopback mode 67 */ 68 #define HALMAC_LB_HPQ_PGNUM_8822B 64 /*8192*/ 69 #define HALMAC_LB_NPQ_PGNUM_8822B 64 /*8192*/ 70 #define HALMAC_LB_LPQ_PGNUM_8822B 64 /*8192*/ 71 #define HALMAC_LB_EXPQ_PGNUM_8822B 64 /*8192*/ 72 #define HALMAC_LB_GAP_PGNUM_8822B 640 /*81920*/ 73 74 /* 75 * Normal mode - 2Bulkout 76 */ 77 #define HALMAC_NORMAL_2BULKOUT_HPQ_PGNUM_8822B 64 /*8192*/ 78 #define HALMAC_NORMAL_2BULKOUT_NPQ_PGNUM_8822B 64 /*8192*/ 79 #define HALMAC_NORMAL_2BULKOUT_LPQ_PGNUM_8822B 0 /*0*/ 80 #define HALMAC_NORMAL_2BULKOUT_EXPQ_PGNUM_8822B 0 /*0*/ 81 #define HALMAC_NORMAL_2BULKOUT_GAP_PGNUM_8822B 1 /*128*/ 82 83 /* 84 * Loopback mode - 2Bulkout 85 */ 86 #define HALMAC_LB_2BULKOUT_HPQ_PGNUM_8822B 64 /*8192*/ 87 #define HALMAC_LB_2BULKOUT_NPQ_PGNUM_8822B 64 /*8192*/ 88 #define HALMAC_LB_2BULKOUT_LPQ_PGNUM_8822B 0 /*0*/ 89 #define HALMAC_LB_2BULKOUT_EXPQ_PGNUM_8822B 0 /*0*/ 90 #define HALMAC_LB_2BULKOUT_GAP_PGNUM_8822B 1024 /*131072*/ 91 92 /* 93 * Normal mode - 3BULKOUT 94 */ 95 #define HALMAC_NORMAL_3BULKOUT_HPQ_PGNUM_8822B 64 /*8192*/ 96 #define HALMAC_NORMAL_3BULKOUT_NPQ_PGNUM_8822B 64 /*8192*/ 97 #define HALMAC_NORMAL_3BULKOUT_LPQ_PGNUM_8822B 64 /*8192*/ 98 #define HALMAC_NORMAL_3BULKOUT_EXPQ_PGNUM_8822B 0 /*0*/ 99 #define HALMAC_NORMAL_3BULKOUT_GAP_PGNUM_8822B 1 /*128*/ 100 101 /* 102 * Loopback mode - 3BULKOUT 103 */ 104 #define HALMAC_LB_3BULKOUT_HPQ_PGNUM_8822B 64 /*8192*/ 105 #define HALMAC_LB_3BULKOUT_NPQ_PGNUM_8822B 64 /*8192*/ 106 #define HALMAC_LB_3BULKOUT_LPQ_PGNUM_8822B 64 /*8192*/ 107 #define HALMAC_LB_3BULKOUT_EXPQ_PGNUM_8822B 0 /*0*/ 108 #define HALMAC_LB_3BULKOUT_GAP_PGNUM_8822B 1024 /*131072*/ 109 110 /* 111 * WMM mode 112 */ 113 #define HALMAC_WMM_HPQ_PGNUM_8822B 64 /*8192*/ 114 #define HALMAC_WMM_NPQ_PGNUM_8822B 64 /*8192*/ 115 #define HALMAC_WMM_LPQ_PGNUM_8822B 64 /*8192*/ 116 #define HALMAC_WMM_EXPQ_PGNUM_8822B 64 /*8192*/ 117 #define HALMAC_WMM_GAP_PGNUM_8822B 1 /*128*/ 118 119 #define HALMAC_EFUSE_SIZE_8822B 1024 /* 0x400 */ 120 #define HALMAC_BT_EFUSE_SIZE_8822B 128 /* 0x80 */ 121 #define HALMAC_EEPROM_SIZE_8822B 0x300 122 #define HALMAC_CR_TRX_ENABLE_8822B (BIT_HCI_TXDMA_EN | BIT_HCI_RXDMA_EN | BIT_TXDMA_EN | \ 123 BIT_RXDMA_EN | BIT_PROTOCOL_EN | BIT_SCHEDULE_EN | \ 124 BIT_MACTXEN | BIT_MACRXEN) 125 126 #define HALMAC_BLK_DESC_NUM_8822B 0x3 /* Only for USB */ 127 128 typedef enum _HALMAC_NORMAL_RXAGG_TH_TO_8822B { 129 HALMAC_NORMAL_RXAGG_THRESHOLD_8822B = 0xFF, 130 HALMAC_NORMAL_RXAGG_TIMEOUT_8822B = 0x01, 131 } HALMAC_NORMAL_RXAGG_TH_TO_8822B; 132 133 typedef enum _HALMAC_LOOPBACK_RXAGG_TH_TO_8822B { 134 HALMAC_LOOPBACK_RXAGG_THRESHOLD_8822B = 0xFF, 135 HALMAC_LOOPBACK_RXAGG_TIMEOUT_8822B = 0x01, 136 } HALMAC_LOOPBACK_RXAGG_TH_TO_8822B; 137 138 #endif 139