cvmx-agl-defs.h 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446
  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-2010 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_AGL_DEFS_H__
  28. #define __CVMX_AGL_DEFS_H__
  29. #define CVMX_AGL_GMX_BAD_REG (CVMX_ADD_IO_SEG(0x00011800E0000518ull))
  30. #define CVMX_AGL_GMX_BIST (CVMX_ADD_IO_SEG(0x00011800E0000400ull))
  31. #define CVMX_AGL_GMX_DRV_CTL (CVMX_ADD_IO_SEG(0x00011800E00007F0ull))
  32. #define CVMX_AGL_GMX_INF_MODE (CVMX_ADD_IO_SEG(0x00011800E00007F8ull))
  33. #define CVMX_AGL_GMX_PRTX_CFG(offset) (CVMX_ADD_IO_SEG(0x00011800E0000010ull) + ((offset) & 1) * 2048)
  34. #define CVMX_AGL_GMX_RXX_ADR_CAM0(offset) (CVMX_ADD_IO_SEG(0x00011800E0000180ull) + ((offset) & 1) * 2048)
  35. #define CVMX_AGL_GMX_RXX_ADR_CAM1(offset) (CVMX_ADD_IO_SEG(0x00011800E0000188ull) + ((offset) & 1) * 2048)
  36. #define CVMX_AGL_GMX_RXX_ADR_CAM2(offset) (CVMX_ADD_IO_SEG(0x00011800E0000190ull) + ((offset) & 1) * 2048)
  37. #define CVMX_AGL_GMX_RXX_ADR_CAM3(offset) (CVMX_ADD_IO_SEG(0x00011800E0000198ull) + ((offset) & 1) * 2048)
  38. #define CVMX_AGL_GMX_RXX_ADR_CAM4(offset) (CVMX_ADD_IO_SEG(0x00011800E00001A0ull) + ((offset) & 1) * 2048)
  39. #define CVMX_AGL_GMX_RXX_ADR_CAM5(offset) (CVMX_ADD_IO_SEG(0x00011800E00001A8ull) + ((offset) & 1) * 2048)
  40. #define CVMX_AGL_GMX_RXX_ADR_CAM_EN(offset) (CVMX_ADD_IO_SEG(0x00011800E0000108ull) + ((offset) & 1) * 2048)
  41. #define CVMX_AGL_GMX_RXX_ADR_CTL(offset) (CVMX_ADD_IO_SEG(0x00011800E0000100ull) + ((offset) & 1) * 2048)
  42. #define CVMX_AGL_GMX_RXX_DECISION(offset) (CVMX_ADD_IO_SEG(0x00011800E0000040ull) + ((offset) & 1) * 2048)
  43. #define CVMX_AGL_GMX_RXX_FRM_CHK(offset) (CVMX_ADD_IO_SEG(0x00011800E0000020ull) + ((offset) & 1) * 2048)
  44. #define CVMX_AGL_GMX_RXX_FRM_CTL(offset) (CVMX_ADD_IO_SEG(0x00011800E0000018ull) + ((offset) & 1) * 2048)
  45. #define CVMX_AGL_GMX_RXX_FRM_MAX(offset) (CVMX_ADD_IO_SEG(0x00011800E0000030ull) + ((offset) & 1) * 2048)
  46. #define CVMX_AGL_GMX_RXX_FRM_MIN(offset) (CVMX_ADD_IO_SEG(0x00011800E0000028ull) + ((offset) & 1) * 2048)
  47. #define CVMX_AGL_GMX_RXX_IFG(offset) (CVMX_ADD_IO_SEG(0x00011800E0000058ull) + ((offset) & 1) * 2048)
  48. #define CVMX_AGL_GMX_RXX_INT_EN(offset) (CVMX_ADD_IO_SEG(0x00011800E0000008ull) + ((offset) & 1) * 2048)
  49. #define CVMX_AGL_GMX_RXX_INT_REG(offset) (CVMX_ADD_IO_SEG(0x00011800E0000000ull) + ((offset) & 1) * 2048)
  50. #define CVMX_AGL_GMX_RXX_JABBER(offset) (CVMX_ADD_IO_SEG(0x00011800E0000038ull) + ((offset) & 1) * 2048)
  51. #define CVMX_AGL_GMX_RXX_PAUSE_DROP_TIME(offset) (CVMX_ADD_IO_SEG(0x00011800E0000068ull) + ((offset) & 1) * 2048)
  52. #define CVMX_AGL_GMX_RXX_RX_INBND(offset) (CVMX_ADD_IO_SEG(0x00011800E0000060ull) + ((offset) & 1) * 2048)
  53. #define CVMX_AGL_GMX_RXX_STATS_CTL(offset) (CVMX_ADD_IO_SEG(0x00011800E0000050ull) + ((offset) & 1) * 2048)
  54. #define CVMX_AGL_GMX_RXX_STATS_OCTS(offset) (CVMX_ADD_IO_SEG(0x00011800E0000088ull) + ((offset) & 1) * 2048)
  55. #define CVMX_AGL_GMX_RXX_STATS_OCTS_CTL(offset) (CVMX_ADD_IO_SEG(0x00011800E0000098ull) + ((offset) & 1) * 2048)
  56. #define CVMX_AGL_GMX_RXX_STATS_OCTS_DMAC(offset) (CVMX_ADD_IO_SEG(0x00011800E00000A8ull) + ((offset) & 1) * 2048)
  57. #define CVMX_AGL_GMX_RXX_STATS_OCTS_DRP(offset) (CVMX_ADD_IO_SEG(0x00011800E00000B8ull) + ((offset) & 1) * 2048)
  58. #define CVMX_AGL_GMX_RXX_STATS_PKTS(offset) (CVMX_ADD_IO_SEG(0x00011800E0000080ull) + ((offset) & 1) * 2048)
  59. #define CVMX_AGL_GMX_RXX_STATS_PKTS_BAD(offset) (CVMX_ADD_IO_SEG(0x00011800E00000C0ull) + ((offset) & 1) * 2048)
  60. #define CVMX_AGL_GMX_RXX_STATS_PKTS_CTL(offset) (CVMX_ADD_IO_SEG(0x00011800E0000090ull) + ((offset) & 1) * 2048)
  61. #define CVMX_AGL_GMX_RXX_STATS_PKTS_DMAC(offset) (CVMX_ADD_IO_SEG(0x00011800E00000A0ull) + ((offset) & 1) * 2048)
  62. #define CVMX_AGL_GMX_RXX_STATS_PKTS_DRP(offset) (CVMX_ADD_IO_SEG(0x00011800E00000B0ull) + ((offset) & 1) * 2048)
  63. #define CVMX_AGL_GMX_RXX_UDD_SKP(offset) (CVMX_ADD_IO_SEG(0x00011800E0000048ull) + ((offset) & 1) * 2048)
  64. #define CVMX_AGL_GMX_RX_BP_DROPX(offset) (CVMX_ADD_IO_SEG(0x00011800E0000420ull) + ((offset) & 1) * 8)
  65. #define CVMX_AGL_GMX_RX_BP_OFFX(offset) (CVMX_ADD_IO_SEG(0x00011800E0000460ull) + ((offset) & 1) * 8)
  66. #define CVMX_AGL_GMX_RX_BP_ONX(offset) (CVMX_ADD_IO_SEG(0x00011800E0000440ull) + ((offset) & 1) * 8)
  67. #define CVMX_AGL_GMX_RX_PRT_INFO (CVMX_ADD_IO_SEG(0x00011800E00004E8ull))
  68. #define CVMX_AGL_GMX_RX_TX_STATUS (CVMX_ADD_IO_SEG(0x00011800E00007E8ull))
  69. #define CVMX_AGL_GMX_SMACX(offset) (CVMX_ADD_IO_SEG(0x00011800E0000230ull) + ((offset) & 1) * 2048)
  70. #define CVMX_AGL_GMX_STAT_BP (CVMX_ADD_IO_SEG(0x00011800E0000520ull))
  71. #define CVMX_AGL_GMX_TXX_APPEND(offset) (CVMX_ADD_IO_SEG(0x00011800E0000218ull) + ((offset) & 1) * 2048)
  72. #define CVMX_AGL_GMX_TXX_CLK(offset) (CVMX_ADD_IO_SEG(0x00011800E0000208ull) + ((offset) & 1) * 2048)
  73. #define CVMX_AGL_GMX_TXX_CTL(offset) (CVMX_ADD_IO_SEG(0x00011800E0000270ull) + ((offset) & 1) * 2048)
  74. #define CVMX_AGL_GMX_TXX_MIN_PKT(offset) (CVMX_ADD_IO_SEG(0x00011800E0000240ull) + ((offset) & 1) * 2048)
  75. #define CVMX_AGL_GMX_TXX_PAUSE_PKT_INTERVAL(offset) (CVMX_ADD_IO_SEG(0x00011800E0000248ull) + ((offset) & 1) * 2048)
  76. #define CVMX_AGL_GMX_TXX_PAUSE_PKT_TIME(offset) (CVMX_ADD_IO_SEG(0x00011800E0000238ull) + ((offset) & 1) * 2048)
  77. #define CVMX_AGL_GMX_TXX_PAUSE_TOGO(offset) (CVMX_ADD_IO_SEG(0x00011800E0000258ull) + ((offset) & 1) * 2048)
  78. #define CVMX_AGL_GMX_TXX_PAUSE_ZERO(offset) (CVMX_ADD_IO_SEG(0x00011800E0000260ull) + ((offset) & 1) * 2048)
  79. #define CVMX_AGL_GMX_TXX_SOFT_PAUSE(offset) (CVMX_ADD_IO_SEG(0x00011800E0000250ull) + ((offset) & 1) * 2048)
  80. #define CVMX_AGL_GMX_TXX_STAT0(offset) (CVMX_ADD_IO_SEG(0x00011800E0000280ull) + ((offset) & 1) * 2048)
  81. #define CVMX_AGL_GMX_TXX_STAT1(offset) (CVMX_ADD_IO_SEG(0x00011800E0000288ull) + ((offset) & 1) * 2048)
  82. #define CVMX_AGL_GMX_TXX_STAT2(offset) (CVMX_ADD_IO_SEG(0x00011800E0000290ull) + ((offset) & 1) * 2048)
  83. #define CVMX_AGL_GMX_TXX_STAT3(offset) (CVMX_ADD_IO_SEG(0x00011800E0000298ull) + ((offset) & 1) * 2048)
  84. #define CVMX_AGL_GMX_TXX_STAT4(offset) (CVMX_ADD_IO_SEG(0x00011800E00002A0ull) + ((offset) & 1) * 2048)
  85. #define CVMX_AGL_GMX_TXX_STAT5(offset) (CVMX_ADD_IO_SEG(0x00011800E00002A8ull) + ((offset) & 1) * 2048)
  86. #define CVMX_AGL_GMX_TXX_STAT6(offset) (CVMX_ADD_IO_SEG(0x00011800E00002B0ull) + ((offset) & 1) * 2048)
  87. #define CVMX_AGL_GMX_TXX_STAT7(offset) (CVMX_ADD_IO_SEG(0x00011800E00002B8ull) + ((offset) & 1) * 2048)
  88. #define CVMX_AGL_GMX_TXX_STAT8(offset) (CVMX_ADD_IO_SEG(0x00011800E00002C0ull) + ((offset) & 1) * 2048)
  89. #define CVMX_AGL_GMX_TXX_STAT9(offset) (CVMX_ADD_IO_SEG(0x00011800E00002C8ull) + ((offset) & 1) * 2048)
  90. #define CVMX_AGL_GMX_TXX_STATS_CTL(offset) (CVMX_ADD_IO_SEG(0x00011800E0000268ull) + ((offset) & 1) * 2048)
  91. #define CVMX_AGL_GMX_TXX_THRESH(offset) (CVMX_ADD_IO_SEG(0x00011800E0000210ull) + ((offset) & 1) * 2048)
  92. #define CVMX_AGL_GMX_TX_BP (CVMX_ADD_IO_SEG(0x00011800E00004D0ull))
  93. #define CVMX_AGL_GMX_TX_COL_ATTEMPT (CVMX_ADD_IO_SEG(0x00011800E0000498ull))
  94. #define CVMX_AGL_GMX_TX_IFG (CVMX_ADD_IO_SEG(0x00011800E0000488ull))
  95. #define CVMX_AGL_GMX_TX_INT_EN (CVMX_ADD_IO_SEG(0x00011800E0000508ull))
  96. #define CVMX_AGL_GMX_TX_INT_REG (CVMX_ADD_IO_SEG(0x00011800E0000500ull))
  97. #define CVMX_AGL_GMX_TX_JAM (CVMX_ADD_IO_SEG(0x00011800E0000490ull))
  98. #define CVMX_AGL_GMX_TX_LFSR (CVMX_ADD_IO_SEG(0x00011800E00004F8ull))
  99. #define CVMX_AGL_GMX_TX_OVR_BP (CVMX_ADD_IO_SEG(0x00011800E00004C8ull))
  100. #define CVMX_AGL_GMX_TX_PAUSE_PKT_DMAC (CVMX_ADD_IO_SEG(0x00011800E00004A0ull))
  101. #define CVMX_AGL_GMX_TX_PAUSE_PKT_TYPE (CVMX_ADD_IO_SEG(0x00011800E00004A8ull))
  102. #define CVMX_AGL_PRTX_CTL(offset) (CVMX_ADD_IO_SEG(0x00011800E0002000ull) + ((offset) & 1) * 8)
  103. union cvmx_agl_gmx_bad_reg {
  104. uint64_t u64;
  105. struct cvmx_agl_gmx_bad_reg_s {
  106. uint64_t reserved_38_63:26;
  107. uint64_t txpsh1:1;
  108. uint64_t txpop1:1;
  109. uint64_t ovrflw1:1;
  110. uint64_t txpsh:1;
  111. uint64_t txpop:1;
  112. uint64_t ovrflw:1;
  113. uint64_t reserved_27_31:5;
  114. uint64_t statovr:1;
  115. uint64_t reserved_24_25:2;
  116. uint64_t loststat:2;
  117. uint64_t reserved_4_21:18;
  118. uint64_t out_ovr:2;
  119. uint64_t reserved_0_1:2;
  120. } s;
  121. struct cvmx_agl_gmx_bad_reg_cn52xx {
  122. uint64_t reserved_38_63:26;
  123. uint64_t txpsh1:1;
  124. uint64_t txpop1:1;
  125. uint64_t ovrflw1:1;
  126. uint64_t txpsh:1;
  127. uint64_t txpop:1;
  128. uint64_t ovrflw:1;
  129. uint64_t reserved_27_31:5;
  130. uint64_t statovr:1;
  131. uint64_t reserved_23_25:3;
  132. uint64_t loststat:1;
  133. uint64_t reserved_4_21:18;
  134. uint64_t out_ovr:2;
  135. uint64_t reserved_0_1:2;
  136. } cn52xx;
  137. struct cvmx_agl_gmx_bad_reg_cn52xx cn52xxp1;
  138. struct cvmx_agl_gmx_bad_reg_cn56xx {
  139. uint64_t reserved_35_63:29;
  140. uint64_t txpsh:1;
  141. uint64_t txpop:1;
  142. uint64_t ovrflw:1;
  143. uint64_t reserved_27_31:5;
  144. uint64_t statovr:1;
  145. uint64_t reserved_23_25:3;
  146. uint64_t loststat:1;
  147. uint64_t reserved_3_21:19;
  148. uint64_t out_ovr:1;
  149. uint64_t reserved_0_1:2;
  150. } cn56xx;
  151. struct cvmx_agl_gmx_bad_reg_cn56xx cn56xxp1;
  152. struct cvmx_agl_gmx_bad_reg_s cn63xx;
  153. struct cvmx_agl_gmx_bad_reg_s cn63xxp1;
  154. };
  155. union cvmx_agl_gmx_bist {
  156. uint64_t u64;
  157. struct cvmx_agl_gmx_bist_s {
  158. uint64_t reserved_25_63:39;
  159. uint64_t status:25;
  160. } s;
  161. struct cvmx_agl_gmx_bist_cn52xx {
  162. uint64_t reserved_10_63:54;
  163. uint64_t status:10;
  164. } cn52xx;
  165. struct cvmx_agl_gmx_bist_cn52xx cn52xxp1;
  166. struct cvmx_agl_gmx_bist_cn52xx cn56xx;
  167. struct cvmx_agl_gmx_bist_cn52xx cn56xxp1;
  168. struct cvmx_agl_gmx_bist_s cn63xx;
  169. struct cvmx_agl_gmx_bist_s cn63xxp1;
  170. };
  171. union cvmx_agl_gmx_drv_ctl {
  172. uint64_t u64;
  173. struct cvmx_agl_gmx_drv_ctl_s {
  174. uint64_t reserved_49_63:15;
  175. uint64_t byp_en1:1;
  176. uint64_t reserved_45_47:3;
  177. uint64_t pctl1:5;
  178. uint64_t reserved_37_39:3;
  179. uint64_t nctl1:5;
  180. uint64_t reserved_17_31:15;
  181. uint64_t byp_en:1;
  182. uint64_t reserved_13_15:3;
  183. uint64_t pctl:5;
  184. uint64_t reserved_5_7:3;
  185. uint64_t nctl:5;
  186. } s;
  187. struct cvmx_agl_gmx_drv_ctl_s cn52xx;
  188. struct cvmx_agl_gmx_drv_ctl_s cn52xxp1;
  189. struct cvmx_agl_gmx_drv_ctl_cn56xx {
  190. uint64_t reserved_17_63:47;
  191. uint64_t byp_en:1;
  192. uint64_t reserved_13_15:3;
  193. uint64_t pctl:5;
  194. uint64_t reserved_5_7:3;
  195. uint64_t nctl:5;
  196. } cn56xx;
  197. struct cvmx_agl_gmx_drv_ctl_cn56xx cn56xxp1;
  198. };
  199. union cvmx_agl_gmx_inf_mode {
  200. uint64_t u64;
  201. struct cvmx_agl_gmx_inf_mode_s {
  202. uint64_t reserved_2_63:62;
  203. uint64_t en:1;
  204. uint64_t reserved_0_0:1;
  205. } s;
  206. struct cvmx_agl_gmx_inf_mode_s cn52xx;
  207. struct cvmx_agl_gmx_inf_mode_s cn52xxp1;
  208. struct cvmx_agl_gmx_inf_mode_s cn56xx;
  209. struct cvmx_agl_gmx_inf_mode_s cn56xxp1;
  210. };
  211. union cvmx_agl_gmx_prtx_cfg {
  212. uint64_t u64;
  213. struct cvmx_agl_gmx_prtx_cfg_s {
  214. uint64_t reserved_14_63:50;
  215. uint64_t tx_idle:1;
  216. uint64_t rx_idle:1;
  217. uint64_t reserved_9_11:3;
  218. uint64_t speed_msb:1;
  219. uint64_t reserved_7_7:1;
  220. uint64_t burst:1;
  221. uint64_t tx_en:1;
  222. uint64_t rx_en:1;
  223. uint64_t slottime:1;
  224. uint64_t duplex:1;
  225. uint64_t speed:1;
  226. uint64_t en:1;
  227. } s;
  228. struct cvmx_agl_gmx_prtx_cfg_cn52xx {
  229. uint64_t reserved_6_63:58;
  230. uint64_t tx_en:1;
  231. uint64_t rx_en:1;
  232. uint64_t slottime:1;
  233. uint64_t duplex:1;
  234. uint64_t speed:1;
  235. uint64_t en:1;
  236. } cn52xx;
  237. struct cvmx_agl_gmx_prtx_cfg_cn52xx cn52xxp1;
  238. struct cvmx_agl_gmx_prtx_cfg_cn52xx cn56xx;
  239. struct cvmx_agl_gmx_prtx_cfg_cn52xx cn56xxp1;
  240. struct cvmx_agl_gmx_prtx_cfg_s cn63xx;
  241. struct cvmx_agl_gmx_prtx_cfg_s cn63xxp1;
  242. };
  243. union cvmx_agl_gmx_rxx_adr_cam0 {
  244. uint64_t u64;
  245. struct cvmx_agl_gmx_rxx_adr_cam0_s {
  246. uint64_t adr:64;
  247. } s;
  248. struct cvmx_agl_gmx_rxx_adr_cam0_s cn52xx;
  249. struct cvmx_agl_gmx_rxx_adr_cam0_s cn52xxp1;
  250. struct cvmx_agl_gmx_rxx_adr_cam0_s cn56xx;
  251. struct cvmx_agl_gmx_rxx_adr_cam0_s cn56xxp1;
  252. struct cvmx_agl_gmx_rxx_adr_cam0_s cn63xx;
  253. struct cvmx_agl_gmx_rxx_adr_cam0_s cn63xxp1;
  254. };
  255. union cvmx_agl_gmx_rxx_adr_cam1 {
  256. uint64_t u64;
  257. struct cvmx_agl_gmx_rxx_adr_cam1_s {
  258. uint64_t adr:64;
  259. } s;
  260. struct cvmx_agl_gmx_rxx_adr_cam1_s cn52xx;
  261. struct cvmx_agl_gmx_rxx_adr_cam1_s cn52xxp1;
  262. struct cvmx_agl_gmx_rxx_adr_cam1_s cn56xx;
  263. struct cvmx_agl_gmx_rxx_adr_cam1_s cn56xxp1;
  264. struct cvmx_agl_gmx_rxx_adr_cam1_s cn63xx;
  265. struct cvmx_agl_gmx_rxx_adr_cam1_s cn63xxp1;
  266. };
  267. union cvmx_agl_gmx_rxx_adr_cam2 {
  268. uint64_t u64;
  269. struct cvmx_agl_gmx_rxx_adr_cam2_s {
  270. uint64_t adr:64;
  271. } s;
  272. struct cvmx_agl_gmx_rxx_adr_cam2_s cn52xx;
  273. struct cvmx_agl_gmx_rxx_adr_cam2_s cn52xxp1;
  274. struct cvmx_agl_gmx_rxx_adr_cam2_s cn56xx;
  275. struct cvmx_agl_gmx_rxx_adr_cam2_s cn56xxp1;
  276. struct cvmx_agl_gmx_rxx_adr_cam2_s cn63xx;
  277. struct cvmx_agl_gmx_rxx_adr_cam2_s cn63xxp1;
  278. };
  279. union cvmx_agl_gmx_rxx_adr_cam3 {
  280. uint64_t u64;
  281. struct cvmx_agl_gmx_rxx_adr_cam3_s {
  282. uint64_t adr:64;
  283. } s;
  284. struct cvmx_agl_gmx_rxx_adr_cam3_s cn52xx;
  285. struct cvmx_agl_gmx_rxx_adr_cam3_s cn52xxp1;
  286. struct cvmx_agl_gmx_rxx_adr_cam3_s cn56xx;
  287. struct cvmx_agl_gmx_rxx_adr_cam3_s cn56xxp1;
  288. struct cvmx_agl_gmx_rxx_adr_cam3_s cn63xx;
  289. struct cvmx_agl_gmx_rxx_adr_cam3_s cn63xxp1;
  290. };
  291. union cvmx_agl_gmx_rxx_adr_cam4 {
  292. uint64_t u64;
  293. struct cvmx_agl_gmx_rxx_adr_cam4_s {
  294. uint64_t adr:64;
  295. } s;
  296. struct cvmx_agl_gmx_rxx_adr_cam4_s cn52xx;
  297. struct cvmx_agl_gmx_rxx_adr_cam4_s cn52xxp1;
  298. struct cvmx_agl_gmx_rxx_adr_cam4_s cn56xx;
  299. struct cvmx_agl_gmx_rxx_adr_cam4_s cn56xxp1;
  300. struct cvmx_agl_gmx_rxx_adr_cam4_s cn63xx;
  301. struct cvmx_agl_gmx_rxx_adr_cam4_s cn63xxp1;
  302. };
  303. union cvmx_agl_gmx_rxx_adr_cam5 {
  304. uint64_t u64;
  305. struct cvmx_agl_gmx_rxx_adr_cam5_s {
  306. uint64_t adr:64;
  307. } s;
  308. struct cvmx_agl_gmx_rxx_adr_cam5_s cn52xx;
  309. struct cvmx_agl_gmx_rxx_adr_cam5_s cn52xxp1;
  310. struct cvmx_agl_gmx_rxx_adr_cam5_s cn56xx;
  311. struct cvmx_agl_gmx_rxx_adr_cam5_s cn56xxp1;
  312. struct cvmx_agl_gmx_rxx_adr_cam5_s cn63xx;
  313. struct cvmx_agl_gmx_rxx_adr_cam5_s cn63xxp1;
  314. };
  315. union cvmx_agl_gmx_rxx_adr_cam_en {
  316. uint64_t u64;
  317. struct cvmx_agl_gmx_rxx_adr_cam_en_s {
  318. uint64_t reserved_8_63:56;
  319. uint64_t en:8;
  320. } s;
  321. struct cvmx_agl_gmx_rxx_adr_cam_en_s cn52xx;
  322. struct cvmx_agl_gmx_rxx_adr_cam_en_s cn52xxp1;
  323. struct cvmx_agl_gmx_rxx_adr_cam_en_s cn56xx;
  324. struct cvmx_agl_gmx_rxx_adr_cam_en_s cn56xxp1;
  325. struct cvmx_agl_gmx_rxx_adr_cam_en_s cn63xx;
  326. struct cvmx_agl_gmx_rxx_adr_cam_en_s cn63xxp1;
  327. };
  328. union cvmx_agl_gmx_rxx_adr_ctl {
  329. uint64_t u64;
  330. struct cvmx_agl_gmx_rxx_adr_ctl_s {
  331. uint64_t reserved_4_63:60;
  332. uint64_t cam_mode:1;
  333. uint64_t mcst:2;
  334. uint64_t bcst:1;
  335. } s;
  336. struct cvmx_agl_gmx_rxx_adr_ctl_s cn52xx;
  337. struct cvmx_agl_gmx_rxx_adr_ctl_s cn52xxp1;
  338. struct cvmx_agl_gmx_rxx_adr_ctl_s cn56xx;
  339. struct cvmx_agl_gmx_rxx_adr_ctl_s cn56xxp1;
  340. struct cvmx_agl_gmx_rxx_adr_ctl_s cn63xx;
  341. struct cvmx_agl_gmx_rxx_adr_ctl_s cn63xxp1;
  342. };
  343. union cvmx_agl_gmx_rxx_decision {
  344. uint64_t u64;
  345. struct cvmx_agl_gmx_rxx_decision_s {
  346. uint64_t reserved_5_63:59;
  347. uint64_t cnt:5;
  348. } s;
  349. struct cvmx_agl_gmx_rxx_decision_s cn52xx;
  350. struct cvmx_agl_gmx_rxx_decision_s cn52xxp1;
  351. struct cvmx_agl_gmx_rxx_decision_s cn56xx;
  352. struct cvmx_agl_gmx_rxx_decision_s cn56xxp1;
  353. struct cvmx_agl_gmx_rxx_decision_s cn63xx;
  354. struct cvmx_agl_gmx_rxx_decision_s cn63xxp1;
  355. };
  356. union cvmx_agl_gmx_rxx_frm_chk {
  357. uint64_t u64;
  358. struct cvmx_agl_gmx_rxx_frm_chk_s {
  359. uint64_t reserved_10_63:54;
  360. uint64_t niberr:1;
  361. uint64_t skperr:1;
  362. uint64_t rcverr:1;
  363. uint64_t lenerr:1;
  364. uint64_t alnerr:1;
  365. uint64_t fcserr:1;
  366. uint64_t jabber:1;
  367. uint64_t maxerr:1;
  368. uint64_t carext:1;
  369. uint64_t minerr:1;
  370. } s;
  371. struct cvmx_agl_gmx_rxx_frm_chk_cn52xx {
  372. uint64_t reserved_9_63:55;
  373. uint64_t skperr:1;
  374. uint64_t rcverr:1;
  375. uint64_t lenerr:1;
  376. uint64_t alnerr:1;
  377. uint64_t fcserr:1;
  378. uint64_t jabber:1;
  379. uint64_t maxerr:1;
  380. uint64_t reserved_1_1:1;
  381. uint64_t minerr:1;
  382. } cn52xx;
  383. struct cvmx_agl_gmx_rxx_frm_chk_cn52xx cn52xxp1;
  384. struct cvmx_agl_gmx_rxx_frm_chk_cn52xx cn56xx;
  385. struct cvmx_agl_gmx_rxx_frm_chk_cn52xx cn56xxp1;
  386. struct cvmx_agl_gmx_rxx_frm_chk_s cn63xx;
  387. struct cvmx_agl_gmx_rxx_frm_chk_s cn63xxp1;
  388. };
  389. union cvmx_agl_gmx_rxx_frm_ctl {
  390. uint64_t u64;
  391. struct cvmx_agl_gmx_rxx_frm_ctl_s {
  392. uint64_t reserved_13_63:51;
  393. uint64_t ptp_mode:1;
  394. uint64_t reserved_11_11:1;
  395. uint64_t null_dis:1;
  396. uint64_t pre_align:1;
  397. uint64_t pad_len:1;
  398. uint64_t vlan_len:1;
  399. uint64_t pre_free:1;
  400. uint64_t ctl_smac:1;
  401. uint64_t ctl_mcst:1;
  402. uint64_t ctl_bck:1;
  403. uint64_t ctl_drp:1;
  404. uint64_t pre_strp:1;
  405. uint64_t pre_chk:1;
  406. } s;
  407. struct cvmx_agl_gmx_rxx_frm_ctl_cn52xx {
  408. uint64_t reserved_10_63:54;
  409. uint64_t pre_align:1;
  410. uint64_t pad_len:1;
  411. uint64_t vlan_len:1;
  412. uint64_t pre_free:1;
  413. uint64_t ctl_smac:1;
  414. uint64_t ctl_mcst:1;
  415. uint64_t ctl_bck:1;
  416. uint64_t ctl_drp:1;
  417. uint64_t pre_strp:1;
  418. uint64_t pre_chk:1;
  419. } cn52xx;
  420. struct cvmx_agl_gmx_rxx_frm_ctl_cn52xx cn52xxp1;
  421. struct cvmx_agl_gmx_rxx_frm_ctl_cn52xx cn56xx;
  422. struct cvmx_agl_gmx_rxx_frm_ctl_cn52xx cn56xxp1;
  423. struct cvmx_agl_gmx_rxx_frm_ctl_s cn63xx;
  424. struct cvmx_agl_gmx_rxx_frm_ctl_s cn63xxp1;
  425. };
  426. union cvmx_agl_gmx_rxx_frm_max {
  427. uint64_t u64;
  428. struct cvmx_agl_gmx_rxx_frm_max_s {
  429. uint64_t reserved_16_63:48;
  430. uint64_t len:16;
  431. } s;
  432. struct cvmx_agl_gmx_rxx_frm_max_s cn52xx;
  433. struct cvmx_agl_gmx_rxx_frm_max_s cn52xxp1;
  434. struct cvmx_agl_gmx_rxx_frm_max_s cn56xx;
  435. struct cvmx_agl_gmx_rxx_frm_max_s cn56xxp1;
  436. struct cvmx_agl_gmx_rxx_frm_max_s cn63xx;
  437. struct cvmx_agl_gmx_rxx_frm_max_s cn63xxp1;
  438. };
  439. union cvmx_agl_gmx_rxx_frm_min {
  440. uint64_t u64;
  441. struct cvmx_agl_gmx_rxx_frm_min_s {
  442. uint64_t reserved_16_63:48;
  443. uint64_t len:16;
  444. } s;
  445. struct cvmx_agl_gmx_rxx_frm_min_s cn52xx;
  446. struct cvmx_agl_gmx_rxx_frm_min_s cn52xxp1;
  447. struct cvmx_agl_gmx_rxx_frm_min_s cn56xx;
  448. struct cvmx_agl_gmx_rxx_frm_min_s cn56xxp1;
  449. struct cvmx_agl_gmx_rxx_frm_min_s cn63xx;
  450. struct cvmx_agl_gmx_rxx_frm_min_s cn63xxp1;
  451. };
  452. union cvmx_agl_gmx_rxx_ifg {
  453. uint64_t u64;
  454. struct cvmx_agl_gmx_rxx_ifg_s {
  455. uint64_t reserved_4_63:60;
  456. uint64_t ifg:4;
  457. } s;
  458. struct cvmx_agl_gmx_rxx_ifg_s cn52xx;
  459. struct cvmx_agl_gmx_rxx_ifg_s cn52xxp1;
  460. struct cvmx_agl_gmx_rxx_ifg_s cn56xx;
  461. struct cvmx_agl_gmx_rxx_ifg_s cn56xxp1;
  462. struct cvmx_agl_gmx_rxx_ifg_s cn63xx;
  463. struct cvmx_agl_gmx_rxx_ifg_s cn63xxp1;
  464. };
  465. union cvmx_agl_gmx_rxx_int_en {
  466. uint64_t u64;
  467. struct cvmx_agl_gmx_rxx_int_en_s {
  468. uint64_t reserved_20_63:44;
  469. uint64_t pause_drp:1;
  470. uint64_t phy_dupx:1;
  471. uint64_t phy_spd:1;
  472. uint64_t phy_link:1;
  473. uint64_t ifgerr:1;
  474. uint64_t coldet:1;
  475. uint64_t falerr:1;
  476. uint64_t rsverr:1;
  477. uint64_t pcterr:1;
  478. uint64_t ovrerr:1;
  479. uint64_t niberr:1;
  480. uint64_t skperr:1;
  481. uint64_t rcverr:1;
  482. uint64_t lenerr:1;
  483. uint64_t alnerr:1;
  484. uint64_t fcserr:1;
  485. uint64_t jabber:1;
  486. uint64_t maxerr:1;
  487. uint64_t carext:1;
  488. uint64_t minerr:1;
  489. } s;
  490. struct cvmx_agl_gmx_rxx_int_en_cn52xx {
  491. uint64_t reserved_20_63:44;
  492. uint64_t pause_drp:1;
  493. uint64_t reserved_16_18:3;
  494. uint64_t ifgerr:1;
  495. uint64_t coldet:1;
  496. uint64_t falerr:1;
  497. uint64_t rsverr:1;
  498. uint64_t pcterr:1;
  499. uint64_t ovrerr:1;
  500. uint64_t reserved_9_9:1;
  501. uint64_t skperr:1;
  502. uint64_t rcverr:1;
  503. uint64_t lenerr:1;
  504. uint64_t alnerr:1;
  505. uint64_t fcserr:1;
  506. uint64_t jabber:1;
  507. uint64_t maxerr:1;
  508. uint64_t reserved_1_1:1;
  509. uint64_t minerr:1;
  510. } cn52xx;
  511. struct cvmx_agl_gmx_rxx_int_en_cn52xx cn52xxp1;
  512. struct cvmx_agl_gmx_rxx_int_en_cn52xx cn56xx;
  513. struct cvmx_agl_gmx_rxx_int_en_cn52xx cn56xxp1;
  514. struct cvmx_agl_gmx_rxx_int_en_s cn63xx;
  515. struct cvmx_agl_gmx_rxx_int_en_s cn63xxp1;
  516. };
  517. union cvmx_agl_gmx_rxx_int_reg {
  518. uint64_t u64;
  519. struct cvmx_agl_gmx_rxx_int_reg_s {
  520. uint64_t reserved_20_63:44;
  521. uint64_t pause_drp:1;
  522. uint64_t phy_dupx:1;
  523. uint64_t phy_spd:1;
  524. uint64_t phy_link:1;
  525. uint64_t ifgerr:1;
  526. uint64_t coldet:1;
  527. uint64_t falerr:1;
  528. uint64_t rsverr:1;
  529. uint64_t pcterr:1;
  530. uint64_t ovrerr:1;
  531. uint64_t niberr:1;
  532. uint64_t skperr:1;
  533. uint64_t rcverr:1;
  534. uint64_t lenerr:1;
  535. uint64_t alnerr:1;
  536. uint64_t fcserr:1;
  537. uint64_t jabber:1;
  538. uint64_t maxerr:1;
  539. uint64_t carext:1;
  540. uint64_t minerr:1;
  541. } s;
  542. struct cvmx_agl_gmx_rxx_int_reg_cn52xx {
  543. uint64_t reserved_20_63:44;
  544. uint64_t pause_drp:1;
  545. uint64_t reserved_16_18:3;
  546. uint64_t ifgerr:1;
  547. uint64_t coldet:1;
  548. uint64_t falerr:1;
  549. uint64_t rsverr:1;
  550. uint64_t pcterr:1;
  551. uint64_t ovrerr:1;
  552. uint64_t reserved_9_9:1;
  553. uint64_t skperr:1;
  554. uint64_t rcverr:1;
  555. uint64_t lenerr:1;
  556. uint64_t alnerr:1;
  557. uint64_t fcserr:1;
  558. uint64_t jabber:1;
  559. uint64_t maxerr:1;
  560. uint64_t reserved_1_1:1;
  561. uint64_t minerr:1;
  562. } cn52xx;
  563. struct cvmx_agl_gmx_rxx_int_reg_cn52xx cn52xxp1;
  564. struct cvmx_agl_gmx_rxx_int_reg_cn52xx cn56xx;
  565. struct cvmx_agl_gmx_rxx_int_reg_cn52xx cn56xxp1;
  566. struct cvmx_agl_gmx_rxx_int_reg_s cn63xx;
  567. struct cvmx_agl_gmx_rxx_int_reg_s cn63xxp1;
  568. };
  569. union cvmx_agl_gmx_rxx_jabber {
  570. uint64_t u64;
  571. struct cvmx_agl_gmx_rxx_jabber_s {
  572. uint64_t reserved_16_63:48;
  573. uint64_t cnt:16;
  574. } s;
  575. struct cvmx_agl_gmx_rxx_jabber_s cn52xx;
  576. struct cvmx_agl_gmx_rxx_jabber_s cn52xxp1;
  577. struct cvmx_agl_gmx_rxx_jabber_s cn56xx;
  578. struct cvmx_agl_gmx_rxx_jabber_s cn56xxp1;
  579. struct cvmx_agl_gmx_rxx_jabber_s cn63xx;
  580. struct cvmx_agl_gmx_rxx_jabber_s cn63xxp1;
  581. };
  582. union cvmx_agl_gmx_rxx_pause_drop_time {
  583. uint64_t u64;
  584. struct cvmx_agl_gmx_rxx_pause_drop_time_s {
  585. uint64_t reserved_16_63:48;
  586. uint64_t status:16;
  587. } s;
  588. struct cvmx_agl_gmx_rxx_pause_drop_time_s cn52xx;
  589. struct cvmx_agl_gmx_rxx_pause_drop_time_s cn52xxp1;
  590. struct cvmx_agl_gmx_rxx_pause_drop_time_s cn56xx;
  591. struct cvmx_agl_gmx_rxx_pause_drop_time_s cn56xxp1;
  592. struct cvmx_agl_gmx_rxx_pause_drop_time_s cn63xx;
  593. struct cvmx_agl_gmx_rxx_pause_drop_time_s cn63xxp1;
  594. };
  595. union cvmx_agl_gmx_rxx_rx_inbnd {
  596. uint64_t u64;
  597. struct cvmx_agl_gmx_rxx_rx_inbnd_s {
  598. uint64_t reserved_4_63:60;
  599. uint64_t duplex:1;
  600. uint64_t speed:2;
  601. uint64_t status:1;
  602. } s;
  603. struct cvmx_agl_gmx_rxx_rx_inbnd_s cn63xx;
  604. struct cvmx_agl_gmx_rxx_rx_inbnd_s cn63xxp1;
  605. };
  606. union cvmx_agl_gmx_rxx_stats_ctl {
  607. uint64_t u64;
  608. struct cvmx_agl_gmx_rxx_stats_ctl_s {
  609. uint64_t reserved_1_63:63;
  610. uint64_t rd_clr:1;
  611. } s;
  612. struct cvmx_agl_gmx_rxx_stats_ctl_s cn52xx;
  613. struct cvmx_agl_gmx_rxx_stats_ctl_s cn52xxp1;
  614. struct cvmx_agl_gmx_rxx_stats_ctl_s cn56xx;
  615. struct cvmx_agl_gmx_rxx_stats_ctl_s cn56xxp1;
  616. struct cvmx_agl_gmx_rxx_stats_ctl_s cn63xx;
  617. struct cvmx_agl_gmx_rxx_stats_ctl_s cn63xxp1;
  618. };
  619. union cvmx_agl_gmx_rxx_stats_octs {
  620. uint64_t u64;
  621. struct cvmx_agl_gmx_rxx_stats_octs_s {
  622. uint64_t reserved_48_63:16;
  623. uint64_t cnt:48;
  624. } s;
  625. struct cvmx_agl_gmx_rxx_stats_octs_s cn52xx;
  626. struct cvmx_agl_gmx_rxx_stats_octs_s cn52xxp1;
  627. struct cvmx_agl_gmx_rxx_stats_octs_s cn56xx;
  628. struct cvmx_agl_gmx_rxx_stats_octs_s cn56xxp1;
  629. struct cvmx_agl_gmx_rxx_stats_octs_s cn63xx;
  630. struct cvmx_agl_gmx_rxx_stats_octs_s cn63xxp1;
  631. };
  632. union cvmx_agl_gmx_rxx_stats_octs_ctl {
  633. uint64_t u64;
  634. struct cvmx_agl_gmx_rxx_stats_octs_ctl_s {
  635. uint64_t reserved_48_63:16;
  636. uint64_t cnt:48;
  637. } s;
  638. struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn52xx;
  639. struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn52xxp1;
  640. struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn56xx;
  641. struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn56xxp1;
  642. struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn63xx;
  643. struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn63xxp1;
  644. };
  645. union cvmx_agl_gmx_rxx_stats_octs_dmac {
  646. uint64_t u64;
  647. struct cvmx_agl_gmx_rxx_stats_octs_dmac_s {
  648. uint64_t reserved_48_63:16;
  649. uint64_t cnt:48;
  650. } s;
  651. struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn52xx;
  652. struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn52xxp1;
  653. struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn56xx;
  654. struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn56xxp1;
  655. struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn63xx;
  656. struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn63xxp1;
  657. };
  658. union cvmx_agl_gmx_rxx_stats_octs_drp {
  659. uint64_t u64;
  660. struct cvmx_agl_gmx_rxx_stats_octs_drp_s {
  661. uint64_t reserved_48_63:16;
  662. uint64_t cnt:48;
  663. } s;
  664. struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn52xx;
  665. struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn52xxp1;
  666. struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn56xx;
  667. struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn56xxp1;
  668. struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn63xx;
  669. struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn63xxp1;
  670. };
  671. union cvmx_agl_gmx_rxx_stats_pkts {
  672. uint64_t u64;
  673. struct cvmx_agl_gmx_rxx_stats_pkts_s {
  674. uint64_t reserved_32_63:32;
  675. uint64_t cnt:32;
  676. } s;
  677. struct cvmx_agl_gmx_rxx_stats_pkts_s cn52xx;
  678. struct cvmx_agl_gmx_rxx_stats_pkts_s cn52xxp1;
  679. struct cvmx_agl_gmx_rxx_stats_pkts_s cn56xx;
  680. struct cvmx_agl_gmx_rxx_stats_pkts_s cn56xxp1;
  681. struct cvmx_agl_gmx_rxx_stats_pkts_s cn63xx;
  682. struct cvmx_agl_gmx_rxx_stats_pkts_s cn63xxp1;
  683. };
  684. union cvmx_agl_gmx_rxx_stats_pkts_bad {
  685. uint64_t u64;
  686. struct cvmx_agl_gmx_rxx_stats_pkts_bad_s {
  687. uint64_t reserved_32_63:32;
  688. uint64_t cnt:32;
  689. } s;
  690. struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn52xx;
  691. struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn52xxp1;
  692. struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn56xx;
  693. struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn56xxp1;
  694. struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn63xx;
  695. struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn63xxp1;
  696. };
  697. union cvmx_agl_gmx_rxx_stats_pkts_ctl {
  698. uint64_t u64;
  699. struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s {
  700. uint64_t reserved_32_63:32;
  701. uint64_t cnt:32;
  702. } s;
  703. struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn52xx;
  704. struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn52xxp1;
  705. struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn56xx;
  706. struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn56xxp1;
  707. struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn63xx;
  708. struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn63xxp1;
  709. };
  710. union cvmx_agl_gmx_rxx_stats_pkts_dmac {
  711. uint64_t u64;
  712. struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s {
  713. uint64_t reserved_32_63:32;
  714. uint64_t cnt:32;
  715. } s;
  716. struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn52xx;
  717. struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn52xxp1;
  718. struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn56xx;
  719. struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn56xxp1;
  720. struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn63xx;
  721. struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn63xxp1;
  722. };
  723. union cvmx_agl_gmx_rxx_stats_pkts_drp {
  724. uint64_t u64;
  725. struct cvmx_agl_gmx_rxx_stats_pkts_drp_s {
  726. uint64_t reserved_32_63:32;
  727. uint64_t cnt:32;
  728. } s;
  729. struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn52xx;
  730. struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn52xxp1;
  731. struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn56xx;
  732. struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn56xxp1;
  733. struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn63xx;
  734. struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn63xxp1;
  735. };
  736. union cvmx_agl_gmx_rxx_udd_skp {
  737. uint64_t u64;
  738. struct cvmx_agl_gmx_rxx_udd_skp_s {
  739. uint64_t reserved_9_63:55;
  740. uint64_t fcssel:1;
  741. uint64_t reserved_7_7:1;
  742. uint64_t len:7;
  743. } s;
  744. struct cvmx_agl_gmx_rxx_udd_skp_s cn52xx;
  745. struct cvmx_agl_gmx_rxx_udd_skp_s cn52xxp1;
  746. struct cvmx_agl_gmx_rxx_udd_skp_s cn56xx;
  747. struct cvmx_agl_gmx_rxx_udd_skp_s cn56xxp1;
  748. struct cvmx_agl_gmx_rxx_udd_skp_s cn63xx;
  749. struct cvmx_agl_gmx_rxx_udd_skp_s cn63xxp1;
  750. };
  751. union cvmx_agl_gmx_rx_bp_dropx {
  752. uint64_t u64;
  753. struct cvmx_agl_gmx_rx_bp_dropx_s {
  754. uint64_t reserved_6_63:58;
  755. uint64_t mark:6;
  756. } s;
  757. struct cvmx_agl_gmx_rx_bp_dropx_s cn52xx;
  758. struct cvmx_agl_gmx_rx_bp_dropx_s cn52xxp1;
  759. struct cvmx_agl_gmx_rx_bp_dropx_s cn56xx;
  760. struct cvmx_agl_gmx_rx_bp_dropx_s cn56xxp1;
  761. struct cvmx_agl_gmx_rx_bp_dropx_s cn63xx;
  762. struct cvmx_agl_gmx_rx_bp_dropx_s cn63xxp1;
  763. };
  764. union cvmx_agl_gmx_rx_bp_offx {
  765. uint64_t u64;
  766. struct cvmx_agl_gmx_rx_bp_offx_s {
  767. uint64_t reserved_6_63:58;
  768. uint64_t mark:6;
  769. } s;
  770. struct cvmx_agl_gmx_rx_bp_offx_s cn52xx;
  771. struct cvmx_agl_gmx_rx_bp_offx_s cn52xxp1;
  772. struct cvmx_agl_gmx_rx_bp_offx_s cn56xx;
  773. struct cvmx_agl_gmx_rx_bp_offx_s cn56xxp1;
  774. struct cvmx_agl_gmx_rx_bp_offx_s cn63xx;
  775. struct cvmx_agl_gmx_rx_bp_offx_s cn63xxp1;
  776. };
  777. union cvmx_agl_gmx_rx_bp_onx {
  778. uint64_t u64;
  779. struct cvmx_agl_gmx_rx_bp_onx_s {
  780. uint64_t reserved_9_63:55;
  781. uint64_t mark:9;
  782. } s;
  783. struct cvmx_agl_gmx_rx_bp_onx_s cn52xx;
  784. struct cvmx_agl_gmx_rx_bp_onx_s cn52xxp1;
  785. struct cvmx_agl_gmx_rx_bp_onx_s cn56xx;
  786. struct cvmx_agl_gmx_rx_bp_onx_s cn56xxp1;
  787. struct cvmx_agl_gmx_rx_bp_onx_s cn63xx;
  788. struct cvmx_agl_gmx_rx_bp_onx_s cn63xxp1;
  789. };
  790. union cvmx_agl_gmx_rx_prt_info {
  791. uint64_t u64;
  792. struct cvmx_agl_gmx_rx_prt_info_s {
  793. uint64_t reserved_18_63:46;
  794. uint64_t drop:2;
  795. uint64_t reserved_2_15:14;
  796. uint64_t commit:2;
  797. } s;
  798. struct cvmx_agl_gmx_rx_prt_info_s cn52xx;
  799. struct cvmx_agl_gmx_rx_prt_info_s cn52xxp1;
  800. struct cvmx_agl_gmx_rx_prt_info_cn56xx {
  801. uint64_t reserved_17_63:47;
  802. uint64_t drop:1;
  803. uint64_t reserved_1_15:15;
  804. uint64_t commit:1;
  805. } cn56xx;
  806. struct cvmx_agl_gmx_rx_prt_info_cn56xx cn56xxp1;
  807. struct cvmx_agl_gmx_rx_prt_info_s cn63xx;
  808. struct cvmx_agl_gmx_rx_prt_info_s cn63xxp1;
  809. };
  810. union cvmx_agl_gmx_rx_tx_status {
  811. uint64_t u64;
  812. struct cvmx_agl_gmx_rx_tx_status_s {
  813. uint64_t reserved_6_63:58;
  814. uint64_t tx:2;
  815. uint64_t reserved_2_3:2;
  816. uint64_t rx:2;
  817. } s;
  818. struct cvmx_agl_gmx_rx_tx_status_s cn52xx;
  819. struct cvmx_agl_gmx_rx_tx_status_s cn52xxp1;
  820. struct cvmx_agl_gmx_rx_tx_status_cn56xx {
  821. uint64_t reserved_5_63:59;
  822. uint64_t tx:1;
  823. uint64_t reserved_1_3:3;
  824. uint64_t rx:1;
  825. } cn56xx;
  826. struct cvmx_agl_gmx_rx_tx_status_cn56xx cn56xxp1;
  827. struct cvmx_agl_gmx_rx_tx_status_s cn63xx;
  828. struct cvmx_agl_gmx_rx_tx_status_s cn63xxp1;
  829. };
  830. union cvmx_agl_gmx_smacx {
  831. uint64_t u64;
  832. struct cvmx_agl_gmx_smacx_s {
  833. uint64_t reserved_48_63:16;
  834. uint64_t smac:48;
  835. } s;
  836. struct cvmx_agl_gmx_smacx_s cn52xx;
  837. struct cvmx_agl_gmx_smacx_s cn52xxp1;
  838. struct cvmx_agl_gmx_smacx_s cn56xx;
  839. struct cvmx_agl_gmx_smacx_s cn56xxp1;
  840. struct cvmx_agl_gmx_smacx_s cn63xx;
  841. struct cvmx_agl_gmx_smacx_s cn63xxp1;
  842. };
  843. union cvmx_agl_gmx_stat_bp {
  844. uint64_t u64;
  845. struct cvmx_agl_gmx_stat_bp_s {
  846. uint64_t reserved_17_63:47;
  847. uint64_t bp:1;
  848. uint64_t cnt:16;
  849. } s;
  850. struct cvmx_agl_gmx_stat_bp_s cn52xx;
  851. struct cvmx_agl_gmx_stat_bp_s cn52xxp1;
  852. struct cvmx_agl_gmx_stat_bp_s cn56xx;
  853. struct cvmx_agl_gmx_stat_bp_s cn56xxp1;
  854. struct cvmx_agl_gmx_stat_bp_s cn63xx;
  855. struct cvmx_agl_gmx_stat_bp_s cn63xxp1;
  856. };
  857. union cvmx_agl_gmx_txx_append {
  858. uint64_t u64;
  859. struct cvmx_agl_gmx_txx_append_s {
  860. uint64_t reserved_4_63:60;
  861. uint64_t force_fcs:1;
  862. uint64_t fcs:1;
  863. uint64_t pad:1;
  864. uint64_t preamble:1;
  865. } s;
  866. struct cvmx_agl_gmx_txx_append_s cn52xx;
  867. struct cvmx_agl_gmx_txx_append_s cn52xxp1;
  868. struct cvmx_agl_gmx_txx_append_s cn56xx;
  869. struct cvmx_agl_gmx_txx_append_s cn56xxp1;
  870. struct cvmx_agl_gmx_txx_append_s cn63xx;
  871. struct cvmx_agl_gmx_txx_append_s cn63xxp1;
  872. };
  873. union cvmx_agl_gmx_txx_clk {
  874. uint64_t u64;
  875. struct cvmx_agl_gmx_txx_clk_s {
  876. uint64_t reserved_6_63:58;
  877. uint64_t clk_cnt:6;
  878. } s;
  879. struct cvmx_agl_gmx_txx_clk_s cn63xx;
  880. struct cvmx_agl_gmx_txx_clk_s cn63xxp1;
  881. };
  882. union cvmx_agl_gmx_txx_ctl {
  883. uint64_t u64;
  884. struct cvmx_agl_gmx_txx_ctl_s {
  885. uint64_t reserved_2_63:62;
  886. uint64_t xsdef_en:1;
  887. uint64_t xscol_en:1;
  888. } s;
  889. struct cvmx_agl_gmx_txx_ctl_s cn52xx;
  890. struct cvmx_agl_gmx_txx_ctl_s cn52xxp1;
  891. struct cvmx_agl_gmx_txx_ctl_s cn56xx;
  892. struct cvmx_agl_gmx_txx_ctl_s cn56xxp1;
  893. struct cvmx_agl_gmx_txx_ctl_s cn63xx;
  894. struct cvmx_agl_gmx_txx_ctl_s cn63xxp1;
  895. };
  896. union cvmx_agl_gmx_txx_min_pkt {
  897. uint64_t u64;
  898. struct cvmx_agl_gmx_txx_min_pkt_s {
  899. uint64_t reserved_8_63:56;
  900. uint64_t min_size:8;
  901. } s;
  902. struct cvmx_agl_gmx_txx_min_pkt_s cn52xx;
  903. struct cvmx_agl_gmx_txx_min_pkt_s cn52xxp1;
  904. struct cvmx_agl_gmx_txx_min_pkt_s cn56xx;
  905. struct cvmx_agl_gmx_txx_min_pkt_s cn56xxp1;
  906. struct cvmx_agl_gmx_txx_min_pkt_s cn63xx;
  907. struct cvmx_agl_gmx_txx_min_pkt_s cn63xxp1;
  908. };
  909. union cvmx_agl_gmx_txx_pause_pkt_interval {
  910. uint64_t u64;
  911. struct cvmx_agl_gmx_txx_pause_pkt_interval_s {
  912. uint64_t reserved_16_63:48;
  913. uint64_t interval:16;
  914. } s;
  915. struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn52xx;
  916. struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn52xxp1;
  917. struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn56xx;
  918. struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn56xxp1;
  919. struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn63xx;
  920. struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn63xxp1;
  921. };
  922. union cvmx_agl_gmx_txx_pause_pkt_time {
  923. uint64_t u64;
  924. struct cvmx_agl_gmx_txx_pause_pkt_time_s {
  925. uint64_t reserved_16_63:48;
  926. uint64_t time:16;
  927. } s;
  928. struct cvmx_agl_gmx_txx_pause_pkt_time_s cn52xx;
  929. struct cvmx_agl_gmx_txx_pause_pkt_time_s cn52xxp1;
  930. struct cvmx_agl_gmx_txx_pause_pkt_time_s cn56xx;
  931. struct cvmx_agl_gmx_txx_pause_pkt_time_s cn56xxp1;
  932. struct cvmx_agl_gmx_txx_pause_pkt_time_s cn63xx;
  933. struct cvmx_agl_gmx_txx_pause_pkt_time_s cn63xxp1;
  934. };
  935. union cvmx_agl_gmx_txx_pause_togo {
  936. uint64_t u64;
  937. struct cvmx_agl_gmx_txx_pause_togo_s {
  938. uint64_t reserved_16_63:48;
  939. uint64_t time:16;
  940. } s;
  941. struct cvmx_agl_gmx_txx_pause_togo_s cn52xx;
  942. struct cvmx_agl_gmx_txx_pause_togo_s cn52xxp1;
  943. struct cvmx_agl_gmx_txx_pause_togo_s cn56xx;
  944. struct cvmx_agl_gmx_txx_pause_togo_s cn56xxp1;
  945. struct cvmx_agl_gmx_txx_pause_togo_s cn63xx;
  946. struct cvmx_agl_gmx_txx_pause_togo_s cn63xxp1;
  947. };
  948. union cvmx_agl_gmx_txx_pause_zero {
  949. uint64_t u64;
  950. struct cvmx_agl_gmx_txx_pause_zero_s {
  951. uint64_t reserved_1_63:63;
  952. uint64_t send:1;
  953. } s;
  954. struct cvmx_agl_gmx_txx_pause_zero_s cn52xx;
  955. struct cvmx_agl_gmx_txx_pause_zero_s cn52xxp1;
  956. struct cvmx_agl_gmx_txx_pause_zero_s cn56xx;
  957. struct cvmx_agl_gmx_txx_pause_zero_s cn56xxp1;
  958. struct cvmx_agl_gmx_txx_pause_zero_s cn63xx;
  959. struct cvmx_agl_gmx_txx_pause_zero_s cn63xxp1;
  960. };
  961. union cvmx_agl_gmx_txx_soft_pause {
  962. uint64_t u64;
  963. struct cvmx_agl_gmx_txx_soft_pause_s {
  964. uint64_t reserved_16_63:48;
  965. uint64_t time:16;
  966. } s;
  967. struct cvmx_agl_gmx_txx_soft_pause_s cn52xx;
  968. struct cvmx_agl_gmx_txx_soft_pause_s cn52xxp1;
  969. struct cvmx_agl_gmx_txx_soft_pause_s cn56xx;
  970. struct cvmx_agl_gmx_txx_soft_pause_s cn56xxp1;
  971. struct cvmx_agl_gmx_txx_soft_pause_s cn63xx;
  972. struct cvmx_agl_gmx_txx_soft_pause_s cn63xxp1;
  973. };
  974. union cvmx_agl_gmx_txx_stat0 {
  975. uint64_t u64;
  976. struct cvmx_agl_gmx_txx_stat0_s {
  977. uint64_t xsdef:32;
  978. uint64_t xscol:32;
  979. } s;
  980. struct cvmx_agl_gmx_txx_stat0_s cn52xx;
  981. struct cvmx_agl_gmx_txx_stat0_s cn52xxp1;
  982. struct cvmx_agl_gmx_txx_stat0_s cn56xx;
  983. struct cvmx_agl_gmx_txx_stat0_s cn56xxp1;
  984. struct cvmx_agl_gmx_txx_stat0_s cn63xx;
  985. struct cvmx_agl_gmx_txx_stat0_s cn63xxp1;
  986. };
  987. union cvmx_agl_gmx_txx_stat1 {
  988. uint64_t u64;
  989. struct cvmx_agl_gmx_txx_stat1_s {
  990. uint64_t scol:32;
  991. uint64_t mcol:32;
  992. } s;
  993. struct cvmx_agl_gmx_txx_stat1_s cn52xx;
  994. struct cvmx_agl_gmx_txx_stat1_s cn52xxp1;
  995. struct cvmx_agl_gmx_txx_stat1_s cn56xx;
  996. struct cvmx_agl_gmx_txx_stat1_s cn56xxp1;
  997. struct cvmx_agl_gmx_txx_stat1_s cn63xx;
  998. struct cvmx_agl_gmx_txx_stat1_s cn63xxp1;
  999. };
  1000. union cvmx_agl_gmx_txx_stat2 {
  1001. uint64_t u64;
  1002. struct cvmx_agl_gmx_txx_stat2_s {
  1003. uint64_t reserved_48_63:16;
  1004. uint64_t octs:48;
  1005. } s;
  1006. struct cvmx_agl_gmx_txx_stat2_s cn52xx;
  1007. struct cvmx_agl_gmx_txx_stat2_s cn52xxp1;
  1008. struct cvmx_agl_gmx_txx_stat2_s cn56xx;
  1009. struct cvmx_agl_gmx_txx_stat2_s cn56xxp1;
  1010. struct cvmx_agl_gmx_txx_stat2_s cn63xx;
  1011. struct cvmx_agl_gmx_txx_stat2_s cn63xxp1;
  1012. };
  1013. union cvmx_agl_gmx_txx_stat3 {
  1014. uint64_t u64;
  1015. struct cvmx_agl_gmx_txx_stat3_s {
  1016. uint64_t reserved_32_63:32;
  1017. uint64_t pkts:32;
  1018. } s;
  1019. struct cvmx_agl_gmx_txx_stat3_s cn52xx;
  1020. struct cvmx_agl_gmx_txx_stat3_s cn52xxp1;
  1021. struct cvmx_agl_gmx_txx_stat3_s cn56xx;
  1022. struct cvmx_agl_gmx_txx_stat3_s cn56xxp1;
  1023. struct cvmx_agl_gmx_txx_stat3_s cn63xx;
  1024. struct cvmx_agl_gmx_txx_stat3_s cn63xxp1;
  1025. };
  1026. union cvmx_agl_gmx_txx_stat4 {
  1027. uint64_t u64;
  1028. struct cvmx_agl_gmx_txx_stat4_s {
  1029. uint64_t hist1:32;
  1030. uint64_t hist0:32;
  1031. } s;
  1032. struct cvmx_agl_gmx_txx_stat4_s cn52xx;
  1033. struct cvmx_agl_gmx_txx_stat4_s cn52xxp1;
  1034. struct cvmx_agl_gmx_txx_stat4_s cn56xx;
  1035. struct cvmx_agl_gmx_txx_stat4_s cn56xxp1;
  1036. struct cvmx_agl_gmx_txx_stat4_s cn63xx;
  1037. struct cvmx_agl_gmx_txx_stat4_s cn63xxp1;
  1038. };
  1039. union cvmx_agl_gmx_txx_stat5 {
  1040. uint64_t u64;
  1041. struct cvmx_agl_gmx_txx_stat5_s {
  1042. uint64_t hist3:32;
  1043. uint64_t hist2:32;
  1044. } s;
  1045. struct cvmx_agl_gmx_txx_stat5_s cn52xx;
  1046. struct cvmx_agl_gmx_txx_stat5_s cn52xxp1;
  1047. struct cvmx_agl_gmx_txx_stat5_s cn56xx;
  1048. struct cvmx_agl_gmx_txx_stat5_s cn56xxp1;
  1049. struct cvmx_agl_gmx_txx_stat5_s cn63xx;
  1050. struct cvmx_agl_gmx_txx_stat5_s cn63xxp1;
  1051. };
  1052. union cvmx_agl_gmx_txx_stat6 {
  1053. uint64_t u64;
  1054. struct cvmx_agl_gmx_txx_stat6_s {
  1055. uint64_t hist5:32;
  1056. uint64_t hist4:32;
  1057. } s;
  1058. struct cvmx_agl_gmx_txx_stat6_s cn52xx;
  1059. struct cvmx_agl_gmx_txx_stat6_s cn52xxp1;
  1060. struct cvmx_agl_gmx_txx_stat6_s cn56xx;
  1061. struct cvmx_agl_gmx_txx_stat6_s cn56xxp1;
  1062. struct cvmx_agl_gmx_txx_stat6_s cn63xx;
  1063. struct cvmx_agl_gmx_txx_stat6_s cn63xxp1;
  1064. };
  1065. union cvmx_agl_gmx_txx_stat7 {
  1066. uint64_t u64;
  1067. struct cvmx_agl_gmx_txx_stat7_s {
  1068. uint64_t hist7:32;
  1069. uint64_t hist6:32;
  1070. } s;
  1071. struct cvmx_agl_gmx_txx_stat7_s cn52xx;
  1072. struct cvmx_agl_gmx_txx_stat7_s cn52xxp1;
  1073. struct cvmx_agl_gmx_txx_stat7_s cn56xx;
  1074. struct cvmx_agl_gmx_txx_stat7_s cn56xxp1;
  1075. struct cvmx_agl_gmx_txx_stat7_s cn63xx;
  1076. struct cvmx_agl_gmx_txx_stat7_s cn63xxp1;
  1077. };
  1078. union cvmx_agl_gmx_txx_stat8 {
  1079. uint64_t u64;
  1080. struct cvmx_agl_gmx_txx_stat8_s {
  1081. uint64_t mcst:32;
  1082. uint64_t bcst:32;
  1083. } s;
  1084. struct cvmx_agl_gmx_txx_stat8_s cn52xx;
  1085. struct cvmx_agl_gmx_txx_stat8_s cn52xxp1;
  1086. struct cvmx_agl_gmx_txx_stat8_s cn56xx;
  1087. struct cvmx_agl_gmx_txx_stat8_s cn56xxp1;
  1088. struct cvmx_agl_gmx_txx_stat8_s cn63xx;
  1089. struct cvmx_agl_gmx_txx_stat8_s cn63xxp1;
  1090. };
  1091. union cvmx_agl_gmx_txx_stat9 {
  1092. uint64_t u64;
  1093. struct cvmx_agl_gmx_txx_stat9_s {
  1094. uint64_t undflw:32;
  1095. uint64_t ctl:32;
  1096. } s;
  1097. struct cvmx_agl_gmx_txx_stat9_s cn52xx;
  1098. struct cvmx_agl_gmx_txx_stat9_s cn52xxp1;
  1099. struct cvmx_agl_gmx_txx_stat9_s cn56xx;
  1100. struct cvmx_agl_gmx_txx_stat9_s cn56xxp1;
  1101. struct cvmx_agl_gmx_txx_stat9_s cn63xx;
  1102. struct cvmx_agl_gmx_txx_stat9_s cn63xxp1;
  1103. };
  1104. union cvmx_agl_gmx_txx_stats_ctl {
  1105. uint64_t u64;
  1106. struct cvmx_agl_gmx_txx_stats_ctl_s {
  1107. uint64_t reserved_1_63:63;
  1108. uint64_t rd_clr:1;
  1109. } s;
  1110. struct cvmx_agl_gmx_txx_stats_ctl_s cn52xx;
  1111. struct cvmx_agl_gmx_txx_stats_ctl_s cn52xxp1;
  1112. struct cvmx_agl_gmx_txx_stats_ctl_s cn56xx;
  1113. struct cvmx_agl_gmx_txx_stats_ctl_s cn56xxp1;
  1114. struct cvmx_agl_gmx_txx_stats_ctl_s cn63xx;
  1115. struct cvmx_agl_gmx_txx_stats_ctl_s cn63xxp1;
  1116. };
  1117. union cvmx_agl_gmx_txx_thresh {
  1118. uint64_t u64;
  1119. struct cvmx_agl_gmx_txx_thresh_s {
  1120. uint64_t reserved_6_63:58;
  1121. uint64_t cnt:6;
  1122. } s;
  1123. struct cvmx_agl_gmx_txx_thresh_s cn52xx;
  1124. struct cvmx_agl_gmx_txx_thresh_s cn52xxp1;
  1125. struct cvmx_agl_gmx_txx_thresh_s cn56xx;
  1126. struct cvmx_agl_gmx_txx_thresh_s cn56xxp1;
  1127. struct cvmx_agl_gmx_txx_thresh_s cn63xx;
  1128. struct cvmx_agl_gmx_txx_thresh_s cn63xxp1;
  1129. };
  1130. union cvmx_agl_gmx_tx_bp {
  1131. uint64_t u64;
  1132. struct cvmx_agl_gmx_tx_bp_s {
  1133. uint64_t reserved_2_63:62;
  1134. uint64_t bp:2;
  1135. } s;
  1136. struct cvmx_agl_gmx_tx_bp_s cn52xx;
  1137. struct cvmx_agl_gmx_tx_bp_s cn52xxp1;
  1138. struct cvmx_agl_gmx_tx_bp_cn56xx {
  1139. uint64_t reserved_1_63:63;
  1140. uint64_t bp:1;
  1141. } cn56xx;
  1142. struct cvmx_agl_gmx_tx_bp_cn56xx cn56xxp1;
  1143. struct cvmx_agl_gmx_tx_bp_s cn63xx;
  1144. struct cvmx_agl_gmx_tx_bp_s cn63xxp1;
  1145. };
  1146. union cvmx_agl_gmx_tx_col_attempt {
  1147. uint64_t u64;
  1148. struct cvmx_agl_gmx_tx_col_attempt_s {
  1149. uint64_t reserved_5_63:59;
  1150. uint64_t limit:5;
  1151. } s;
  1152. struct cvmx_agl_gmx_tx_col_attempt_s cn52xx;
  1153. struct cvmx_agl_gmx_tx_col_attempt_s cn52xxp1;
  1154. struct cvmx_agl_gmx_tx_col_attempt_s cn56xx;
  1155. struct cvmx_agl_gmx_tx_col_attempt_s cn56xxp1;
  1156. struct cvmx_agl_gmx_tx_col_attempt_s cn63xx;
  1157. struct cvmx_agl_gmx_tx_col_attempt_s cn63xxp1;
  1158. };
  1159. union cvmx_agl_gmx_tx_ifg {
  1160. uint64_t u64;
  1161. struct cvmx_agl_gmx_tx_ifg_s {
  1162. uint64_t reserved_8_63:56;
  1163. uint64_t ifg2:4;
  1164. uint64_t ifg1:4;
  1165. } s;
  1166. struct cvmx_agl_gmx_tx_ifg_s cn52xx;
  1167. struct cvmx_agl_gmx_tx_ifg_s cn52xxp1;
  1168. struct cvmx_agl_gmx_tx_ifg_s cn56xx;
  1169. struct cvmx_agl_gmx_tx_ifg_s cn56xxp1;
  1170. struct cvmx_agl_gmx_tx_ifg_s cn63xx;
  1171. struct cvmx_agl_gmx_tx_ifg_s cn63xxp1;
  1172. };
  1173. union cvmx_agl_gmx_tx_int_en {
  1174. uint64_t u64;
  1175. struct cvmx_agl_gmx_tx_int_en_s {
  1176. uint64_t reserved_22_63:42;
  1177. uint64_t ptp_lost:2;
  1178. uint64_t reserved_18_19:2;
  1179. uint64_t late_col:2;
  1180. uint64_t reserved_14_15:2;
  1181. uint64_t xsdef:2;
  1182. uint64_t reserved_10_11:2;
  1183. uint64_t xscol:2;
  1184. uint64_t reserved_4_7:4;
  1185. uint64_t undflw:2;
  1186. uint64_t reserved_1_1:1;
  1187. uint64_t pko_nxa:1;
  1188. } s;
  1189. struct cvmx_agl_gmx_tx_int_en_cn52xx {
  1190. uint64_t reserved_18_63:46;
  1191. uint64_t late_col:2;
  1192. uint64_t reserved_14_15:2;
  1193. uint64_t xsdef:2;
  1194. uint64_t reserved_10_11:2;
  1195. uint64_t xscol:2;
  1196. uint64_t reserved_4_7:4;
  1197. uint64_t undflw:2;
  1198. uint64_t reserved_1_1:1;
  1199. uint64_t pko_nxa:1;
  1200. } cn52xx;
  1201. struct cvmx_agl_gmx_tx_int_en_cn52xx cn52xxp1;
  1202. struct cvmx_agl_gmx_tx_int_en_cn56xx {
  1203. uint64_t reserved_17_63:47;
  1204. uint64_t late_col:1;
  1205. uint64_t reserved_13_15:3;
  1206. uint64_t xsdef:1;
  1207. uint64_t reserved_9_11:3;
  1208. uint64_t xscol:1;
  1209. uint64_t reserved_3_7:5;
  1210. uint64_t undflw:1;
  1211. uint64_t reserved_1_1:1;
  1212. uint64_t pko_nxa:1;
  1213. } cn56xx;
  1214. struct cvmx_agl_gmx_tx_int_en_cn56xx cn56xxp1;
  1215. struct cvmx_agl_gmx_tx_int_en_s cn63xx;
  1216. struct cvmx_agl_gmx_tx_int_en_s cn63xxp1;
  1217. };
  1218. union cvmx_agl_gmx_tx_int_reg {
  1219. uint64_t u64;
  1220. struct cvmx_agl_gmx_tx_int_reg_s {
  1221. uint64_t reserved_22_63:42;
  1222. uint64_t ptp_lost:2;
  1223. uint64_t reserved_18_19:2;
  1224. uint64_t late_col:2;
  1225. uint64_t reserved_14_15:2;
  1226. uint64_t xsdef:2;
  1227. uint64_t reserved_10_11:2;
  1228. uint64_t xscol:2;
  1229. uint64_t reserved_4_7:4;
  1230. uint64_t undflw:2;
  1231. uint64_t reserved_1_1:1;
  1232. uint64_t pko_nxa:1;
  1233. } s;
  1234. struct cvmx_agl_gmx_tx_int_reg_cn52xx {
  1235. uint64_t reserved_18_63:46;
  1236. uint64_t late_col:2;
  1237. uint64_t reserved_14_15:2;
  1238. uint64_t xsdef:2;
  1239. uint64_t reserved_10_11:2;
  1240. uint64_t xscol:2;
  1241. uint64_t reserved_4_7:4;
  1242. uint64_t undflw:2;
  1243. uint64_t reserved_1_1:1;
  1244. uint64_t pko_nxa:1;
  1245. } cn52xx;
  1246. struct cvmx_agl_gmx_tx_int_reg_cn52xx cn52xxp1;
  1247. struct cvmx_agl_gmx_tx_int_reg_cn56xx {
  1248. uint64_t reserved_17_63:47;
  1249. uint64_t late_col:1;
  1250. uint64_t reserved_13_15:3;
  1251. uint64_t xsdef:1;
  1252. uint64_t reserved_9_11:3;
  1253. uint64_t xscol:1;
  1254. uint64_t reserved_3_7:5;
  1255. uint64_t undflw:1;
  1256. uint64_t reserved_1_1:1;
  1257. uint64_t pko_nxa:1;
  1258. } cn56xx;
  1259. struct cvmx_agl_gmx_tx_int_reg_cn56xx cn56xxp1;
  1260. struct cvmx_agl_gmx_tx_int_reg_s cn63xx;
  1261. struct cvmx_agl_gmx_tx_int_reg_s cn63xxp1;
  1262. };
  1263. union cvmx_agl_gmx_tx_jam {
  1264. uint64_t u64;
  1265. struct cvmx_agl_gmx_tx_jam_s {
  1266. uint64_t reserved_8_63:56;
  1267. uint64_t jam:8;
  1268. } s;
  1269. struct cvmx_agl_gmx_tx_jam_s cn52xx;
  1270. struct cvmx_agl_gmx_tx_jam_s cn52xxp1;
  1271. struct cvmx_agl_gmx_tx_jam_s cn56xx;
  1272. struct cvmx_agl_gmx_tx_jam_s cn56xxp1;
  1273. struct cvmx_agl_gmx_tx_jam_s cn63xx;
  1274. struct cvmx_agl_gmx_tx_jam_s cn63xxp1;
  1275. };
  1276. union cvmx_agl_gmx_tx_lfsr {
  1277. uint64_t u64;
  1278. struct cvmx_agl_gmx_tx_lfsr_s {
  1279. uint64_t reserved_16_63:48;
  1280. uint64_t lfsr:16;
  1281. } s;
  1282. struct cvmx_agl_gmx_tx_lfsr_s cn52xx;
  1283. struct cvmx_agl_gmx_tx_lfsr_s cn52xxp1;
  1284. struct cvmx_agl_gmx_tx_lfsr_s cn56xx;
  1285. struct cvmx_agl_gmx_tx_lfsr_s cn56xxp1;
  1286. struct cvmx_agl_gmx_tx_lfsr_s cn63xx;
  1287. struct cvmx_agl_gmx_tx_lfsr_s cn63xxp1;
  1288. };
  1289. union cvmx_agl_gmx_tx_ovr_bp {
  1290. uint64_t u64;
  1291. struct cvmx_agl_gmx_tx_ovr_bp_s {
  1292. uint64_t reserved_10_63:54;
  1293. uint64_t en:2;
  1294. uint64_t reserved_6_7:2;
  1295. uint64_t bp:2;
  1296. uint64_t reserved_2_3:2;
  1297. uint64_t ign_full:2;
  1298. } s;
  1299. struct cvmx_agl_gmx_tx_ovr_bp_s cn52xx;
  1300. struct cvmx_agl_gmx_tx_ovr_bp_s cn52xxp1;
  1301. struct cvmx_agl_gmx_tx_ovr_bp_cn56xx {
  1302. uint64_t reserved_9_63:55;
  1303. uint64_t en:1;
  1304. uint64_t reserved_5_7:3;
  1305. uint64_t bp:1;
  1306. uint64_t reserved_1_3:3;
  1307. uint64_t ign_full:1;
  1308. } cn56xx;
  1309. struct cvmx_agl_gmx_tx_ovr_bp_cn56xx cn56xxp1;
  1310. struct cvmx_agl_gmx_tx_ovr_bp_s cn63xx;
  1311. struct cvmx_agl_gmx_tx_ovr_bp_s cn63xxp1;
  1312. };
  1313. union cvmx_agl_gmx_tx_pause_pkt_dmac {
  1314. uint64_t u64;
  1315. struct cvmx_agl_gmx_tx_pause_pkt_dmac_s {
  1316. uint64_t reserved_48_63:16;
  1317. uint64_t dmac:48;
  1318. } s;
  1319. struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn52xx;
  1320. struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn52xxp1;
  1321. struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn56xx;
  1322. struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn56xxp1;
  1323. struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn63xx;
  1324. struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn63xxp1;
  1325. };
  1326. union cvmx_agl_gmx_tx_pause_pkt_type {
  1327. uint64_t u64;
  1328. struct cvmx_agl_gmx_tx_pause_pkt_type_s {
  1329. uint64_t reserved_16_63:48;
  1330. uint64_t type:16;
  1331. } s;
  1332. struct cvmx_agl_gmx_tx_pause_pkt_type_s cn52xx;
  1333. struct cvmx_agl_gmx_tx_pause_pkt_type_s cn52xxp1;
  1334. struct cvmx_agl_gmx_tx_pause_pkt_type_s cn56xx;
  1335. struct cvmx_agl_gmx_tx_pause_pkt_type_s cn56xxp1;
  1336. struct cvmx_agl_gmx_tx_pause_pkt_type_s cn63xx;
  1337. struct cvmx_agl_gmx_tx_pause_pkt_type_s cn63xxp1;
  1338. };
  1339. union cvmx_agl_prtx_ctl {
  1340. uint64_t u64;
  1341. struct cvmx_agl_prtx_ctl_s {
  1342. uint64_t drv_byp:1;
  1343. uint64_t reserved_62_62:1;
  1344. uint64_t cmp_pctl:6;
  1345. uint64_t reserved_54_55:2;
  1346. uint64_t cmp_nctl:6;
  1347. uint64_t reserved_46_47:2;
  1348. uint64_t drv_pctl:6;
  1349. uint64_t reserved_38_39:2;
  1350. uint64_t drv_nctl:6;
  1351. uint64_t reserved_29_31:3;
  1352. uint64_t clk_set:5;
  1353. uint64_t clkrx_byp:1;
  1354. uint64_t reserved_21_22:2;
  1355. uint64_t clkrx_set:5;
  1356. uint64_t clktx_byp:1;
  1357. uint64_t reserved_13_14:2;
  1358. uint64_t clktx_set:5;
  1359. uint64_t reserved_5_7:3;
  1360. uint64_t dllrst:1;
  1361. uint64_t comp:1;
  1362. uint64_t enable:1;
  1363. uint64_t clkrst:1;
  1364. uint64_t mode:1;
  1365. } s;
  1366. struct cvmx_agl_prtx_ctl_s cn63xx;
  1367. struct cvmx_agl_prtx_ctl_s cn63xxp1;
  1368. };
  1369. #endif