t4_regs.h 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344
  1. /*
  2. * This file is part of the Chelsio T4 Ethernet driver for Linux.
  3. *
  4. * Copyright (c) 2003-2014 Chelsio Communications, Inc. All rights reserved.
  5. *
  6. * This software is available to you under a choice of one of two
  7. * licenses. You may choose to be licensed under the terms of the GNU
  8. * General Public License (GPL) Version 2, available from the file
  9. * COPYING in the main directory of this source tree, or the
  10. * OpenIB.org BSD license below:
  11. *
  12. * Redistribution and use in source and binary forms, with or
  13. * without modification, are permitted provided that the following
  14. * conditions are met:
  15. *
  16. * - Redistributions of source code must retain the above
  17. * copyright notice, this list of conditions and the following
  18. * disclaimer.
  19. *
  20. * - Redistributions in binary form must reproduce the above
  21. * copyright notice, this list of conditions and the following
  22. * disclaimer in the documentation and/or other materials
  23. * provided with the distribution.
  24. *
  25. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  26. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  27. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  28. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
  29. * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
  30. * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  31. * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  32. * SOFTWARE.
  33. */
  34. #ifndef __T4_REGS_H
  35. #define __T4_REGS_H
  36. #define MYPF_BASE 0x1b000
  37. #define MYPF_REG(reg_addr) (MYPF_BASE + (reg_addr))
  38. #define PF0_BASE 0x1e000
  39. #define PF0_REG(reg_addr) (PF0_BASE + (reg_addr))
  40. #define PF_STRIDE 0x400
  41. #define PF_BASE(idx) (PF0_BASE + (idx) * PF_STRIDE)
  42. #define PF_REG(idx, reg) (PF_BASE(idx) + (reg))
  43. #define MYPORT_BASE 0x1c000
  44. #define MYPORT_REG(reg_addr) (MYPORT_BASE + (reg_addr))
  45. #define PORT0_BASE 0x20000
  46. #define PORT0_REG(reg_addr) (PORT0_BASE + (reg_addr))
  47. #define PORT_STRIDE 0x2000
  48. #define PORT_BASE(idx) (PORT0_BASE + (idx) * PORT_STRIDE)
  49. #define PORT_REG(idx, reg) (PORT_BASE(idx) + (reg))
  50. #define EDC_STRIDE (EDC_1_BASE_ADDR - EDC_0_BASE_ADDR)
  51. #define EDC_REG(reg, idx) (reg + EDC_STRIDE * idx)
  52. #define PCIE_MEM_ACCESS_REG(reg_addr, idx) ((reg_addr) + (idx) * 8)
  53. #define PCIE_MAILBOX_REG(reg_addr, idx) ((reg_addr) + (idx) * 8)
  54. #define MC_BIST_STATUS_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
  55. #define EDC_BIST_STATUS_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
  56. #define SGE_PF_KDOORBELL 0x0
  57. #define QID_MASK 0xffff8000U
  58. #define QID_SHIFT 15
  59. #define QID(x) ((x) << QID_SHIFT)
  60. #define DBPRIO(x) ((x) << 14)
  61. #define DBTYPE(x) ((x) << 13)
  62. #define PIDX_MASK 0x00003fffU
  63. #define PIDX_SHIFT 0
  64. #define PIDX(x) ((x) << PIDX_SHIFT)
  65. #define PIDX_SHIFT_T5 0
  66. #define PIDX_T5(x) ((x) << PIDX_SHIFT_T5)
  67. #define SGE_TIMERREGS 6
  68. #define SGE_PF_GTS 0x4
  69. #define INGRESSQID_MASK 0xffff0000U
  70. #define INGRESSQID_SHIFT 16
  71. #define INGRESSQID(x) ((x) << INGRESSQID_SHIFT)
  72. #define TIMERREG_MASK 0x0000e000U
  73. #define TIMERREG_SHIFT 13
  74. #define TIMERREG(x) ((x) << TIMERREG_SHIFT)
  75. #define SEINTARM_MASK 0x00001000U
  76. #define SEINTARM_SHIFT 12
  77. #define SEINTARM(x) ((x) << SEINTARM_SHIFT)
  78. #define CIDXINC_MASK 0x00000fffU
  79. #define CIDXINC_SHIFT 0
  80. #define CIDXINC(x) ((x) << CIDXINC_SHIFT)
  81. #define X_RXPKTCPLMODE_SPLIT 1
  82. #define X_INGPADBOUNDARY_SHIFT 5
  83. #define SGE_CONTROL 0x1008
  84. #define SGE_CONTROL2_A 0x1124
  85. #define DCASYSTYPE 0x00080000U
  86. #define RXPKTCPLMODE_MASK 0x00040000U
  87. #define RXPKTCPLMODE_SHIFT 18
  88. #define RXPKTCPLMODE(x) ((x) << RXPKTCPLMODE_SHIFT)
  89. #define EGRSTATUSPAGESIZE_MASK 0x00020000U
  90. #define EGRSTATUSPAGESIZE_SHIFT 17
  91. #define EGRSTATUSPAGESIZE(x) ((x) << EGRSTATUSPAGESIZE_SHIFT)
  92. #define PKTSHIFT_MASK 0x00001c00U
  93. #define PKTSHIFT_SHIFT 10
  94. #define PKTSHIFT(x) ((x) << PKTSHIFT_SHIFT)
  95. #define PKTSHIFT_GET(x) (((x) & PKTSHIFT_MASK) >> PKTSHIFT_SHIFT)
  96. #define INGPCIEBOUNDARY_32B_X 0
  97. #define INGPCIEBOUNDARY_MASK 0x00000380U
  98. #define INGPCIEBOUNDARY_SHIFT 7
  99. #define INGPCIEBOUNDARY(x) ((x) << INGPCIEBOUNDARY_SHIFT)
  100. #define INGPADBOUNDARY_MASK 0x00000070U
  101. #define INGPADBOUNDARY_SHIFT 4
  102. #define INGPADBOUNDARY(x) ((x) << INGPADBOUNDARY_SHIFT)
  103. #define INGPADBOUNDARY_GET(x) (((x) & INGPADBOUNDARY_MASK) \
  104. >> INGPADBOUNDARY_SHIFT)
  105. #define INGPACKBOUNDARY_16B_X 0
  106. #define INGPACKBOUNDARY_SHIFT_X 5
  107. #define INGPACKBOUNDARY_S 16
  108. #define INGPACKBOUNDARY_M 0x7U
  109. #define INGPACKBOUNDARY_V(x) ((x) << INGPACKBOUNDARY_S)
  110. #define INGPACKBOUNDARY_G(x) (((x) >> INGPACKBOUNDARY_S) \
  111. & INGPACKBOUNDARY_M)
  112. #define EGRPCIEBOUNDARY_MASK 0x0000000eU
  113. #define EGRPCIEBOUNDARY_SHIFT 1
  114. #define EGRPCIEBOUNDARY(x) ((x) << EGRPCIEBOUNDARY_SHIFT)
  115. #define GLOBALENABLE 0x00000001U
  116. #define SGE_HOST_PAGE_SIZE 0x100c
  117. #define HOSTPAGESIZEPF7_MASK 0x0000000fU
  118. #define HOSTPAGESIZEPF7_SHIFT 28
  119. #define HOSTPAGESIZEPF7(x) ((x) << HOSTPAGESIZEPF7_SHIFT)
  120. #define HOSTPAGESIZEPF6_MASK 0x0000000fU
  121. #define HOSTPAGESIZEPF6_SHIFT 24
  122. #define HOSTPAGESIZEPF6(x) ((x) << HOSTPAGESIZEPF6_SHIFT)
  123. #define HOSTPAGESIZEPF5_MASK 0x0000000fU
  124. #define HOSTPAGESIZEPF5_SHIFT 20
  125. #define HOSTPAGESIZEPF5(x) ((x) << HOSTPAGESIZEPF5_SHIFT)
  126. #define HOSTPAGESIZEPF4_MASK 0x0000000fU
  127. #define HOSTPAGESIZEPF4_SHIFT 16
  128. #define HOSTPAGESIZEPF4(x) ((x) << HOSTPAGESIZEPF4_SHIFT)
  129. #define HOSTPAGESIZEPF3_MASK 0x0000000fU
  130. #define HOSTPAGESIZEPF3_SHIFT 12
  131. #define HOSTPAGESIZEPF3(x) ((x) << HOSTPAGESIZEPF3_SHIFT)
  132. #define HOSTPAGESIZEPF2_MASK 0x0000000fU
  133. #define HOSTPAGESIZEPF2_SHIFT 8
  134. #define HOSTPAGESIZEPF2(x) ((x) << HOSTPAGESIZEPF2_SHIFT)
  135. #define HOSTPAGESIZEPF1_MASK 0x0000000fU
  136. #define HOSTPAGESIZEPF1_SHIFT 4
  137. #define HOSTPAGESIZEPF1(x) ((x) << HOSTPAGESIZEPF1_SHIFT)
  138. #define HOSTPAGESIZEPF0_MASK 0x0000000fU
  139. #define HOSTPAGESIZEPF0_SHIFT 0
  140. #define HOSTPAGESIZEPF0(x) ((x) << HOSTPAGESIZEPF0_SHIFT)
  141. #define SGE_EGRESS_QUEUES_PER_PAGE_PF 0x1010
  142. #define QUEUESPERPAGEPF0_MASK 0x0000000fU
  143. #define QUEUESPERPAGEPF0_GET(x) ((x) & QUEUESPERPAGEPF0_MASK)
  144. #define QUEUESPERPAGEPF0 0
  145. #define QUEUESPERPAGEPF1 4
  146. /* T5 and later support a new BAR2-based doorbell mechanism for Egress Queues.
  147. * The User Doorbells are each 128 bytes in length with a Simple Doorbell at
  148. * offsets 8x and a Write Combining single 64-byte Egress Queue Unit
  149. * (X_IDXSIZE_UNIT) Gather Buffer interface at offset 64. For Ingress Queues,
  150. * we have a Going To Sleep register at offsets 8x+4.
  151. *
  152. * As noted above, we have many instances of the Simple Doorbell and Going To
  153. * Sleep registers at offsets 8x and 8x+4, respectively. We want to use a
  154. * non-64-byte aligned offset for the Simple Doorbell in order to attempt to
  155. * avoid buffering of the writes to the Simple Doorbell and we want to use a
  156. * non-contiguous offset for the Going To Sleep writes in order to avoid
  157. * possible combining between them.
  158. */
  159. #define SGE_UDB_SIZE 128
  160. #define SGE_UDB_KDOORBELL 8
  161. #define SGE_UDB_GTS 20
  162. #define SGE_UDB_WCDOORBELL 64
  163. #define SGE_INT_CAUSE1 0x1024
  164. #define SGE_INT_CAUSE2 0x1030
  165. #define SGE_INT_CAUSE3 0x103c
  166. #define ERR_FLM_DBP 0x80000000U
  167. #define ERR_FLM_IDMA1 0x40000000U
  168. #define ERR_FLM_IDMA0 0x20000000U
  169. #define ERR_FLM_HINT 0x10000000U
  170. #define ERR_PCIE_ERROR3 0x08000000U
  171. #define ERR_PCIE_ERROR2 0x04000000U
  172. #define ERR_PCIE_ERROR1 0x02000000U
  173. #define ERR_PCIE_ERROR0 0x01000000U
  174. #define ERR_TIMER_ABOVE_MAX_QID 0x00800000U
  175. #define ERR_CPL_EXCEED_IQE_SIZE 0x00400000U
  176. #define ERR_INVALID_CIDX_INC 0x00200000U
  177. #define ERR_ITP_TIME_PAUSED 0x00100000U
  178. #define ERR_CPL_OPCODE_0 0x00080000U
  179. #define ERR_DROPPED_DB 0x00040000U
  180. #define ERR_DATA_CPL_ON_HIGH_QID1 0x00020000U
  181. #define ERR_DATA_CPL_ON_HIGH_QID0 0x00010000U
  182. #define ERR_BAD_DB_PIDX3 0x00008000U
  183. #define ERR_BAD_DB_PIDX2 0x00004000U
  184. #define ERR_BAD_DB_PIDX1 0x00002000U
  185. #define ERR_BAD_DB_PIDX0 0x00001000U
  186. #define ERR_ING_PCIE_CHAN 0x00000800U
  187. #define ERR_ING_CTXT_PRIO 0x00000400U
  188. #define ERR_EGR_CTXT_PRIO 0x00000200U
  189. #define DBFIFO_HP_INT 0x00000100U
  190. #define DBFIFO_LP_INT 0x00000080U
  191. #define REG_ADDRESS_ERR 0x00000040U
  192. #define INGRESS_SIZE_ERR 0x00000020U
  193. #define EGRESS_SIZE_ERR 0x00000010U
  194. #define ERR_INV_CTXT3 0x00000008U
  195. #define ERR_INV_CTXT2 0x00000004U
  196. #define ERR_INV_CTXT1 0x00000002U
  197. #define ERR_INV_CTXT0 0x00000001U
  198. #define SGE_INT_ENABLE3 0x1040
  199. #define SGE_FL_BUFFER_SIZE0 0x1044
  200. #define SGE_FL_BUFFER_SIZE1 0x1048
  201. #define SGE_FL_BUFFER_SIZE2 0x104c
  202. #define SGE_FL_BUFFER_SIZE3 0x1050
  203. #define SGE_FL_BUFFER_SIZE4 0x1054
  204. #define SGE_FL_BUFFER_SIZE5 0x1058
  205. #define SGE_FL_BUFFER_SIZE6 0x105c
  206. #define SGE_FL_BUFFER_SIZE7 0x1060
  207. #define SGE_FL_BUFFER_SIZE8 0x1064
  208. #define SGE_INGRESS_RX_THRESHOLD 0x10a0
  209. #define THRESHOLD_0_MASK 0x3f000000U
  210. #define THRESHOLD_0_SHIFT 24
  211. #define THRESHOLD_0(x) ((x) << THRESHOLD_0_SHIFT)
  212. #define THRESHOLD_0_GET(x) (((x) & THRESHOLD_0_MASK) >> THRESHOLD_0_SHIFT)
  213. #define THRESHOLD_1_MASK 0x003f0000U
  214. #define THRESHOLD_1_SHIFT 16
  215. #define THRESHOLD_1(x) ((x) << THRESHOLD_1_SHIFT)
  216. #define THRESHOLD_1_GET(x) (((x) & THRESHOLD_1_MASK) >> THRESHOLD_1_SHIFT)
  217. #define THRESHOLD_2_MASK 0x00003f00U
  218. #define THRESHOLD_2_SHIFT 8
  219. #define THRESHOLD_2(x) ((x) << THRESHOLD_2_SHIFT)
  220. #define THRESHOLD_2_GET(x) (((x) & THRESHOLD_2_MASK) >> THRESHOLD_2_SHIFT)
  221. #define THRESHOLD_3_MASK 0x0000003fU
  222. #define THRESHOLD_3_SHIFT 0
  223. #define THRESHOLD_3(x) ((x) << THRESHOLD_3_SHIFT)
  224. #define THRESHOLD_3_GET(x) (((x) & THRESHOLD_3_MASK) >> THRESHOLD_3_SHIFT)
  225. #define SGE_CONM_CTRL 0x1094
  226. #define EGRTHRESHOLD_MASK 0x00003f00U
  227. #define EGRTHRESHOLDshift 8
  228. #define EGRTHRESHOLD(x) ((x) << EGRTHRESHOLDshift)
  229. #define EGRTHRESHOLD_GET(x) (((x) & EGRTHRESHOLD_MASK) >> EGRTHRESHOLDshift)
  230. #define EGRTHRESHOLDPACKING_MASK 0x3fU
  231. #define EGRTHRESHOLDPACKING_SHIFT 14
  232. #define EGRTHRESHOLDPACKING(x) ((x) << EGRTHRESHOLDPACKING_SHIFT)
  233. #define EGRTHRESHOLDPACKING_GET(x) (((x) >> EGRTHRESHOLDPACKING_SHIFT) & \
  234. EGRTHRESHOLDPACKING_MASK)
  235. #define SGE_DBFIFO_STATUS 0x10a4
  236. #define HP_INT_THRESH_SHIFT 28
  237. #define HP_INT_THRESH_MASK 0xfU
  238. #define HP_INT_THRESH(x) ((x) << HP_INT_THRESH_SHIFT)
  239. #define LP_INT_THRESH_SHIFT 12
  240. #define LP_INT_THRESH_MASK 0xfU
  241. #define LP_INT_THRESH(x) ((x) << LP_INT_THRESH_SHIFT)
  242. #define SGE_DOORBELL_CONTROL 0x10a8
  243. #define ENABLE_DROP (1 << 13)
  244. #define S_NOCOALESCE 26
  245. #define V_NOCOALESCE(x) ((x) << S_NOCOALESCE)
  246. #define F_NOCOALESCE V_NOCOALESCE(1U)
  247. #define SGE_TIMESTAMP_LO 0x1098
  248. #define SGE_TIMESTAMP_HI 0x109c
  249. #define S_TSVAL 0
  250. #define M_TSVAL 0xfffffffU
  251. #define GET_TSVAL(x) (((x) >> S_TSVAL) & M_TSVAL)
  252. #define SGE_TIMER_VALUE_0_AND_1 0x10b8
  253. #define TIMERVALUE0_MASK 0xffff0000U
  254. #define TIMERVALUE0_SHIFT 16
  255. #define TIMERVALUE0(x) ((x) << TIMERVALUE0_SHIFT)
  256. #define TIMERVALUE0_GET(x) (((x) & TIMERVALUE0_MASK) >> TIMERVALUE0_SHIFT)
  257. #define TIMERVALUE1_MASK 0x0000ffffU
  258. #define TIMERVALUE1_SHIFT 0
  259. #define TIMERVALUE1(x) ((x) << TIMERVALUE1_SHIFT)
  260. #define TIMERVALUE1_GET(x) (((x) & TIMERVALUE1_MASK) >> TIMERVALUE1_SHIFT)
  261. #define SGE_TIMER_VALUE_2_AND_3 0x10bc
  262. #define TIMERVALUE2_MASK 0xffff0000U
  263. #define TIMERVALUE2_SHIFT 16
  264. #define TIMERVALUE2(x) ((x) << TIMERVALUE2_SHIFT)
  265. #define TIMERVALUE2_GET(x) (((x) & TIMERVALUE2_MASK) >> TIMERVALUE2_SHIFT)
  266. #define TIMERVALUE3_MASK 0x0000ffffU
  267. #define TIMERVALUE3_SHIFT 0
  268. #define TIMERVALUE3(x) ((x) << TIMERVALUE3_SHIFT)
  269. #define TIMERVALUE3_GET(x) (((x) & TIMERVALUE3_MASK) >> TIMERVALUE3_SHIFT)
  270. #define SGE_TIMER_VALUE_4_AND_5 0x10c0
  271. #define TIMERVALUE4_MASK 0xffff0000U
  272. #define TIMERVALUE4_SHIFT 16
  273. #define TIMERVALUE4(x) ((x) << TIMERVALUE4_SHIFT)
  274. #define TIMERVALUE4_GET(x) (((x) & TIMERVALUE4_MASK) >> TIMERVALUE4_SHIFT)
  275. #define TIMERVALUE5_MASK 0x0000ffffU
  276. #define TIMERVALUE5_SHIFT 0
  277. #define TIMERVALUE5(x) ((x) << TIMERVALUE5_SHIFT)
  278. #define TIMERVALUE5_GET(x) (((x) & TIMERVALUE5_MASK) >> TIMERVALUE5_SHIFT)
  279. #define SGE_DEBUG_INDEX 0x10cc
  280. #define SGE_DEBUG_DATA_HIGH 0x10d0
  281. #define SGE_DEBUG_DATA_LOW 0x10d4
  282. #define SGE_DEBUG_DATA_LOW_INDEX_2 0x12c8
  283. #define SGE_DEBUG_DATA_LOW_INDEX_3 0x12cc
  284. #define SGE_DEBUG_DATA_HIGH_INDEX_10 0x12a8
  285. #define SGE_INGRESS_QUEUES_PER_PAGE_PF 0x10f4
  286. #define S_HP_INT_THRESH 28
  287. #define M_HP_INT_THRESH 0xfU
  288. #define V_HP_INT_THRESH(x) ((x) << S_HP_INT_THRESH)
  289. #define S_LP_INT_THRESH_T5 18
  290. #define V_LP_INT_THRESH_T5(x) ((x) << S_LP_INT_THRESH_T5)
  291. #define M_LP_COUNT_T5 0x3ffffU
  292. #define G_LP_COUNT_T5(x) (((x) >> S_LP_COUNT) & M_LP_COUNT_T5)
  293. #define M_HP_COUNT 0x7ffU
  294. #define S_HP_COUNT 16
  295. #define G_HP_COUNT(x) (((x) >> S_HP_COUNT) & M_HP_COUNT)
  296. #define S_LP_INT_THRESH 12
  297. #define M_LP_INT_THRESH 0xfU
  298. #define M_LP_INT_THRESH_T5 0xfffU
  299. #define V_LP_INT_THRESH(x) ((x) << S_LP_INT_THRESH)
  300. #define M_LP_COUNT 0x7ffU
  301. #define S_LP_COUNT 0
  302. #define G_LP_COUNT(x) (((x) >> S_LP_COUNT) & M_LP_COUNT)
  303. #define A_SGE_DBFIFO_STATUS 0x10a4
  304. #define SGE_STAT_TOTAL 0x10e4
  305. #define SGE_STAT_MATCH 0x10e8
  306. #define SGE_STAT_CFG 0x10ec
  307. #define S_STATSOURCE_T5 9
  308. #define STATSOURCE_T5(x) ((x) << S_STATSOURCE_T5)
  309. #define SGE_DBFIFO_STATUS2 0x1118
  310. #define M_HP_COUNT_T5 0x3ffU
  311. #define G_HP_COUNT_T5(x) ((x) & M_HP_COUNT_T5)
  312. #define S_HP_INT_THRESH_T5 10
  313. #define M_HP_INT_THRESH_T5 0xfU
  314. #define V_HP_INT_THRESH_T5(x) ((x) << S_HP_INT_THRESH_T5)
  315. #define S_ENABLE_DROP 13
  316. #define V_ENABLE_DROP(x) ((x) << S_ENABLE_DROP)
  317. #define F_ENABLE_DROP V_ENABLE_DROP(1U)
  318. #define S_DROPPED_DB 0
  319. #define V_DROPPED_DB(x) ((x) << S_DROPPED_DB)
  320. #define F_DROPPED_DB V_DROPPED_DB(1U)
  321. #define A_SGE_DOORBELL_CONTROL 0x10a8
  322. #define A_SGE_CTXT_CMD 0x11fc
  323. #define A_SGE_DBQ_CTXT_BADDR 0x1084
  324. #define PCIE_PF_CFG 0x40
  325. #define AIVEC(x) ((x) << 4)
  326. #define AIVEC_MASK 0x3ffU
  327. #define PCIE_PF_CLI 0x44
  328. #define PCIE_INT_CAUSE 0x3004
  329. #define UNXSPLCPLERR 0x20000000U
  330. #define PCIEPINT 0x10000000U
  331. #define PCIESINT 0x08000000U
  332. #define RPLPERR 0x04000000U
  333. #define RXWRPERR 0x02000000U
  334. #define RXCPLPERR 0x01000000U
  335. #define PIOTAGPERR 0x00800000U
  336. #define MATAGPERR 0x00400000U
  337. #define INTXCLRPERR 0x00200000U
  338. #define FIDPERR 0x00100000U
  339. #define CFGSNPPERR 0x00080000U
  340. #define HRSPPERR 0x00040000U
  341. #define HREQPERR 0x00020000U
  342. #define HCNTPERR 0x00010000U
  343. #define DRSPPERR 0x00008000U
  344. #define DREQPERR 0x00004000U
  345. #define DCNTPERR 0x00002000U
  346. #define CRSPPERR 0x00001000U
  347. #define CREQPERR 0x00000800U
  348. #define CCNTPERR 0x00000400U
  349. #define TARTAGPERR 0x00000200U
  350. #define PIOREQPERR 0x00000100U
  351. #define PIOCPLPERR 0x00000080U
  352. #define MSIXDIPERR 0x00000040U
  353. #define MSIXDATAPERR 0x00000020U
  354. #define MSIXADDRHPERR 0x00000010U
  355. #define MSIXADDRLPERR 0x00000008U
  356. #define MSIDATAPERR 0x00000004U
  357. #define MSIADDRHPERR 0x00000002U
  358. #define MSIADDRLPERR 0x00000001U
  359. #define READRSPERR 0x20000000U
  360. #define TRGT1GRPPERR 0x10000000U
  361. #define IPSOTPERR 0x08000000U
  362. #define IPRXDATAGRPPERR 0x02000000U
  363. #define IPRXHDRGRPPERR 0x01000000U
  364. #define MAGRPPERR 0x00400000U
  365. #define VFIDPERR 0x00200000U
  366. #define HREQWRPERR 0x00010000U
  367. #define DREQWRPERR 0x00002000U
  368. #define MSTTAGQPERR 0x00000400U
  369. #define PIOREQGRPPERR 0x00000100U
  370. #define PIOCPLGRPPERR 0x00000080U
  371. #define MSIXSTIPERR 0x00000004U
  372. #define MSTTIMEOUTPERR 0x00000002U
  373. #define MSTGRPPERR 0x00000001U
  374. #define PCIE_NONFAT_ERR 0x3010
  375. #define PCIE_CFG_SPACE_REQ 0x3060
  376. #define PCIE_CFG_SPACE_DATA 0x3064
  377. #define PCIE_MEM_ACCESS_BASE_WIN 0x3068
  378. #define S_PCIEOFST 10
  379. #define M_PCIEOFST 0x3fffffU
  380. #define GET_PCIEOFST(x) (((x) >> S_PCIEOFST) & M_PCIEOFST)
  381. #define PCIEOFST_MASK 0xfffffc00U
  382. #define BIR_MASK 0x00000300U
  383. #define BIR_SHIFT 8
  384. #define BIR(x) ((x) << BIR_SHIFT)
  385. #define WINDOW_MASK 0x000000ffU
  386. #define WINDOW_SHIFT 0
  387. #define WINDOW(x) ((x) << WINDOW_SHIFT)
  388. #define GET_WINDOW(x) (((x) >> WINDOW_SHIFT) & WINDOW_MASK)
  389. #define PCIE_MEM_ACCESS_OFFSET 0x306c
  390. #define ENABLE (1U << 30)
  391. #define FUNCTION(x) ((x) << 12)
  392. #define F_LOCALCFG (1U << 28)
  393. #define S_PFNUM 0
  394. #define V_PFNUM(x) ((x) << S_PFNUM)
  395. #define PCIE_FW 0x30b8
  396. #define PCIE_FW_ERR 0x80000000U
  397. #define PCIE_FW_INIT 0x40000000U
  398. #define PCIE_FW_HALT 0x20000000U
  399. #define PCIE_FW_MASTER_VLD 0x00008000U
  400. #define PCIE_FW_MASTER(x) ((x) << 12)
  401. #define PCIE_FW_MASTER_MASK 0x7
  402. #define PCIE_FW_MASTER_GET(x) (((x) >> 12) & PCIE_FW_MASTER_MASK)
  403. #define PCIE_CORE_UTL_SYSTEM_BUS_AGENT_STATUS 0x5908
  404. #define RNPP 0x80000000U
  405. #define RPCP 0x20000000U
  406. #define RCIP 0x08000000U
  407. #define RCCP 0x04000000U
  408. #define RFTP 0x00800000U
  409. #define PTRP 0x00100000U
  410. #define PCIE_CORE_UTL_PCI_EXPRESS_PORT_STATUS 0x59a4
  411. #define TPCP 0x40000000U
  412. #define TNPP 0x20000000U
  413. #define TFTP 0x10000000U
  414. #define TCAP 0x08000000U
  415. #define TCIP 0x04000000U
  416. #define RCAP 0x02000000U
  417. #define PLUP 0x00800000U
  418. #define PLDN 0x00400000U
  419. #define OTDD 0x00200000U
  420. #define GTRP 0x00100000U
  421. #define RDPE 0x00040000U
  422. #define TDCE 0x00020000U
  423. #define TDUE 0x00010000U
  424. #define MC_INT_CAUSE 0x7518
  425. #define MC_P_INT_CAUSE 0x41318
  426. #define ECC_UE_INT_CAUSE 0x00000004U
  427. #define ECC_CE_INT_CAUSE 0x00000002U
  428. #define PERR_INT_CAUSE 0x00000001U
  429. #define MC_ECC_STATUS 0x751c
  430. #define MC_P_ECC_STATUS 0x4131c
  431. #define ECC_CECNT_MASK 0xffff0000U
  432. #define ECC_CECNT_SHIFT 16
  433. #define ECC_CECNT(x) ((x) << ECC_CECNT_SHIFT)
  434. #define ECC_CECNT_GET(x) (((x) & ECC_CECNT_MASK) >> ECC_CECNT_SHIFT)
  435. #define ECC_UECNT_MASK 0x0000ffffU
  436. #define ECC_UECNT_SHIFT 0
  437. #define ECC_UECNT(x) ((x) << ECC_UECNT_SHIFT)
  438. #define ECC_UECNT_GET(x) (((x) & ECC_UECNT_MASK) >> ECC_UECNT_SHIFT)
  439. #define MC_BIST_CMD 0x7600
  440. #define START_BIST 0x80000000U
  441. #define BIST_CMD_GAP_MASK 0x0000ff00U
  442. #define BIST_CMD_GAP_SHIFT 8
  443. #define BIST_CMD_GAP(x) ((x) << BIST_CMD_GAP_SHIFT)
  444. #define BIST_OPCODE_MASK 0x00000003U
  445. #define BIST_OPCODE_SHIFT 0
  446. #define BIST_OPCODE(x) ((x) << BIST_OPCODE_SHIFT)
  447. #define MC_BIST_CMD_ADDR 0x7604
  448. #define MC_BIST_CMD_LEN 0x7608
  449. #define MC_BIST_DATA_PATTERN 0x760c
  450. #define BIST_DATA_TYPE_MASK 0x0000000fU
  451. #define BIST_DATA_TYPE_SHIFT 0
  452. #define BIST_DATA_TYPE(x) ((x) << BIST_DATA_TYPE_SHIFT)
  453. #define MC_BIST_STATUS_RDATA 0x7688
  454. #define MA_EDRAM0_BAR 0x77c0
  455. #define MA_EDRAM1_BAR 0x77c4
  456. #define EDRAM_SIZE_MASK 0xfffU
  457. #define EDRAM_SIZE_GET(x) ((x) & EDRAM_SIZE_MASK)
  458. #define MA_EXT_MEMORY_BAR 0x77c8
  459. #define EXT_MEM_SIZE_MASK 0x00000fffU
  460. #define EXT_MEM_SIZE_SHIFT 0
  461. #define EXT_MEM_SIZE_GET(x) (((x) & EXT_MEM_SIZE_MASK) >> EXT_MEM_SIZE_SHIFT)
  462. #define MA_TARGET_MEM_ENABLE 0x77d8
  463. #define EXT_MEM1_ENABLE 0x00000010U
  464. #define EXT_MEM_ENABLE 0x00000004U
  465. #define EDRAM1_ENABLE 0x00000002U
  466. #define EDRAM0_ENABLE 0x00000001U
  467. #define MA_INT_CAUSE 0x77e0
  468. #define MEM_PERR_INT_CAUSE 0x00000002U
  469. #define MEM_WRAP_INT_CAUSE 0x00000001U
  470. #define MA_INT_WRAP_STATUS 0x77e4
  471. #define MEM_WRAP_ADDRESS_MASK 0xfffffff0U
  472. #define MEM_WRAP_ADDRESS_SHIFT 4
  473. #define MEM_WRAP_ADDRESS_GET(x) (((x) & MEM_WRAP_ADDRESS_MASK) >> MEM_WRAP_ADDRESS_SHIFT)
  474. #define MEM_WRAP_CLIENT_NUM_MASK 0x0000000fU
  475. #define MEM_WRAP_CLIENT_NUM_SHIFT 0
  476. #define MEM_WRAP_CLIENT_NUM_GET(x) (((x) & MEM_WRAP_CLIENT_NUM_MASK) >> MEM_WRAP_CLIENT_NUM_SHIFT)
  477. #define MA_PCIE_FW 0x30b8
  478. #define MA_PARITY_ERROR_STATUS 0x77f4
  479. #define MA_PARITY_ERROR_STATUS2 0x7804
  480. #define MA_EXT_MEMORY1_BAR 0x7808
  481. #define EDC_0_BASE_ADDR 0x7900
  482. #define EDC_BIST_CMD 0x7904
  483. #define EDC_BIST_CMD_ADDR 0x7908
  484. #define EDC_BIST_CMD_LEN 0x790c
  485. #define EDC_BIST_DATA_PATTERN 0x7910
  486. #define EDC_BIST_STATUS_RDATA 0x7928
  487. #define EDC_INT_CAUSE 0x7978
  488. #define ECC_UE_PAR 0x00000020U
  489. #define ECC_CE_PAR 0x00000010U
  490. #define PERR_PAR_CAUSE 0x00000008U
  491. #define EDC_ECC_STATUS 0x797c
  492. #define EDC_1_BASE_ADDR 0x7980
  493. #define CIM_BOOT_CFG 0x7b00
  494. #define BOOTADDR_MASK 0xffffff00U
  495. #define UPCRST 0x1U
  496. #define CIM_PF_MAILBOX_DATA 0x240
  497. #define CIM_PF_MAILBOX_CTRL 0x280
  498. #define MBMSGVALID 0x00000008U
  499. #define MBINTREQ 0x00000004U
  500. #define MBOWNER_MASK 0x00000003U
  501. #define MBOWNER_SHIFT 0
  502. #define MBOWNER(x) ((x) << MBOWNER_SHIFT)
  503. #define MBOWNER_GET(x) (((x) & MBOWNER_MASK) >> MBOWNER_SHIFT)
  504. #define CIM_PF_HOST_INT_ENABLE 0x288
  505. #define MBMSGRDYINTEN(x) ((x) << 19)
  506. #define CIM_PF_HOST_INT_CAUSE 0x28c
  507. #define MBMSGRDYINT 0x00080000U
  508. #define CIM_HOST_INT_CAUSE 0x7b2c
  509. #define TIEQOUTPARERRINT 0x00100000U
  510. #define TIEQINPARERRINT 0x00080000U
  511. #define MBHOSTPARERR 0x00040000U
  512. #define MBUPPARERR 0x00020000U
  513. #define IBQPARERR 0x0001f800U
  514. #define IBQTP0PARERR 0x00010000U
  515. #define IBQTP1PARERR 0x00008000U
  516. #define IBQULPPARERR 0x00004000U
  517. #define IBQSGELOPARERR 0x00002000U
  518. #define IBQSGEHIPARERR 0x00001000U
  519. #define IBQNCSIPARERR 0x00000800U
  520. #define OBQPARERR 0x000007e0U
  521. #define OBQULP0PARERR 0x00000400U
  522. #define OBQULP1PARERR 0x00000200U
  523. #define OBQULP2PARERR 0x00000100U
  524. #define OBQULP3PARERR 0x00000080U
  525. #define OBQSGEPARERR 0x00000040U
  526. #define OBQNCSIPARERR 0x00000020U
  527. #define PREFDROPINT 0x00000002U
  528. #define UPACCNONZERO 0x00000001U
  529. #define CIM_HOST_UPACC_INT_CAUSE 0x7b34
  530. #define EEPROMWRINT 0x40000000U
  531. #define TIMEOUTMAINT 0x20000000U
  532. #define TIMEOUTINT 0x10000000U
  533. #define RSPOVRLOOKUPINT 0x08000000U
  534. #define REQOVRLOOKUPINT 0x04000000U
  535. #define BLKWRPLINT 0x02000000U
  536. #define BLKRDPLINT 0x01000000U
  537. #define SGLWRPLINT 0x00800000U
  538. #define SGLRDPLINT 0x00400000U
  539. #define BLKWRCTLINT 0x00200000U
  540. #define BLKRDCTLINT 0x00100000U
  541. #define SGLWRCTLINT 0x00080000U
  542. #define SGLRDCTLINT 0x00040000U
  543. #define BLKWREEPROMINT 0x00020000U
  544. #define BLKRDEEPROMINT 0x00010000U
  545. #define SGLWREEPROMINT 0x00008000U
  546. #define SGLRDEEPROMINT 0x00004000U
  547. #define BLKWRFLASHINT 0x00002000U
  548. #define BLKRDFLASHINT 0x00001000U
  549. #define SGLWRFLASHINT 0x00000800U
  550. #define SGLRDFLASHINT 0x00000400U
  551. #define BLKWRBOOTINT 0x00000200U
  552. #define BLKRDBOOTINT 0x00000100U
  553. #define SGLWRBOOTINT 0x00000080U
  554. #define SGLRDBOOTINT 0x00000040U
  555. #define ILLWRBEINT 0x00000020U
  556. #define ILLRDBEINT 0x00000010U
  557. #define ILLRDINT 0x00000008U
  558. #define ILLWRINT 0x00000004U
  559. #define ILLTRANSINT 0x00000002U
  560. #define RSVDSPACEINT 0x00000001U
  561. #define TP_OUT_CONFIG 0x7d04
  562. #define VLANEXTENABLE_MASK 0x0000f000U
  563. #define VLANEXTENABLE_SHIFT 12
  564. #define TP_GLOBAL_CONFIG 0x7d08
  565. #define FIVETUPLELOOKUP_SHIFT 17
  566. #define FIVETUPLELOOKUP_MASK 0x00060000U
  567. #define FIVETUPLELOOKUP(x) ((x) << FIVETUPLELOOKUP_SHIFT)
  568. #define FIVETUPLELOOKUP_GET(x) (((x) & FIVETUPLELOOKUP_MASK) >> \
  569. FIVETUPLELOOKUP_SHIFT)
  570. #define TP_PARA_REG2 0x7d68
  571. #define MAXRXDATA_MASK 0xffff0000U
  572. #define MAXRXDATA_SHIFT 16
  573. #define MAXRXDATA_GET(x) (((x) & MAXRXDATA_MASK) >> MAXRXDATA_SHIFT)
  574. #define TP_TIMER_RESOLUTION 0x7d90
  575. #define TIMERRESOLUTION_MASK 0x00ff0000U
  576. #define TIMERRESOLUTION_SHIFT 16
  577. #define TIMERRESOLUTION_GET(x) (((x) & TIMERRESOLUTION_MASK) >> TIMERRESOLUTION_SHIFT)
  578. #define DELAYEDACKRESOLUTION_MASK 0x000000ffU
  579. #define DELAYEDACKRESOLUTION_SHIFT 0
  580. #define DELAYEDACKRESOLUTION_GET(x) \
  581. (((x) & DELAYEDACKRESOLUTION_MASK) >> DELAYEDACKRESOLUTION_SHIFT)
  582. #define TP_SHIFT_CNT 0x7dc0
  583. #define SYNSHIFTMAX_SHIFT 24
  584. #define SYNSHIFTMAX_MASK 0xff000000U
  585. #define SYNSHIFTMAX(x) ((x) << SYNSHIFTMAX_SHIFT)
  586. #define SYNSHIFTMAX_GET(x) (((x) & SYNSHIFTMAX_MASK) >> \
  587. SYNSHIFTMAX_SHIFT)
  588. #define RXTSHIFTMAXR1_SHIFT 20
  589. #define RXTSHIFTMAXR1_MASK 0x00f00000U
  590. #define RXTSHIFTMAXR1(x) ((x) << RXTSHIFTMAXR1_SHIFT)
  591. #define RXTSHIFTMAXR1_GET(x) (((x) & RXTSHIFTMAXR1_MASK) >> \
  592. RXTSHIFTMAXR1_SHIFT)
  593. #define RXTSHIFTMAXR2_SHIFT 16
  594. #define RXTSHIFTMAXR2_MASK 0x000f0000U
  595. #define RXTSHIFTMAXR2(x) ((x) << RXTSHIFTMAXR2_SHIFT)
  596. #define RXTSHIFTMAXR2_GET(x) (((x) & RXTSHIFTMAXR2_MASK) >> \
  597. RXTSHIFTMAXR2_SHIFT)
  598. #define PERSHIFTBACKOFFMAX_SHIFT 12
  599. #define PERSHIFTBACKOFFMAX_MASK 0x0000f000U
  600. #define PERSHIFTBACKOFFMAX(x) ((x) << PERSHIFTBACKOFFMAX_SHIFT)
  601. #define PERSHIFTBACKOFFMAX_GET(x) (((x) & PERSHIFTBACKOFFMAX_MASK) >> \
  602. PERSHIFTBACKOFFMAX_SHIFT)
  603. #define PERSHIFTMAX_SHIFT 8
  604. #define PERSHIFTMAX_MASK 0x00000f00U
  605. #define PERSHIFTMAX(x) ((x) << PERSHIFTMAX_SHIFT)
  606. #define PERSHIFTMAX_GET(x) (((x) & PERSHIFTMAX_MASK) >> \
  607. PERSHIFTMAX_SHIFT)
  608. #define KEEPALIVEMAXR1_SHIFT 4
  609. #define KEEPALIVEMAXR1_MASK 0x000000f0U
  610. #define KEEPALIVEMAXR1(x) ((x) << KEEPALIVEMAXR1_SHIFT)
  611. #define KEEPALIVEMAXR1_GET(x) (((x) & KEEPALIVEMAXR1_MASK) >> \
  612. KEEPALIVEMAXR1_SHIFT)
  613. #define KEEPALIVEMAXR2_SHIFT 0
  614. #define KEEPALIVEMAXR2_MASK 0x0000000fU
  615. #define KEEPALIVEMAXR2(x) ((x) << KEEPALIVEMAXR2_SHIFT)
  616. #define KEEPALIVEMAXR2_GET(x) (((x) & KEEPALIVEMAXR2_MASK) >> \
  617. KEEPALIVEMAXR2_SHIFT)
  618. #define TP_CCTRL_TABLE 0x7ddc
  619. #define TP_MTU_TABLE 0x7de4
  620. #define MTUINDEX_MASK 0xff000000U
  621. #define MTUINDEX_SHIFT 24
  622. #define MTUINDEX(x) ((x) << MTUINDEX_SHIFT)
  623. #define MTUWIDTH_MASK 0x000f0000U
  624. #define MTUWIDTH_SHIFT 16
  625. #define MTUWIDTH(x) ((x) << MTUWIDTH_SHIFT)
  626. #define MTUWIDTH_GET(x) (((x) & MTUWIDTH_MASK) >> MTUWIDTH_SHIFT)
  627. #define MTUVALUE_MASK 0x00003fffU
  628. #define MTUVALUE_SHIFT 0
  629. #define MTUVALUE(x) ((x) << MTUVALUE_SHIFT)
  630. #define MTUVALUE_GET(x) (((x) & MTUVALUE_MASK) >> MTUVALUE_SHIFT)
  631. #define TP_RSS_LKP_TABLE 0x7dec
  632. #define LKPTBLROWVLD 0x80000000U
  633. #define LKPTBLQUEUE1_MASK 0x000ffc00U
  634. #define LKPTBLQUEUE1_SHIFT 10
  635. #define LKPTBLQUEUE1(x) ((x) << LKPTBLQUEUE1_SHIFT)
  636. #define LKPTBLQUEUE1_GET(x) (((x) & LKPTBLQUEUE1_MASK) >> LKPTBLQUEUE1_SHIFT)
  637. #define LKPTBLQUEUE0_MASK 0x000003ffU
  638. #define LKPTBLQUEUE0_SHIFT 0
  639. #define LKPTBLQUEUE0(x) ((x) << LKPTBLQUEUE0_SHIFT)
  640. #define LKPTBLQUEUE0_GET(x) (((x) & LKPTBLQUEUE0_MASK) >> LKPTBLQUEUE0_SHIFT)
  641. #define TP_PIO_ADDR 0x7e40
  642. #define TP_PIO_DATA 0x7e44
  643. #define TP_MIB_INDEX 0x7e50
  644. #define TP_MIB_DATA 0x7e54
  645. #define TP_INT_CAUSE 0x7e74
  646. #define FLMTXFLSTEMPTY 0x40000000U
  647. #define TP_VLAN_PRI_MAP 0x140
  648. #define FRAGMENTATION_SHIFT 9
  649. #define FRAGMENTATION_MASK 0x00000200U
  650. #define MPSHITTYPE_MASK 0x00000100U
  651. #define MACMATCH_MASK 0x00000080U
  652. #define ETHERTYPE_MASK 0x00000040U
  653. #define PROTOCOL_MASK 0x00000020U
  654. #define TOS_MASK 0x00000010U
  655. #define VLAN_MASK 0x00000008U
  656. #define VNIC_ID_MASK 0x00000004U
  657. #define PORT_MASK 0x00000002U
  658. #define FCOE_SHIFT 0
  659. #define FCOE_MASK 0x00000001U
  660. #define TP_INGRESS_CONFIG 0x141
  661. #define VNIC 0x00000800U
  662. #define CSUM_HAS_PSEUDO_HDR 0x00000400U
  663. #define RM_OVLAN 0x00000200U
  664. #define LOOKUPEVERYPKT 0x00000100U
  665. #define TP_MIB_MAC_IN_ERR_0 0x0
  666. #define TP_MIB_TCP_OUT_RST 0xc
  667. #define TP_MIB_TCP_IN_SEG_HI 0x10
  668. #define TP_MIB_TCP_IN_SEG_LO 0x11
  669. #define TP_MIB_TCP_OUT_SEG_HI 0x12
  670. #define TP_MIB_TCP_OUT_SEG_LO 0x13
  671. #define TP_MIB_TCP_RXT_SEG_HI 0x14
  672. #define TP_MIB_TCP_RXT_SEG_LO 0x15
  673. #define TP_MIB_TNL_CNG_DROP_0 0x18
  674. #define TP_MIB_TCP_V6IN_ERR_0 0x28
  675. #define TP_MIB_TCP_V6OUT_RST 0x2c
  676. #define TP_MIB_OFD_ARP_DROP 0x36
  677. #define TP_MIB_TNL_DROP_0 0x44
  678. #define TP_MIB_OFD_VLN_DROP_0 0x58
  679. #define ULP_TX_INT_CAUSE 0x8dcc
  680. #define PBL_BOUND_ERR_CH3 0x80000000U
  681. #define PBL_BOUND_ERR_CH2 0x40000000U
  682. #define PBL_BOUND_ERR_CH1 0x20000000U
  683. #define PBL_BOUND_ERR_CH0 0x10000000U
  684. #define PM_RX_INT_CAUSE 0x8fdc
  685. #define ZERO_E_CMD_ERROR 0x00400000U
  686. #define PMRX_FRAMING_ERROR 0x003ffff0U
  687. #define OCSPI_PAR_ERROR 0x00000008U
  688. #define DB_OPTIONS_PAR_ERROR 0x00000004U
  689. #define IESPI_PAR_ERROR 0x00000002U
  690. #define E_PCMD_PAR_ERROR 0x00000001U
  691. #define PM_TX_INT_CAUSE 0x8ffc
  692. #define PCMD_LEN_OVFL0 0x80000000U
  693. #define PCMD_LEN_OVFL1 0x40000000U
  694. #define PCMD_LEN_OVFL2 0x20000000U
  695. #define ZERO_C_CMD_ERROR 0x10000000U
  696. #define PMTX_FRAMING_ERROR 0x0ffffff0U
  697. #define OESPI_PAR_ERROR 0x00000008U
  698. #define ICSPI_PAR_ERROR 0x00000002U
  699. #define C_PCMD_PAR_ERROR 0x00000001U
  700. #define MPS_PORT_STAT_TX_PORT_BYTES_L 0x400
  701. #define MPS_PORT_STAT_TX_PORT_BYTES_H 0x404
  702. #define MPS_PORT_STAT_TX_PORT_FRAMES_L 0x408
  703. #define MPS_PORT_STAT_TX_PORT_FRAMES_H 0x40c
  704. #define MPS_PORT_STAT_TX_PORT_BCAST_L 0x410
  705. #define MPS_PORT_STAT_TX_PORT_BCAST_H 0x414
  706. #define MPS_PORT_STAT_TX_PORT_MCAST_L 0x418
  707. #define MPS_PORT_STAT_TX_PORT_MCAST_H 0x41c
  708. #define MPS_PORT_STAT_TX_PORT_UCAST_L 0x420
  709. #define MPS_PORT_STAT_TX_PORT_UCAST_H 0x424
  710. #define MPS_PORT_STAT_TX_PORT_ERROR_L 0x428
  711. #define MPS_PORT_STAT_TX_PORT_ERROR_H 0x42c
  712. #define MPS_PORT_STAT_TX_PORT_64B_L 0x430
  713. #define MPS_PORT_STAT_TX_PORT_64B_H 0x434
  714. #define MPS_PORT_STAT_TX_PORT_65B_127B_L 0x438
  715. #define MPS_PORT_STAT_TX_PORT_65B_127B_H 0x43c
  716. #define MPS_PORT_STAT_TX_PORT_128B_255B_L 0x440
  717. #define MPS_PORT_STAT_TX_PORT_128B_255B_H 0x444
  718. #define MPS_PORT_STAT_TX_PORT_256B_511B_L 0x448
  719. #define MPS_PORT_STAT_TX_PORT_256B_511B_H 0x44c
  720. #define MPS_PORT_STAT_TX_PORT_512B_1023B_L 0x450
  721. #define MPS_PORT_STAT_TX_PORT_512B_1023B_H 0x454
  722. #define MPS_PORT_STAT_TX_PORT_1024B_1518B_L 0x458
  723. #define MPS_PORT_STAT_TX_PORT_1024B_1518B_H 0x45c
  724. #define MPS_PORT_STAT_TX_PORT_1519B_MAX_L 0x460
  725. #define MPS_PORT_STAT_TX_PORT_1519B_MAX_H 0x464
  726. #define MPS_PORT_STAT_TX_PORT_DROP_L 0x468
  727. #define MPS_PORT_STAT_TX_PORT_DROP_H 0x46c
  728. #define MPS_PORT_STAT_TX_PORT_PAUSE_L 0x470
  729. #define MPS_PORT_STAT_TX_PORT_PAUSE_H 0x474
  730. #define MPS_PORT_STAT_TX_PORT_PPP0_L 0x478
  731. #define MPS_PORT_STAT_TX_PORT_PPP0_H 0x47c
  732. #define MPS_PORT_STAT_TX_PORT_PPP1_L 0x480
  733. #define MPS_PORT_STAT_TX_PORT_PPP1_H 0x484
  734. #define MPS_PORT_STAT_TX_PORT_PPP2_L 0x488
  735. #define MPS_PORT_STAT_TX_PORT_PPP2_H 0x48c
  736. #define MPS_PORT_STAT_TX_PORT_PPP3_L 0x490
  737. #define MPS_PORT_STAT_TX_PORT_PPP3_H 0x494
  738. #define MPS_PORT_STAT_TX_PORT_PPP4_L 0x498
  739. #define MPS_PORT_STAT_TX_PORT_PPP4_H 0x49c
  740. #define MPS_PORT_STAT_TX_PORT_PPP5_L 0x4a0
  741. #define MPS_PORT_STAT_TX_PORT_PPP5_H 0x4a4
  742. #define MPS_PORT_STAT_TX_PORT_PPP6_L 0x4a8
  743. #define MPS_PORT_STAT_TX_PORT_PPP6_H 0x4ac
  744. #define MPS_PORT_STAT_TX_PORT_PPP7_L 0x4b0
  745. #define MPS_PORT_STAT_TX_PORT_PPP7_H 0x4b4
  746. #define MPS_PORT_STAT_LB_PORT_BYTES_L 0x4c0
  747. #define MPS_PORT_STAT_LB_PORT_BYTES_H 0x4c4
  748. #define MPS_PORT_STAT_LB_PORT_FRAMES_L 0x4c8
  749. #define MPS_PORT_STAT_LB_PORT_FRAMES_H 0x4cc
  750. #define MPS_PORT_STAT_LB_PORT_BCAST_L 0x4d0
  751. #define MPS_PORT_STAT_LB_PORT_BCAST_H 0x4d4
  752. #define MPS_PORT_STAT_LB_PORT_MCAST_L 0x4d8
  753. #define MPS_PORT_STAT_LB_PORT_MCAST_H 0x4dc
  754. #define MPS_PORT_STAT_LB_PORT_UCAST_L 0x4e0
  755. #define MPS_PORT_STAT_LB_PORT_UCAST_H 0x4e4
  756. #define MPS_PORT_STAT_LB_PORT_ERROR_L 0x4e8
  757. #define MPS_PORT_STAT_LB_PORT_ERROR_H 0x4ec
  758. #define MPS_PORT_STAT_LB_PORT_64B_L 0x4f0
  759. #define MPS_PORT_STAT_LB_PORT_64B_H 0x4f4
  760. #define MPS_PORT_STAT_LB_PORT_65B_127B_L 0x4f8
  761. #define MPS_PORT_STAT_LB_PORT_65B_127B_H 0x4fc
  762. #define MPS_PORT_STAT_LB_PORT_128B_255B_L 0x500
  763. #define MPS_PORT_STAT_LB_PORT_128B_255B_H 0x504
  764. #define MPS_PORT_STAT_LB_PORT_256B_511B_L 0x508
  765. #define MPS_PORT_STAT_LB_PORT_256B_511B_H 0x50c
  766. #define MPS_PORT_STAT_LB_PORT_512B_1023B_L 0x510
  767. #define MPS_PORT_STAT_LB_PORT_512B_1023B_H 0x514
  768. #define MPS_PORT_STAT_LB_PORT_1024B_1518B_L 0x518
  769. #define MPS_PORT_STAT_LB_PORT_1024B_1518B_H 0x51c
  770. #define MPS_PORT_STAT_LB_PORT_1519B_MAX_L 0x520
  771. #define MPS_PORT_STAT_LB_PORT_1519B_MAX_H 0x524
  772. #define MPS_PORT_STAT_LB_PORT_DROP_FRAMES 0x528
  773. #define MPS_PORT_STAT_RX_PORT_BYTES_L 0x540
  774. #define MPS_PORT_STAT_RX_PORT_BYTES_H 0x544
  775. #define MPS_PORT_STAT_RX_PORT_FRAMES_L 0x548
  776. #define MPS_PORT_STAT_RX_PORT_FRAMES_H 0x54c
  777. #define MPS_PORT_STAT_RX_PORT_BCAST_L 0x550
  778. #define MPS_PORT_STAT_RX_PORT_BCAST_H 0x554
  779. #define MPS_PORT_STAT_RX_PORT_MCAST_L 0x558
  780. #define MPS_PORT_STAT_RX_PORT_MCAST_H 0x55c
  781. #define MPS_PORT_STAT_RX_PORT_UCAST_L 0x560
  782. #define MPS_PORT_STAT_RX_PORT_UCAST_H 0x564
  783. #define MPS_PORT_STAT_RX_PORT_MTU_ERROR_L 0x568
  784. #define MPS_PORT_STAT_RX_PORT_MTU_ERROR_H 0x56c
  785. #define MPS_PORT_STAT_RX_PORT_MTU_CRC_ERROR_L 0x570
  786. #define MPS_PORT_STAT_RX_PORT_MTU_CRC_ERROR_H 0x574
  787. #define MPS_PORT_STAT_RX_PORT_CRC_ERROR_L 0x578
  788. #define MPS_PORT_STAT_RX_PORT_CRC_ERROR_H 0x57c
  789. #define MPS_PORT_STAT_RX_PORT_LEN_ERROR_L 0x580
  790. #define MPS_PORT_STAT_RX_PORT_LEN_ERROR_H 0x584
  791. #define MPS_PORT_STAT_RX_PORT_SYM_ERROR_L 0x588
  792. #define MPS_PORT_STAT_RX_PORT_SYM_ERROR_H 0x58c
  793. #define MPS_PORT_STAT_RX_PORT_64B_L 0x590
  794. #define MPS_PORT_STAT_RX_PORT_64B_H 0x594
  795. #define MPS_PORT_STAT_RX_PORT_65B_127B_L 0x598
  796. #define MPS_PORT_STAT_RX_PORT_65B_127B_H 0x59c
  797. #define MPS_PORT_STAT_RX_PORT_128B_255B_L 0x5a0
  798. #define MPS_PORT_STAT_RX_PORT_128B_255B_H 0x5a4
  799. #define MPS_PORT_STAT_RX_PORT_256B_511B_L 0x5a8
  800. #define MPS_PORT_STAT_RX_PORT_256B_511B_H 0x5ac
  801. #define MPS_PORT_STAT_RX_PORT_512B_1023B_L 0x5b0
  802. #define MPS_PORT_STAT_RX_PORT_512B_1023B_H 0x5b4
  803. #define MPS_PORT_STAT_RX_PORT_1024B_1518B_L 0x5b8
  804. #define MPS_PORT_STAT_RX_PORT_1024B_1518B_H 0x5bc
  805. #define MPS_PORT_STAT_RX_PORT_1519B_MAX_L 0x5c0
  806. #define MPS_PORT_STAT_RX_PORT_1519B_MAX_H 0x5c4
  807. #define MPS_PORT_STAT_RX_PORT_PAUSE_L 0x5c8
  808. #define MPS_PORT_STAT_RX_PORT_PAUSE_H 0x5cc
  809. #define MPS_PORT_STAT_RX_PORT_PPP0_L 0x5d0
  810. #define MPS_PORT_STAT_RX_PORT_PPP0_H 0x5d4
  811. #define MPS_PORT_STAT_RX_PORT_PPP1_L 0x5d8
  812. #define MPS_PORT_STAT_RX_PORT_PPP1_H 0x5dc
  813. #define MPS_PORT_STAT_RX_PORT_PPP2_L 0x5e0
  814. #define MPS_PORT_STAT_RX_PORT_PPP2_H 0x5e4
  815. #define MPS_PORT_STAT_RX_PORT_PPP3_L 0x5e8
  816. #define MPS_PORT_STAT_RX_PORT_PPP3_H 0x5ec
  817. #define MPS_PORT_STAT_RX_PORT_PPP4_L 0x5f0
  818. #define MPS_PORT_STAT_RX_PORT_PPP4_H 0x5f4
  819. #define MPS_PORT_STAT_RX_PORT_PPP5_L 0x5f8
  820. #define MPS_PORT_STAT_RX_PORT_PPP5_H 0x5fc
  821. #define MPS_PORT_STAT_RX_PORT_PPP6_L 0x600
  822. #define MPS_PORT_STAT_RX_PORT_PPP6_H 0x604
  823. #define MPS_PORT_STAT_RX_PORT_PPP7_L 0x608
  824. #define MPS_PORT_STAT_RX_PORT_PPP7_H 0x60c
  825. #define MPS_PORT_STAT_RX_PORT_LESS_64B_L 0x610
  826. #define MPS_PORT_STAT_RX_PORT_LESS_64B_H 0x614
  827. #define MAC_PORT_CFG2 0x818
  828. #define MAC_PORT_MAGIC_MACID_LO 0x824
  829. #define MAC_PORT_MAGIC_MACID_HI 0x828
  830. #define MAC_PORT_EPIO_DATA0 0x8c0
  831. #define MAC_PORT_EPIO_DATA1 0x8c4
  832. #define MAC_PORT_EPIO_DATA2 0x8c8
  833. #define MAC_PORT_EPIO_DATA3 0x8cc
  834. #define MAC_PORT_EPIO_OP 0x8d0
  835. #define MPS_CMN_CTL 0x9000
  836. #define NUMPORTS_MASK 0x00000003U
  837. #define NUMPORTS_SHIFT 0
  838. #define NUMPORTS_GET(x) (((x) & NUMPORTS_MASK) >> NUMPORTS_SHIFT)
  839. #define MPS_INT_CAUSE 0x9008
  840. #define STATINT 0x00000020U
  841. #define TXINT 0x00000010U
  842. #define RXINT 0x00000008U
  843. #define TRCINT 0x00000004U
  844. #define CLSINT 0x00000002U
  845. #define PLINT 0x00000001U
  846. #define MPS_TX_INT_CAUSE 0x9408
  847. #define PORTERR 0x00010000U
  848. #define FRMERR 0x00008000U
  849. #define SECNTERR 0x00004000U
  850. #define BUBBLE 0x00002000U
  851. #define TXDESCFIFO 0x00001e00U
  852. #define TXDATAFIFO 0x000001e0U
  853. #define NCSIFIFO 0x00000010U
  854. #define TPFIFO 0x0000000fU
  855. #define MPS_STAT_PERR_INT_CAUSE_SRAM 0x9614
  856. #define MPS_STAT_PERR_INT_CAUSE_TX_FIFO 0x9620
  857. #define MPS_STAT_PERR_INT_CAUSE_RX_FIFO 0x962c
  858. #define MPS_STAT_RX_BG_0_MAC_DROP_FRAME_L 0x9640
  859. #define MPS_STAT_RX_BG_0_MAC_DROP_FRAME_H 0x9644
  860. #define MPS_STAT_RX_BG_1_MAC_DROP_FRAME_L 0x9648
  861. #define MPS_STAT_RX_BG_1_MAC_DROP_FRAME_H 0x964c
  862. #define MPS_STAT_RX_BG_2_MAC_DROP_FRAME_L 0x9650
  863. #define MPS_STAT_RX_BG_2_MAC_DROP_FRAME_H 0x9654
  864. #define MPS_STAT_RX_BG_3_MAC_DROP_FRAME_L 0x9658
  865. #define MPS_STAT_RX_BG_3_MAC_DROP_FRAME_H 0x965c
  866. #define MPS_STAT_RX_BG_0_LB_DROP_FRAME_L 0x9660
  867. #define MPS_STAT_RX_BG_0_LB_DROP_FRAME_H 0x9664
  868. #define MPS_STAT_RX_BG_1_LB_DROP_FRAME_L 0x9668
  869. #define MPS_STAT_RX_BG_1_LB_DROP_FRAME_H 0x966c
  870. #define MPS_STAT_RX_BG_2_LB_DROP_FRAME_L 0x9670
  871. #define MPS_STAT_RX_BG_2_LB_DROP_FRAME_H 0x9674
  872. #define MPS_STAT_RX_BG_3_LB_DROP_FRAME_L 0x9678
  873. #define MPS_STAT_RX_BG_3_LB_DROP_FRAME_H 0x967c
  874. #define MPS_STAT_RX_BG_0_MAC_TRUNC_FRAME_L 0x9680
  875. #define MPS_STAT_RX_BG_0_MAC_TRUNC_FRAME_H 0x9684
  876. #define MPS_STAT_RX_BG_1_MAC_TRUNC_FRAME_L 0x9688
  877. #define MPS_STAT_RX_BG_1_MAC_TRUNC_FRAME_H 0x968c
  878. #define MPS_STAT_RX_BG_2_MAC_TRUNC_FRAME_L 0x9690
  879. #define MPS_STAT_RX_BG_2_MAC_TRUNC_FRAME_H 0x9694
  880. #define MPS_STAT_RX_BG_3_MAC_TRUNC_FRAME_L 0x9698
  881. #define MPS_STAT_RX_BG_3_MAC_TRUNC_FRAME_H 0x969c
  882. #define MPS_STAT_RX_BG_0_LB_TRUNC_FRAME_L 0x96a0
  883. #define MPS_STAT_RX_BG_0_LB_TRUNC_FRAME_H 0x96a4
  884. #define MPS_STAT_RX_BG_1_LB_TRUNC_FRAME_L 0x96a8
  885. #define MPS_STAT_RX_BG_1_LB_TRUNC_FRAME_H 0x96ac
  886. #define MPS_STAT_RX_BG_2_LB_TRUNC_FRAME_L 0x96b0
  887. #define MPS_STAT_RX_BG_2_LB_TRUNC_FRAME_H 0x96b4
  888. #define MPS_STAT_RX_BG_3_LB_TRUNC_FRAME_L 0x96b8
  889. #define MPS_STAT_RX_BG_3_LB_TRUNC_FRAME_H 0x96bc
  890. #define MPS_TRC_CFG 0x9800
  891. #define TRCFIFOEMPTY 0x00000010U
  892. #define TRCIGNOREDROPINPUT 0x00000008U
  893. #define TRCKEEPDUPLICATES 0x00000004U
  894. #define TRCEN 0x00000002U
  895. #define TRCMULTIFILTER 0x00000001U
  896. #define MPS_TRC_RSS_CONTROL 0x9808
  897. #define MPS_T5_TRC_RSS_CONTROL 0xa00c
  898. #define RSSCONTROL_MASK 0x00ff0000U
  899. #define RSSCONTROL_SHIFT 16
  900. #define RSSCONTROL(x) ((x) << RSSCONTROL_SHIFT)
  901. #define QUEUENUMBER_MASK 0x0000ffffU
  902. #define QUEUENUMBER_SHIFT 0
  903. #define QUEUENUMBER(x) ((x) << QUEUENUMBER_SHIFT)
  904. #define MPS_TRC_FILTER_MATCH_CTL_A 0x9810
  905. #define TFINVERTMATCH 0x01000000U
  906. #define TFPKTTOOLARGE 0x00800000U
  907. #define TFEN 0x00400000U
  908. #define TFPORT_MASK 0x003c0000U
  909. #define TFPORT_SHIFT 18
  910. #define TFPORT(x) ((x) << TFPORT_SHIFT)
  911. #define TFPORT_GET(x) (((x) & TFPORT_MASK) >> TFPORT_SHIFT)
  912. #define TFDROP 0x00020000U
  913. #define TFSOPEOPERR 0x00010000U
  914. #define TFLENGTH_MASK 0x00001f00U
  915. #define TFLENGTH_SHIFT 8
  916. #define TFLENGTH(x) ((x) << TFLENGTH_SHIFT)
  917. #define TFLENGTH_GET(x) (((x) & TFLENGTH_MASK) >> TFLENGTH_SHIFT)
  918. #define TFOFFSET_MASK 0x0000001fU
  919. #define TFOFFSET_SHIFT 0
  920. #define TFOFFSET(x) ((x) << TFOFFSET_SHIFT)
  921. #define TFOFFSET_GET(x) (((x) & TFOFFSET_MASK) >> TFOFFSET_SHIFT)
  922. #define MPS_TRC_FILTER_MATCH_CTL_B 0x9820
  923. #define TFMINPKTSIZE_MASK 0x01ff0000U
  924. #define TFMINPKTSIZE_SHIFT 16
  925. #define TFMINPKTSIZE(x) ((x) << TFMINPKTSIZE_SHIFT)
  926. #define TFMINPKTSIZE_GET(x) (((x) & TFMINPKTSIZE_MASK) >> TFMINPKTSIZE_SHIFT)
  927. #define TFCAPTUREMAX_MASK 0x00003fffU
  928. #define TFCAPTUREMAX_SHIFT 0
  929. #define TFCAPTUREMAX(x) ((x) << TFCAPTUREMAX_SHIFT)
  930. #define TFCAPTUREMAX_GET(x) (((x) & TFCAPTUREMAX_MASK) >> TFCAPTUREMAX_SHIFT)
  931. #define MPS_TRC_INT_CAUSE 0x985c
  932. #define MISCPERR 0x00000100U
  933. #define PKTFIFO 0x000000f0U
  934. #define FILTMEM 0x0000000fU
  935. #define MPS_TRC_FILTER0_MATCH 0x9c00
  936. #define MPS_TRC_FILTER0_DONT_CARE 0x9c80
  937. #define MPS_TRC_FILTER1_MATCH 0x9d00
  938. #define MPS_CLS_INT_CAUSE 0xd028
  939. #define PLERRENB 0x00000008U
  940. #define HASHSRAM 0x00000004U
  941. #define MATCHTCAM 0x00000002U
  942. #define MATCHSRAM 0x00000001U
  943. #define MPS_RX_PERR_INT_CAUSE 0x11074
  944. #define CPL_INTR_CAUSE 0x19054
  945. #define CIM_OP_MAP_PERR 0x00000020U
  946. #define CIM_OVFL_ERROR 0x00000010U
  947. #define TP_FRAMING_ERROR 0x00000008U
  948. #define SGE_FRAMING_ERROR 0x00000004U
  949. #define CIM_FRAMING_ERROR 0x00000002U
  950. #define ZERO_SWITCH_ERROR 0x00000001U
  951. #define SMB_INT_CAUSE 0x19090
  952. #define MSTTXFIFOPARINT 0x00200000U
  953. #define MSTRXFIFOPARINT 0x00100000U
  954. #define SLVFIFOPARINT 0x00080000U
  955. #define ULP_RX_INT_CAUSE 0x19158
  956. #define ULP_RX_ISCSI_TAGMASK 0x19164
  957. #define ULP_RX_ISCSI_PSZ 0x19168
  958. #define HPZ3_MASK 0x0f000000U
  959. #define HPZ3_SHIFT 24
  960. #define HPZ3(x) ((x) << HPZ3_SHIFT)
  961. #define HPZ2_MASK 0x000f0000U
  962. #define HPZ2_SHIFT 16
  963. #define HPZ2(x) ((x) << HPZ2_SHIFT)
  964. #define HPZ1_MASK 0x00000f00U
  965. #define HPZ1_SHIFT 8
  966. #define HPZ1(x) ((x) << HPZ1_SHIFT)
  967. #define HPZ0_MASK 0x0000000fU
  968. #define HPZ0_SHIFT 0
  969. #define HPZ0(x) ((x) << HPZ0_SHIFT)
  970. #define ULP_RX_TDDP_PSZ 0x19178
  971. #define SF_DATA 0x193f8
  972. #define SF_OP 0x193fc
  973. #define SF_BUSY 0x80000000U
  974. #define SF_LOCK 0x00000010U
  975. #define SF_CONT 0x00000008U
  976. #define BYTECNT_MASK 0x00000006U
  977. #define BYTECNT_SHIFT 1
  978. #define BYTECNT(x) ((x) << BYTECNT_SHIFT)
  979. #define OP_WR 0x00000001U
  980. #define PL_PF_INT_CAUSE 0x3c0
  981. #define PFSW 0x00000008U
  982. #define PFSGE 0x00000004U
  983. #define PFCIM 0x00000002U
  984. #define PFMPS 0x00000001U
  985. #define PL_PF_INT_ENABLE 0x3c4
  986. #define PL_PF_CTL 0x3c8
  987. #define SWINT 0x00000001U
  988. #define PL_WHOAMI 0x19400
  989. #define SOURCEPF_MASK 0x00000700U
  990. #define SOURCEPF_SHIFT 8
  991. #define SOURCEPF(x) ((x) << SOURCEPF_SHIFT)
  992. #define SOURCEPF_GET(x) (((x) & SOURCEPF_MASK) >> SOURCEPF_SHIFT)
  993. #define ISVF 0x00000080U
  994. #define VFID_MASK 0x0000007fU
  995. #define VFID_SHIFT 0
  996. #define VFID(x) ((x) << VFID_SHIFT)
  997. #define VFID_GET(x) (((x) & VFID_MASK) >> VFID_SHIFT)
  998. #define PL_INT_CAUSE 0x1940c
  999. #define ULP_TX 0x08000000U
  1000. #define SGE 0x04000000U
  1001. #define HMA 0x02000000U
  1002. #define CPL_SWITCH 0x01000000U
  1003. #define ULP_RX 0x00800000U
  1004. #define PM_RX 0x00400000U
  1005. #define PM_TX 0x00200000U
  1006. #define MA 0x00100000U
  1007. #define TP 0x00080000U
  1008. #define LE 0x00040000U
  1009. #define EDC1 0x00020000U
  1010. #define EDC0 0x00010000U
  1011. #define MC 0x00008000U
  1012. #define PCIE 0x00004000U
  1013. #define PMU 0x00002000U
  1014. #define XGMAC_KR1 0x00001000U
  1015. #define XGMAC_KR0 0x00000800U
  1016. #define XGMAC1 0x00000400U
  1017. #define XGMAC0 0x00000200U
  1018. #define SMB 0x00000100U
  1019. #define SF 0x00000080U
  1020. #define PL 0x00000040U
  1021. #define NCSI 0x00000020U
  1022. #define MPS 0x00000010U
  1023. #define MI 0x00000008U
  1024. #define DBG 0x00000004U
  1025. #define I2CM 0x00000002U
  1026. #define CIM 0x00000001U
  1027. #define MC1 0x31
  1028. #define PL_INT_ENABLE 0x19410
  1029. #define PL_INT_MAP0 0x19414
  1030. #define PL_RST 0x19428
  1031. #define PIORST 0x00000002U
  1032. #define PIORSTMODE 0x00000001U
  1033. #define PL_PL_INT_CAUSE 0x19430
  1034. #define FATALPERR 0x00000010U
  1035. #define PERRVFID 0x00000001U
  1036. #define PL_REV 0x1943c
  1037. #define S_REV 0
  1038. #define M_REV 0xfU
  1039. #define V_REV(x) ((x) << S_REV)
  1040. #define G_REV(x) (((x) >> S_REV) & M_REV)
  1041. #define LE_DB_CONFIG 0x19c04
  1042. #define HASHEN 0x00100000U
  1043. #define LE_DB_SERVER_INDEX 0x19c18
  1044. #define LE_DB_ACT_CNT_IPV4 0x19c20
  1045. #define LE_DB_ACT_CNT_IPV6 0x19c24
  1046. #define LE_DB_INT_CAUSE 0x19c3c
  1047. #define REQQPARERR 0x00010000U
  1048. #define UNKNOWNCMD 0x00008000U
  1049. #define PARITYERR 0x00000040U
  1050. #define LIPMISS 0x00000020U
  1051. #define LIP0 0x00000010U
  1052. #define LE_DB_TID_HASHBASE 0x19df8
  1053. #define NCSI_INT_CAUSE 0x1a0d8
  1054. #define CIM_DM_PRTY_ERR 0x00000100U
  1055. #define MPS_DM_PRTY_ERR 0x00000080U
  1056. #define TXFIFO_PRTY_ERR 0x00000002U
  1057. #define RXFIFO_PRTY_ERR 0x00000001U
  1058. #define XGMAC_PORT_CFG2 0x1018
  1059. #define PATEN 0x00040000U
  1060. #define MAGICEN 0x00020000U
  1061. #define XGMAC_PORT_MAGIC_MACID_LO 0x1024
  1062. #define XGMAC_PORT_MAGIC_MACID_HI 0x1028
  1063. #define XGMAC_PORT_EPIO_DATA0 0x10c0
  1064. #define XGMAC_PORT_EPIO_DATA1 0x10c4
  1065. #define XGMAC_PORT_EPIO_DATA2 0x10c8
  1066. #define XGMAC_PORT_EPIO_DATA3 0x10cc
  1067. #define XGMAC_PORT_EPIO_OP 0x10d0
  1068. #define EPIOWR 0x00000100U
  1069. #define ADDRESS_MASK 0x000000ffU
  1070. #define ADDRESS_SHIFT 0
  1071. #define ADDRESS(x) ((x) << ADDRESS_SHIFT)
  1072. #define MAC_PORT_INT_CAUSE 0x8dc
  1073. #define XGMAC_PORT_INT_CAUSE 0x10dc
  1074. #define A_TP_TX_MOD_QUEUE_REQ_MAP 0x7e28
  1075. #define A_TP_TX_MOD_CHANNEL_WEIGHT 0x7e34
  1076. #define S_TX_MOD_QUEUE_REQ_MAP 0
  1077. #define M_TX_MOD_QUEUE_REQ_MAP 0xffffU
  1078. #define V_TX_MOD_QUEUE_REQ_MAP(x) ((x) << S_TX_MOD_QUEUE_REQ_MAP)
  1079. #define A_TP_TX_MOD_QUEUE_WEIGHT0 0x7e30
  1080. #define S_TX_MODQ_WEIGHT3 24
  1081. #define M_TX_MODQ_WEIGHT3 0xffU
  1082. #define V_TX_MODQ_WEIGHT3(x) ((x) << S_TX_MODQ_WEIGHT3)
  1083. #define S_TX_MODQ_WEIGHT2 16
  1084. #define M_TX_MODQ_WEIGHT2 0xffU
  1085. #define V_TX_MODQ_WEIGHT2(x) ((x) << S_TX_MODQ_WEIGHT2)
  1086. #define S_TX_MODQ_WEIGHT1 8
  1087. #define M_TX_MODQ_WEIGHT1 0xffU
  1088. #define V_TX_MODQ_WEIGHT1(x) ((x) << S_TX_MODQ_WEIGHT1)
  1089. #define S_TX_MODQ_WEIGHT0 0
  1090. #define M_TX_MODQ_WEIGHT0 0xffU
  1091. #define V_TX_MODQ_WEIGHT0(x) ((x) << S_TX_MODQ_WEIGHT0)
  1092. #define A_TP_TX_SCHED_HDR 0x23
  1093. #define A_TP_TX_SCHED_FIFO 0x24
  1094. #define A_TP_TX_SCHED_PCMD 0x25
  1095. #define S_VNIC 11
  1096. #define V_VNIC(x) ((x) << S_VNIC)
  1097. #define F_VNIC V_VNIC(1U)
  1098. #define S_FRAGMENTATION 9
  1099. #define V_FRAGMENTATION(x) ((x) << S_FRAGMENTATION)
  1100. #define F_FRAGMENTATION V_FRAGMENTATION(1U)
  1101. #define S_MPSHITTYPE 8
  1102. #define V_MPSHITTYPE(x) ((x) << S_MPSHITTYPE)
  1103. #define F_MPSHITTYPE V_MPSHITTYPE(1U)
  1104. #define S_MACMATCH 7
  1105. #define V_MACMATCH(x) ((x) << S_MACMATCH)
  1106. #define F_MACMATCH V_MACMATCH(1U)
  1107. #define S_ETHERTYPE 6
  1108. #define V_ETHERTYPE(x) ((x) << S_ETHERTYPE)
  1109. #define F_ETHERTYPE V_ETHERTYPE(1U)
  1110. #define S_PROTOCOL 5
  1111. #define V_PROTOCOL(x) ((x) << S_PROTOCOL)
  1112. #define F_PROTOCOL V_PROTOCOL(1U)
  1113. #define S_TOS 4
  1114. #define V_TOS(x) ((x) << S_TOS)
  1115. #define F_TOS V_TOS(1U)
  1116. #define S_VLAN 3
  1117. #define V_VLAN(x) ((x) << S_VLAN)
  1118. #define F_VLAN V_VLAN(1U)
  1119. #define S_VNIC_ID 2
  1120. #define V_VNIC_ID(x) ((x) << S_VNIC_ID)
  1121. #define F_VNIC_ID V_VNIC_ID(1U)
  1122. #define S_PORT 1
  1123. #define V_PORT(x) ((x) << S_PORT)
  1124. #define F_PORT V_PORT(1U)
  1125. #define S_FCOE 0
  1126. #define V_FCOE(x) ((x) << S_FCOE)
  1127. #define F_FCOE V_FCOE(1U)
  1128. #define NUM_MPS_CLS_SRAM_L_INSTANCES 336
  1129. #define NUM_MPS_T5_CLS_SRAM_L_INSTANCES 512
  1130. #define T5_PORT0_BASE 0x30000
  1131. #define T5_PORT_STRIDE 0x4000
  1132. #define T5_PORT_BASE(idx) (T5_PORT0_BASE + (idx) * T5_PORT_STRIDE)
  1133. #define T5_PORT_REG(idx, reg) (T5_PORT_BASE(idx) + (reg))
  1134. #define MC_0_BASE_ADDR 0x40000
  1135. #define MC_1_BASE_ADDR 0x48000
  1136. #define MC_STRIDE (MC_1_BASE_ADDR - MC_0_BASE_ADDR)
  1137. #define MC_REG(reg, idx) (reg + MC_STRIDE * idx)
  1138. #define MC_P_BIST_CMD 0x41400
  1139. #define MC_P_BIST_CMD_ADDR 0x41404
  1140. #define MC_P_BIST_CMD_LEN 0x41408
  1141. #define MC_P_BIST_DATA_PATTERN 0x4140c
  1142. #define MC_P_BIST_STATUS_RDATA 0x41488
  1143. #define EDC_T50_BASE_ADDR 0x50000
  1144. #define EDC_H_BIST_CMD 0x50004
  1145. #define EDC_H_BIST_CMD_ADDR 0x50008
  1146. #define EDC_H_BIST_CMD_LEN 0x5000c
  1147. #define EDC_H_BIST_DATA_PATTERN 0x50010
  1148. #define EDC_H_BIST_STATUS_RDATA 0x50028
  1149. #define EDC_T51_BASE_ADDR 0x50800
  1150. #define EDC_STRIDE_T5 (EDC_T51_BASE_ADDR - EDC_T50_BASE_ADDR)
  1151. #define EDC_REG_T5(reg, idx) (reg + EDC_STRIDE_T5 * idx)
  1152. #define A_PL_VF_REV 0x4
  1153. #define A_PL_VF_WHOAMI 0x0
  1154. #define A_PL_VF_REVISION 0x8
  1155. #define S_CHIPID 4
  1156. #define M_CHIPID 0xfU
  1157. #define V_CHIPID(x) ((x) << S_CHIPID)
  1158. #define G_CHIPID(x) (((x) >> S_CHIPID) & M_CHIPID)
  1159. /* TP_VLAN_PRI_MAP controls which subset of fields will be present in the
  1160. * Compressed Filter Tuple for LE filters. Each bit set in TP_VLAN_PRI_MAP
  1161. * selects for a particular field being present. These fields, when present
  1162. * in the Compressed Filter Tuple, have the following widths in bits.
  1163. */
  1164. #define W_FT_FCOE 1
  1165. #define W_FT_PORT 3
  1166. #define W_FT_VNIC_ID 17
  1167. #define W_FT_VLAN 17
  1168. #define W_FT_TOS 8
  1169. #define W_FT_PROTOCOL 8
  1170. #define W_FT_ETHERTYPE 16
  1171. #define W_FT_MACMATCH 9
  1172. #define W_FT_MPSHITTYPE 3
  1173. #define W_FT_FRAGMENTATION 1
  1174. /* Some of the Compressed Filter Tuple fields have internal structure. These
  1175. * bit shifts/masks describe those structures. All shifts are relative to the
  1176. * base position of the fields within the Compressed Filter Tuple
  1177. */
  1178. #define S_FT_VLAN_VLD 16
  1179. #define V_FT_VLAN_VLD(x) ((x) << S_FT_VLAN_VLD)
  1180. #define F_FT_VLAN_VLD V_FT_VLAN_VLD(1U)
  1181. #define S_FT_VNID_ID_VF 0
  1182. #define V_FT_VNID_ID_VF(x) ((x) << S_FT_VNID_ID_VF)
  1183. #define S_FT_VNID_ID_PF 7
  1184. #define V_FT_VNID_ID_PF(x) ((x) << S_FT_VNID_ID_PF)
  1185. #define S_FT_VNID_ID_VLD 16
  1186. #define V_FT_VNID_ID_VLD(x) ((x) << S_FT_VNID_ID_VLD)
  1187. #endif /* __T4_REGS_H */