Broadcom SDK and wireless driver: another attempt to update to ver. 5.10.147.0
[tomato.git] / release / src-rt / include / bcmsrom_fmt.h
blob30edd6ea7c214a0aec0ed96dd25e441a32df8bb2
1 /*
2 * SROM format definition.
4 * Copyright (C) 2009, Broadcom Corporation
5 * All Rights Reserved.
6 *
7 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
8 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
9 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
10 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
12 * $Id: bcmsrom_fmt.h,v 13.6.2.8 2010/01/28 01:05:00 Exp $
15 #ifndef _bcmsrom_fmt_h_
16 #define _bcmsrom_fmt_h_
18 /* Maximum srom: 6 Kilobits == 768 bytes */
19 #define SROM_MAX 768
20 #define SROM_MAXW 384
21 #define VARS_MAX 4096
23 /* PCI fields */
24 #define PCI_F0DEVID 48
27 #define SROM_WORDS 64
29 #define SROM3_SWRGN_OFF 28 /* s/w region offset in words */
31 #define SROM_SSID 2
33 #define SROM_WL1LHMAXP 29
35 #define SROM_WL1LPAB0 30
36 #define SROM_WL1LPAB1 31
37 #define SROM_WL1LPAB2 32
39 #define SROM_WL1HPAB0 33
40 #define SROM_WL1HPAB1 34
41 #define SROM_WL1HPAB2 35
43 #define SROM_MACHI_IL0 36
44 #define SROM_MACMID_IL0 37
45 #define SROM_MACLO_IL0 38
46 #define SROM_MACHI_ET0 39
47 #define SROM_MACMID_ET0 40
48 #define SROM_MACLO_ET0 41
49 #define SROM_MACHI_ET1 42
50 #define SROM_MACMID_ET1 43
51 #define SROM_MACLO_ET1 44
52 #define SROM3_MACHI 37
53 #define SROM3_MACMID 38
54 #define SROM3_MACLO 39
56 #define SROM_BXARSSI2G 40
57 #define SROM_BXARSSI5G 41
59 #define SROM_TRI52G 42
60 #define SROM_TRI5GHL 43
62 #define SROM_RXPO52G 45
64 #define SROM2_ENETPHY 45
66 #define SROM_AABREV 46
67 /* Fields in AABREV */
68 #define SROM_BR_MASK 0x00ff
69 #define SROM_CC_MASK 0x0f00
70 #define SROM_CC_SHIFT 8
71 #define SROM_AA0_MASK 0x3000
72 #define SROM_AA0_SHIFT 12
73 #define SROM_AA1_MASK 0xc000
74 #define SROM_AA1_SHIFT 14
76 #define SROM_WL0PAB0 47
77 #define SROM_WL0PAB1 48
78 #define SROM_WL0PAB2 49
80 #define SROM_LEDBH10 50
81 #define SROM_LEDBH32 51
83 #define SROM_WL10MAXP 52
85 #define SROM_WL1PAB0 53
86 #define SROM_WL1PAB1 54
87 #define SROM_WL1PAB2 55
89 #define SROM_ITT 56
91 #define SROM_BFL 57
92 #define SROM_BFL2 28
93 #define SROM3_BFL2 61
95 #define SROM_AG10 58
97 #define SROM_CCODE 59
99 #define SROM_OPO 60
101 #define SROM3_LEDDC 62
103 #define SROM_CRCREV 63
105 /* SROM Rev 4: Reallocate the software part of the srom to accomodate
106 * MIMO features. It assumes up to two PCIE functions and 440 bytes
107 * of useable srom i.e. the useable storage in chips with OTP that
108 * implements hardware redundancy.
111 #define SROM4_WORDS 220
113 #define SROM4_SIGN 32
114 #define SROM4_SIGNATURE 0x5372
116 #define SROM4_BREV 33
118 #define SROM4_BFL0 34
119 #define SROM4_BFL1 35
120 #define SROM4_BFL2 36
121 #define SROM4_BFL3 37
122 #define SROM5_BFL0 37
123 #define SROM5_BFL1 38
124 #define SROM5_BFL2 39
125 #define SROM5_BFL3 40
127 #define SROM4_MACHI 38
128 #define SROM4_MACMID 39
129 #define SROM4_MACLO 40
130 #define SROM5_MACHI 41
131 #define SROM5_MACMID 42
132 #define SROM5_MACLO 43
134 #define SROM4_CCODE 41
135 #define SROM4_REGREV 42
136 #define SROM5_CCODE 34
137 #define SROM5_REGREV 35
139 #define SROM4_LEDBH10 43
140 #define SROM4_LEDBH32 44
141 #define SROM5_LEDBH10 59
142 #define SROM5_LEDBH32 60
144 #define SROM4_LEDDC 45
145 #define SROM5_LEDDC 45
147 #define SROM4_AA 46
148 #define SROM4_AA2G_MASK 0x00ff
149 #define SROM4_AA2G_SHIFT 0
150 #define SROM4_AA5G_MASK 0xff00
151 #define SROM4_AA5G_SHIFT 8
153 #define SROM4_AG10 47
154 #define SROM4_AG32 48
156 #define SROM4_TXPID2G 49
157 #define SROM4_TXPID5G 51
158 #define SROM4_TXPID5GL 53
159 #define SROM4_TXPID5GH 55
161 #define SROM4_TXRXC 61
162 #define SROM4_TXCHAIN_MASK 0x000f
163 #define SROM4_TXCHAIN_SHIFT 0
164 #define SROM4_RXCHAIN_MASK 0x00f0
165 #define SROM4_RXCHAIN_SHIFT 4
166 #define SROM4_SWITCH_MASK 0xff00
167 #define SROM4_SWITCH_SHIFT 8
169 /* Per-path fields */
170 #define MAX_PATH_SROM 4
171 #define SROM4_PATH0 64
172 #define SROM4_PATH1 87
173 #define SROM4_PATH2 110
174 #define SROM4_PATH3 133
176 #define SROM4_2G_ITT_MAXP 0
177 #define SROM4_2G_PA 1
178 #define SROM4_5G_ITT_MAXP 5
179 #define SROM4_5GLH_MAXP 6
180 #define SROM4_5G_PA 7
181 #define SROM4_5GL_PA 11
182 #define SROM4_5GH_PA 15
184 /* Fields in the ITT_MAXP and 5GLH_MAXP words */
185 #define B2G_MAXP_MASK 0xff
186 #define B2G_ITT_SHIFT 8
187 #define B5G_MAXP_MASK 0xff
188 #define B5G_ITT_SHIFT 8
189 #define B5GH_MAXP_MASK 0xff
190 #define B5GL_MAXP_SHIFT 8
192 /* All the miriad power offsets */
193 #define SROM4_2G_CCKPO 156
194 #define SROM4_2G_OFDMPO 157
195 #define SROM4_5G_OFDMPO 159
196 #define SROM4_5GL_OFDMPO 161
197 #define SROM4_5GH_OFDMPO 163
198 #define SROM4_2G_MCSPO 165
199 #define SROM4_5G_MCSPO 173
200 #define SROM4_5GL_MCSPO 181
201 #define SROM4_5GH_MCSPO 189
202 #define SROM4_CDDPO 197
203 #define SROM4_STBCPO 198
204 #define SROM4_BW40PO 199
205 #define SROM4_BWDUPPO 200
207 #define SROM4_CRCREV 219
210 /*SROM Rev 8: Make space for a 48word hardware header for PCIe rev >= 6.
211 * This is acombined srom for both MIMO and SISO boards, usable in
212 * the .130 4Kilobit OTP with hardware redundancy.
215 #define SROM8_SIGN 64
217 #define SROM8_BREV 65
219 #define SROM8_BFL0 66
220 #define SROM8_BFL1 67
221 #define SROM8_BFL2 68
222 #define SROM8_BFL3 69
224 #define SROM8_MACHI 70
225 #define SROM8_MACMID 71
226 #define SROM8_MACLO 72
228 #define SROM8_CCODE 73
229 #define SROM8_REGREV 74
231 #define SROM8_LEDBH10 75
232 #define SROM8_LEDBH32 76
234 #define SROM8_LEDDC 77
236 #define SROM8_AA 78
238 #define SROM8_AG10 79
239 #define SROM8_AG32 80
241 #define SROM8_TXRXC 81
243 #define SROM8_BXARSSI2G 82
244 #define SROM8_BXARSSI5G 83
245 #define SROM8_TRI52G 84
246 #define SROM8_TRI5GHL 85
247 #define SROM8_RXPO52G 86
249 #define SROM8_FEM2G 87
250 #define SROM8_FEM5G 88
251 #define SROM8_FEM_ANTSWLUT_MASK 0xf800
252 #define SROM8_FEM_ANTSWLUT_SHIFT 11
253 #define SROM8_FEM_TR_ISO_MASK 0x0700
254 #define SROM8_FEM_TR_ISO_SHIFT 8
255 #define SROM8_FEM_PDET_RANGE_MASK 0x00f8
256 #define SROM8_FEM_PDET_RANGE_SHIFT 3
257 #define SROM8_FEM_EXTPA_GAIN_MASK 0x0006
258 #define SROM8_FEM_EXTPA_GAIN_SHIFT 1
259 #define SROM8_FEM_TSSIPOS_MASK 0x0001
260 #define SROM8_FEM_TSSIPOS_SHIFT 0
262 #define SROM8_THERMAL 89
263 #define SROM8_EXTLNAGAIN 93
265 /* Temperature delta for PHY calibration */
266 #define SROM8_PHYCAL_TEMPDELTA 94
268 /* Per-path offsets & fields */
269 #define SROM8_PATH0 96
270 #define SROM8_PATH1 112
271 #define SROM8_PATH2 128
272 #define SROM8_PATH3 144
274 #define SROM8_2G_ITT_MAXP 0
275 #define SROM8_2G_PA 1
276 #define SROM8_5G_ITT_MAXP 4
277 #define SROM8_5GLH_MAXP 5
278 #define SROM8_5G_PA 6
279 #define SROM8_5GL_PA 9
280 #define SROM8_5GH_PA 12
282 /* All the miriad power offsets */
283 #define SROM8_2G_CCKPO 160
285 #define SROM8_2G_OFDMPO 161
286 #define SROM8_5G_OFDMPO 163
287 #define SROM8_5GL_OFDMPO 165
288 #define SROM8_5GH_OFDMPO 167
290 #define SROM8_2G_MCSPO 169
291 #define SROM8_5G_MCSPO 177
292 #define SROM8_5GL_MCSPO 185
293 #define SROM8_5GH_MCSPO 193
295 #define SROM8_CDDPO 201
296 #define SROM8_STBCPO 202
297 #define SROM8_BW40PO 203
298 #define SROM8_BWDUPPO 204
300 /* SISO PA parameters are in the path0 spaces */
301 #define SROM8_SISO 96
303 /* Legacy names for SISO PA paramters */
304 #define SROM8_W0_ITTMAXP (SROM8_SISO + SROM8_2G_ITT_MAXP)
305 #define SROM8_W0_PAB0 (SROM8_SISO + SROM8_2G_PA)
306 #define SROM8_W0_PAB1 (SROM8_SISO + SROM8_2G_PA + 1)
307 #define SROM8_W0_PAB2 (SROM8_SISO + SROM8_2G_PA + 2)
308 #define SROM8_W1_ITTMAXP (SROM8_SISO + SROM8_5G_ITT_MAXP)
309 #define SROM8_W1_MAXP_LCHC (SROM8_SISO + SROM8_5GLH_MAXP)
310 #define SROM8_W1_PAB0 (SROM8_SISO + SROM8_5G_PA)
311 #define SROM8_W1_PAB1 (SROM8_SISO + SROM8_5G_PA + 1)
312 #define SROM8_W1_PAB2 (SROM8_SISO + SROM8_5G_PA + 2)
313 #define SROM8_W1_PAB0_LC (SROM8_SISO + SROM8_5GL_PA)
314 #define SROM8_W1_PAB1_LC (SROM8_SISO + SROM8_5GL_PA + 1)
315 #define SROM8_W1_PAB2_LC (SROM8_SISO + SROM8_5GL_PA + 2)
316 #define SROM8_W1_PAB0_HC (SROM8_SISO + SROM8_5GH_PA)
317 #define SROM8_W1_PAB1_HC (SROM8_SISO + SROM8_5GH_PA + 1)
318 #define SROM8_W1_PAB2_HC (SROM8_SISO + SROM8_5GH_PA + 2)
320 #define SROM8_CRCREV 219
322 typedef struct {
323 uint8 tssipos; /* TSSI positive slope, 1: positive, 0: negative */
324 uint8 extpagain; /* Ext PA gain-type: full-gain: 0, pa-lite: 1, no_pa: 2 */
325 uint8 pdetrange; /* support 32 combinations of different Pdet dynamic ranges */
326 uint8 triso; /* TR switch isolation */
327 uint8 antswctrllut; /* antswctrl lookup table configuration: 32 possible choices */
328 } srom_fem_t;
329 #endif /* _bcmsrom_fmt_h_ */