/drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h

http://github.com/mirrors/linux · C Header · 7702 lines · 3878 code · 127 blank · 3697 comment · 3 complexity · c7e25dd77d3bdda700158c038a9ca6ee MD5 · raw file

Large files are truncated click here to view the full file

  1. /* bnx2x_reg.h: Qlogic Everest network driver.
  2. *
  3. * Copyright (c) 2007-2013 Broadcom Corporation
  4. * Copyright (c) 2014 QLogic Corporation
  5. * All rights reserved
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation.
  10. *
  11. * The registers description starts with the register Access type followed
  12. * by size in bits. For example [RW 32]. The access types are:
  13. * R - Read only
  14. * RC - Clear on read
  15. * RW - Read/Write
  16. * ST - Statistics register (clear on read)
  17. * W - Write only
  18. * WB - Wide bus register - the size is over 32 bits and it should be
  19. * read/write in consecutive 32 bits accesses
  20. * WR - Write Clear (write 1 to clear the bit)
  21. *
  22. */
  23. #ifndef BNX2X_REG_H
  24. #define BNX2X_REG_H
  25. #define ATC_ATC_INT_STS_REG_ADDRESS_ERROR (0x1<<0)
  26. #define ATC_ATC_INT_STS_REG_ATC_GPA_MULTIPLE_HITS (0x1<<2)
  27. #define ATC_ATC_INT_STS_REG_ATC_IREQ_LESS_THAN_STU (0x1<<5)
  28. #define ATC_ATC_INT_STS_REG_ATC_RCPL_TO_EMPTY_CNT (0x1<<3)
  29. #define ATC_ATC_INT_STS_REG_ATC_TCPL_ERROR (0x1<<4)
  30. #define ATC_ATC_INT_STS_REG_ATC_TCPL_TO_NOT_PEND (0x1<<1)
  31. /* [RW 1] Initiate the ATC array - reset all the valid bits */
  32. #define ATC_REG_ATC_INIT_ARRAY 0x1100b8
  33. /* [R 1] ATC initialization done */
  34. #define ATC_REG_ATC_INIT_DONE 0x1100bc
  35. /* [RC 6] Interrupt register #0 read clear */
  36. #define ATC_REG_ATC_INT_STS_CLR 0x1101c0
  37. /* [RW 5] Parity mask register #0 read/write */
  38. #define ATC_REG_ATC_PRTY_MASK 0x1101d8
  39. /* [R 5] Parity register #0 read */
  40. #define ATC_REG_ATC_PRTY_STS 0x1101cc
  41. /* [RC 5] Parity register #0 read clear */
  42. #define ATC_REG_ATC_PRTY_STS_CLR 0x1101d0
  43. /* [RW 19] Interrupt mask register #0 read/write */
  44. #define BRB1_REG_BRB1_INT_MASK 0x60128
  45. /* [R 19] Interrupt register #0 read */
  46. #define BRB1_REG_BRB1_INT_STS 0x6011c
  47. /* [RW 4] Parity mask register #0 read/write */
  48. #define BRB1_REG_BRB1_PRTY_MASK 0x60138
  49. /* [R 4] Parity register #0 read */
  50. #define BRB1_REG_BRB1_PRTY_STS 0x6012c
  51. /* [RC 4] Parity register #0 read clear */
  52. #define BRB1_REG_BRB1_PRTY_STS_CLR 0x60130
  53. /* [RW 10] At address BRB1_IND_FREE_LIST_PRS_CRDT initialize free head. At
  54. * address BRB1_IND_FREE_LIST_PRS_CRDT+1 initialize free tail. At address
  55. * BRB1_IND_FREE_LIST_PRS_CRDT+2 initialize parser initial credit. Warning -
  56. * following reset the first rbc access to this reg must be write; there can
  57. * be no more rbc writes after the first one; there can be any number of rbc
  58. * read following the first write; rbc access not following these rules will
  59. * result in hang condition. */
  60. #define BRB1_REG_FREE_LIST_PRS_CRDT 0x60200
  61. /* [RW 10] The number of free blocks below which the full signal to class 0
  62. * is asserted */
  63. #define BRB1_REG_FULL_0_XOFF_THRESHOLD_0 0x601d0
  64. #define BRB1_REG_FULL_0_XOFF_THRESHOLD_1 0x60230
  65. /* [RW 11] The number of free blocks above which the full signal to class 0
  66. * is de-asserted */
  67. #define BRB1_REG_FULL_0_XON_THRESHOLD_0 0x601d4
  68. #define BRB1_REG_FULL_0_XON_THRESHOLD_1 0x60234
  69. /* [RW 11] The number of free blocks below which the full signal to class 1
  70. * is asserted */
  71. #define BRB1_REG_FULL_1_XOFF_THRESHOLD_0 0x601d8
  72. #define BRB1_REG_FULL_1_XOFF_THRESHOLD_1 0x60238
  73. /* [RW 11] The number of free blocks above which the full signal to class 1
  74. * is de-asserted */
  75. #define BRB1_REG_FULL_1_XON_THRESHOLD_0 0x601dc
  76. #define BRB1_REG_FULL_1_XON_THRESHOLD_1 0x6023c
  77. /* [RW 11] The number of free blocks below which the full signal to the LB
  78. * port is asserted */
  79. #define BRB1_REG_FULL_LB_XOFF_THRESHOLD 0x601e0
  80. /* [RW 10] The number of free blocks above which the full signal to the LB
  81. * port is de-asserted */
  82. #define BRB1_REG_FULL_LB_XON_THRESHOLD 0x601e4
  83. /* [RW 10] The number of free blocks above which the High_llfc signal to
  84. interface #n is de-asserted. */
  85. #define BRB1_REG_HIGH_LLFC_HIGH_THRESHOLD_0 0x6014c
  86. /* [RW 10] The number of free blocks below which the High_llfc signal to
  87. interface #n is asserted. */
  88. #define BRB1_REG_HIGH_LLFC_LOW_THRESHOLD_0 0x6013c
  89. /* [RW 11] The number of blocks guarantied for the LB port */
  90. #define BRB1_REG_LB_GUARANTIED 0x601ec
  91. /* [RW 11] The hysteresis on the guarantied buffer space for the Lb port
  92. * before signaling XON. */
  93. #define BRB1_REG_LB_GUARANTIED_HYST 0x60264
  94. /* [RW 24] LL RAM data. */
  95. #define BRB1_REG_LL_RAM 0x61000
  96. /* [RW 10] The number of free blocks above which the Low_llfc signal to
  97. interface #n is de-asserted. */
  98. #define BRB1_REG_LOW_LLFC_HIGH_THRESHOLD_0 0x6016c
  99. /* [RW 10] The number of free blocks below which the Low_llfc signal to
  100. interface #n is asserted. */
  101. #define BRB1_REG_LOW_LLFC_LOW_THRESHOLD_0 0x6015c
  102. /* [RW 11] The number of blocks guarantied for class 0 in MAC 0. The
  103. * register is applicable only when per_class_guaranty_mode is set. */
  104. #define BRB1_REG_MAC_0_CLASS_0_GUARANTIED 0x60244
  105. /* [RW 11] The hysteresis on the guarantied buffer space for class 0 in MAC
  106. * 1 before signaling XON. The register is applicable only when
  107. * per_class_guaranty_mode is set. */
  108. #define BRB1_REG_MAC_0_CLASS_0_GUARANTIED_HYST 0x60254
  109. /* [RW 11] The number of blocks guarantied for class 1 in MAC 0. The
  110. * register is applicable only when per_class_guaranty_mode is set. */
  111. #define BRB1_REG_MAC_0_CLASS_1_GUARANTIED 0x60248
  112. /* [RW 11] The hysteresis on the guarantied buffer space for class 1in MAC 0
  113. * before signaling XON. The register is applicable only when
  114. * per_class_guaranty_mode is set. */
  115. #define BRB1_REG_MAC_0_CLASS_1_GUARANTIED_HYST 0x60258
  116. /* [RW 11] The number of blocks guarantied for class 0in MAC1.The register
  117. * is applicable only when per_class_guaranty_mode is set. */
  118. #define BRB1_REG_MAC_1_CLASS_0_GUARANTIED 0x6024c
  119. /* [RW 11] The hysteresis on the guarantied buffer space for class 0 in MAC
  120. * 1 before signaling XON. The register is applicable only when
  121. * per_class_guaranty_mode is set. */
  122. #define BRB1_REG_MAC_1_CLASS_0_GUARANTIED_HYST 0x6025c
  123. /* [RW 11] The number of blocks guarantied for class 1 in MAC 1. The
  124. * register is applicable only when per_class_guaranty_mode is set. */
  125. #define BRB1_REG_MAC_1_CLASS_1_GUARANTIED 0x60250
  126. /* [RW 11] The hysteresis on the guarantied buffer space for class 1 in MAC
  127. * 1 before signaling XON. The register is applicable only when
  128. * per_class_guaranty_mode is set. */
  129. #define BRB1_REG_MAC_1_CLASS_1_GUARANTIED_HYST 0x60260
  130. /* [RW 11] The number of blocks guarantied for the MAC port. The register is
  131. * applicable only when per_class_guaranty_mode is reset. */
  132. #define BRB1_REG_MAC_GUARANTIED_0 0x601e8
  133. #define BRB1_REG_MAC_GUARANTIED_1 0x60240
  134. /* [R 24] The number of full blocks. */
  135. #define BRB1_REG_NUM_OF_FULL_BLOCKS 0x60090
  136. /* [ST 32] The number of cycles that the write_full signal towards MAC #0
  137. was asserted. */
  138. #define BRB1_REG_NUM_OF_FULL_CYCLES_0 0x600c8
  139. #define BRB1_REG_NUM_OF_FULL_CYCLES_1 0x600cc
  140. #define BRB1_REG_NUM_OF_FULL_CYCLES_4 0x600d8
  141. /* [ST 32] The number of cycles that the pause signal towards MAC #0 was
  142. asserted. */
  143. #define BRB1_REG_NUM_OF_PAUSE_CYCLES_0 0x600b8
  144. #define BRB1_REG_NUM_OF_PAUSE_CYCLES_1 0x600bc
  145. /* [RW 10] The number of free blocks below which the pause signal to class 0
  146. * is asserted */
  147. #define BRB1_REG_PAUSE_0_XOFF_THRESHOLD_0 0x601c0
  148. #define BRB1_REG_PAUSE_0_XOFF_THRESHOLD_1 0x60220
  149. /* [RW 11] The number of free blocks above which the pause signal to class 0
  150. * is de-asserted */
  151. #define BRB1_REG_PAUSE_0_XON_THRESHOLD_0 0x601c4
  152. #define BRB1_REG_PAUSE_0_XON_THRESHOLD_1 0x60224
  153. /* [RW 11] The number of free blocks below which the pause signal to class 1
  154. * is asserted */
  155. #define BRB1_REG_PAUSE_1_XOFF_THRESHOLD_0 0x601c8
  156. #define BRB1_REG_PAUSE_1_XOFF_THRESHOLD_1 0x60228
  157. /* [RW 11] The number of free blocks above which the pause signal to class 1
  158. * is de-asserted */
  159. #define BRB1_REG_PAUSE_1_XON_THRESHOLD_0 0x601cc
  160. #define BRB1_REG_PAUSE_1_XON_THRESHOLD_1 0x6022c
  161. /* [RW 10] Write client 0: De-assert pause threshold. Not Functional */
  162. #define BRB1_REG_PAUSE_HIGH_THRESHOLD_0 0x60078
  163. #define BRB1_REG_PAUSE_HIGH_THRESHOLD_1 0x6007c
  164. /* [RW 10] Write client 0: Assert pause threshold. */
  165. #define BRB1_REG_PAUSE_LOW_THRESHOLD_0 0x60068
  166. /* [RW 1] Indicates if to use per-class guaranty mode (new mode) or per-MAC
  167. * guaranty mode (backwards-compatible mode). 0=per-MAC guaranty mode (BC
  168. * mode). 1=per-class guaranty mode (new mode). */
  169. #define BRB1_REG_PER_CLASS_GUARANTY_MODE 0x60268
  170. /* [R 24] The number of full blocks occpied by port. */
  171. #define BRB1_REG_PORT_NUM_OCC_BLOCKS_0 0x60094
  172. /* [RW 1] Reset the design by software. */
  173. #define BRB1_REG_SOFT_RESET 0x600dc
  174. /* [R 5] Used to read the value of the XX protection CAM occupancy counter. */
  175. #define CCM_REG_CAM_OCCUP 0xd0188
  176. /* [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded;
  177. acknowledge output is deasserted; all other signals are treated as usual;
  178. if 1 - normal activity. */
  179. #define CCM_REG_CCM_CFC_IFEN 0xd003c
  180. /* [RW 1] CM - QM Interface enable. If 0 - the acknowledge input is
  181. disregarded; valid is deasserted; all other signals are treated as usual;
  182. if 1 - normal activity. */
  183. #define CCM_REG_CCM_CQM_IFEN 0xd000c
  184. /* [RW 1] If set the Q index; received from the QM is inserted to event ID.
  185. Otherwise 0 is inserted. */
  186. #define CCM_REG_CCM_CQM_USE_Q 0xd00c0
  187. /* [RW 11] Interrupt mask register #0 read/write */
  188. #define CCM_REG_CCM_INT_MASK 0xd01e4
  189. /* [R 11] Interrupt register #0 read */
  190. #define CCM_REG_CCM_INT_STS 0xd01d8
  191. /* [RW 27] Parity mask register #0 read/write */
  192. #define CCM_REG_CCM_PRTY_MASK 0xd01f4
  193. /* [R 27] Parity register #0 read */
  194. #define CCM_REG_CCM_PRTY_STS 0xd01e8
  195. /* [RC 27] Parity register #0 read clear */
  196. #define CCM_REG_CCM_PRTY_STS_CLR 0xd01ec
  197. /* [RW 3] The size of AG context region 0 in REG-pairs. Designates the MS
  198. REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5).
  199. Is used to determine the number of the AG context REG-pairs written back;
  200. when the input message Reg1WbFlg isn't set. */
  201. #define CCM_REG_CCM_REG0_SZ 0xd00c4
  202. /* [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input is
  203. disregarded; valid is deasserted; all other signals are treated as usual;
  204. if 1 - normal activity. */
  205. #define CCM_REG_CCM_STORM0_IFEN 0xd0004
  206. /* [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input is
  207. disregarded; valid is deasserted; all other signals are treated as usual;
  208. if 1 - normal activity. */
  209. #define CCM_REG_CCM_STORM1_IFEN 0xd0008
  210. /* [RW 1] CDU AG read Interface enable. If 0 - the request input is
  211. disregarded; valid output is deasserted; all other signals are treated as
  212. usual; if 1 - normal activity. */
  213. #define CCM_REG_CDU_AG_RD_IFEN 0xd0030
  214. /* [RW 1] CDU AG write Interface enable. If 0 - the request and valid input
  215. are disregarded; all other signals are treated as usual; if 1 - normal
  216. activity. */
  217. #define CCM_REG_CDU_AG_WR_IFEN 0xd002c
  218. /* [RW 1] CDU STORM read Interface enable. If 0 - the request input is
  219. disregarded; valid output is deasserted; all other signals are treated as
  220. usual; if 1 - normal activity. */
  221. #define CCM_REG_CDU_SM_RD_IFEN 0xd0038
  222. /* [RW 1] CDU STORM write Interface enable. If 0 - the request and valid
  223. input is disregarded; all other signals are treated as usual; if 1 -
  224. normal activity. */
  225. #define CCM_REG_CDU_SM_WR_IFEN 0xd0034
  226. /* [RW 4] CFC output initial credit. Max credit available - 15.Write writes
  227. the initial credit value; read returns the current value of the credit
  228. counter. Must be initialized to 1 at start-up. */
  229. #define CCM_REG_CFC_INIT_CRD 0xd0204
  230. /* [RW 2] Auxiliary counter flag Q number 1. */
  231. #define CCM_REG_CNT_AUX1_Q 0xd00c8
  232. /* [RW 2] Auxiliary counter flag Q number 2. */
  233. #define CCM_REG_CNT_AUX2_Q 0xd00cc
  234. /* [RW 28] The CM header value for QM request (primary). */
  235. #define CCM_REG_CQM_CCM_HDR_P 0xd008c
  236. /* [RW 28] The CM header value for QM request (secondary). */
  237. #define CCM_REG_CQM_CCM_HDR_S 0xd0090
  238. /* [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded;
  239. acknowledge output is deasserted; all other signals are treated as usual;
  240. if 1 - normal activity. */
  241. #define CCM_REG_CQM_CCM_IFEN 0xd0014
  242. /* [RW 6] QM output initial credit. Max credit available - 32. Write writes
  243. the initial credit value; read returns the current value of the credit
  244. counter. Must be initialized to 32 at start-up. */
  245. #define CCM_REG_CQM_INIT_CRD 0xd020c
  246. /* [RW 3] The weight of the QM (primary) input in the WRR mechanism. 0
  247. stands for weight 8 (the most prioritised); 1 stands for weight 1(least
  248. prioritised); 2 stands for weight 2; tc. */
  249. #define CCM_REG_CQM_P_WEIGHT 0xd00b8
  250. /* [RW 3] The weight of the QM (secondary) input in the WRR mechanism. 0
  251. stands for weight 8 (the most prioritised); 1 stands for weight 1(least
  252. prioritised); 2 stands for weight 2; tc. */
  253. #define CCM_REG_CQM_S_WEIGHT 0xd00bc
  254. /* [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded;
  255. acknowledge output is deasserted; all other signals are treated as usual;
  256. if 1 - normal activity. */
  257. #define CCM_REG_CSDM_IFEN 0xd0018
  258. /* [RC 1] Set when the message length mismatch (relative to last indication)
  259. at the SDM interface is detected. */
  260. #define CCM_REG_CSDM_LENGTH_MIS 0xd0170
  261. /* [RW 3] The weight of the SDM input in the WRR mechanism. 0 stands for
  262. weight 8 (the most prioritised); 1 stands for weight 1(least
  263. prioritised); 2 stands for weight 2; tc. */
  264. #define CCM_REG_CSDM_WEIGHT 0xd00b4
  265. /* [RW 28] The CM header for QM formatting in case of an error in the QM
  266. inputs. */
  267. #define CCM_REG_ERR_CCM_HDR 0xd0094
  268. /* [RW 8] The Event ID in case the input message ErrorFlg is set. */
  269. #define CCM_REG_ERR_EVNT_ID 0xd0098
  270. /* [RW 8] FIC0 output initial credit. Max credit available - 255. Write
  271. writes the initial credit value; read returns the current value of the
  272. credit counter. Must be initialized to 64 at start-up. */
  273. #define CCM_REG_FIC0_INIT_CRD 0xd0210
  274. /* [RW 8] FIC1 output initial credit. Max credit available - 255.Write
  275. writes the initial credit value; read returns the current value of the
  276. credit counter. Must be initialized to 64 at start-up. */
  277. #define CCM_REG_FIC1_INIT_CRD 0xd0214
  278. /* [RW 1] Arbitration between Input Arbiter groups: 0 - fair Round-Robin; 1
  279. - strict priority defined by ~ccm_registers_gr_ag_pr.gr_ag_pr;
  280. ~ccm_registers_gr_ld0_pr.gr_ld0_pr and
  281. ~ccm_registers_gr_ld1_pr.gr_ld1_pr. Groups are according to channels and
  282. outputs to STORM: aggregation; load FIC0; load FIC1 and store. */
  283. #define CCM_REG_GR_ARB_TYPE 0xd015c
  284. /* [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; the
  285. highest priority is 3. It is supposed; that the Store channel priority is
  286. the compliment to 4 of the rest priorities - Aggregation channel; Load
  287. (FIC0) channel and Load (FIC1). */
  288. #define CCM_REG_GR_LD0_PR 0xd0164
  289. /* [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; the
  290. highest priority is 3. It is supposed; that the Store channel priority is
  291. the compliment to 4 of the rest priorities - Aggregation channel; Load
  292. (FIC0) channel and Load (FIC1). */
  293. #define CCM_REG_GR_LD1_PR 0xd0168
  294. /* [RW 2] General flags index. */
  295. #define CCM_REG_INV_DONE_Q 0xd0108
  296. /* [RW 4] The number of double REG-pairs(128 bits); loaded from the STORM
  297. context and sent to STORM; for a specific connection type. The double
  298. REG-pairs are used in order to align to STORM context row size of 128
  299. bits. The offset of these data in the STORM context is always 0. Index
  300. _(0..15) stands for the connection type (one of 16). */
  301. #define CCM_REG_N_SM_CTX_LD_0 0xd004c
  302. #define CCM_REG_N_SM_CTX_LD_1 0xd0050
  303. #define CCM_REG_N_SM_CTX_LD_2 0xd0054
  304. #define CCM_REG_N_SM_CTX_LD_3 0xd0058
  305. #define CCM_REG_N_SM_CTX_LD_4 0xd005c
  306. /* [RW 1] Input pbf Interface enable. If 0 - the valid input is disregarded;
  307. acknowledge output is deasserted; all other signals are treated as usual;
  308. if 1 - normal activity. */
  309. #define CCM_REG_PBF_IFEN 0xd0028
  310. /* [RC 1] Set when the message length mismatch (relative to last indication)
  311. at the pbf interface is detected. */
  312. #define CCM_REG_PBF_LENGTH_MIS 0xd0180
  313. /* [RW 3] The weight of the input pbf in the WRR mechanism. 0 stands for
  314. weight 8 (the most prioritised); 1 stands for weight 1(least
  315. prioritised); 2 stands for weight 2; tc. */
  316. #define CCM_REG_PBF_WEIGHT 0xd00ac
  317. #define CCM_REG_PHYS_QNUM1_0 0xd0134
  318. #define CCM_REG_PHYS_QNUM1_1 0xd0138
  319. #define CCM_REG_PHYS_QNUM2_0 0xd013c
  320. #define CCM_REG_PHYS_QNUM2_1 0xd0140
  321. #define CCM_REG_PHYS_QNUM3_0 0xd0144
  322. #define CCM_REG_PHYS_QNUM3_1 0xd0148
  323. #define CCM_REG_QOS_PHYS_QNUM0_0 0xd0114
  324. #define CCM_REG_QOS_PHYS_QNUM0_1 0xd0118
  325. #define CCM_REG_QOS_PHYS_QNUM1_0 0xd011c
  326. #define CCM_REG_QOS_PHYS_QNUM1_1 0xd0120
  327. #define CCM_REG_QOS_PHYS_QNUM2_0 0xd0124
  328. #define CCM_REG_QOS_PHYS_QNUM2_1 0xd0128
  329. #define CCM_REG_QOS_PHYS_QNUM3_0 0xd012c
  330. #define CCM_REG_QOS_PHYS_QNUM3_1 0xd0130
  331. /* [RW 1] STORM - CM Interface enable. If 0 - the valid input is
  332. disregarded; acknowledge output is deasserted; all other signals are
  333. treated as usual; if 1 - normal activity. */
  334. #define CCM_REG_STORM_CCM_IFEN 0xd0010
  335. /* [RC 1] Set when the message length mismatch (relative to last indication)
  336. at the STORM interface is detected. */
  337. #define CCM_REG_STORM_LENGTH_MIS 0xd016c
  338. /* [RW 3] The weight of the STORM input in the WRR (Weighted Round robin)
  339. mechanism. 0 stands for weight 8 (the most prioritised); 1 stands for
  340. weight 1(least prioritised); 2 stands for weight 2 (more prioritised);
  341. tc. */
  342. #define CCM_REG_STORM_WEIGHT 0xd009c
  343. /* [RW 1] Input tsem Interface enable. If 0 - the valid input is
  344. disregarded; acknowledge output is deasserted; all other signals are
  345. treated as usual; if 1 - normal activity. */
  346. #define CCM_REG_TSEM_IFEN 0xd001c
  347. /* [RC 1] Set when the message length mismatch (relative to last indication)
  348. at the tsem interface is detected. */
  349. #define CCM_REG_TSEM_LENGTH_MIS 0xd0174
  350. /* [RW 3] The weight of the input tsem in the WRR mechanism. 0 stands for
  351. weight 8 (the most prioritised); 1 stands for weight 1(least
  352. prioritised); 2 stands for weight 2; tc. */
  353. #define CCM_REG_TSEM_WEIGHT 0xd00a0
  354. /* [RW 1] Input usem Interface enable. If 0 - the valid input is
  355. disregarded; acknowledge output is deasserted; all other signals are
  356. treated as usual; if 1 - normal activity. */
  357. #define CCM_REG_USEM_IFEN 0xd0024
  358. /* [RC 1] Set when message length mismatch (relative to last indication) at
  359. the usem interface is detected. */
  360. #define CCM_REG_USEM_LENGTH_MIS 0xd017c
  361. /* [RW 3] The weight of the input usem in the WRR mechanism. 0 stands for
  362. weight 8 (the most prioritised); 1 stands for weight 1(least
  363. prioritised); 2 stands for weight 2; tc. */
  364. #define CCM_REG_USEM_WEIGHT 0xd00a8
  365. /* [RW 1] Input xsem Interface enable. If 0 - the valid input is
  366. disregarded; acknowledge output is deasserted; all other signals are
  367. treated as usual; if 1 - normal activity. */
  368. #define CCM_REG_XSEM_IFEN 0xd0020
  369. /* [RC 1] Set when the message length mismatch (relative to last indication)
  370. at the xsem interface is detected. */
  371. #define CCM_REG_XSEM_LENGTH_MIS 0xd0178
  372. /* [RW 3] The weight of the input xsem in the WRR mechanism. 0 stands for
  373. weight 8 (the most prioritised); 1 stands for weight 1(least
  374. prioritised); 2 stands for weight 2; tc. */
  375. #define CCM_REG_XSEM_WEIGHT 0xd00a4
  376. /* [RW 19] Indirect access to the descriptor table of the XX protection
  377. mechanism. The fields are: [5:0] - message length; [12:6] - message
  378. pointer; 18:13] - next pointer. */
  379. #define CCM_REG_XX_DESCR_TABLE 0xd0300
  380. #define CCM_REG_XX_DESCR_TABLE_SIZE 24
  381. /* [R 7] Used to read the value of XX protection Free counter. */
  382. #define CCM_REG_XX_FREE 0xd0184
  383. /* [RW 6] Initial value for the credit counter; responsible for fulfilling
  384. of the Input Stage XX protection buffer by the XX protection pending
  385. messages. Max credit available - 127. Write writes the initial credit
  386. value; read returns the current value of the credit counter. Must be
  387. initialized to maximum XX protected message size - 2 at start-up. */
  388. #define CCM_REG_XX_INIT_CRD 0xd0220
  389. /* [RW 7] The maximum number of pending messages; which may be stored in XX
  390. protection. At read the ~ccm_registers_xx_free.xx_free counter is read.
  391. At write comprises the start value of the ~ccm_registers_xx_free.xx_free
  392. counter. */
  393. #define CCM_REG_XX_MSG_NUM 0xd0224
  394. /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */
  395. #define CCM_REG_XX_OVFL_EVNT_ID 0xd0044
  396. /* [RW 18] Indirect access to the XX table of the XX protection mechanism.
  397. The fields are: [5:0] - tail pointer; 11:6] - Link List size; 17:12] -
  398. header pointer. */
  399. #define CCM_REG_XX_TABLE 0xd0280
  400. #define CDU_REG_CDU_CHK_MASK0 0x101000
  401. #define CDU_REG_CDU_CHK_MASK1 0x101004
  402. #define CDU_REG_CDU_CONTROL0 0x101008
  403. #define CDU_REG_CDU_DEBUG 0x101010
  404. #define CDU_REG_CDU_GLOBAL_PARAMS 0x101020
  405. /* [RW 7] Interrupt mask register #0 read/write */
  406. #define CDU_REG_CDU_INT_MASK 0x10103c
  407. /* [R 7] Interrupt register #0 read */
  408. #define CDU_REG_CDU_INT_STS 0x101030
  409. /* [RW 5] Parity mask register #0 read/write */
  410. #define CDU_REG_CDU_PRTY_MASK 0x10104c
  411. /* [R 5] Parity register #0 read */
  412. #define CDU_REG_CDU_PRTY_STS 0x101040
  413. /* [RC 5] Parity register #0 read clear */
  414. #define CDU_REG_CDU_PRTY_STS_CLR 0x101044
  415. /* [RC 32] logging of error data in case of a CDU load error:
  416. {expected_cid[15:0]; xpected_type[2:0]; xpected_region[2:0]; ctive_error;
  417. ype_error; ctual_active; ctual_compressed_context}; */
  418. #define CDU_REG_ERROR_DATA 0x101014
  419. /* [WB 216] L1TT ram access. each entry has the following format :
  420. {mrege_regions[7:0]; ffset12[5:0]...offset0[5:0];
  421. ength12[5:0]...length0[5:0]; d12[3:0]...id0[3:0]} */
  422. #define CDU_REG_L1TT 0x101800
  423. /* [WB 24] MATT ram access. each entry has the following
  424. format:{RegionLength[11:0]; egionOffset[11:0]} */
  425. #define CDU_REG_MATT 0x101100
  426. /* [RW 1] when this bit is set the CDU operates in e1hmf mode */
  427. #define CDU_REG_MF_MODE 0x101050
  428. /* [R 1] indication the initializing the activity counter by the hardware
  429. was done. */
  430. #define CFC_REG_AC_INIT_DONE 0x104078
  431. /* [RW 13] activity counter ram access */
  432. #define CFC_REG_ACTIVITY_COUNTER 0x104400
  433. #define CFC_REG_ACTIVITY_COUNTER_SIZE 256
  434. /* [R 1] indication the initializing the cams by the hardware was done. */
  435. #define CFC_REG_CAM_INIT_DONE 0x10407c
  436. /* [RW 2] Interrupt mask register #0 read/write */
  437. #define CFC_REG_CFC_INT_MASK 0x104108
  438. /* [R 2] Interrupt register #0 read */
  439. #define CFC_REG_CFC_INT_STS 0x1040fc
  440. /* [RC 2] Interrupt register #0 read clear */
  441. #define CFC_REG_CFC_INT_STS_CLR 0x104100
  442. /* [RW 4] Parity mask register #0 read/write */
  443. #define CFC_REG_CFC_PRTY_MASK 0x104118
  444. /* [R 4] Parity register #0 read */
  445. #define CFC_REG_CFC_PRTY_STS 0x10410c
  446. /* [RC 4] Parity register #0 read clear */
  447. #define CFC_REG_CFC_PRTY_STS_CLR 0x104110
  448. /* [RW 21] CID cam access (21:1 - Data; alid - 0) */
  449. #define CFC_REG_CID_CAM 0x104800
  450. #define CFC_REG_CONTROL0 0x104028
  451. #define CFC_REG_DEBUG0 0x104050
  452. /* [RW 14] indicates per error (in #cfc_registers_cfc_error_vector.cfc_error
  453. vector) whether the cfc should be disabled upon it */
  454. #define CFC_REG_DISABLE_ON_ERROR 0x104044
  455. /* [RC 14] CFC error vector. when the CFC detects an internal error it will
  456. set one of these bits. the bit description can be found in CFC
  457. specifications */
  458. #define CFC_REG_ERROR_VECTOR 0x10403c
  459. /* [WB 93] LCID info ram access */
  460. #define CFC_REG_INFO_RAM 0x105000
  461. #define CFC_REG_INFO_RAM_SIZE 1024
  462. #define CFC_REG_INIT_REG 0x10404c
  463. #define CFC_REG_INTERFACES 0x104058
  464. /* [RW 24] {weight_load_client7[2:0] to weight_load_client0[2:0]}. this
  465. field allows changing the priorities of the weighted-round-robin arbiter
  466. which selects which CFC load client should be served next */
  467. #define CFC_REG_LCREQ_WEIGHTS 0x104084
  468. /* [RW 16] Link List ram access; data = {prev_lcid; ext_lcid} */
  469. #define CFC_REG_LINK_LIST 0x104c00
  470. #define CFC_REG_LINK_LIST_SIZE 256
  471. /* [R 1] indication the initializing the link list by the hardware was done. */
  472. #define CFC_REG_LL_INIT_DONE 0x104074
  473. /* [R 9] Number of allocated LCIDs which are at empty state */
  474. #define CFC_REG_NUM_LCIDS_ALLOC 0x104020
  475. /* [R 9] Number of Arriving LCIDs in Link List Block */
  476. #define CFC_REG_NUM_LCIDS_ARRIVING 0x104004
  477. #define CFC_REG_NUM_LCIDS_INSIDE_PF 0x104120
  478. /* [R 9] Number of Leaving LCIDs in Link List Block */
  479. #define CFC_REG_NUM_LCIDS_LEAVING 0x104018
  480. #define CFC_REG_WEAK_ENABLE_PF 0x104124
  481. /* [RW 8] The event id for aggregated interrupt 0 */
  482. #define CSDM_REG_AGG_INT_EVENT_0 0xc2038
  483. #define CSDM_REG_AGG_INT_EVENT_10 0xc2060
  484. #define CSDM_REG_AGG_INT_EVENT_11 0xc2064
  485. #define CSDM_REG_AGG_INT_EVENT_12 0xc2068
  486. #define CSDM_REG_AGG_INT_EVENT_13 0xc206c
  487. #define CSDM_REG_AGG_INT_EVENT_14 0xc2070
  488. #define CSDM_REG_AGG_INT_EVENT_15 0xc2074
  489. #define CSDM_REG_AGG_INT_EVENT_16 0xc2078
  490. #define CSDM_REG_AGG_INT_EVENT_2 0xc2040
  491. #define CSDM_REG_AGG_INT_EVENT_3 0xc2044
  492. #define CSDM_REG_AGG_INT_EVENT_4 0xc2048
  493. #define CSDM_REG_AGG_INT_EVENT_5 0xc204c
  494. #define CSDM_REG_AGG_INT_EVENT_6 0xc2050
  495. #define CSDM_REG_AGG_INT_EVENT_7 0xc2054
  496. #define CSDM_REG_AGG_INT_EVENT_8 0xc2058
  497. #define CSDM_REG_AGG_INT_EVENT_9 0xc205c
  498. /* [RW 1] For each aggregated interrupt index whether the mode is normal (0)
  499. or auto-mask-mode (1) */
  500. #define CSDM_REG_AGG_INT_MODE_10 0xc21e0
  501. #define CSDM_REG_AGG_INT_MODE_11 0xc21e4
  502. #define CSDM_REG_AGG_INT_MODE_12 0xc21e8
  503. #define CSDM_REG_AGG_INT_MODE_13 0xc21ec
  504. #define CSDM_REG_AGG_INT_MODE_14 0xc21f0
  505. #define CSDM_REG_AGG_INT_MODE_15 0xc21f4
  506. #define CSDM_REG_AGG_INT_MODE_16 0xc21f8
  507. #define CSDM_REG_AGG_INT_MODE_6 0xc21d0
  508. #define CSDM_REG_AGG_INT_MODE_7 0xc21d4
  509. #define CSDM_REG_AGG_INT_MODE_8 0xc21d8
  510. #define CSDM_REG_AGG_INT_MODE_9 0xc21dc
  511. /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */
  512. #define CSDM_REG_CFC_RSP_START_ADDR 0xc2008
  513. /* [RW 16] The maximum value of the completion counter #0 */
  514. #define CSDM_REG_CMP_COUNTER_MAX0 0xc201c
  515. /* [RW 16] The maximum value of the completion counter #1 */
  516. #define CSDM_REG_CMP_COUNTER_MAX1 0xc2020
  517. /* [RW 16] The maximum value of the completion counter #2 */
  518. #define CSDM_REG_CMP_COUNTER_MAX2 0xc2024
  519. /* [RW 16] The maximum value of the completion counter #3 */
  520. #define CSDM_REG_CMP_COUNTER_MAX3 0xc2028
  521. /* [RW 13] The start address in the internal RAM for the completion
  522. counters. */
  523. #define CSDM_REG_CMP_COUNTER_START_ADDR 0xc200c
  524. /* [RW 32] Interrupt mask register #0 read/write */
  525. #define CSDM_REG_CSDM_INT_MASK_0 0xc229c
  526. #define CSDM_REG_CSDM_INT_MASK_1 0xc22ac
  527. /* [R 32] Interrupt register #0 read */
  528. #define CSDM_REG_CSDM_INT_STS_0 0xc2290
  529. #define CSDM_REG_CSDM_INT_STS_1 0xc22a0
  530. /* [RW 11] Parity mask register #0 read/write */
  531. #define CSDM_REG_CSDM_PRTY_MASK 0xc22bc
  532. /* [R 11] Parity register #0 read */
  533. #define CSDM_REG_CSDM_PRTY_STS 0xc22b0
  534. /* [RC 11] Parity register #0 read clear */
  535. #define CSDM_REG_CSDM_PRTY_STS_CLR 0xc22b4
  536. #define CSDM_REG_ENABLE_IN1 0xc2238
  537. #define CSDM_REG_ENABLE_IN2 0xc223c
  538. #define CSDM_REG_ENABLE_OUT1 0xc2240
  539. #define CSDM_REG_ENABLE_OUT2 0xc2244
  540. /* [RW 4] The initial number of messages that can be sent to the pxp control
  541. interface without receiving any ACK. */
  542. #define CSDM_REG_INIT_CREDIT_PXP_CTRL 0xc24bc
  543. /* [ST 32] The number of ACK after placement messages received */
  544. #define CSDM_REG_NUM_OF_ACK_AFTER_PLACE 0xc227c
  545. /* [ST 32] The number of packet end messages received from the parser */
  546. #define CSDM_REG_NUM_OF_PKT_END_MSG 0xc2274
  547. /* [ST 32] The number of requests received from the pxp async if */
  548. #define CSDM_REG_NUM_OF_PXP_ASYNC_REQ 0xc2278
  549. /* [ST 32] The number of commands received in queue 0 */
  550. #define CSDM_REG_NUM_OF_Q0_CMD 0xc2248
  551. /* [ST 32] The number of commands received in queue 10 */
  552. #define CSDM_REG_NUM_OF_Q10_CMD 0xc226c
  553. /* [ST 32] The number of commands received in queue 11 */
  554. #define CSDM_REG_NUM_OF_Q11_CMD 0xc2270
  555. /* [ST 32] The number of commands received in queue 1 */
  556. #define CSDM_REG_NUM_OF_Q1_CMD 0xc224c
  557. /* [ST 32] The number of commands received in queue 3 */
  558. #define CSDM_REG_NUM_OF_Q3_CMD 0xc2250
  559. /* [ST 32] The number of commands received in queue 4 */
  560. #define CSDM_REG_NUM_OF_Q4_CMD 0xc2254
  561. /* [ST 32] The number of commands received in queue 5 */
  562. #define CSDM_REG_NUM_OF_Q5_CMD 0xc2258
  563. /* [ST 32] The number of commands received in queue 6 */
  564. #define CSDM_REG_NUM_OF_Q6_CMD 0xc225c
  565. /* [ST 32] The number of commands received in queue 7 */
  566. #define CSDM_REG_NUM_OF_Q7_CMD 0xc2260
  567. /* [ST 32] The number of commands received in queue 8 */
  568. #define CSDM_REG_NUM_OF_Q8_CMD 0xc2264
  569. /* [ST 32] The number of commands received in queue 9 */
  570. #define CSDM_REG_NUM_OF_Q9_CMD 0xc2268
  571. /* [RW 13] The start address in the internal RAM for queue counters */
  572. #define CSDM_REG_Q_COUNTER_START_ADDR 0xc2010
  573. /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */
  574. #define CSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY 0xc2548
  575. /* [R 1] parser fifo empty in sdm_sync block */
  576. #define CSDM_REG_SYNC_PARSER_EMPTY 0xc2550
  577. /* [R 1] parser serial fifo empty in sdm_sync block */
  578. #define CSDM_REG_SYNC_SYNC_EMPTY 0xc2558
  579. /* [RW 32] Tick for timer counter. Applicable only when
  580. ~csdm_registers_timer_tick_enable.timer_tick_enable =1 */
  581. #define CSDM_REG_TIMER_TICK 0xc2000
  582. /* [RW 5] The number of time_slots in the arbitration cycle */
  583. #define CSEM_REG_ARB_CYCLE_SIZE 0x200034
  584. /* [RW 3] The source that is associated with arbitration element 0. Source
  585. decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
  586. sleeping thread with priority 1; 4- sleeping thread with priority 2 */
  587. #define CSEM_REG_ARB_ELEMENT0 0x200020
  588. /* [RW 3] The source that is associated with arbitration element 1. Source
  589. decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
  590. sleeping thread with priority 1; 4- sleeping thread with priority 2.
  591. Could not be equal to register ~csem_registers_arb_element0.arb_element0 */
  592. #define CSEM_REG_ARB_ELEMENT1 0x200024
  593. /* [RW 3] The source that is associated with arbitration element 2. Source
  594. decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
  595. sleeping thread with priority 1; 4- sleeping thread with priority 2.
  596. Could not be equal to register ~csem_registers_arb_element0.arb_element0
  597. and ~csem_registers_arb_element1.arb_element1 */
  598. #define CSEM_REG_ARB_ELEMENT2 0x200028
  599. /* [RW 3] The source that is associated with arbitration element 3. Source
  600. decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
  601. sleeping thread with priority 1; 4- sleeping thread with priority 2.Could
  602. not be equal to register ~csem_registers_arb_element0.arb_element0 and
  603. ~csem_registers_arb_element1.arb_element1 and
  604. ~csem_registers_arb_element2.arb_element2 */
  605. #define CSEM_REG_ARB_ELEMENT3 0x20002c
  606. /* [RW 3] The source that is associated with arbitration element 4. Source
  607. decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3-
  608. sleeping thread with priority 1; 4- sleeping thread with priority 2.
  609. Could not be equal to register ~csem_registers_arb_element0.arb_element0
  610. and ~csem_registers_arb_element1.arb_element1 and
  611. ~csem_registers_arb_element2.arb_element2 and
  612. ~csem_registers_arb_element3.arb_element3 */
  613. #define CSEM_REG_ARB_ELEMENT4 0x200030
  614. /* [RW 32] Interrupt mask register #0 read/write */
  615. #define CSEM_REG_CSEM_INT_MASK_0 0x200110
  616. #define CSEM_REG_CSEM_INT_MASK_1 0x200120
  617. /* [R 32] Interrupt register #0 read */
  618. #define CSEM_REG_CSEM_INT_STS_0 0x200104
  619. #define CSEM_REG_CSEM_INT_STS_1 0x200114
  620. /* [RW 32] Parity mask register #0 read/write */
  621. #define CSEM_REG_CSEM_PRTY_MASK_0 0x200130
  622. #define CSEM_REG_CSEM_PRTY_MASK_1 0x200140
  623. /* [R 32] Parity register #0 read */
  624. #define CSEM_REG_CSEM_PRTY_STS_0 0x200124
  625. #define CSEM_REG_CSEM_PRTY_STS_1 0x200134
  626. /* [RC 32] Parity register #0 read clear */
  627. #define CSEM_REG_CSEM_PRTY_STS_CLR_0 0x200128
  628. #define CSEM_REG_CSEM_PRTY_STS_CLR_1 0x200138
  629. #define CSEM_REG_ENABLE_IN 0x2000a4
  630. #define CSEM_REG_ENABLE_OUT 0x2000a8
  631. /* [RW 32] This address space contains all registers and memories that are
  632. placed in SEM_FAST block. The SEM_FAST registers are described in
  633. appendix B. In order to access the sem_fast registers the base address
  634. ~fast_memory.fast_memory should be added to eachsem_fast register offset. */
  635. #define CSEM_REG_FAST_MEMORY 0x220000
  636. /* [RW 1] Disables input messages from FIC0 May be updated during run_time
  637. by the microcode */
  638. #define CSEM_REG_FIC0_DISABLE 0x200224
  639. /* [RW 1] Disables input messages from FIC1 May be updated during run_time
  640. by the microcode */
  641. #define CSEM_REG_FIC1_DISABLE 0x200234
  642. /* [RW 15] Interrupt table Read and write access to it is not possible in
  643. the middle of the work */
  644. #define CSEM_REG_INT_TABLE 0x200400
  645. /* [ST 24] Statistics register. The number of messages that entered through
  646. FIC0 */
  647. #define CSEM_REG_MSG_NUM_FIC0 0x200000
  648. /* [ST 24] Statistics register. The number of messages that entered through
  649. FIC1 */
  650. #define CSEM_REG_MSG_NUM_FIC1 0x200004
  651. /* [ST 24] Statistics register. The number of messages that were sent to
  652. FOC0 */
  653. #define CSEM_REG_MSG_NUM_FOC0 0x200008
  654. /* [ST 24] Statistics register. The number of messages that were sent to
  655. FOC1 */
  656. #define CSEM_REG_MSG_NUM_FOC1 0x20000c
  657. /* [ST 24] Statistics register. The number of messages that were sent to
  658. FOC2 */
  659. #define CSEM_REG_MSG_NUM_FOC2 0x200010
  660. /* [ST 24] Statistics register. The number of messages that were sent to
  661. FOC3 */
  662. #define CSEM_REG_MSG_NUM_FOC3 0x200014
  663. /* [RW 1] Disables input messages from the passive buffer May be updated
  664. during run_time by the microcode */
  665. #define CSEM_REG_PAS_DISABLE 0x20024c
  666. /* [WB 128] Debug only. Passive buffer memory */
  667. #define CSEM_REG_PASSIVE_BUFFER 0x202000
  668. /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */
  669. #define CSEM_REG_PRAM 0x240000
  670. /* [R 16] Valid sleeping threads indication have bit per thread */
  671. #define CSEM_REG_SLEEP_THREADS_VALID 0x20026c
  672. /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */
  673. #define CSEM_REG_SLOW_EXT_STORE_EMPTY 0x2002a0
  674. /* [RW 16] List of free threads . There is a bit per thread. */
  675. #define CSEM_REG_THREADS_LIST 0x2002e4
  676. /* [RW 3] The arbitration scheme of time_slot 0 */
  677. #define CSEM_REG_TS_0_AS 0x200038
  678. /* [RW 3] The arbitration scheme of time_slot 10 */
  679. #define CSEM_REG_TS_10_AS 0x200060
  680. /* [RW 3] The arbitration scheme of time_slot 11 */
  681. #define CSEM_REG_TS_11_AS 0x200064
  682. /* [RW 3] The arbitration scheme of time_slot 12 */
  683. #define CSEM_REG_TS_12_AS 0x200068
  684. /* [RW 3] The arbitration scheme of time_slot 13 */
  685. #define CSEM_REG_TS_13_AS 0x20006c
  686. /* [RW 3] The arbitration scheme of time_slot 14 */
  687. #define CSEM_REG_TS_14_AS 0x200070
  688. /* [RW 3] The arbitration scheme of time_slot 15 */
  689. #define CSEM_REG_TS_15_AS 0x200074
  690. /* [RW 3] The arbitration scheme of time_slot 16 */
  691. #define CSEM_REG_TS_16_AS 0x200078
  692. /* [RW 3] The arbitration scheme of time_slot 17 */
  693. #define CSEM_REG_TS_17_AS 0x20007c
  694. /* [RW 3] The arbitration scheme of time_slot 18 */
  695. #define CSEM_REG_TS_18_AS 0x200080
  696. /* [RW 3] The arbitration scheme of time_slot 1 */
  697. #define CSEM_REG_TS_1_AS 0x20003c
  698. /* [RW 3] The arbitration scheme of time_slot 2 */
  699. #define CSEM_REG_TS_2_AS 0x200040
  700. /* [RW 3] The arbitration scheme of time_slot 3 */
  701. #define CSEM_REG_TS_3_AS 0x200044
  702. /* [RW 3] The arbitration scheme of time_slot 4 */
  703. #define CSEM_REG_TS_4_AS 0x200048
  704. /* [RW 3] The arbitration scheme of time_slot 5 */
  705. #define CSEM_REG_TS_5_AS 0x20004c
  706. /* [RW 3] The arbitration scheme of time_slot 6 */
  707. #define CSEM_REG_TS_6_AS 0x200050
  708. /* [RW 3] The arbitration scheme of time_slot 7 */
  709. #define CSEM_REG_TS_7_AS 0x200054
  710. /* [RW 3] The arbitration scheme of time_slot 8 */
  711. #define CSEM_REG_TS_8_AS 0x200058
  712. /* [RW 3] The arbitration scheme of time_slot 9 */
  713. #define CSEM_REG_TS_9_AS 0x20005c
  714. /* [W 7] VF or PF ID for reset error bit. Values 0-63 reset error bit for 64
  715. * VF; values 64-67 reset error for 4 PF; values 68-127 are not valid. */
  716. #define CSEM_REG_VFPF_ERR_NUM 0x200380
  717. /* [RW 1] Parity mask register #0 read/write */
  718. #define DBG_REG_DBG_PRTY_MASK 0xc0a8
  719. /* [R 1] Parity register #0 read */
  720. #define DBG_REG_DBG_PRTY_STS 0xc09c
  721. /* [RC 1] Parity register #0 read clear */
  722. #define DBG_REG_DBG_PRTY_STS_CLR 0xc0a0
  723. /* [RW 1] When set the DMAE will process the commands as in E1.5. 1.The
  724. * function that is used is always SRC-PCI; 2.VF_Valid = 0; 3.VFID=0;
  725. * 4.Completion function=0; 5.Error handling=0 */
  726. #define DMAE_REG_BACKWARD_COMP_EN 0x10207c
  727. /* [RW 32] Commands memory. The address to command X; row Y is to calculated
  728. as 14*X+Y. */
  729. #define DMAE_REG_CMD_MEM 0x102400
  730. #define DMAE_REG_CMD_MEM_SIZE 224
  731. /* [RW 1] If 0 - the CRC-16c initial value is all zeroes; if 1 - the CRC-16c
  732. initial value is all ones. */
  733. #define DMAE_REG_CRC16C_INIT 0x10201c
  734. /* [RW 1] If 0 - the CRC-16 T10 initial value is all zeroes; if 1 - the
  735. CRC-16 T10 initial value is all ones. */
  736. #define DMAE_REG_CRC16T10_INIT 0x102020
  737. /* [RW 2] Interrupt mask register #0 read/write */
  738. #define DMAE_REG_DMAE_INT_MASK 0x102054
  739. /* [RW 4] Parity mask register #0 read/write */
  740. #define DMAE_REG_DMAE_PRTY_MASK 0x102064
  741. /* [R 4] Parity register #0 read */
  742. #define DMAE_REG_DMAE_PRTY_STS 0x102058
  743. /* [RC 4] Parity register #0 read clear */
  744. #define DMAE_REG_DMAE_PRTY_STS_CLR 0x10205c
  745. /* [RW 1] Command 0 go. */
  746. #define DMAE_REG_GO_C0 0x102080
  747. /* [RW 1] Command 1 go. */
  748. #define DMAE_REG_GO_C1 0x102084
  749. /* [RW 1] Command 10 go. */
  750. #define DMAE_REG_GO_C10 0x102088
  751. /* [RW 1] Command 11 go. */
  752. #define DMAE_REG_GO_C11 0x10208c
  753. /* [RW 1] Command 12 go. */
  754. #define DMAE_REG_GO_C12 0x102090
  755. /* [RW 1] Command 13 go. */
  756. #define DMAE_REG_GO_C13 0x102094
  757. /* [RW 1] Command 14 go. */
  758. #define DMAE_REG_GO_C14 0x102098
  759. /* [RW 1] Command 15 go. */
  760. #define DMAE_REG_GO_C15 0x10209c
  761. /* [RW 1] Command 2 go. */
  762. #define DMAE_REG_GO_C2 0x1020a0
  763. /* [RW 1] Command 3 go. */
  764. #define DMAE_REG_GO_C3 0x1020a4
  765. /* [RW 1] Command 4 go. */
  766. #define DMAE_REG_GO_C4 0x1020a8
  767. /* [RW 1] Command 5 go. */
  768. #define DMAE_REG_GO_C5 0x1020ac
  769. /* [RW 1] Command 6 go. */
  770. #define DMAE_REG_GO_C6 0x1020b0
  771. /* [RW 1] Command 7 go. */
  772. #define DMAE_REG_GO_C7 0x1020b4
  773. /* [RW 1] Command 8 go. */
  774. #define DMAE_REG_GO_C8 0x1020b8
  775. /* [RW 1] Command 9 go. */
  776. #define DMAE_REG_GO_C9 0x1020bc
  777. /* [RW 1] DMAE GRC Interface (Target; aster) enable. If 0 - the acknowledge
  778. input is disregarded; valid is deasserted; all other signals are treated
  779. as usual; if 1 - normal activity. */
  780. #define DMAE_REG_GRC_IFEN 0x102008
  781. /* [RW 1] DMAE PCI Interface (Request; ead; rite) enable. If 0 - the
  782. acknowledge input is disregarded; valid is deasserted; full is asserted;
  783. all other signals are treated as usual; if 1 - normal activity. */
  784. #define DMAE_REG_PCI_IFEN 0x102004
  785. /* [RW 4] DMAE- PCI Request Interface initial credit. Write writes the
  786. initial value to the credit counter; related to the address. Read returns
  787. the current value of the counter. */
  788. #define DMAE_REG_PXP_REQ_INIT_CRD 0x1020c0
  789. /* [RW 8] Aggregation command. */
  790. #define DORQ_REG_AGG_CMD0 0x170060
  791. /* [RW 8] Aggregation command. */
  792. #define DORQ_REG_AGG_CMD1 0x170064
  793. /* [RW 8] Aggregation command. */
  794. #define DORQ_REG_AGG_CMD2 0x170068
  795. /* [RW 8] Aggregation command. */
  796. #define DORQ_REG_AGG_CMD3 0x17006c
  797. /* [RW 28] UCM Header. */
  798. #define DORQ_REG_CMHEAD_RX 0x170050
  799. /* [RW 32] Doorbell address for RBC doorbells (function 0). */
  800. #define DORQ_REG_DB_ADDR0 0x17008c
  801. /* [RW 5] Interrupt mask register #0 read/write */
  802. #define DORQ_REG_DORQ_INT_MASK 0x170180
  803. /* [R 5] Interrupt register #0 read */
  804. #define DORQ_REG_DORQ_INT_STS 0x170174
  805. /* [RC 5] Interrupt register #0 read clear */
  806. #define DORQ_REG_DORQ_INT_STS_CLR 0x170178
  807. /* [RW 2] Parity mask register #0 read/write */
  808. #define DORQ_REG_DORQ_PRTY_MASK 0x170190
  809. /* [R 2] Parity register #0 read */
  810. #define DORQ_REG_DORQ_PRTY_STS 0x170184
  811. /* [RC 2] Parity register #0 read clear */
  812. #define DORQ_REG_DORQ_PRTY_STS_CLR 0x170188
  813. /* [RW 8] The address to write the DPM CID to STORM. */
  814. #define DORQ_REG_DPM_CID_ADDR 0x170044
  815. /* [RW 5] The DPM mode CID extraction offset. */
  816. #define DORQ_REG_DPM_CID_OFST 0x170030
  817. /* [RW 12] The threshold of the DQ FIFO to send the almost full interrupt. */
  818. #define DORQ_REG_DQ_FIFO_AFULL_TH 0x17007c
  819. /* [RW 12] The threshold of the DQ FIFO to send the full interrupt. */
  820. #define DORQ_REG_DQ_FIFO_FULL_TH 0x170078
  821. /* [R 13] Current value of the DQ FIFO fill level according to following
  822. pointer. The range is 0 - 256 FIFO rows; where each row stands for the
  823. doorbell. */
  824. #define DORQ_REG_DQ_FILL_LVLF 0x1700a4
  825. /* [R 1] DQ FIFO full status. Is set; when FIFO filling level is more or
  826. equal to full threshold; reset on full clear. */
  827. #define DORQ_REG_DQ_FULL_ST 0x1700c0
  828. /* [RW 28] The value sent to CM header in the case of CFC load error. */
  829. #define DORQ_REG_ERR_CMHEAD 0x170058
  830. #define DORQ_REG_IF_EN 0x170004
  831. #define DORQ_REG_MAX_RVFID_SIZE 0x1701ec
  832. #define DORQ_REG_MODE_ACT 0x170008
  833. /* [RW 5] The normal mode CID extraction offset. */
  834. #define DORQ_REG_NORM_CID_OFST 0x17002c
  835. /* [RW 28] TCM Header when only TCP context is loaded. */
  836. #define DORQ_REG_NORM_CMHEAD_TX 0x17004c
  837. /* [RW 3] The number of simultaneous outstanding requests to Context Fetch
  838. Interface. */
  839. #define DORQ_REG_OUTST_REQ 0x17003c
  840. #define DORQ_REG_PF_USAGE_CNT 0x1701d0
  841. #define DORQ_REG_REGN 0x170038
  842. /* [R 4] Current value of response A counter credit. Initial credit is
  843. configured through write to ~dorq_registers_rsp_init_crd.rsp_init_crd
  844. register. */
  845. #define DORQ_REG_RSPA_CRD_CNT 0x1700ac
  846. /* [R 4] Current value of response B counter credit. Initial credit is
  847. configured through write to ~dorq_registers_rsp_init_crd.rsp_init_crd
  848. register. */
  849. #define DORQ_REG_RSPB_CRD_CNT 0x1700b0
  850. /* [RW 4] The initial credit at the Doorbell Response Interface. The write
  851. writes the same initial credit to the rspa_crd_cnt and rspb_crd_cnt. The
  852. read reads this written value. */
  853. #define DORQ_REG_RSP_INIT_CRD 0x170048
  854. #define DORQ_REG_RSPB_CRD_CNT 0x1700b0
  855. #define DORQ_REG_VF_NORM_CID_BASE 0x1701a0
  856. #define DORQ_REG_VF_NORM_CID_OFST 0x1701f4
  857. #define DORQ_REG_VF_NORM_CID_WND_SIZE 0x1701a4
  858. #define DORQ_REG_VF_NORM_MAX_CID_COUNT 0x1701e4
  859. #define DORQ_REG_VF_NORM_VF_BASE 0x1701a8
  860. /* [RW 10] VF type validation mask value */
  861. #define DORQ_REG_VF_TYPE_MASK_0 0x170218
  862. /* [RW 17] VF type validation Min MCID value */
  863. #define DORQ_REG_VF_TYPE_MAX_MCID_0 0x1702d8
  864. /* [RW 17] VF type validation Max MCID value */
  865. #define DORQ_REG_VF_TYPE_MIN_MCID_0 0x170298
  866. /* [RW 10] VF type validation comp value */
  867. #define DORQ_REG_VF_TYPE_VALUE_0 0x170258
  868. #define DORQ_REG_VF_USAGE_CT_LIMIT 0x170340
  869. /* [RW 4] Initial activity counter value on the load request; when the
  870. shortcut is done. */
  871. #define DORQ_REG_SHRT_ACT_CNT 0x170070
  872. /* [RW 28] TCM Header when both ULP and TCP context is loaded. */
  873. #define DORQ_REG_SHRT_CMHEAD 0x170054
  874. #define HC_CONFIG_0_REG_ATTN_BIT_EN_0 (0x1<<4)
  875. #define HC_CONFIG_0_REG_BLOCK_DISABLE_0 (0x1<<0)
  876. #define HC_CONFIG_0_REG_INT_LINE_EN_0 (0x1<<3)
  877. #define HC_CONFIG_0_REG_MSI_ATTN_EN_0 (0x1<<7)
  878. #define HC_CONFIG_0_REG_MSI_MSIX_INT_EN_0 (0x1<<2)
  879. #define HC_CONFIG_0_REG_SINGLE_ISR_EN_0 (0x1<<1)
  880. #define HC_CONFIG_1_REG_BLOCK_DISABLE_1 (0x1<<0)
  881. #define DORQ_REG_VF_USAGE_CNT 0x170320
  882. #define HC_REG_AGG_INT_0 0x108050
  883. #define HC_REG_AGG_INT_1 0x108054
  884. #define HC_REG_ATTN_BIT 0x108120
  885. #define HC_REG_ATTN_IDX 0x108100
  886. #define HC_REG_ATTN_MSG0_ADDR_L 0x108018
  887. #define HC_REG_ATTN_MSG1_ADDR_L 0x108020
  888. #define HC_REG_ATTN_NUM_P0 0x108038
  889. #define HC_REG_ATTN_NUM_P1 0x10803c
  890. #define HC_REG_COMMAND_REG 0x108180
  891. #define HC_REG_CONFIG_0 0x108000
  892. #define HC_REG_CONFIG_1 0x108004
  893. #define HC_REG_FUNC_NUM_P0 0x1080ac
  894. #define HC_REG_FUNC_NUM_P1 0x1080b0
  895. /* [RW 3] Parity mask register #0 read/write */
  896. #define HC_REG_HC_PRTY_MASK 0x1080a0
  897. /* [R 3] Parity register #0 read */
  898. #define HC_REG_HC_PRTY_STS 0x108094
  899. /* [RC 3] Parity register #0 read clear */
  900. #define HC_REG_HC_PRTY_STS_CLR 0x108098
  901. #define HC_REG_INT_MASK 0x108108
  902. #define HC_REG_LEADING_EDGE_0 0x108040
  903. #define HC_REG_LEADING_EDGE_1 0x108048
  904. #define HC_REG_MAIN_MEMORY 0x108800
  905. #define HC_REG_MAIN_MEMORY_SIZE 152
  906. #define HC_REG_P0_PROD_CONS 0x108200
  907. #define HC_REG_P1_PROD_CONS 0x108400
  908. #define HC_REG_PBA_COMMAND 0x108140
  909. #define HC_REG_PCI_CONFIG_0 0x108010
  910. #define HC_REG_PCI_CONFIG_1 0x108014
  911. #define HC_REG_STATISTIC_COUNTERS 0x109000
  912. #define HC_REG_TRAILING_EDGE_0 0x108044
  913. #define HC_REG_TRAILING_EDGE_1 0x10804c
  914. #define HC_REG_UC_RAM_ADDR_0 0x108028
  915. #define HC_REG_UC_RAM_ADDR_1 0x108030
  916. #define HC_REG_USTORM_ADDR_FOR_COALESCE 0x108068
  917. #define HC_REG_VQID_0 0x108008
  918. #define HC_REG_VQID_1 0x10800c
  919. #define IGU_BLOCK_CONFIGURATION_REG_BACKWARD_COMP_EN (0x1<<1)
  920. #define IGU_BLOCK_CONFIGURATION_REG_BLOCK_ENABLE (0x1<<0)
  921. #define IGU_REG_ATTENTION_ACK_BITS 0x130108
  922. /* [R 4] Debug: attn_fsm */
  923. #define IGU_REG_ATTN_FSM 0x130054
  924. #define IGU_REG_ATTN_MSG_ADDR_H 0x13011c
  925. #define IGU_REG_ATTN_MSG_ADDR_L 0x130120
  926. /* [R 4] Debug: [3] - attention write done message is pending (0-no pending;
  927. * 1-pending). [2:0] = PFID. Pending means attention message was sent; but
  928. * write done didn't receive. */
  929. #define IGU_REG_ATTN_WRITE_DONE_PENDING 0x130030
  930. #define IGU_REG_BLOCK_CONFIGURATION 0x130000
  931. #define IGU_REG_COMMAND_REG_32LSB_DATA 0x130124
  932. #define IGU_REG_COMMAND_REG_CTRL 0x13012c
  933. /* [WB_R 32] Cleanup bit status per SB. 1 = cleanup is set. 0 = cleanup bit
  934. * is clear. The bits in this registers are set and clear via the producer
  935. * command. Data valid only in addresses 0-4. all the rest are zero. */
  936. #define IGU_REG_CSTORM_TYPE_0_SB_CLEANUP 0x130200
  937. /* [R 5] Debug: ctrl_fsm */
  938. #define IGU_REG_CTRL_FSM 0x130064
  939. /* [R 1] data available for error memory. If this bit is clear do not red
  940. * from error_handling_memory. */
  941. #define IGU_REG_ERROR_HANDLING_DATA_VALID 0x130130
  942. /* [RW 11] Parity mask register #0 read/write */
  943. #define IGU_REG_IGU_PRTY_MASK 0x1300a8
  944. /* [R 11] Parity register #0 read */
  945. #define IGU_REG_IGU_PRTY_STS 0x13009c
  946. /* [RC 11] Parity register #0 read clear */
  947. #define IGU_REG_IGU_PRTY_STS_CLR 0x1300a0
  948. /* [R 4] Debug: int_handle_fsm */
  949. #define IGU_REG_INT_HANDLE_FSM 0x130050
  950. #define IGU_REG_LEADING_EDGE_LATCH 0x130134
  951. /* [RW 14] mapping CAM; relevant for E2 operating mode only. [0] - valid.
  952. * [6:1] - vector number; [13:7] - FID (if VF - [13] = 0; [12:7] = VF
  953. * number; if PF - [13] = 1; [12:10] = 0; [9:7] = PF number); */
  954. #define IGU_REG_MAPPING_MEMORY 0x131000
  955. #define IGU_REG_MAPPING_MEMORY_SIZE 136
  956. #define IGU_REG_PBA_STATUS_LSB 0x130138
  957. #define IGU_REG_PBA_STATUS_MSB 0x13013c
  958. #define IGU_REG_PCI_PF_MSI_EN 0x130140
  959. #define IGU_REG_PCI_PF_MSIX_EN 0x130144
  960. #define IGU_REG_PCI_PF_MSIX_FUNC_MASK 0x130148
  961. /* [WB_R 32] Each bit represent the pending bits status for that SB. 0 = no
  962. * pending; 1 = pending. Pendings means interrupt was asserted; and write
  963. * done was not received. Data valid only in addresses 0-4. all the rest are
  964. * zero. */
  965. #define IGU_REG_PENDING_BITS_STATUS 0x130300
  966. #define IGU_REG_PF_CONFIGURATION 0x130154
  967. /* [RW 20] producers only. E2 mode: address 0-135 match to the mapping
  968. * memory; 136 - PF0 default prod; 137 PF1 default prod; 138 - PF2 default
  969. * prod; 139 PF3 default prod; 140 - PF0 - ATTN prod; 141 - PF1 - ATTN prod;
  970. * 142 - PF2 - ATTN prod; 143 - PF3 - ATTN prod; 144-147 reserved. E1.5 mode
  971. * - In backward compatible mode; for non default SB; each even line in the
  972. * memory holds the U producer and each odd line hold the C producer. The
  973. * first 128 producer are for NDSB (PF0 - 0-31; PF1 - 32-63 and so on). The
  974. * last 20 producers are for the DSB for each PF. each PF has five segments
  975. * (the order inside each segment is PF0; PF1; PF2; PF3) - 128-131 U prods;
  976. * 132-135 C prods; 136-139 X prods; 140-143 T prods; 144-147 ATTN prods; */
  977. #define IGU_REG_PROD_CONS_MEMORY 0x132000
  978. /* [R 3] Debug: pxp_arb_fsm */
  979. #define IGU_REG_PXP_ARB_FSM 0x130068
  980. /* [RW 6] Write one for each bit will reset the appropriate memory. When the
  981. * memory reset finished the appropriate bit will be clear. Bit 0 - mapping
  982. * memory; Bit 1 - SB memory; Bit 2 - SB interrupt and mask register; Bit 3
  983. * - MSIX memory; Bit 4 - PBA memory; Bit 5 - statistics; */
  984. #define IGU_REG_RESET_MEMORIES 0x130158
  985. /* [R 4] Debug: sb_ctrl_fsm */
  986. #define IGU_REG_SB_CTRL_FSM 0x13004c
  987. #define IGU_REG_SB_INT_BEFORE_M