cvmx-ipd-defs.h 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877
  1. /***********************license start***************
  2. * Author: Cavium Networks
  3. *
  4. * Contact: support@caviumnetworks.com
  5. * This file is part of the OCTEON SDK
  6. *
  7. * Copyright (c) 2003-2008 Cavium Networks
  8. *
  9. * This file is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License, Version 2, as
  11. * published by the Free Software Foundation.
  12. *
  13. * This file is distributed in the hope that it will be useful, but
  14. * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
  15. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
  16. * NONINFRINGEMENT. See the GNU General Public License for more
  17. * details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with this file; if not, write to the Free Software
  21. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  22. * or visit http://www.gnu.org/licenses/.
  23. *
  24. * This file may also be available under a different license from Cavium.
  25. * Contact Cavium Networks for more information
  26. ***********************license end**************************************/
  27. #ifndef __CVMX_IPD_DEFS_H__
  28. #define __CVMX_IPD_DEFS_H__
  29. #define CVMX_IPD_1ST_MBUFF_SKIP \
  30. CVMX_ADD_IO_SEG(0x00014F0000000000ull)
  31. #define CVMX_IPD_1st_NEXT_PTR_BACK \
  32. CVMX_ADD_IO_SEG(0x00014F0000000150ull)
  33. #define CVMX_IPD_2nd_NEXT_PTR_BACK \
  34. CVMX_ADD_IO_SEG(0x00014F0000000158ull)
  35. #define CVMX_IPD_BIST_STATUS \
  36. CVMX_ADD_IO_SEG(0x00014F00000007F8ull)
  37. #define CVMX_IPD_BP_PRT_RED_END \
  38. CVMX_ADD_IO_SEG(0x00014F0000000328ull)
  39. #define CVMX_IPD_CLK_COUNT \
  40. CVMX_ADD_IO_SEG(0x00014F0000000338ull)
  41. #define CVMX_IPD_CTL_STATUS \
  42. CVMX_ADD_IO_SEG(0x00014F0000000018ull)
  43. #define CVMX_IPD_INT_ENB \
  44. CVMX_ADD_IO_SEG(0x00014F0000000160ull)
  45. #define CVMX_IPD_INT_SUM \
  46. CVMX_ADD_IO_SEG(0x00014F0000000168ull)
  47. #define CVMX_IPD_NOT_1ST_MBUFF_SKIP \
  48. CVMX_ADD_IO_SEG(0x00014F0000000008ull)
  49. #define CVMX_IPD_PACKET_MBUFF_SIZE \
  50. CVMX_ADD_IO_SEG(0x00014F0000000010ull)
  51. #define CVMX_IPD_PKT_PTR_VALID \
  52. CVMX_ADD_IO_SEG(0x00014F0000000358ull)
  53. #define CVMX_IPD_PORTX_BP_PAGE_CNT(offset) \
  54. CVMX_ADD_IO_SEG(0x00014F0000000028ull + (((offset) & 63) * 8))
  55. #define CVMX_IPD_PORTX_BP_PAGE_CNT2(offset) \
  56. CVMX_ADD_IO_SEG(0x00014F0000000368ull + (((offset) & 63) * 8) - 8 * 36)
  57. #define CVMX_IPD_PORT_BP_COUNTERS2_PAIRX(offset) \
  58. CVMX_ADD_IO_SEG(0x00014F0000000388ull + (((offset) & 63) * 8) - 8 * 36)
  59. #define CVMX_IPD_PORT_BP_COUNTERS_PAIRX(offset) \
  60. CVMX_ADD_IO_SEG(0x00014F00000001B8ull + (((offset) & 63) * 8))
  61. #define CVMX_IPD_PORT_QOS_INTX(offset) \
  62. CVMX_ADD_IO_SEG(0x00014F0000000808ull + (((offset) & 7) * 8))
  63. #define CVMX_IPD_PORT_QOS_INT_ENBX(offset) \
  64. CVMX_ADD_IO_SEG(0x00014F0000000848ull + (((offset) & 7) * 8))
  65. #define CVMX_IPD_PORT_QOS_X_CNT(offset) \
  66. CVMX_ADD_IO_SEG(0x00014F0000000888ull + (((offset) & 511) * 8))
  67. #define CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL \
  68. CVMX_ADD_IO_SEG(0x00014F0000000348ull)
  69. #define CVMX_IPD_PRC_PORT_PTR_FIFO_CTL \
  70. CVMX_ADD_IO_SEG(0x00014F0000000350ull)
  71. #define CVMX_IPD_PTR_COUNT \
  72. CVMX_ADD_IO_SEG(0x00014F0000000320ull)
  73. #define CVMX_IPD_PWP_PTR_FIFO_CTL \
  74. CVMX_ADD_IO_SEG(0x00014F0000000340ull)
  75. #define CVMX_IPD_QOS0_RED_MARKS \
  76. CVMX_ADD_IO_SEG(0x00014F0000000178ull)
  77. #define CVMX_IPD_QOS1_RED_MARKS \
  78. CVMX_ADD_IO_SEG(0x00014F0000000180ull)
  79. #define CVMX_IPD_QOS2_RED_MARKS \
  80. CVMX_ADD_IO_SEG(0x00014F0000000188ull)
  81. #define CVMX_IPD_QOS3_RED_MARKS \
  82. CVMX_ADD_IO_SEG(0x00014F0000000190ull)
  83. #define CVMX_IPD_QOS4_RED_MARKS \
  84. CVMX_ADD_IO_SEG(0x00014F0000000198ull)
  85. #define CVMX_IPD_QOS5_RED_MARKS \
  86. CVMX_ADD_IO_SEG(0x00014F00000001A0ull)
  87. #define CVMX_IPD_QOS6_RED_MARKS \
  88. CVMX_ADD_IO_SEG(0x00014F00000001A8ull)
  89. #define CVMX_IPD_QOS7_RED_MARKS \
  90. CVMX_ADD_IO_SEG(0x00014F00000001B0ull)
  91. #define CVMX_IPD_QOSX_RED_MARKS(offset) \
  92. CVMX_ADD_IO_SEG(0x00014F0000000178ull + (((offset) & 7) * 8))
  93. #define CVMX_IPD_QUE0_FREE_PAGE_CNT \
  94. CVMX_ADD_IO_SEG(0x00014F0000000330ull)
  95. #define CVMX_IPD_RED_PORT_ENABLE \
  96. CVMX_ADD_IO_SEG(0x00014F00000002D8ull)
  97. #define CVMX_IPD_RED_PORT_ENABLE2 \
  98. CVMX_ADD_IO_SEG(0x00014F00000003A8ull)
  99. #define CVMX_IPD_RED_QUE0_PARAM \
  100. CVMX_ADD_IO_SEG(0x00014F00000002E0ull)
  101. #define CVMX_IPD_RED_QUE1_PARAM \
  102. CVMX_ADD_IO_SEG(0x00014F00000002E8ull)
  103. #define CVMX_IPD_RED_QUE2_PARAM \
  104. CVMX_ADD_IO_SEG(0x00014F00000002F0ull)
  105. #define CVMX_IPD_RED_QUE3_PARAM \
  106. CVMX_ADD_IO_SEG(0x00014F00000002F8ull)
  107. #define CVMX_IPD_RED_QUE4_PARAM \
  108. CVMX_ADD_IO_SEG(0x00014F0000000300ull)
  109. #define CVMX_IPD_RED_QUE5_PARAM \
  110. CVMX_ADD_IO_SEG(0x00014F0000000308ull)
  111. #define CVMX_IPD_RED_QUE6_PARAM \
  112. CVMX_ADD_IO_SEG(0x00014F0000000310ull)
  113. #define CVMX_IPD_RED_QUE7_PARAM \
  114. CVMX_ADD_IO_SEG(0x00014F0000000318ull)
  115. #define CVMX_IPD_RED_QUEX_PARAM(offset) \
  116. CVMX_ADD_IO_SEG(0x00014F00000002E0ull + (((offset) & 7) * 8))
  117. #define CVMX_IPD_SUB_PORT_BP_PAGE_CNT \
  118. CVMX_ADD_IO_SEG(0x00014F0000000148ull)
  119. #define CVMX_IPD_SUB_PORT_FCS \
  120. CVMX_ADD_IO_SEG(0x00014F0000000170ull)
  121. #define CVMX_IPD_SUB_PORT_QOS_CNT \
  122. CVMX_ADD_IO_SEG(0x00014F0000000800ull)
  123. #define CVMX_IPD_WQE_FPA_QUEUE \
  124. CVMX_ADD_IO_SEG(0x00014F0000000020ull)
  125. #define CVMX_IPD_WQE_PTR_VALID \
  126. CVMX_ADD_IO_SEG(0x00014F0000000360ull)
  127. union cvmx_ipd_1st_mbuff_skip {
  128. uint64_t u64;
  129. struct cvmx_ipd_1st_mbuff_skip_s {
  130. uint64_t reserved_6_63:58;
  131. uint64_t skip_sz:6;
  132. } s;
  133. struct cvmx_ipd_1st_mbuff_skip_s cn30xx;
  134. struct cvmx_ipd_1st_mbuff_skip_s cn31xx;
  135. struct cvmx_ipd_1st_mbuff_skip_s cn38xx;
  136. struct cvmx_ipd_1st_mbuff_skip_s cn38xxp2;
  137. struct cvmx_ipd_1st_mbuff_skip_s cn50xx;
  138. struct cvmx_ipd_1st_mbuff_skip_s cn52xx;
  139. struct cvmx_ipd_1st_mbuff_skip_s cn52xxp1;
  140. struct cvmx_ipd_1st_mbuff_skip_s cn56xx;
  141. struct cvmx_ipd_1st_mbuff_skip_s cn56xxp1;
  142. struct cvmx_ipd_1st_mbuff_skip_s cn58xx;
  143. struct cvmx_ipd_1st_mbuff_skip_s cn58xxp1;
  144. };
  145. union cvmx_ipd_1st_next_ptr_back {
  146. uint64_t u64;
  147. struct cvmx_ipd_1st_next_ptr_back_s {
  148. uint64_t reserved_4_63:60;
  149. uint64_t back:4;
  150. } s;
  151. struct cvmx_ipd_1st_next_ptr_back_s cn30xx;
  152. struct cvmx_ipd_1st_next_ptr_back_s cn31xx;
  153. struct cvmx_ipd_1st_next_ptr_back_s cn38xx;
  154. struct cvmx_ipd_1st_next_ptr_back_s cn38xxp2;
  155. struct cvmx_ipd_1st_next_ptr_back_s cn50xx;
  156. struct cvmx_ipd_1st_next_ptr_back_s cn52xx;
  157. struct cvmx_ipd_1st_next_ptr_back_s cn52xxp1;
  158. struct cvmx_ipd_1st_next_ptr_back_s cn56xx;
  159. struct cvmx_ipd_1st_next_ptr_back_s cn56xxp1;
  160. struct cvmx_ipd_1st_next_ptr_back_s cn58xx;
  161. struct cvmx_ipd_1st_next_ptr_back_s cn58xxp1;
  162. };
  163. union cvmx_ipd_2nd_next_ptr_back {
  164. uint64_t u64;
  165. struct cvmx_ipd_2nd_next_ptr_back_s {
  166. uint64_t reserved_4_63:60;
  167. uint64_t back:4;
  168. } s;
  169. struct cvmx_ipd_2nd_next_ptr_back_s cn30xx;
  170. struct cvmx_ipd_2nd_next_ptr_back_s cn31xx;
  171. struct cvmx_ipd_2nd_next_ptr_back_s cn38xx;
  172. struct cvmx_ipd_2nd_next_ptr_back_s cn38xxp2;
  173. struct cvmx_ipd_2nd_next_ptr_back_s cn50xx;
  174. struct cvmx_ipd_2nd_next_ptr_back_s cn52xx;
  175. struct cvmx_ipd_2nd_next_ptr_back_s cn52xxp1;
  176. struct cvmx_ipd_2nd_next_ptr_back_s cn56xx;
  177. struct cvmx_ipd_2nd_next_ptr_back_s cn56xxp1;
  178. struct cvmx_ipd_2nd_next_ptr_back_s cn58xx;
  179. struct cvmx_ipd_2nd_next_ptr_back_s cn58xxp1;
  180. };
  181. union cvmx_ipd_bist_status {
  182. uint64_t u64;
  183. struct cvmx_ipd_bist_status_s {
  184. uint64_t reserved_18_63:46;
  185. uint64_t csr_mem:1;
  186. uint64_t csr_ncmd:1;
  187. uint64_t pwq_wqed:1;
  188. uint64_t pwq_wp1:1;
  189. uint64_t pwq_pow:1;
  190. uint64_t ipq_pbe1:1;
  191. uint64_t ipq_pbe0:1;
  192. uint64_t pbm3:1;
  193. uint64_t pbm2:1;
  194. uint64_t pbm1:1;
  195. uint64_t pbm0:1;
  196. uint64_t pbm_word:1;
  197. uint64_t pwq1:1;
  198. uint64_t pwq0:1;
  199. uint64_t prc_off:1;
  200. uint64_t ipd_old:1;
  201. uint64_t ipd_new:1;
  202. uint64_t pwp:1;
  203. } s;
  204. struct cvmx_ipd_bist_status_cn30xx {
  205. uint64_t reserved_16_63:48;
  206. uint64_t pwq_wqed:1;
  207. uint64_t pwq_wp1:1;
  208. uint64_t pwq_pow:1;
  209. uint64_t ipq_pbe1:1;
  210. uint64_t ipq_pbe0:1;
  211. uint64_t pbm3:1;
  212. uint64_t pbm2:1;
  213. uint64_t pbm1:1;
  214. uint64_t pbm0:1;
  215. uint64_t pbm_word:1;
  216. uint64_t pwq1:1;
  217. uint64_t pwq0:1;
  218. uint64_t prc_off:1;
  219. uint64_t ipd_old:1;
  220. uint64_t ipd_new:1;
  221. uint64_t pwp:1;
  222. } cn30xx;
  223. struct cvmx_ipd_bist_status_cn30xx cn31xx;
  224. struct cvmx_ipd_bist_status_cn30xx cn38xx;
  225. struct cvmx_ipd_bist_status_cn30xx cn38xxp2;
  226. struct cvmx_ipd_bist_status_cn30xx cn50xx;
  227. struct cvmx_ipd_bist_status_s cn52xx;
  228. struct cvmx_ipd_bist_status_s cn52xxp1;
  229. struct cvmx_ipd_bist_status_s cn56xx;
  230. struct cvmx_ipd_bist_status_s cn56xxp1;
  231. struct cvmx_ipd_bist_status_cn30xx cn58xx;
  232. struct cvmx_ipd_bist_status_cn30xx cn58xxp1;
  233. };
  234. union cvmx_ipd_bp_prt_red_end {
  235. uint64_t u64;
  236. struct cvmx_ipd_bp_prt_red_end_s {
  237. uint64_t reserved_40_63:24;
  238. uint64_t prt_enb:40;
  239. } s;
  240. struct cvmx_ipd_bp_prt_red_end_cn30xx {
  241. uint64_t reserved_36_63:28;
  242. uint64_t prt_enb:36;
  243. } cn30xx;
  244. struct cvmx_ipd_bp_prt_red_end_cn30xx cn31xx;
  245. struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xx;
  246. struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xxp2;
  247. struct cvmx_ipd_bp_prt_red_end_cn30xx cn50xx;
  248. struct cvmx_ipd_bp_prt_red_end_s cn52xx;
  249. struct cvmx_ipd_bp_prt_red_end_s cn52xxp1;
  250. struct cvmx_ipd_bp_prt_red_end_s cn56xx;
  251. struct cvmx_ipd_bp_prt_red_end_s cn56xxp1;
  252. struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xx;
  253. struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xxp1;
  254. };
  255. union cvmx_ipd_clk_count {
  256. uint64_t u64;
  257. struct cvmx_ipd_clk_count_s {
  258. uint64_t clk_cnt:64;
  259. } s;
  260. struct cvmx_ipd_clk_count_s cn30xx;
  261. struct cvmx_ipd_clk_count_s cn31xx;
  262. struct cvmx_ipd_clk_count_s cn38xx;
  263. struct cvmx_ipd_clk_count_s cn38xxp2;
  264. struct cvmx_ipd_clk_count_s cn50xx;
  265. struct cvmx_ipd_clk_count_s cn52xx;
  266. struct cvmx_ipd_clk_count_s cn52xxp1;
  267. struct cvmx_ipd_clk_count_s cn56xx;
  268. struct cvmx_ipd_clk_count_s cn56xxp1;
  269. struct cvmx_ipd_clk_count_s cn58xx;
  270. struct cvmx_ipd_clk_count_s cn58xxp1;
  271. };
  272. union cvmx_ipd_ctl_status {
  273. uint64_t u64;
  274. struct cvmx_ipd_ctl_status_s {
  275. uint64_t reserved_15_63:49;
  276. uint64_t no_wptr:1;
  277. uint64_t pq_apkt:1;
  278. uint64_t pq_nabuf:1;
  279. uint64_t ipd_full:1;
  280. uint64_t pkt_off:1;
  281. uint64_t len_m8:1;
  282. uint64_t reset:1;
  283. uint64_t addpkt:1;
  284. uint64_t naddbuf:1;
  285. uint64_t pkt_lend:1;
  286. uint64_t wqe_lend:1;
  287. uint64_t pbp_en:1;
  288. uint64_t opc_mode:2;
  289. uint64_t ipd_en:1;
  290. } s;
  291. struct cvmx_ipd_ctl_status_cn30xx {
  292. uint64_t reserved_10_63:54;
  293. uint64_t len_m8:1;
  294. uint64_t reset:1;
  295. uint64_t addpkt:1;
  296. uint64_t naddbuf:1;
  297. uint64_t pkt_lend:1;
  298. uint64_t wqe_lend:1;
  299. uint64_t pbp_en:1;
  300. uint64_t opc_mode:2;
  301. uint64_t ipd_en:1;
  302. } cn30xx;
  303. struct cvmx_ipd_ctl_status_cn30xx cn31xx;
  304. struct cvmx_ipd_ctl_status_cn30xx cn38xx;
  305. struct cvmx_ipd_ctl_status_cn38xxp2 {
  306. uint64_t reserved_9_63:55;
  307. uint64_t reset:1;
  308. uint64_t addpkt:1;
  309. uint64_t naddbuf:1;
  310. uint64_t pkt_lend:1;
  311. uint64_t wqe_lend:1;
  312. uint64_t pbp_en:1;
  313. uint64_t opc_mode:2;
  314. uint64_t ipd_en:1;
  315. } cn38xxp2;
  316. struct cvmx_ipd_ctl_status_s cn50xx;
  317. struct cvmx_ipd_ctl_status_s cn52xx;
  318. struct cvmx_ipd_ctl_status_s cn52xxp1;
  319. struct cvmx_ipd_ctl_status_s cn56xx;
  320. struct cvmx_ipd_ctl_status_s cn56xxp1;
  321. struct cvmx_ipd_ctl_status_cn58xx {
  322. uint64_t reserved_12_63:52;
  323. uint64_t ipd_full:1;
  324. uint64_t pkt_off:1;
  325. uint64_t len_m8:1;
  326. uint64_t reset:1;
  327. uint64_t addpkt:1;
  328. uint64_t naddbuf:1;
  329. uint64_t pkt_lend:1;
  330. uint64_t wqe_lend:1;
  331. uint64_t pbp_en:1;
  332. uint64_t opc_mode:2;
  333. uint64_t ipd_en:1;
  334. } cn58xx;
  335. struct cvmx_ipd_ctl_status_cn58xx cn58xxp1;
  336. };
  337. union cvmx_ipd_int_enb {
  338. uint64_t u64;
  339. struct cvmx_ipd_int_enb_s {
  340. uint64_t reserved_12_63:52;
  341. uint64_t pq_sub:1;
  342. uint64_t pq_add:1;
  343. uint64_t bc_ovr:1;
  344. uint64_t d_coll:1;
  345. uint64_t c_coll:1;
  346. uint64_t cc_ovr:1;
  347. uint64_t dc_ovr:1;
  348. uint64_t bp_sub:1;
  349. uint64_t prc_par3:1;
  350. uint64_t prc_par2:1;
  351. uint64_t prc_par1:1;
  352. uint64_t prc_par0:1;
  353. } s;
  354. struct cvmx_ipd_int_enb_cn30xx {
  355. uint64_t reserved_5_63:59;
  356. uint64_t bp_sub:1;
  357. uint64_t prc_par3:1;
  358. uint64_t prc_par2:1;
  359. uint64_t prc_par1:1;
  360. uint64_t prc_par0:1;
  361. } cn30xx;
  362. struct cvmx_ipd_int_enb_cn30xx cn31xx;
  363. struct cvmx_ipd_int_enb_cn38xx {
  364. uint64_t reserved_10_63:54;
  365. uint64_t bc_ovr:1;
  366. uint64_t d_coll:1;
  367. uint64_t c_coll:1;
  368. uint64_t cc_ovr:1;
  369. uint64_t dc_ovr:1;
  370. uint64_t bp_sub:1;
  371. uint64_t prc_par3:1;
  372. uint64_t prc_par2:1;
  373. uint64_t prc_par1:1;
  374. uint64_t prc_par0:1;
  375. } cn38xx;
  376. struct cvmx_ipd_int_enb_cn30xx cn38xxp2;
  377. struct cvmx_ipd_int_enb_cn38xx cn50xx;
  378. struct cvmx_ipd_int_enb_s cn52xx;
  379. struct cvmx_ipd_int_enb_s cn52xxp1;
  380. struct cvmx_ipd_int_enb_s cn56xx;
  381. struct cvmx_ipd_int_enb_s cn56xxp1;
  382. struct cvmx_ipd_int_enb_cn38xx cn58xx;
  383. struct cvmx_ipd_int_enb_cn38xx cn58xxp1;
  384. };
  385. union cvmx_ipd_int_sum {
  386. uint64_t u64;
  387. struct cvmx_ipd_int_sum_s {
  388. uint64_t reserved_12_63:52;
  389. uint64_t pq_sub:1;
  390. uint64_t pq_add:1;
  391. uint64_t bc_ovr:1;
  392. uint64_t d_coll:1;
  393. uint64_t c_coll:1;
  394. uint64_t cc_ovr:1;
  395. uint64_t dc_ovr:1;
  396. uint64_t bp_sub:1;
  397. uint64_t prc_par3:1;
  398. uint64_t prc_par2:1;
  399. uint64_t prc_par1:1;
  400. uint64_t prc_par0:1;
  401. } s;
  402. struct cvmx_ipd_int_sum_cn30xx {
  403. uint64_t reserved_5_63:59;
  404. uint64_t bp_sub:1;
  405. uint64_t prc_par3:1;
  406. uint64_t prc_par2:1;
  407. uint64_t prc_par1:1;
  408. uint64_t prc_par0:1;
  409. } cn30xx;
  410. struct cvmx_ipd_int_sum_cn30xx cn31xx;
  411. struct cvmx_ipd_int_sum_cn38xx {
  412. uint64_t reserved_10_63:54;
  413. uint64_t bc_ovr:1;
  414. uint64_t d_coll:1;
  415. uint64_t c_coll:1;
  416. uint64_t cc_ovr:1;
  417. uint64_t dc_ovr:1;
  418. uint64_t bp_sub:1;
  419. uint64_t prc_par3:1;
  420. uint64_t prc_par2:1;
  421. uint64_t prc_par1:1;
  422. uint64_t prc_par0:1;
  423. } cn38xx;
  424. struct cvmx_ipd_int_sum_cn30xx cn38xxp2;
  425. struct cvmx_ipd_int_sum_cn38xx cn50xx;
  426. struct cvmx_ipd_int_sum_s cn52xx;
  427. struct cvmx_ipd_int_sum_s cn52xxp1;
  428. struct cvmx_ipd_int_sum_s cn56xx;
  429. struct cvmx_ipd_int_sum_s cn56xxp1;
  430. struct cvmx_ipd_int_sum_cn38xx cn58xx;
  431. struct cvmx_ipd_int_sum_cn38xx cn58xxp1;
  432. };
  433. union cvmx_ipd_not_1st_mbuff_skip {
  434. uint64_t u64;
  435. struct cvmx_ipd_not_1st_mbuff_skip_s {
  436. uint64_t reserved_6_63:58;
  437. uint64_t skip_sz:6;
  438. } s;
  439. struct cvmx_ipd_not_1st_mbuff_skip_s cn30xx;
  440. struct cvmx_ipd_not_1st_mbuff_skip_s cn31xx;
  441. struct cvmx_ipd_not_1st_mbuff_skip_s cn38xx;
  442. struct cvmx_ipd_not_1st_mbuff_skip_s cn38xxp2;
  443. struct cvmx_ipd_not_1st_mbuff_skip_s cn50xx;
  444. struct cvmx_ipd_not_1st_mbuff_skip_s cn52xx;
  445. struct cvmx_ipd_not_1st_mbuff_skip_s cn52xxp1;
  446. struct cvmx_ipd_not_1st_mbuff_skip_s cn56xx;
  447. struct cvmx_ipd_not_1st_mbuff_skip_s cn56xxp1;
  448. struct cvmx_ipd_not_1st_mbuff_skip_s cn58xx;
  449. struct cvmx_ipd_not_1st_mbuff_skip_s cn58xxp1;
  450. };
  451. union cvmx_ipd_packet_mbuff_size {
  452. uint64_t u64;
  453. struct cvmx_ipd_packet_mbuff_size_s {
  454. uint64_t reserved_12_63:52;
  455. uint64_t mb_size:12;
  456. } s;
  457. struct cvmx_ipd_packet_mbuff_size_s cn30xx;
  458. struct cvmx_ipd_packet_mbuff_size_s cn31xx;
  459. struct cvmx_ipd_packet_mbuff_size_s cn38xx;
  460. struct cvmx_ipd_packet_mbuff_size_s cn38xxp2;
  461. struct cvmx_ipd_packet_mbuff_size_s cn50xx;
  462. struct cvmx_ipd_packet_mbuff_size_s cn52xx;
  463. struct cvmx_ipd_packet_mbuff_size_s cn52xxp1;
  464. struct cvmx_ipd_packet_mbuff_size_s cn56xx;
  465. struct cvmx_ipd_packet_mbuff_size_s cn56xxp1;
  466. struct cvmx_ipd_packet_mbuff_size_s cn58xx;
  467. struct cvmx_ipd_packet_mbuff_size_s cn58xxp1;
  468. };
  469. union cvmx_ipd_pkt_ptr_valid {
  470. uint64_t u64;
  471. struct cvmx_ipd_pkt_ptr_valid_s {
  472. uint64_t reserved_29_63:35;
  473. uint64_t ptr:29;
  474. } s;
  475. struct cvmx_ipd_pkt_ptr_valid_s cn30xx;
  476. struct cvmx_ipd_pkt_ptr_valid_s cn31xx;
  477. struct cvmx_ipd_pkt_ptr_valid_s cn38xx;
  478. struct cvmx_ipd_pkt_ptr_valid_s cn50xx;
  479. struct cvmx_ipd_pkt_ptr_valid_s cn52xx;
  480. struct cvmx_ipd_pkt_ptr_valid_s cn52xxp1;
  481. struct cvmx_ipd_pkt_ptr_valid_s cn56xx;
  482. struct cvmx_ipd_pkt_ptr_valid_s cn56xxp1;
  483. struct cvmx_ipd_pkt_ptr_valid_s cn58xx;
  484. struct cvmx_ipd_pkt_ptr_valid_s cn58xxp1;
  485. };
  486. union cvmx_ipd_portx_bp_page_cnt {
  487. uint64_t u64;
  488. struct cvmx_ipd_portx_bp_page_cnt_s {
  489. uint64_t reserved_18_63:46;
  490. uint64_t bp_enb:1;
  491. uint64_t page_cnt:17;
  492. } s;
  493. struct cvmx_ipd_portx_bp_page_cnt_s cn30xx;
  494. struct cvmx_ipd_portx_bp_page_cnt_s cn31xx;
  495. struct cvmx_ipd_portx_bp_page_cnt_s cn38xx;
  496. struct cvmx_ipd_portx_bp_page_cnt_s cn38xxp2;
  497. struct cvmx_ipd_portx_bp_page_cnt_s cn50xx;
  498. struct cvmx_ipd_portx_bp_page_cnt_s cn52xx;
  499. struct cvmx_ipd_portx_bp_page_cnt_s cn52xxp1;
  500. struct cvmx_ipd_portx_bp_page_cnt_s cn56xx;
  501. struct cvmx_ipd_portx_bp_page_cnt_s cn56xxp1;
  502. struct cvmx_ipd_portx_bp_page_cnt_s cn58xx;
  503. struct cvmx_ipd_portx_bp_page_cnt_s cn58xxp1;
  504. };
  505. union cvmx_ipd_portx_bp_page_cnt2 {
  506. uint64_t u64;
  507. struct cvmx_ipd_portx_bp_page_cnt2_s {
  508. uint64_t reserved_18_63:46;
  509. uint64_t bp_enb:1;
  510. uint64_t page_cnt:17;
  511. } s;
  512. struct cvmx_ipd_portx_bp_page_cnt2_s cn52xx;
  513. struct cvmx_ipd_portx_bp_page_cnt2_s cn52xxp1;
  514. struct cvmx_ipd_portx_bp_page_cnt2_s cn56xx;
  515. struct cvmx_ipd_portx_bp_page_cnt2_s cn56xxp1;
  516. };
  517. union cvmx_ipd_port_bp_counters2_pairx {
  518. uint64_t u64;
  519. struct cvmx_ipd_port_bp_counters2_pairx_s {
  520. uint64_t reserved_25_63:39;
  521. uint64_t cnt_val:25;
  522. } s;
  523. struct cvmx_ipd_port_bp_counters2_pairx_s cn52xx;
  524. struct cvmx_ipd_port_bp_counters2_pairx_s cn52xxp1;
  525. struct cvmx_ipd_port_bp_counters2_pairx_s cn56xx;
  526. struct cvmx_ipd_port_bp_counters2_pairx_s cn56xxp1;
  527. };
  528. union cvmx_ipd_port_bp_counters_pairx {
  529. uint64_t u64;
  530. struct cvmx_ipd_port_bp_counters_pairx_s {
  531. uint64_t reserved_25_63:39;
  532. uint64_t cnt_val:25;
  533. } s;
  534. struct cvmx_ipd_port_bp_counters_pairx_s cn30xx;
  535. struct cvmx_ipd_port_bp_counters_pairx_s cn31xx;
  536. struct cvmx_ipd_port_bp_counters_pairx_s cn38xx;
  537. struct cvmx_ipd_port_bp_counters_pairx_s cn38xxp2;
  538. struct cvmx_ipd_port_bp_counters_pairx_s cn50xx;
  539. struct cvmx_ipd_port_bp_counters_pairx_s cn52xx;
  540. struct cvmx_ipd_port_bp_counters_pairx_s cn52xxp1;
  541. struct cvmx_ipd_port_bp_counters_pairx_s cn56xx;
  542. struct cvmx_ipd_port_bp_counters_pairx_s cn56xxp1;
  543. struct cvmx_ipd_port_bp_counters_pairx_s cn58xx;
  544. struct cvmx_ipd_port_bp_counters_pairx_s cn58xxp1;
  545. };
  546. union cvmx_ipd_port_qos_x_cnt {
  547. uint64_t u64;
  548. struct cvmx_ipd_port_qos_x_cnt_s {
  549. uint64_t wmark:32;
  550. uint64_t cnt:32;
  551. } s;
  552. struct cvmx_ipd_port_qos_x_cnt_s cn52xx;
  553. struct cvmx_ipd_port_qos_x_cnt_s cn52xxp1;
  554. struct cvmx_ipd_port_qos_x_cnt_s cn56xx;
  555. struct cvmx_ipd_port_qos_x_cnt_s cn56xxp1;
  556. };
  557. union cvmx_ipd_port_qos_intx {
  558. uint64_t u64;
  559. struct cvmx_ipd_port_qos_intx_s {
  560. uint64_t intr:64;
  561. } s;
  562. struct cvmx_ipd_port_qos_intx_s cn52xx;
  563. struct cvmx_ipd_port_qos_intx_s cn52xxp1;
  564. struct cvmx_ipd_port_qos_intx_s cn56xx;
  565. struct cvmx_ipd_port_qos_intx_s cn56xxp1;
  566. };
  567. union cvmx_ipd_port_qos_int_enbx {
  568. uint64_t u64;
  569. struct cvmx_ipd_port_qos_int_enbx_s {
  570. uint64_t enb:64;
  571. } s;
  572. struct cvmx_ipd_port_qos_int_enbx_s cn52xx;
  573. struct cvmx_ipd_port_qos_int_enbx_s cn52xxp1;
  574. struct cvmx_ipd_port_qos_int_enbx_s cn56xx;
  575. struct cvmx_ipd_port_qos_int_enbx_s cn56xxp1;
  576. };
  577. union cvmx_ipd_prc_hold_ptr_fifo_ctl {
  578. uint64_t u64;
  579. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s {
  580. uint64_t reserved_39_63:25;
  581. uint64_t max_pkt:3;
  582. uint64_t praddr:3;
  583. uint64_t ptr:29;
  584. uint64_t cena:1;
  585. uint64_t raddr:3;
  586. } s;
  587. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn30xx;
  588. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn31xx;
  589. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn38xx;
  590. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn50xx;
  591. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xx;
  592. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xxp1;
  593. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xx;
  594. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xxp1;
  595. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xx;
  596. struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xxp1;
  597. };
  598. union cvmx_ipd_prc_port_ptr_fifo_ctl {
  599. uint64_t u64;
  600. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s {
  601. uint64_t reserved_44_63:20;
  602. uint64_t max_pkt:7;
  603. uint64_t ptr:29;
  604. uint64_t cena:1;
  605. uint64_t raddr:7;
  606. } s;
  607. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn30xx;
  608. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn31xx;
  609. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn38xx;
  610. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn50xx;
  611. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xx;
  612. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xxp1;
  613. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xx;
  614. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xxp1;
  615. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xx;
  616. struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xxp1;
  617. };
  618. union cvmx_ipd_ptr_count {
  619. uint64_t u64;
  620. struct cvmx_ipd_ptr_count_s {
  621. uint64_t reserved_19_63:45;
  622. uint64_t pktv_cnt:1;
  623. uint64_t wqev_cnt:1;
  624. uint64_t pfif_cnt:3;
  625. uint64_t pkt_pcnt:7;
  626. uint64_t wqe_pcnt:7;
  627. } s;
  628. struct cvmx_ipd_ptr_count_s cn30xx;
  629. struct cvmx_ipd_ptr_count_s cn31xx;
  630. struct cvmx_ipd_ptr_count_s cn38xx;
  631. struct cvmx_ipd_ptr_count_s cn38xxp2;
  632. struct cvmx_ipd_ptr_count_s cn50xx;
  633. struct cvmx_ipd_ptr_count_s cn52xx;
  634. struct cvmx_ipd_ptr_count_s cn52xxp1;
  635. struct cvmx_ipd_ptr_count_s cn56xx;
  636. struct cvmx_ipd_ptr_count_s cn56xxp1;
  637. struct cvmx_ipd_ptr_count_s cn58xx;
  638. struct cvmx_ipd_ptr_count_s cn58xxp1;
  639. };
  640. union cvmx_ipd_pwp_ptr_fifo_ctl {
  641. uint64_t u64;
  642. struct cvmx_ipd_pwp_ptr_fifo_ctl_s {
  643. uint64_t reserved_61_63:3;
  644. uint64_t max_cnts:7;
  645. uint64_t wraddr:8;
  646. uint64_t praddr:8;
  647. uint64_t ptr:29;
  648. uint64_t cena:1;
  649. uint64_t raddr:8;
  650. } s;
  651. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn30xx;
  652. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn31xx;
  653. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn38xx;
  654. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn50xx;
  655. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xx;
  656. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xxp1;
  657. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xx;
  658. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xxp1;
  659. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xx;
  660. struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xxp1;
  661. };
  662. union cvmx_ipd_qosx_red_marks {
  663. uint64_t u64;
  664. struct cvmx_ipd_qosx_red_marks_s {
  665. uint64_t drop:32;
  666. uint64_t pass:32;
  667. } s;
  668. struct cvmx_ipd_qosx_red_marks_s cn30xx;
  669. struct cvmx_ipd_qosx_red_marks_s cn31xx;
  670. struct cvmx_ipd_qosx_red_marks_s cn38xx;
  671. struct cvmx_ipd_qosx_red_marks_s cn38xxp2;
  672. struct cvmx_ipd_qosx_red_marks_s cn50xx;
  673. struct cvmx_ipd_qosx_red_marks_s cn52xx;
  674. struct cvmx_ipd_qosx_red_marks_s cn52xxp1;
  675. struct cvmx_ipd_qosx_red_marks_s cn56xx;
  676. struct cvmx_ipd_qosx_red_marks_s cn56xxp1;
  677. struct cvmx_ipd_qosx_red_marks_s cn58xx;
  678. struct cvmx_ipd_qosx_red_marks_s cn58xxp1;
  679. };
  680. union cvmx_ipd_que0_free_page_cnt {
  681. uint64_t u64;
  682. struct cvmx_ipd_que0_free_page_cnt_s {
  683. uint64_t reserved_32_63:32;
  684. uint64_t q0_pcnt:32;
  685. } s;
  686. struct cvmx_ipd_que0_free_page_cnt_s cn30xx;
  687. struct cvmx_ipd_que0_free_page_cnt_s cn31xx;
  688. struct cvmx_ipd_que0_free_page_cnt_s cn38xx;
  689. struct cvmx_ipd_que0_free_page_cnt_s cn38xxp2;
  690. struct cvmx_ipd_que0_free_page_cnt_s cn50xx;
  691. struct cvmx_ipd_que0_free_page_cnt_s cn52xx;
  692. struct cvmx_ipd_que0_free_page_cnt_s cn52xxp1;
  693. struct cvmx_ipd_que0_free_page_cnt_s cn56xx;
  694. struct cvmx_ipd_que0_free_page_cnt_s cn56xxp1;
  695. struct cvmx_ipd_que0_free_page_cnt_s cn58xx;
  696. struct cvmx_ipd_que0_free_page_cnt_s cn58xxp1;
  697. };
  698. union cvmx_ipd_red_port_enable {
  699. uint64_t u64;
  700. struct cvmx_ipd_red_port_enable_s {
  701. uint64_t prb_dly:14;
  702. uint64_t avg_dly:14;
  703. uint64_t prt_enb:36;
  704. } s;
  705. struct cvmx_ipd_red_port_enable_s cn30xx;
  706. struct cvmx_ipd_red_port_enable_s cn31xx;
  707. struct cvmx_ipd_red_port_enable_s cn38xx;
  708. struct cvmx_ipd_red_port_enable_s cn38xxp2;
  709. struct cvmx_ipd_red_port_enable_s cn50xx;
  710. struct cvmx_ipd_red_port_enable_s cn52xx;
  711. struct cvmx_ipd_red_port_enable_s cn52xxp1;
  712. struct cvmx_ipd_red_port_enable_s cn56xx;
  713. struct cvmx_ipd_red_port_enable_s cn56xxp1;
  714. struct cvmx_ipd_red_port_enable_s cn58xx;
  715. struct cvmx_ipd_red_port_enable_s cn58xxp1;
  716. };
  717. union cvmx_ipd_red_port_enable2 {
  718. uint64_t u64;
  719. struct cvmx_ipd_red_port_enable2_s {
  720. uint64_t reserved_4_63:60;
  721. uint64_t prt_enb:4;
  722. } s;
  723. struct cvmx_ipd_red_port_enable2_s cn52xx;
  724. struct cvmx_ipd_red_port_enable2_s cn52xxp1;
  725. struct cvmx_ipd_red_port_enable2_s cn56xx;
  726. struct cvmx_ipd_red_port_enable2_s cn56xxp1;
  727. };
  728. union cvmx_ipd_red_quex_param {
  729. uint64_t u64;
  730. struct cvmx_ipd_red_quex_param_s {
  731. uint64_t reserved_49_63:15;
  732. uint64_t use_pcnt:1;
  733. uint64_t new_con:8;
  734. uint64_t avg_con:8;
  735. uint64_t prb_con:32;
  736. } s;
  737. struct cvmx_ipd_red_quex_param_s cn30xx;
  738. struct cvmx_ipd_red_quex_param_s cn31xx;
  739. struct cvmx_ipd_red_quex_param_s cn38xx;
  740. struct cvmx_ipd_red_quex_param_s cn38xxp2;
  741. struct cvmx_ipd_red_quex_param_s cn50xx;
  742. struct cvmx_ipd_red_quex_param_s cn52xx;
  743. struct cvmx_ipd_red_quex_param_s cn52xxp1;
  744. struct cvmx_ipd_red_quex_param_s cn56xx;
  745. struct cvmx_ipd_red_quex_param_s cn56xxp1;
  746. struct cvmx_ipd_red_quex_param_s cn58xx;
  747. struct cvmx_ipd_red_quex_param_s cn58xxp1;
  748. };
  749. union cvmx_ipd_sub_port_bp_page_cnt {
  750. uint64_t u64;
  751. struct cvmx_ipd_sub_port_bp_page_cnt_s {
  752. uint64_t reserved_31_63:33;
  753. uint64_t port:6;
  754. uint64_t page_cnt:25;
  755. } s;
  756. struct cvmx_ipd_sub_port_bp_page_cnt_s cn30xx;
  757. struct cvmx_ipd_sub_port_bp_page_cnt_s cn31xx;
  758. struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xx;
  759. struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xxp2;
  760. struct cvmx_ipd_sub_port_bp_page_cnt_s cn50xx;
  761. struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xx;
  762. struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xxp1;
  763. struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xx;
  764. struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xxp1;
  765. struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xx;
  766. struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xxp1;
  767. };
  768. union cvmx_ipd_sub_port_fcs {
  769. uint64_t u64;
  770. struct cvmx_ipd_sub_port_fcs_s {
  771. uint64_t reserved_40_63:24;
  772. uint64_t port_bit2:4;
  773. uint64_t reserved_32_35:4;
  774. uint64_t port_bit:32;
  775. } s;
  776. struct cvmx_ipd_sub_port_fcs_cn30xx {
  777. uint64_t reserved_3_63:61;
  778. uint64_t port_bit:3;
  779. } cn30xx;
  780. struct cvmx_ipd_sub_port_fcs_cn30xx cn31xx;
  781. struct cvmx_ipd_sub_port_fcs_cn38xx {
  782. uint64_t reserved_32_63:32;
  783. uint64_t port_bit:32;
  784. } cn38xx;
  785. struct cvmx_ipd_sub_port_fcs_cn38xx cn38xxp2;
  786. struct cvmx_ipd_sub_port_fcs_cn30xx cn50xx;
  787. struct cvmx_ipd_sub_port_fcs_s cn52xx;
  788. struct cvmx_ipd_sub_port_fcs_s cn52xxp1;
  789. struct cvmx_ipd_sub_port_fcs_s cn56xx;
  790. struct cvmx_ipd_sub_port_fcs_s cn56xxp1;
  791. struct cvmx_ipd_sub_port_fcs_cn38xx cn58xx;
  792. struct cvmx_ipd_sub_port_fcs_cn38xx cn58xxp1;
  793. };
  794. union cvmx_ipd_sub_port_qos_cnt {
  795. uint64_t u64;
  796. struct cvmx_ipd_sub_port_qos_cnt_s {
  797. uint64_t reserved_41_63:23;
  798. uint64_t port_qos:9;
  799. uint64_t cnt:32;
  800. } s;
  801. struct cvmx_ipd_sub_port_qos_cnt_s cn52xx;
  802. struct cvmx_ipd_sub_port_qos_cnt_s cn52xxp1;
  803. struct cvmx_ipd_sub_port_qos_cnt_s cn56xx;
  804. struct cvmx_ipd_sub_port_qos_cnt_s cn56xxp1;
  805. };
  806. union cvmx_ipd_wqe_fpa_queue {
  807. uint64_t u64;
  808. struct cvmx_ipd_wqe_fpa_queue_s {
  809. uint64_t reserved_3_63:61;
  810. uint64_t wqe_pool:3;
  811. } s;
  812. struct cvmx_ipd_wqe_fpa_queue_s cn30xx;
  813. struct cvmx_ipd_wqe_fpa_queue_s cn31xx;
  814. struct cvmx_ipd_wqe_fpa_queue_s cn38xx;
  815. struct cvmx_ipd_wqe_fpa_queue_s cn38xxp2;
  816. struct cvmx_ipd_wqe_fpa_queue_s cn50xx;
  817. struct cvmx_ipd_wqe_fpa_queue_s cn52xx;
  818. struct cvmx_ipd_wqe_fpa_queue_s cn52xxp1;
  819. struct cvmx_ipd_wqe_fpa_queue_s cn56xx;
  820. struct cvmx_ipd_wqe_fpa_queue_s cn56xxp1;
  821. struct cvmx_ipd_wqe_fpa_queue_s cn58xx;
  822. struct cvmx_ipd_wqe_fpa_queue_s cn58xxp1;
  823. };
  824. union cvmx_ipd_wqe_ptr_valid {
  825. uint64_t u64;
  826. struct cvmx_ipd_wqe_ptr_valid_s {
  827. uint64_t reserved_29_63:35;
  828. uint64_t ptr:29;
  829. } s;
  830. struct cvmx_ipd_wqe_ptr_valid_s cn30xx;
  831. struct cvmx_ipd_wqe_ptr_valid_s cn31xx;
  832. struct cvmx_ipd_wqe_ptr_valid_s cn38xx;
  833. struct cvmx_ipd_wqe_ptr_valid_s cn50xx;
  834. struct cvmx_ipd_wqe_ptr_valid_s cn52xx;
  835. struct cvmx_ipd_wqe_ptr_valid_s cn52xxp1;
  836. struct cvmx_ipd_wqe_ptr_valid_s cn56xx;
  837. struct cvmx_ipd_wqe_ptr_valid_s cn56xxp1;
  838. struct cvmx_ipd_wqe_ptr_valid_s cn58xx;
  839. struct cvmx_ipd_wqe_ptr_valid_s cn58xxp1;
  840. };
  841. #endif