1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _HALMAC_88XX_CFG_H_
3 #define _HALMAC_88XX_CFG_H_
4 
5 #include "../halmac_2_platform.h"
6 #include "../halmac_type.h"
7 #include "../halmac_hw_cfg.h"
8 #include "../halmac_api.h"
9 #include "../halmac_bit2.h"
10 #include "../halmac_reg2.h"
11 #include "../halmac_pwr_seq_cmd.h"
12 #include "halmac_func_88xx.h"
13 #include "halmac_api_88xx.h"
14 #include "halmac_api_88xx_usb.h"
15 #include "halmac_api_88xx_pcie.h"
16 #include "halmac_api_88xx_sdio.h"
17 #if HALMAC_PLATFORM_TESTPROGRAM
18 #include "halmisc_api_88xx.h"
19 #include "halmisc_api_88xx_usb.h"
20 #include "halmisc_api_88xx_pcie.h"
21 #include "halmisc_api_88xx_sdio.h"
22 #endif
23 
24 #define HALMAC_SVN_VER_88XX "11974M"
25 
26 /* major version, ver_1 for async_api */
27 #define HALMAC_MAJOR_VER_88XX        0x0001
28 /* For halmac_api num change or prototype change, increment prototype version */
29 #define HALMAC_PROTOTYPE_VER_88XX    0x0002
30 /* else increment minor version */
31 #define HALMAC_MINOR_VER_88XX        0x0000
32 
33 
34 
35 #define HALMAC_C2H_DATA_OFFSET_88XX             10
36 #define HALMAC_RX_AGG_ALIGNMENT_SIZE_88XX       8
37 #define HALMAC_TX_AGG_ALIGNMENT_SIZE_88XX       8
38 #define HALMAC_TX_AGG_BUFF_SIZE_88XX            32768
39 
40 #define HALMAC_EXTRA_INFO_BUFF_SIZE_88XX				4096 /*4K*/
41 #define HALMAC_EXTRA_INFO_BUFF_SIZE_FULL_FIFO_88XX		16384 /*16K*/
42 #define HALMAC_FW_OFFLOAD_CMD_SIZE_88XX					12 /*Fw config parameter cmd size, each 12 byte*/
43 
44 #define HALMAC_H2C_CMD_ORIGINAL_SIZE_88XX       8
45 #define HALMAC_H2C_CMD_SIZE_UNIT_88XX           32 /* Only support 32 byte packet now */
46 
47 #define HALMAC_NLO_INFO_SIZE_88XX	1024
48 
49 /* Download FW */
50 #define HALMAC_FW_SIZE_MAX_88XX                 0x40000
51 #define HALMAC_FWHDR_SIZE_88XX                  64
52 #define HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX        8
53 #define HALMAC_FW_MAX_DL_SIZE_88XX              0x2000 /* need power of 2 */
54 /* Max dlfw size can not over 31K, because SDIO HW restriction */
55 #define HALMAC_FW_CFG_MAX_DL_SIZE_MAX_88XX      0x7C00
56 
57 #define DLFW_RESTORE_REG_NUM_88XX       9
58 
59 /* FW header information */
60 #define HALMAC_FWHDR_OFFSET_VERSION_88XX                4
61 #define HALMAC_FWHDR_OFFSET_SUBVERSION_88XX             6
62 #define HALMAC_FWHDR_OFFSET_SUBINDEX_88XX               7
63 #define HALMAC_FWHDR_OFFSET_MEM_USAGE_88XX              24
64 #define HALMAC_FWHDR_OFFSET_H2C_FORMAT_VER_88XX			28
65 #define HALMAC_FWHDR_OFFSET_DMEM_ADDR_88XX              32
66 #define HALMAC_FWHDR_OFFSET_DMEM_SIZE_88XX              36
67 #define HALMAC_FWHDR_OFFSET_IRAM_SIZE_88XX              48
68 #define HALMAC_FWHDR_OFFSET_ERAM_SIZE_88XX              52
69 #define HALMAC_FWHDR_OFFSET_EMEM_ADDR_88XX              56
70 #define HALMAC_FWHDR_OFFSET_IRAM_ADDR_88XX              60
71 
72 /* HW memory address */
73 #define HALMAC_OCPBASE_TXBUF_88XX				0x18780000
74 #define HALMAC_OCPBASE_DMEM_88XX                0x00200000
75 #define HALMAC_OCPBASE_IMEM_88XX                0x00000000
76 
77 /* define the SDIO Bus CLK threshold, for avoiding CMD53 fails that result from SDIO CLK sync to ana_clk fail */
78 #define HALMAC_SD_CLK_THRESHOLD_88XX    150000000 /* 150MHz */
79 
80 /* MAC clock */
81 #define HALMAC_MAC_CLOCK_88XX   80 /* 80M */
82 
83 /* H2C/C2H*/
84 #define HALMAC_H2C_CMD_SIZE_88XX		32
85 #define HALMAC_H2C_CMD_HDR_SIZE_88XX    8
86 
87 #define HALMAC_RESERVED_EFUSE_SIZE_88XX 0x30
88 
89 #define HALMAC_PROTECTED_EFUSE_SIZE_88XX 0x60
90 
91 /* Function enable */
92 #define HALMAC_FUNCTION_ENABLE_88XX     0xDC
93 
94 /* FIFO size & packet size */
95 /* #define HALMAC_WOWLAN_PATTERN_SIZE	256 */
96 
97 /* CFEND rate */
98 #define HALMAC_BASIC_CFEND_RATE_88XX    0x5
99 #define HALMAC_STBC_CFEND_RATE_88XX     0xF
100 
101 /* Response rate */
102 #define HALMAC_RESPONSE_RATE_BITMAP_ALL_88XX    0xFFFFF
103 #define HALMAC_RESPONSE_RATE_88XX				HALMAC_RESPONSE_RATE_BITMAP_ALL_88XX
104 
105 /* Spec SIFS */
106 #define HALMAC_SIFS_CCK_PTCL_88XX       16
107 #define HALMAC_SIFS_OFDM_PTCL_88XX      16
108 
109 /* Retry limit */
110 #define HALMAC_LONG_RETRY_LIMIT_88XX    8
111 #define HALMAC_SHORT_RETRY_LIMIT_88XX   7
112 
113 /* Slot, SIFS, PIFS time */
114 #define HALMAC_SLOT_TIME_88XX           0x05
115 #define HALMAC_PIFS_TIME_88XX           0x19
116 #define HALMAC_SIFS_CCK_CTX_88XX        0xA
117 #define HALMAC_SIFS_OFDM_CTX_88XX       0xA
118 #define HALMAC_SIFS_CCK_TRX_88XX        0x10
119 #define HALMAC_SIFS_OFDM_TRX_88XX       0x10
120 
121 /* TXOP limit */
122 #define HALMAC_VO_TXOP_LIMIT_88XX       0x186
123 #define HALMAC_VI_TXOP_LIMIT_88XX       0x3BC
124 
125 /* NAV */
126 #define HALMAC_RDG_NAV_88XX             0x05
127 #define HALMAC_TXOP_NAV_88XX            0x1B
128 
129 /* TSF */
130 #define HALMAC_CCK_RX_TSF_88XX			0x30
131 #define HALMAC_OFDM_RX_TSF_88XX			0x30
132 
133 /* Send beacon related */
134 #define HALMAC_TBTT_PROHIBIT_88XX       0x04
135 #define HALMAC_TBTT_HOLD_TIME_88XX      0x064
136 #define HALMAC_DRIVER_EARLY_INT_88XX    0x04
137 #define HALMAC_BEACON_DMA_TIM_88XX      0x02
138 
139 /* RX filter */
140 #define HALMAC_RX_FILTER0_RECIVE_ALL_88XX       0xFFFFFFF
141 #define HALMAC_RX_FILTER0_88XX                  HALMAC_RX_FILTER0_RECIVE_ALL_88XX
142 #define HALMAC_RX_FILTER_RECIVE_ALL_88XX        0xFFFF
143 #define HALMAC_RX_FILTER_88XX                   HALMAC_RX_FILTER_RECIVE_ALL_88XX
144 
145 /* RCR */
146 #define HALMAC_RCR_CONFIG_88XX  0xE400631E
147 
148 /* Security config */
149 #define HALMAC_SECURITY_CONFIG_88XX     0x01CC
150 
151 #endif
152