spr.inc 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821
  1. #ifndef SPECIAL_PURPOSE_REGISTER_H_
  2. #define SPECIAL_PURPOSE_REGISTER_H_
  3. /* Special purpose register definitions */
  4. #define SPR_RXE_0x00 spr000
  5. #define SPR_RXE_Copy_Offset spr001
  6. #define SPR_RXE_Copy_Length spr002
  7. #define SPR_RXE_FIFOCTL0 spr003
  8. #define SPR_RXE_FIFOCTL1 spr004
  9. #define RXE_FIFOCTL1_STARTCOPY 0 /* bit0: Start copying the data into the FIFO */
  10. #define RXE_FIFOCTL1_SUSPEND 2 /* bit2: Suspend the RX engine. Used during TX */
  11. #define RXE_FIFOCTL1_HAVEPAD 5 /* bit5: Padding for RX frame present */
  12. #define SPR_Received_Frame_Count spr005
  13. #define SPR_RXE_0x0c spr006
  14. #define SPR_RXE_RXHDR_OFFSET spr007
  15. #define SPR_RXE_RXHDR_LEN spr008
  16. #define SPR_RXE_PHYRXSTAT0 spr009
  17. #define SPR_RXE_PHYRXSTAT1 spr00a
  18. #define SPR_RXE_0x16 spr00b
  19. #define SPR_RXE_FRAMELEN spr00c
  20. #define SPR_RXE_0x1a spr00d
  21. #define RXE_0x1a_OVERFLOW 15 /* bit15: Indicate FIFO overflow */
  22. #define SPR_RXE_ENCODING spr00e
  23. #define RXE_ENCODING_OFDM 13 /* bit13: Frame encoding was OFDM */
  24. #define SPR_RXE_0x1e spr00f
  25. #define SPR_RCM_Control spr010
  26. #define SPR_RCM_Match_Data spr011
  27. #define SPR_RCM_Match_Mask spr012
  28. #define SPR_RCM_Match_Delay spr013
  29. #define SPR_RCM_Condition_Mask_Low spr014
  30. #define SPR_RCM_Condition_Mask_High spr015
  31. #define SPR_RCM_Condition_Delay spr016
  32. #define SPR_RXE_0x2e spr017
  33. #define SPR_Ext_IHR_Address spr018
  34. #define SPR_Ext_IHR_Data spr019
  35. #define SPR_RXE_PHYRXSTAT2 spr01a
  36. #define SPR_RXE_PHYRXSTAT3 spr01b
  37. #define SPR_PHY_Mode spr01c
  38. #define SPR_RCM_TA_Control spr01d
  39. #define SPR_RCM_TA_Size spr01e
  40. #define SPR_RCM_TA_Address_0 spr01f
  41. #define SPR_RCM_TA_Address_1 spr020
  42. #define SPR_RCM_TA_Address_2 spr021
  43. #define SPR_RXE_0x44 spr022
  44. #define SPR_RXE_0x46 spr023
  45. #define SPR_RXE_0x48 spr024
  46. #define SPR_RXE_0x4a spr025
  47. #define SPR_RXE_0x4c spr026
  48. #define SPR_RXE_0x4e spr027
  49. #define SPR_RXE_0x50 spr028
  50. #define SPR_RXE_0x52 spr029
  51. #define SPR_RXE_0x54 spr02a
  52. #define SPR_RXE_0x56 spr02b
  53. #define SPR_RXE_0x58 spr02c
  54. #define SPR_RXE_0x5a spr02d
  55. #define SPR_RXE_0x5c spr02e
  56. #define SPR_RXE_0x5e spr02f
  57. #define SPR_RXE_0x60 spr030
  58. #define SPR_RXE_0x62 spr031
  59. #define SPR_RXE_0x64 spr032
  60. #define SPR_RXE_0x66 spr033
  61. #define SPR_RXE_0x68 spr034
  62. #define SPR_RXE_0x6a spr035
  63. #define SPR_RXE_0x6c spr036
  64. #define SPR_RXE_0x6e spr037
  65. #define SPR_RXE_0x70 spr038
  66. #define SPR_RXE_0x72 spr039
  67. #define SPR_RXE_0x74 spr03a
  68. #define SPR_RXE_0x76 spr03b
  69. #define SPR_RXE_0x78 spr03c
  70. #define SPR_RXE_0x7a spr03d
  71. #define SPR_RXE_0x7c spr03e
  72. #define SPR_RXE_0x7e spr03f
  73. #define SPR_MAC_MAX_NAP spr040
  74. #define SPR_MAC_CTLHI spr041
  75. #define SPR_MAC_IRQLO spr042
  76. #define SPR_MAC_IRQHI spr043
  77. #define SPR_MAC_IRQMASKLO spr044
  78. #define SPR_MAC_IRQMASKHI spr045
  79. #define SPR_PSM_0x0c spr046
  80. #define SPR_MAC_CMD spr047
  81. #define MACCMD_BEAC0 0 /* bit0: Beacon 0 busy/valid */
  82. #define MACCMD_BEAC1 1 /* bit1: Beacon 1 busy/valid */
  83. #define MACCMD_DFQ 2 /* bit2: Directed frame queue valid */
  84. #define MACCMD_CCA 3 /* bit3: Channel clear assessment */
  85. #define MACCMD_BGNOISE 4 /* bit4: BG-noise measurement request */
  86. #define SPR_BRC spr048
  87. #define BRC_TXMOREFRAGS 4 /* bit4: Set if there are more TX frags to come */
  88. #define SPR_PHY_HDR_Parameter spr049
  89. #define SPR_Postcard spr04a
  90. #define SPR_Postcard_Location_Low spr04b
  91. #define SPR_Postcard_Location_High spr04c
  92. #define SPR_GPIO_IN spr04d
  93. #define SPR_GPIO_OUT spr04e
  94. #define SPR_GPIO_OUTEN spr04f
  95. #define SPR_BRED0 spr050
  96. #define SPR_BRED1 spr051
  97. #define SPR_BRED2 spr052
  98. #define SPR_BRED3 spr053
  99. #define SPR_BRCL0 spr054
  100. #define SPR_BRCL1 spr055
  101. #define SPR_BRCL2 spr056
  102. #define SPR_BRCL3 spr057
  103. #define SPR_BRPO0 spr058
  104. #define SPR_BRPO1 spr059
  105. #define SPR_BRPO2 spr05a
  106. #define SPR_BRPO3 spr05b
  107. #define SPR_BRWK0 spr05c
  108. #define SPR_BRWK1 spr05d
  109. #define SPR_BRWK2 spr05e
  110. #define SPR_BRWK3 spr05f
  111. #define SPR_BASE0 spr060 /* Offset Register 0 */
  112. #define SPR_BASE1 spr061 /* Offset Register 1 */
  113. #define SPR_BASE2 spr062 /* Offset Register 2 */
  114. #define SPR_BASE3 spr063 /* Offset Register 3 */
  115. #define SPR_BASE4 spr064 /* Offset Register 4 */
  116. #define SPR_BASE5 spr065 /* Offset Register 5 */
  117. #define SPR_BASE6 spr066 /* Do not use. It's broken! */
  118. #define SPR_PSM_0x4e spr067
  119. #define SPR_PC0 spr068 /* Link Register 0 */
  120. #define SPR_PC1 spr069 /* Link Register 1 */
  121. #define SPR_PC2 spr06a /* Link Register 2 */
  122. #define SPR_PC3 spr06b /* Link Register 3 */
  123. #define SPR_PSM_COND spr06c /* PSM external condition bits */
  124. #define SPR_PSM_0x5a spr06d
  125. #define SPR_PSM_0x5c spr06e
  126. #define SPR_PSM_0x5e spr06f
  127. #define SPR_PSM_0x60 spr070
  128. #define SPR_PSM_0x62 spr071
  129. #define SPR_PSM_0x64 spr072
  130. #define SPR_PSM_0x66 spr073
  131. #define SPR_PSM_0x68 spr074
  132. #define SPR_PSM_0x6a spr075
  133. #define SPR_PSM_0x6c spr076
  134. #define SPR_PSM_0x6e spr077
  135. #define SPR_PSM_0x70 spr078
  136. #define SPR_PSM_0x72 spr079
  137. #define SPR_PSM_0x74 spr07a
  138. #define SPR_PSM_0x76 spr07b
  139. #define SPR_PSM_0x78 spr07c
  140. #define SPR_PSM_0x7a spr07d
  141. #define SPR_PSM_0x7c spr07e
  142. #define SPR_PSM_0x7e spr07f
  143. #define SPR_TXE0_CTL spr080
  144. #define TXE_CTL_ENABLED 0 /* bit0: The engine is enabled */
  145. #define TXE_CTL_FCS 14 /* bit14: Generate the FCS */
  146. #define SPR_TXE0_AUX spr081
  147. #define SPR_TXE0_TS_LOC spr082
  148. #define SPR_TXE0_TIMEOUT spr083
  149. #define SPR_TXE0_WM0 spr084
  150. #define SPR_TXE0_WM1 spr085
  151. #define SPR_TXE0_PHY_CTL spr086
  152. #define SPR_TXE0_STATUS spr087
  153. #define TXE_STATUS_BUSY 7 /* bit7: TX engine busy */
  154. #define TXE_STATUS_MEND 10 /* bit10: TXE M end */
  155. // New Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  156. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  157. #define SPR_TXE0_MMPLCP0 spr088
  158. #define SPR_TXE0_MMPLCP1 spr089
  159. #define SPR_TXE0_PHY_CTL1 spr08a
  160. #define SPR_TXE0_0x16 spr08b
  161. #define SPR_TX_STATUS0 spr08c
  162. #define SPR_TX_STATUS1 spr08d
  163. #define SPR_TX_STATUS2 spr08e
  164. #define SPR_TX_STATUS3 spr08f
  165. #define SPR_TXE0_FIFO_Def spr090
  166. // New Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  167. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  168. #define SPR_TXE0_FIFO_Frame_Count spr091 /* Corerev >= 16 */
  169. #define SPR_TXE0_FIFO_Byte_Count spr092 /* Corerev >= 16 */
  170. #define SPR_TXE0_FIFO_Head spr093 /* Corerev >= 16 */
  171. #define SPR_TXE0_FIFO_Read_Pointer spr094 /* Corerev >= 16 */
  172. #define SPR_TXE0_FIFO_Write_Pointer spr095 /* Corerev >= 16 */
  173. #define SPR_TXE0_FIFO_DEF1 spr096 /* Corerev >= 16 */
  174. // New Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  175. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  176. #define SPR_TXE0_AGGFIFO_CMD spr097
  177. #define SPR_TXE0_AGGFIFO_STAT spr098
  178. #define SPR_TXE0_AGGFIFO_CFG_Control spr099
  179. #define SPR_TXE0_AGGFIFO_CFG_Data spr09a
  180. #define SPR_TXE0_AGGFIFO_MPDUNUM spr09b
  181. #define SPR_TXE0_AGGFIFO_Length spr09c
  182. #define SPR_TXE0_AGGFIFO_BMP spr09d
  183. #define SPR_TXE0_AGGFIFO_ACKEDCNT spr09e
  184. #define SPR_TXE0_AGGFIFO_SEL spr09f
  185. #define SPR_TXE0_FIFO_CMD spr0a0
  186. #define TXE_FIFO_CMD_TXDONE 13 /* bit13: Set after the current transmission finished */
  187. #define TXE_FIFO_CMD_COPY 14 /* bit14: Start copying of data */
  188. #define SPR_TXE0_FIFO_FLUSH spr0a1
  189. #define SPR_TXE0_FIFO_THRES spr0a2
  190. #define SPR_TXE0_FIFO_RDY spr0a3 /* FIFO-ready bitmask. bit-nr = FIFO-nr */
  191. #define SPR_TXE0_FIFO_PRI_RDY spr0a4
  192. #define SPR_TXE0_FIFO_RQ_PRI spr0a5
  193. #define SPR_TXE0_Template_TX_Pointer spr0a6
  194. #define SPR_TXE0_0x4e spr0a7
  195. #define SPR_TXE0_Template_Pointer spr0a8
  196. // New Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  197. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  198. #define SPR_TXE0_CLCT_STRPTR spr0a9 /* Corerev >= 22 */
  199. #define SPR_TXE0_CLCT_STPPTR spr0aa /* Corerev >= 22 */
  200. #define SPR_TXE0_CLCT_CURPTR spr0ab /* Corerev >= 22 */
  201. #define SPR_TXE0_AGGFIFO_Data spr0ac
  202. #define SPR_TXE0_0x5a spr0ad
  203. #define SPR_TXE0_0x5c spr0ae
  204. #define SPR_TXE0_0x5e spr0af
  205. #define SPR_TXE0_Template_Data_Low spr0b0
  206. #define SPR_TXE0_Template_Data_High spr0b1
  207. #define SPR_TXE0_0x64 spr0b2
  208. #define SPR_TXE0_0x66 spr0b3
  209. #define SPR_TXE0_SELECT spr0b4
  210. #define TXE_SELECT_DST 0x0003 /* Destination code mask */
  211. #define TXE_SELECT_DST_SHM 0x0001 /* Destination code for the SHM */
  212. #define TXE_SELECT_DST_PHY 0x0002 /* Destination code for the PHY */
  213. #define TXE_SELECT_DST_DISCARD 0x0003 /* Destination code for discarding */
  214. #define TXE_SELECT_USE_TXCNT 2 /* bit2: Use the TX_COUNT register */
  215. #define TXE_SELECT_UNK0x20 5 /* bit5: ??FIXME: Unknown meaning. Seems to be PHY related. */
  216. #define TXE_SELECT_SRC 0x1F00 /* Source code mask */
  217. #define TXE_SELECT_SRC_SHIFT 8
  218. #define TXE_SELECT_SRC_FIFO0 0x0000 /* Source code for FIFO 0 */
  219. #define TXE_SELECT_SRC_FIFO1 0x0100 /* Source code for FIFO 1 */
  220. #define TXE_SELECT_SRC_FIFO2 0x0200 /* Source code for FIFO 2 */
  221. #define TXE_SELECT_SRC_FIFO3 0x0300 /* Source code for FIFO 3 */
  222. #define TXE_SELECT_SRC_FIFO4 0x0400 /* Source code for FIFO 4 */
  223. #define TXE_SELECT_SRC_FIFO5 0x0500 /* Source code for FIFO 5 */
  224. #define TXE_SELECT_SRC_FIFO6 0x0600 /* Source code for FIFO 6 */
  225. #define TXE_SELECT_SRC_FIFO7 0x0700 /* Source code for FIFO 7 */
  226. #define TXE_SELECT_SRC_TRAM 0x0800 /* Source code for Template Ram */
  227. #define SPR_TXE0_TX_COUNT spr0b5 /* Number of bytes to process */
  228. #define SPR_TXE0_TX_SHM_ADDR spr0b6 /* The SHM address to copy the TX header to (in bytes!) */
  229. #define SPR_TXE0_0x6e spr0b7
  230. #define SPR_TXE0_0x70 spr0b8
  231. #define SPR_TXE0_0x72 spr0b9
  232. #define SPR_TXE0_0x74 spr0ba
  233. #define SPR_TXE0_0x76 spr0bb
  234. #define SPR_TXE0_0x78 spr0bc
  235. #define SPR_TXE0_0x7a spr0bd
  236. #define SPR_TXE0_0x7c spr0be
  237. #define SPR_TXE0_0x7e spr0bf
  238. /* Transmit Modify Engine masks */
  239. #define SPR_TME_MASK0 spr0c0
  240. #define SPR_TME_MASK2 spr0c1
  241. #define SPR_TME_MASK4 spr0c2
  242. #define SPR_TME_MASK6 spr0c3
  243. #define SPR_TME_MASK8 spr0c4
  244. #define SPR_TME_MASK10 spr0c5
  245. #define SPR_TME_MASK12 spr0c6
  246. #define SPR_TME_MASK14 spr0c7
  247. #define SPR_TME_MASK16 spr0c8
  248. #define SPR_TME_MASK18 spr0c9
  249. #define SPR_TME_MASK20 spr0ca
  250. #define SPR_TME_MASK22 spr0cb
  251. #define SPR_TME_MASK24 spr0cc
  252. #define SPR_TME_MASK26 spr0cd
  253. #define SPR_TME_MASK28 spr0ce
  254. #define SPR_TME_MASK30 spr0cf
  255. #define SPR_TME_MASK32 spr0d0
  256. #define SPR_TME_MASK34 spr0d1
  257. #define SPR_TME_MASK36 spr0d2
  258. #define SPR_TME_MASK38 spr0d3
  259. #define SPR_TME_MASK40 spr0d4
  260. #define SPR_TME_MASK42 spr0d5
  261. #define SPR_TME_MASK44 spr0d6
  262. #define SPR_TME_MASK46 spr0d7
  263. #define SPR_TME_MASK48 spr0d8
  264. #define SPR_TME_MASK50 spr0d9
  265. #define SPR_TME_MASK52 spr0da
  266. #define SPR_TME_MASK54 spr0db
  267. #define SPR_TME_MASK56 spr0dc
  268. #define SPR_TME_MASK58 spr0dd
  269. #define SPR_TME_MASK60 spr0de
  270. #define SPR_TME_MASK62 spr0df
  271. /* Transmit Modify Engine values */
  272. #define SPR_TME_VAL0 spr0e0
  273. #define SPR_TME_VAL2 spr0e1
  274. #define SPR_TME_VAL4 spr0e2
  275. #define SPR_TME_VAL6 spr0e3
  276. #define SPR_TME_VAL8 spr0e4
  277. #define SPR_TME_VAL10 spr0e5
  278. #define SPR_TME_VAL12 spr0e6
  279. #define SPR_TME_VAL14 spr0e7
  280. #define SPR_TME_VAL16 spr0e8
  281. #define SPR_TME_VAL18 spr0e9
  282. #define SPR_TME_VAL20 spr0ea
  283. #define SPR_TME_VAL22 spr0eb
  284. #define SPR_TME_VAL24 spr0ec
  285. #define SPR_TME_VAL26 spr0ed
  286. #define SPR_TME_VAL28 spr0ee
  287. #define SPR_TME_VAL30 spr0ef
  288. #define SPR_TME_VAL32 spr0f0
  289. #define SPR_TME_VAL34 spr0f1
  290. #define SPR_TME_VAL36 spr0f2
  291. #define SPR_TME_VAL38 spr0f3
  292. #define SPR_TME_VAL40 spr0f4
  293. #define SPR_TME_VAL42 spr0f5
  294. #define SPR_TME_VAL44 spr0f6
  295. #define SPR_TME_VAL46 spr0f7
  296. #define SPR_TME_VAL48 spr0f8
  297. #define SPR_TME_VAL50 spr0f9
  298. #define SPR_TME_VAL52 spr0fa
  299. #define SPR_TME_VAL54 spr0fb
  300. #define SPR_TME_VAL56 spr0fc
  301. #define SPR_TME_VAL58 spr0fd
  302. #define SPR_TME_VAL60 spr0fe
  303. #define SPR_TME_VAL62 spr0ff
  304. #define SPR_TSF_0x00 spr100
  305. #define SPR_TSF_0x02 spr101
  306. #define SPR_TSF_CFP_Start_Low spr102
  307. #define SPR_TSF_CFP_Start_High spr103
  308. #define SPR_TSF_0x08 spr104
  309. #define SPR_TSF_0x0a spr105
  310. #define SPR_TSF_0x0c spr106
  311. #define SPR_TSF_0x0e spr107
  312. #define SPR_TSF_0x10 spr108
  313. #define SPR_TSF_CFP_PreTBTT spr109
  314. #define SPR_TSF_0x14 spr10a
  315. #define SPR_TSF_0x16 spr10b
  316. #define SPR_TSF_0x18 spr10c
  317. #define SPR_TSF_0x1a spr10d
  318. #define SPR_TSF_0x1c spr10e
  319. #define SPR_TSF_0x1e spr10f
  320. #define SPR_TSF_0x20 spr110
  321. #define SPR_TSF_0x22 spr111
  322. #define SPR_TSF_0x24 spr112
  323. #define SPR_TSF_0x26 spr113
  324. #define SPR_TSF_0x28 spr114
  325. #define SPR_TSF_0x2a spr115
  326. #define SPR_TX_FES_Time spr116
  327. #define SPR_TSF_0x2e spr117
  328. #define SPR_TSF_0x30 spr118
  329. #define SPR_TSF_WORD0 spr119
  330. #define SPR_TSF_WORD1 spr11a
  331. #define SPR_TSF_WORD2 spr11b
  332. #define SPR_TSF_WORD3 spr11c
  333. #define SPR_TSF_0x3a spr11d
  334. #define SPR_TSF_0x3c spr11e
  335. #define SPR_TSF_0x3e spr11f
  336. #define SPR_TSF_0x40 spr120
  337. #define SPR_TSF_0x42 spr121
  338. #define SPR_TSF_0x44 spr122
  339. #define SPR_TSF_GPT0_STAT spr123
  340. #define GPT_STAT_EN 15 /* bit15: Enable the timer */
  341. #define GPT_STAT_8MHZ 14 /* bit14: Use 8MHz base (otherwise 88MHz) */
  342. #define SPR_TSF_GPT1_STAT spr124
  343. #define SPR_TSF_GPT0_CNTLO spr125
  344. #define SPR_TSF_GPT1_CNTLO spr126
  345. #define SPR_TSF_GPT0_CNTHI spr127
  346. #define SPR_TSF_GPT1_CNTHI spr128
  347. #define SPR_TSF_GPT0_VALLO spr129
  348. #define SPR_TSF_GPT1_VALLO spr12a
  349. #define SPR_TSF_GPT0_VALHI spr12b
  350. #define SPR_TSF_GPT1_VALHI spr12c
  351. #define SPR_TSF_RANDOM spr12d
  352. #define SPR_TSF_0x5c spr12e
  353. #define SPR_TSF_0x5e spr12f
  354. #define SPR_TSF_0x60 spr130
  355. #define SPR_TSF_0x62 spr131
  356. #define SPR_TSF_0x64 spr132
  357. #define SPR_TSF_GPT2_STAT spr133
  358. #define SPR_TSF_GPT2_CNTLO spr134
  359. #define SPR_TSF_GPT2_CNTHI spr135
  360. #define SPR_TSF_GPT2_VALLO spr136
  361. #define SPR_TSF_GPT2_VALHI spr137
  362. #define SPR_TSF_GPT_ALL_STAT spr138
  363. #define SPR_TSF_0x72 spr139
  364. #define SPR_TSF_0x74 spr13a
  365. #define SPR_TSF_0x76 spr13b
  366. #define SPR_TSF_0x78 spr13c
  367. #define SPR_TSF_0x7a spr13d
  368. #define SPR_TSF_0x7c spr13e
  369. #define SPR_TSF_0x7e spr13f
  370. #define SPR_IFS_sifs_rx_tx_tx spr140
  371. #define SPR_IFS_sifs_nav_tx spr141
  372. #define SPR_IFS_slot spr142
  373. #define SPR_IFS_0x06 spr143
  374. #define SPR_IFS_CTL spr144
  375. #define SPR_IFS_BKOFFTIME spr145 /* BackoffTime; in units of PHY slots */
  376. #define SPR_IFS_0x0c spr146
  377. #define SPR_IFS_0x0e spr147
  378. #define SPR_IFS_STAT spr148
  379. #define SPR_IFS_med_busy_ctl spr149
  380. #define SPR_IFS_if_tx_duration spr14a
  381. #define SPR_IFS_0x16 spr14b
  382. #define SPR_IFS_0x18 spr14c
  383. #define SPR_IFS_0x1a spr14d
  384. // New Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  385. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  386. /* EDCF support in dot11macs with corerevs >= 16 */
  387. #define SPR_IFS_AIFSN spr14e
  388. #define SPR_IFS_CTL1 spr14f
  389. #define SPR_SCC_Control spr150
  390. #define SPR_SCC_Timer_Low spr151
  391. #define SPR_SCC_Timer_High spr152
  392. #define SPR_SCC_Divisor spr153
  393. #define SPR_SCC_Fast_Powerup_Delay spr154
  394. #define SPR_SCC_Period spr155
  395. #define SPR_SCC_Period_Divisor spr156
  396. // New Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  397. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  398. #define SPR_SCC_CAL_Timer_Low spr157
  399. #define SPR_SCC_CAL_Timer_High spr158
  400. #define SPR_IFS_0x32 spr159
  401. // New Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  402. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  403. /* BTCX block on corerev >=13 */
  404. #define SPR_BTCX_Control spr15a
  405. #define SPR_BTCX_Stat spr15b
  406. #define SPR_BTCX_Transmit_Control spr15c
  407. #define SPR_BTCX_PRI_WIN spr15d
  408. #define SPR_BTCX_TX_Conf_Timer spr15e
  409. #define SPR_BTCX_ANT_SW_Timer spr15f
  410. #define SPR_BTCX_PRV_RFACT_Timer spr160
  411. #define SPR_BTCX_CUR_RFACT_Timer spr161
  412. #define SPR_BTCX_RFACT_DUR_Timer spr162
  413. #define SPR_IFS_CTL_SEL_PRICRS spr163
  414. #define SPR_IFS_CTL_SEL_SECCRS spr164
  415. #define SPR_IFS_0x4a spr165
  416. #define SPR_IFS_0x4c spr166
  417. #define SPR_IFS_0x4e spr167
  418. #define SPR_IFS_0x50 spr168
  419. #define SPR_IFS_0x52 spr169
  420. #define SPR_IFS_0x54 spr16a
  421. #define SPR_IFS_0x56 spr16b
  422. #define SPR_IFS_0x58 spr16c
  423. #define SPR_IFS_0x5a spr16d
  424. #define SPR_IFS_0x5c spr16e
  425. #define SPR_IFS_0x5e spr16f
  426. #define SPR_IFS_0x60 spr170
  427. #define SPR_IFS_0x62 spr171
  428. #define SPR_IFS_0x64 spr172
  429. #define SPR_IFS_0x66 spr173
  430. #define SPR_IFS_0x68 spr174
  431. #define SPR_IFS_0x6a spr175
  432. #define SPR_IFS_0x6c spr176
  433. #define SPR_IFS_0x6e spr177
  434. // New Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  435. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  436. /* ECI regs on corerev >=14 */
  437. #define SPR_BTCX_ECI_Address spr178
  438. #define SPR_BTCX_ECI_Data spr179
  439. #define SPR_IFS_0x74 spr17a
  440. #define SPR_IFS_0x76 spr17b
  441. #define SPR_IFS_0x78 spr17c
  442. #define SPR_IFS_0x7a spr17d
  443. #define SPR_IFS_0x7c spr17e
  444. #define SPR_IFS_0x7e spr17f
  445. #define SPR_NAV_CTL spr180
  446. #define SPR_NAV_STAT spr181
  447. #define SPR_NAV_0x04 spr182
  448. #define SPR_NAV_0x06 spr183
  449. #define SPR_NAV_0x08 spr184
  450. #define SPR_NAV_0x0a spr185
  451. #define SPR_NAV_ALLOCATION spr186
  452. #define SPR_NAV_0x0e spr187
  453. #define SPR_NAV_0x10 spr188
  454. #define SPR_NAV_0x12 spr189
  455. #define SPR_NAV_0x14 spr18a
  456. #define SPR_NAV_0x16 spr18b
  457. #define SPR_NAV_0x18 spr18c
  458. #define SPR_NAV_0x1a spr18d
  459. #define SPR_NAV_0x1c spr18e
  460. #define SPR_NAV_0x1e spr18f
  461. #define SPR_NAV_0x20 spr190
  462. #define SPR_NAV_0x22 spr191
  463. #define SPR_NAV_0x24 spr192
  464. #define SPR_NAV_0x26 spr193
  465. #define SPR_NAV_0x28 spr194
  466. #define SPR_NAV_0x2a spr195
  467. #define SPR_NAV_0x2c spr196
  468. #define SPR_NAV_0x2e spr197
  469. #define SPR_NAV_0x30 spr198
  470. #define SPR_NAV_0x32 spr199
  471. #define SPR_NAV_0x34 spr19a
  472. #define SPR_NAV_0x36 spr19b
  473. #define SPR_NAV_0x38 spr19c
  474. #define SPR_NAV_0x3a spr19d
  475. #define SPR_NAV_0x3c spr19e
  476. #define SPR_NAV_0x3e spr19f
  477. #define SPR_NAV_0x40 spr1a0
  478. #define SPR_NAV_0x42 spr1a1
  479. #define SPR_NAV_0x44 spr1a2
  480. #define SPR_NAV_0x46 spr1a3
  481. #define SPR_NAV_0x48 spr1a4
  482. #define SPR_NAV_0x4a spr1a5
  483. #define SPR_NAV_0x4c spr1a6
  484. #define SPR_NAV_0x4e spr1a7
  485. #define SPR_NAV_0x50 spr1a8
  486. #define SPR_NAV_0x52 spr1a9
  487. #define SPR_NAV_0x54 spr1aa
  488. #define SPR_NAV_0x56 spr1ab
  489. #define SPR_NAV_0x58 spr1ac
  490. #define SPR_NAV_0x5a spr1ad
  491. #define SPR_NAV_0x5c spr1ae
  492. #define SPR_NAV_0x5e spr1af
  493. #define SPR_NAV_0x60 spr1b0
  494. #define SPR_NAV_0x62 spr1b1
  495. #define SPR_NAV_0x64 spr1b2
  496. #define SPR_NAV_0x66 spr1b3
  497. #define SPR_NAV_0x68 spr1b4
  498. #define SPR_NAV_0x6a spr1b5
  499. #define SPR_NAV_0x6c spr1b6
  500. #define SPR_NAV_0x6e spr1b7
  501. #define SPR_NAV_0x70 spr1b8
  502. #define SPR_NAV_0x72 spr1b9
  503. #define SPR_NAV_0x74 spr1ba
  504. #define SPR_NAV_0x76 spr1bb
  505. #define SPR_NAV_0x78 spr1bc
  506. #define SPR_NAV_0x7a spr1bd
  507. #define SPR_NAV_0x7c spr1be
  508. #define SPR_NAV_0x7e spr1bf
  509. #define SPR_WEP_0x00 spr1c0
  510. #define SPR_WEP_0x02 spr1c1
  511. #define SPR_WEP_0x04 spr1c2
  512. #define SPR_WEP_0x06 spr1c3
  513. #define SPR_WEP_0x08 spr1c4
  514. #define SPR_WEP_0x0a spr1c5
  515. #define SPR_WEP_0x0c spr1c6
  516. #define SPR_WEP_0x0e spr1c7
  517. #define SPR_WEP_0x10 spr1c8
  518. #define SPR_WEP_0x12 spr1c9
  519. #define SPR_WEP_0x14 spr1ca
  520. #define SPR_WEP_0x16 spr1cb
  521. #define SPR_WEP_0x18 spr1cc
  522. #define SPR_WEP_0x1a spr1cd
  523. #define SPR_WEP_0x1c spr1ce
  524. #define SPR_WEP_0x1e spr1cf
  525. #define SPR_WEP_0x20 spr1d0
  526. #define SPR_WEP_0x22 spr1d1
  527. #define SPR_WEP_0x24 spr1d2
  528. #define SPR_WEP_0x26 spr1d3
  529. #define SPR_WEP_0x28 spr1d4
  530. #define SPR_WEP_0x2a spr1d5
  531. #define SPR_WEP_0x2c spr1d6
  532. #define SPR_WEP_0x2e spr1d7
  533. #define SPR_WEP_0x30 spr1d8
  534. #define SPR_WEP_0x32 spr1d9
  535. #define SPR_WEP_0x34 spr1da
  536. #define SPR_WEP_0x36 spr1db
  537. #define SPR_WEP_0x38 spr1dc
  538. #define SPR_WEP_0x3a spr1dd
  539. #define SPR_WEP_0x3c spr1de
  540. #define SPR_WEP_0x3e spr1df
  541. #define SPR_WEP_CTL spr1e0
  542. #define SPR_WEP_IV_Location spr1e1
  543. #define SPR_WEP_IV_Key spr1e2
  544. #define SPR_WEP_WKey spr1e3
  545. #define SPR_WEP_0x48 spr1e4
  546. #define SPR_WEP_0x4a spr1e5
  547. #define SPR_WEP_0x4c spr1e6
  548. #define SPR_WEP_0x4e spr1e7
  549. #define SPR_WEP_0x50 spr1e8
  550. #define SPR_WEP_0x52 spr1e9
  551. #define SPR_WEP_0x54 spr1ea
  552. #define SPR_WEP_AES_Control spr1eb
  553. #define SPR_WEP_0x58 spr1ec
  554. #define SPR_WEP_0x5a spr1ed
  555. #define SPR_WEP_0x5c spr1ee
  556. #define SPR_WEP_0x5e spr1ef
  557. #define SPR_PMQ_control_low spr1f0
  558. #define SPR_PMQ_control_high spr1f1
  559. #define SPR_PMQ_pat_0 spr1f2
  560. #define SPR_PMQ_pat_1 spr1f3
  561. #define SPR_PMQ_pat_2 spr1f4
  562. #define SPR_PMQ_dat spr1f5
  563. #define SPR_PMQ_dat_or spr1f6
  564. #define SPR_PMQ_0x0e spr1f7
  565. #define SPR_PMQ_pat_h0 spr1f8
  566. #define SPR_PMQ_pat_h1 spr1f9
  567. #define SPR_PMQ_pat_h2 spr1fa
  568. #define SPR_PMQ_dat_h spr1fb
  569. #define SPR_PMQ_0x18 spr1fc
  570. #define SPR_PMQ_0x1a spr1fd
  571. #define SPR_PMQ_0x1c spr1fe
  572. #define SPR_PMQ_0x1e spr1ff
  573. // New 802.11ac Registers; Source: d11.h 578947 2015-08-13 04:46:06Z
  574. // http://github.com/tuapuikia/asuswrt-phantom/blob/master/release/src-rt-7.14.114.x/src/include/d11.h
  575. /* AQM */
  576. #define SPR_AQM_Config spr200
  577. #define SPR_AQM_FIFO_Def spr201
  578. #define SPR_AQM_Max_IDX spr202
  579. #define SPR_AQM_RCVD_BA0 spr203
  580. #define SPR_AQM_RCVD_BA1 spr204
  581. #define SPR_AQM_RCVD_BA2 spr205
  582. #define SPR_AQM_RCVD_BA3 spr206
  583. #define SPR_AQM_BASSN spr207
  584. #define SPR_AQM_REFSN spr208
  585. #define SPR_AQM_Max_Agg_Len_Low spr209
  586. #define SPR_AQM_Max_Agg_Len_High spr20a
  587. #define SPR_AQM_Agg_Params spr20b
  588. #define SPR_AQM_Min_MPDU_Length spr20c
  589. #define SPR_AQM_MAC_Adj_Length spr20d
  590. #define SPR_AQM_Debug_Bus_Control spr20e
  591. #define SPR_AQM_Agg_Stats spr210
  592. #define SPR_AQM_Agg_Len_Low spr211
  593. #define SPR_AQM_Agg_Len_High spr212
  594. #define SPR_AQM_IDX_FIFO spr213
  595. #define SPR_AQM_MPDU_Len_FIFO spr214
  596. #define SPR_AQM_TX_Control_FIFO spr215
  597. #define SPR_AQM_Upd_BA0 spr216
  598. #define SPR_AQM_Upd_BA1 spr217
  599. #define SPR_AQM_Upd_BA2 spr218
  600. #define SPR_AQM_Upd_BA3 spr219
  601. #define SPR_AQM_ACK_Control spr21a
  602. #define SPR_AQM_Cons_Control spr21b
  603. #define SPR_AQM_FIFO_Ready spr21c
  604. #define SPR_AQM_Start_Loc spr21d
  605. #define SPR_TDCCTL spr220
  606. #define SPR_TDC_PLCP0 spr221
  607. #define SPR_TDC_PLCP1 spr222
  608. #define SPR_TDC_Frame_Length0 spr223
  609. #define SPR_TDC_Frame_Length1 spr224
  610. #define SPR_TDC_TX_Time spr225
  611. #define SPR_TDC_VHT_Sig_B0 spr226
  612. #define SPR_TDC_VHT_Sig_B1 spr227
  613. #define SPR_TDC_VHT_L_Sig_Len spr228
  614. #define SPR_TDC_VHT_N_Sym0 spr229
  615. #define SPR_TDC_VHT_N_Sym1 spr22a
  616. #define SPR_TDC_VHT_PSDU_Len0 spr22b
  617. #define SPR_TDC_VHT_PSDU_Len1 spr22c
  618. #define SPR_TDC_VHT_MAC_PAD spr22d
  619. #define SPR_SHMDMA_Control spr230
  620. #define SPR_SHMDMA_TXDC_Address spr231
  621. #define SPR_SHMDMA_SHM_Address spr232
  622. #define SPR_SHMDMA_Xfer_Cnt spr233
  623. #define SPR_TXDC_Address spr234
  624. #define SPR_TXDC_Data spr235
  625. /* RXE Register */
  626. #define SPR_MHP_Status spr240
  627. #define SPR_MHP_FC spr241
  628. #define SPR_MHP_DUR spr242
  629. #define SPR_MHP_SC spr243
  630. #define SPR_MHP_QOS spr244
  631. #define SPR_MHP_HTC_High spr245
  632. #define SPR_MHP_HTC_Low spr246
  633. #define SPR_MHP_Addr1_High spr247
  634. #define SPR_MHP_Addr1_Mid spr248
  635. #define SPR_MHP_Addr1_Low spr249
  636. #define SPR_MHP_Addr2_High spr250
  637. #define SPR_MHP_Addr2_Mid spr251
  638. #define SPR_MHP_Addr2_Low spr252
  639. #define SPR_MHP_Addr3_High spr253
  640. #define SPR_MHP_Addr3_Mid spr254
  641. #define SPR_MHP_Addr3_Low spr255
  642. #define SPR_MHP_Addr4_High spr256
  643. #define SPR_MHP_Addr4_Mid spr257
  644. #define SPR_MHP_Addr4_Low spr258
  645. #define SPR_MHP_CFG spr259
  646. #define SPR_DAGG_CTL2 spr260
  647. #define SPR_DAGG_BYTESLEFT spr261
  648. #define SPR_DAGG_SH_OFFSET spr262
  649. #define SPR_DAGG_STAT spr263
  650. #define SPR_DAGG_LEN spr264
  651. #define SPR_TXBA_Control spr265
  652. #define SPR_TXBA_Data_Select spr266
  653. #define SPR_TXBA_Data spr267
  654. #define SPR_AMT_Control spr270
  655. #define SPR_AMT_Status spr271
  656. #define SPR_AMT_Limit spr272
  657. #define SPR_AMT_Attr spr273
  658. #define SPR_AMT_Match1 spr274
  659. #define SPR_AMT_Match2 spr275
  660. #define SPR_AMT_Table_Address spr276
  661. #define SPR_AMT_Table_Data spr277
  662. #define SPR_AMT_Table_Value spr278
  663. #define SPR_AMT_Debug_Select spr279
  664. #define SPR_ROE_Control spr280
  665. #define SPR_ROE_Status spr281
  666. #define SPR_ROE_IP_Checksum spr282
  667. #define SPR_ROE_TCPUDP_Checksum spr283
  668. #define SPR_PSO_Control spr290
  669. #define SPR_PSO_RX_Words_Watermark spr291
  670. #define SPR_PSO_RX_Cnt_Watermark spr292
  671. #define SPR_OBFF_Control spr298
  672. #define SPR_OBFF_RX_Words_Watermark spr299
  673. #define SPR_OBFF_RX_Cnt_Watermark spr29a
  674. /* TOE */
  675. #define SPR_TOE_Control spr300
  676. #define SPR_TOE_Rst spr301
  677. #define SPR_TOE_CSumNZ spr302
  678. #define SPR_TX_Serial_Control spr320
  679. #define SPR_TX_PLCP_Sig0 spr321
  680. #define SPR_TX_PLCP_Sig1 spr322
  681. #define SPR_TX_PLCP_HT_Sig0 spr323
  682. #define SPR_TX_PLCP_HT_Sig1 spr324
  683. #define SPR_TX_PLCP_HT_Sig2 spr325
  684. #define SPR_TX_PLCP_VHT_SigB0 spr326
  685. #define SPR_TX_PLCP_VHT_SigB1 spr327
  686. #define SPR_MAC_Header_From_SHM_Length spr329
  687. #define SPR_TX_PLCP_Length spr32a
  688. #define SPR_TX_BF_Rpt_Length spr32c
  689. #define SPR_TX_BF_Control spr330
  690. #define SPR_Bfm_Rpt_Offset spr331
  691. #define SPR_Bfm_Rpt_Length spr332
  692. #define SPR_TX_BF_BfeRptRdCnt spr333
  693. /* Named definitions for the Transmit Modify Engine MASK registers */
  694. #define SPR_TME_M_PLCP0 SPR_TME_MASK0 /* PLCP header (low) */
  695. #define SPR_TME_M_PLCP1 SPR_TME_MASK2 /* PLCP header (middle) */
  696. #define SPR_TME_M_PLCP2 SPR_TME_MASK4 /* PLCP header (high) */
  697. #define SPR_TME_M_FCTL SPR_TME_MASK6 /* Frame control */
  698. #define SPR_TME_M_DURID SPR_TME_MASK8 /* Duration / ID */
  699. #define SPR_TME_M_ADDR1_0 SPR_TME_MASK10 /* Address 1 (low) */
  700. #define SPR_TME_M_ADDR1_1 SPR_TME_MASK12 /* Address 1 (middle) */
  701. #define SPR_TME_M_ADDR1_2 SPR_TME_MASK14 /* Address 1 (high) */
  702. #define SPR_TME_M_ADDR2_0 SPR_TME_MASK16 /* Address 2 (low) */
  703. #define SPR_TME_M_ADDR2_1 SPR_TME_MASK18 /* Address 2 (middle) */
  704. #define SPR_TME_M_ADDR2_2 SPR_TME_MASK20 /* Address 2 (high) */
  705. #define SPR_TME_M_ADDR3_0 SPR_TME_MASK22 /* Address 3 (low) */
  706. #define SPR_TME_M_ADDR3_1 SPR_TME_MASK24 /* Address 3 (middle) */
  707. #define SPR_TME_M_ADDR3_2 SPR_TME_MASK26 /* Address 3 (high) */
  708. #define SPR_TME_M_SEQ SPR_TME_MASK28 /* Sequence control */
  709. #define SPR_TME_M_ADDR4_0 SPR_TME_MASK30 /* Address 4 (low) */
  710. #define SPR_TME_M_ADDR4_1 SPR_TME_MASK32 /* Address 4 (middle) */
  711. #define SPR_TME_M_ADDR4_2 SPR_TME_MASK34 /* Address 4 (high) */
  712. /* Named definitions for the Transmit Modify Engine VALUE registers */
  713. #define SPR_TME_V_PLCP0 SPR_TME_VAL0 /* PLCP header (low) */
  714. #define SPR_TME_V_PLCP1 SPR_TME_VAL2 /* PLCP header (middle) */
  715. #define SPR_TME_V_PLCP2 SPR_TME_VAL4 /* PLCP header (high) */
  716. #define SPR_TME_V_FCTL SPR_TME_VAL6 /* Frame control */
  717. #define SPR_TME_V_DURID SPR_TME_VAL8 /* Duration / ID */
  718. #define SPR_TME_V_ADDR1_0 SPR_TME_VAL10 /* Address 1 (low) */
  719. #define SPR_TME_V_ADDR1_1 SPR_TME_VAL12 /* Address 1 (middle) */
  720. #define SPR_TME_V_ADDR1_2 SPR_TME_VAL14 /* Address 1 (high) */
  721. #define SPR_TME_V_ADDR2_0 SPR_TME_VAL16 /* Address 2 (low) */
  722. #define SPR_TME_V_ADDR2_1 SPR_TME_VAL18 /* Address 2 (middle) */
  723. #define SPR_TME_V_ADDR2_2 SPR_TME_VAL20 /* Address 2 (high) */
  724. #define SPR_TME_V_ADDR3_0 SPR_TME_VAL22 /* Address 3 (low) */
  725. #define SPR_TME_V_ADDR3_1 SPR_TME_VAL24 /* Address 3 (middle) */
  726. #define SPR_TME_V_ADDR3_2 SPR_TME_VAL26 /* Address 3 (high) */
  727. #define SPR_TME_V_SEQ SPR_TME_VAL28 /* Sequence control */
  728. #define SPR_TME_V_ADDR4_0 SPR_TME_VAL30 /* Address 4 (low) */
  729. #define SPR_TME_V_ADDR4_1 SPR_TME_VAL32 /* Address 4 (middle) */
  730. #define SPR_TME_V_ADDR4_2 SPR_TME_VAL34 /* Address 4 (high) */
  731. /* Interrupts (SPR_MAC_IRQLO/HI) */
  732. #define IRQLO_MAC_SUSPENDED 0x0001
  733. #define IRQLO_BEACONTEMP_AVAIL 0x0002
  734. #define IRQLO_TBTT_INDI 0x0004
  735. #define IRQLO_BEACON_TX_OK 0x0008
  736. #define IRQLO_BEACON_CANCEL 0x0010
  737. #define IRQLO_ATIM_END 0x0020
  738. #define IRQLO_PMQ 0x0040
  739. #define IRQLO_UNDEFINED_0 0x0080
  740. #define IRQLO_PIO_WORKAROUND 0x0100
  741. #define IRQLO_MAC_TXERR 0x0200
  742. #define IRQLO_UNDEFINED_2 0x0400
  743. #define IRQLO_PHY_TXERR 0x0800
  744. #define IRQLO_PMEVENT 0x1000
  745. #define IRQLO_TIMER0 0x2000
  746. #define IRQLO_TIMER1 0x4000
  747. #define IRQLO_DMA 0x8000
  748. #define IRQHI_TXFIFO_FLUSH_OK 0x0001
  749. #define IRQHI_CCA_MEASURE_OK 0x0002
  750. #define IRQHI_NOISESAMPLE_OK 0x0004
  751. #define IRQHI_UNDEFINED_3 0x0008
  752. #define IRQHI_UNDEFINED_4 0x0010
  753. #define IRQHI_UNDEFINED_5 0x0020
  754. #define IRQHI_UNDEFINED_6 0x0040
  755. #define IRQHI_UNDEFINED_7 0x0080
  756. #define IRQHI_UNDEFINED_8 0x0100
  757. #define IRQHI_UNDEFINED_9 0x0200
  758. #define IRQHI_UNDEFINED_10 0x0400
  759. #define IRQHI_DEBUG 0x0800
  760. #define IRQHI_RFKILL 0x1000
  761. #define IRQHI_TX_OK 0x2000
  762. #define IRQHI_PHY_G_CHANGED 0x4000
  763. #define IRQHI_TIMEOUT 0x8000
  764. /* MAC Control High bits */
  765. #define MACCTL_BE 0 /* bit0: Big Endian mode */
  766. #define MACCTL_INFRA 1 /* bit1: Infrastructure mode */
  767. #define MACCTL_AP 2 /* bit2: AccessPoint mode */
  768. #define MACCTL_RADIOLOCK 3 /* bit3: Radio lock */
  769. #define MACCTL_BEACPROMISC 4 /* bit4: Beacon Promiscuous */
  770. #define MACCTL_KEEP_BADPLCP 5 /* bit5: Keep frames with bad PLCP */
  771. #define MACCTL_KEEP_CTL 6 /* bit6: Keep control frames */
  772. #define MACCTL_KEEP_BAD 7 /* bit7: Keep bad frames (FCS) */
  773. #define MACCTL_PROMISC 8 /* bit8: Promiscuous mode */
  774. #define MACCTL_HWPS 9 /* bit9: Hardware Power Saving */
  775. #define MACCTL_AWAKE 10 /* bit10: Device is awake */
  776. #define MACCTL_CLOSEDNET 11 /* bit11: Closed net (no SSID bcast) */
  777. #define MACCTL_TBTTHOLD 12 /* bit12: TBTT Hold */
  778. #define MACCTL_DISCTXSTAT 13 /* bit13: Discard TX status */
  779. #define MACCTL_DISCPMQ 14 /* bit14: Discard Power Management Queue */
  780. #define MACCTL_GMODE 15 /* bit15: G Mode */
  781. /* The FIFO queue numbers */
  782. #define FIFO_BK 0 /* Background */
  783. #define FIFO_BE 1 /* Best Effort */
  784. #define FIFO_VI 2 /* Video */
  785. #define FIFO_VO 3 /* Voice */
  786. #define FIFO_MCAST 4 /* Broadcast / Multicast */
  787. #define FIFO_ATIM 5 /* ATIM window info */
  788. #endif /* SPECIAL_PURPOSE_REGISTER_H_ */
  789. // vim: syntax=b43 ts=8