cvmx-pciercx-defs.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. /***********************license start***************
  2. * Author: Cavium Networks
  3. *
  4. * Contact: [email protected]
  5. * This file is part of the OCTEON SDK
  6. *
  7. * Copyright (c) 2003-2017 Cavium, Inc.
  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_PCIERCX_DEFS_H__
  28. #define __CVMX_PCIERCX_DEFS_H__
  29. #include <uapi/asm/bitfield.h>
  30. #define CVMX_PCIERCX_CFG001(block_id) (0x0000000000000004ull)
  31. #define CVMX_PCIERCX_CFG006(block_id) (0x0000000000000018ull)
  32. #define CVMX_PCIERCX_CFG008(block_id) (0x0000000000000020ull)
  33. #define CVMX_PCIERCX_CFG009(block_id) (0x0000000000000024ull)
  34. #define CVMX_PCIERCX_CFG010(block_id) (0x0000000000000028ull)
  35. #define CVMX_PCIERCX_CFG011(block_id) (0x000000000000002Cull)
  36. #define CVMX_PCIERCX_CFG030(block_id) (0x0000000000000078ull)
  37. #define CVMX_PCIERCX_CFG031(block_id) (0x000000000000007Cull)
  38. #define CVMX_PCIERCX_CFG032(block_id) (0x0000000000000080ull)
  39. #define CVMX_PCIERCX_CFG034(block_id) (0x0000000000000088ull)
  40. #define CVMX_PCIERCX_CFG035(block_id) (0x000000000000008Cull)
  41. #define CVMX_PCIERCX_CFG040(block_id) (0x00000000000000A0ull)
  42. #define CVMX_PCIERCX_CFG066(block_id) (0x0000000000000108ull)
  43. #define CVMX_PCIERCX_CFG069(block_id) (0x0000000000000114ull)
  44. #define CVMX_PCIERCX_CFG070(block_id) (0x0000000000000118ull)
  45. #define CVMX_PCIERCX_CFG075(block_id) (0x000000000000012Cull)
  46. #define CVMX_PCIERCX_CFG448(block_id) (0x0000000000000700ull)
  47. #define CVMX_PCIERCX_CFG452(block_id) (0x0000000000000710ull)
  48. #define CVMX_PCIERCX_CFG455(block_id) (0x000000000000071Cull)
  49. #define CVMX_PCIERCX_CFG515(block_id) (0x000000000000080Cull)
  50. union cvmx_pciercx_cfg001 {
  51. uint32_t u32;
  52. struct cvmx_pciercx_cfg001_s {
  53. __BITFIELD_FIELD(uint32_t dpe:1,
  54. __BITFIELD_FIELD(uint32_t sse:1,
  55. __BITFIELD_FIELD(uint32_t rma:1,
  56. __BITFIELD_FIELD(uint32_t rta:1,
  57. __BITFIELD_FIELD(uint32_t sta:1,
  58. __BITFIELD_FIELD(uint32_t devt:2,
  59. __BITFIELD_FIELD(uint32_t mdpe:1,
  60. __BITFIELD_FIELD(uint32_t fbb:1,
  61. __BITFIELD_FIELD(uint32_t reserved_22_22:1,
  62. __BITFIELD_FIELD(uint32_t m66:1,
  63. __BITFIELD_FIELD(uint32_t cl:1,
  64. __BITFIELD_FIELD(uint32_t i_stat:1,
  65. __BITFIELD_FIELD(uint32_t reserved_11_18:8,
  66. __BITFIELD_FIELD(uint32_t i_dis:1,
  67. __BITFIELD_FIELD(uint32_t fbbe:1,
  68. __BITFIELD_FIELD(uint32_t see:1,
  69. __BITFIELD_FIELD(uint32_t ids_wcc:1,
  70. __BITFIELD_FIELD(uint32_t per:1,
  71. __BITFIELD_FIELD(uint32_t vps:1,
  72. __BITFIELD_FIELD(uint32_t mwice:1,
  73. __BITFIELD_FIELD(uint32_t scse:1,
  74. __BITFIELD_FIELD(uint32_t me:1,
  75. __BITFIELD_FIELD(uint32_t msae:1,
  76. __BITFIELD_FIELD(uint32_t isae:1,
  77. ;))))))))))))))))))))))))
  78. } s;
  79. };
  80. union cvmx_pciercx_cfg006 {
  81. uint32_t u32;
  82. struct cvmx_pciercx_cfg006_s {
  83. __BITFIELD_FIELD(uint32_t slt:8,
  84. __BITFIELD_FIELD(uint32_t subbnum:8,
  85. __BITFIELD_FIELD(uint32_t sbnum:8,
  86. __BITFIELD_FIELD(uint32_t pbnum:8,
  87. ;))))
  88. } s;
  89. };
  90. union cvmx_pciercx_cfg008 {
  91. uint32_t u32;
  92. struct cvmx_pciercx_cfg008_s {
  93. __BITFIELD_FIELD(uint32_t ml_addr:12,
  94. __BITFIELD_FIELD(uint32_t reserved_16_19:4,
  95. __BITFIELD_FIELD(uint32_t mb_addr:12,
  96. __BITFIELD_FIELD(uint32_t reserved_0_3:4,
  97. ;))))
  98. } s;
  99. };
  100. union cvmx_pciercx_cfg009 {
  101. uint32_t u32;
  102. struct cvmx_pciercx_cfg009_s {
  103. __BITFIELD_FIELD(uint32_t lmem_limit:12,
  104. __BITFIELD_FIELD(uint32_t reserved_17_19:3,
  105. __BITFIELD_FIELD(uint32_t mem64b:1,
  106. __BITFIELD_FIELD(uint32_t lmem_base:12,
  107. __BITFIELD_FIELD(uint32_t reserved_1_3:3,
  108. __BITFIELD_FIELD(uint32_t mem64a:1,
  109. ;))))))
  110. } s;
  111. };
  112. union cvmx_pciercx_cfg010 {
  113. uint32_t u32;
  114. struct cvmx_pciercx_cfg010_s {
  115. uint32_t umem_base;
  116. } s;
  117. };
  118. union cvmx_pciercx_cfg011 {
  119. uint32_t u32;
  120. struct cvmx_pciercx_cfg011_s {
  121. uint32_t umem_limit;
  122. } s;
  123. };
  124. union cvmx_pciercx_cfg030 {
  125. uint32_t u32;
  126. struct cvmx_pciercx_cfg030_s {
  127. __BITFIELD_FIELD(uint32_t reserved_22_31:10,
  128. __BITFIELD_FIELD(uint32_t tp:1,
  129. __BITFIELD_FIELD(uint32_t ap_d:1,
  130. __BITFIELD_FIELD(uint32_t ur_d:1,
  131. __BITFIELD_FIELD(uint32_t fe_d:1,
  132. __BITFIELD_FIELD(uint32_t nfe_d:1,
  133. __BITFIELD_FIELD(uint32_t ce_d:1,
  134. __BITFIELD_FIELD(uint32_t reserved_15_15:1,
  135. __BITFIELD_FIELD(uint32_t mrrs:3,
  136. __BITFIELD_FIELD(uint32_t ns_en:1,
  137. __BITFIELD_FIELD(uint32_t ap_en:1,
  138. __BITFIELD_FIELD(uint32_t pf_en:1,
  139. __BITFIELD_FIELD(uint32_t etf_en:1,
  140. __BITFIELD_FIELD(uint32_t mps:3,
  141. __BITFIELD_FIELD(uint32_t ro_en:1,
  142. __BITFIELD_FIELD(uint32_t ur_en:1,
  143. __BITFIELD_FIELD(uint32_t fe_en:1,
  144. __BITFIELD_FIELD(uint32_t nfe_en:1,
  145. __BITFIELD_FIELD(uint32_t ce_en:1,
  146. ;)))))))))))))))))))
  147. } s;
  148. };
  149. union cvmx_pciercx_cfg031 {
  150. uint32_t u32;
  151. struct cvmx_pciercx_cfg031_s {
  152. __BITFIELD_FIELD(uint32_t pnum:8,
  153. __BITFIELD_FIELD(uint32_t reserved_23_23:1,
  154. __BITFIELD_FIELD(uint32_t aspm:1,
  155. __BITFIELD_FIELD(uint32_t lbnc:1,
  156. __BITFIELD_FIELD(uint32_t dllarc:1,
  157. __BITFIELD_FIELD(uint32_t sderc:1,
  158. __BITFIELD_FIELD(uint32_t cpm:1,
  159. __BITFIELD_FIELD(uint32_t l1el:3,
  160. __BITFIELD_FIELD(uint32_t l0el:3,
  161. __BITFIELD_FIELD(uint32_t aslpms:2,
  162. __BITFIELD_FIELD(uint32_t mlw:6,
  163. __BITFIELD_FIELD(uint32_t mls:4,
  164. ;))))))))))))
  165. } s;
  166. };
  167. union cvmx_pciercx_cfg032 {
  168. uint32_t u32;
  169. struct cvmx_pciercx_cfg032_s {
  170. __BITFIELD_FIELD(uint32_t lab:1,
  171. __BITFIELD_FIELD(uint32_t lbm:1,
  172. __BITFIELD_FIELD(uint32_t dlla:1,
  173. __BITFIELD_FIELD(uint32_t scc:1,
  174. __BITFIELD_FIELD(uint32_t lt:1,
  175. __BITFIELD_FIELD(uint32_t reserved_26_26:1,
  176. __BITFIELD_FIELD(uint32_t nlw:6,
  177. __BITFIELD_FIELD(uint32_t ls:4,
  178. __BITFIELD_FIELD(uint32_t reserved_12_15:4,
  179. __BITFIELD_FIELD(uint32_t lab_int_enb:1,
  180. __BITFIELD_FIELD(uint32_t lbm_int_enb:1,
  181. __BITFIELD_FIELD(uint32_t hawd:1,
  182. __BITFIELD_FIELD(uint32_t ecpm:1,
  183. __BITFIELD_FIELD(uint32_t es:1,
  184. __BITFIELD_FIELD(uint32_t ccc:1,
  185. __BITFIELD_FIELD(uint32_t rl:1,
  186. __BITFIELD_FIELD(uint32_t ld:1,
  187. __BITFIELD_FIELD(uint32_t rcb:1,
  188. __BITFIELD_FIELD(uint32_t reserved_2_2:1,
  189. __BITFIELD_FIELD(uint32_t aslpc:2,
  190. ;))))))))))))))))))))
  191. } s;
  192. };
  193. union cvmx_pciercx_cfg034 {
  194. uint32_t u32;
  195. struct cvmx_pciercx_cfg034_s {
  196. __BITFIELD_FIELD(uint32_t reserved_25_31:7,
  197. __BITFIELD_FIELD(uint32_t dlls_c:1,
  198. __BITFIELD_FIELD(uint32_t emis:1,
  199. __BITFIELD_FIELD(uint32_t pds:1,
  200. __BITFIELD_FIELD(uint32_t mrlss:1,
  201. __BITFIELD_FIELD(uint32_t ccint_d:1,
  202. __BITFIELD_FIELD(uint32_t pd_c:1,
  203. __BITFIELD_FIELD(uint32_t mrls_c:1,
  204. __BITFIELD_FIELD(uint32_t pf_d:1,
  205. __BITFIELD_FIELD(uint32_t abp_d:1,
  206. __BITFIELD_FIELD(uint32_t reserved_13_15:3,
  207. __BITFIELD_FIELD(uint32_t dlls_en:1,
  208. __BITFIELD_FIELD(uint32_t emic:1,
  209. __BITFIELD_FIELD(uint32_t pcc:1,
  210. __BITFIELD_FIELD(uint32_t pic:1,
  211. __BITFIELD_FIELD(uint32_t aic:1,
  212. __BITFIELD_FIELD(uint32_t hpint_en:1,
  213. __BITFIELD_FIELD(uint32_t ccint_en:1,
  214. __BITFIELD_FIELD(uint32_t pd_en:1,
  215. __BITFIELD_FIELD(uint32_t mrls_en:1,
  216. __BITFIELD_FIELD(uint32_t pf_en:1,
  217. __BITFIELD_FIELD(uint32_t abp_en:1,
  218. ;))))))))))))))))))))))
  219. } s;
  220. };
  221. union cvmx_pciercx_cfg035 {
  222. uint32_t u32;
  223. struct cvmx_pciercx_cfg035_s {
  224. __BITFIELD_FIELD(uint32_t reserved_17_31:15,
  225. __BITFIELD_FIELD(uint32_t crssv:1,
  226. __BITFIELD_FIELD(uint32_t reserved_5_15:11,
  227. __BITFIELD_FIELD(uint32_t crssve:1,
  228. __BITFIELD_FIELD(uint32_t pmeie:1,
  229. __BITFIELD_FIELD(uint32_t sefee:1,
  230. __BITFIELD_FIELD(uint32_t senfee:1,
  231. __BITFIELD_FIELD(uint32_t secee:1,
  232. ;))))))))
  233. } s;
  234. };
  235. union cvmx_pciercx_cfg040 {
  236. uint32_t u32;
  237. struct cvmx_pciercx_cfg040_s {
  238. __BITFIELD_FIELD(uint32_t reserved_22_31:10,
  239. __BITFIELD_FIELD(uint32_t ler:1,
  240. __BITFIELD_FIELD(uint32_t ep3s:1,
  241. __BITFIELD_FIELD(uint32_t ep2s:1,
  242. __BITFIELD_FIELD(uint32_t ep1s:1,
  243. __BITFIELD_FIELD(uint32_t eqc:1,
  244. __BITFIELD_FIELD(uint32_t cdl:1,
  245. __BITFIELD_FIELD(uint32_t cde:4,
  246. __BITFIELD_FIELD(uint32_t csos:1,
  247. __BITFIELD_FIELD(uint32_t emc:1,
  248. __BITFIELD_FIELD(uint32_t tm:3,
  249. __BITFIELD_FIELD(uint32_t sde:1,
  250. __BITFIELD_FIELD(uint32_t hasd:1,
  251. __BITFIELD_FIELD(uint32_t ec:1,
  252. __BITFIELD_FIELD(uint32_t tls:4,
  253. ;)))))))))))))))
  254. } s;
  255. };
  256. union cvmx_pciercx_cfg070 {
  257. uint32_t u32;
  258. struct cvmx_pciercx_cfg070_s {
  259. __BITFIELD_FIELD(uint32_t reserved_12_31:20,
  260. __BITFIELD_FIELD(uint32_t tplp:1,
  261. __BITFIELD_FIELD(uint32_t reserved_9_10:2,
  262. __BITFIELD_FIELD(uint32_t ce:1,
  263. __BITFIELD_FIELD(uint32_t cc:1,
  264. __BITFIELD_FIELD(uint32_t ge:1,
  265. __BITFIELD_FIELD(uint32_t gc:1,
  266. __BITFIELD_FIELD(uint32_t fep:5,
  267. ;))))))))
  268. } s;
  269. };
  270. union cvmx_pciercx_cfg075 {
  271. uint32_t u32;
  272. struct cvmx_pciercx_cfg075_s {
  273. __BITFIELD_FIELD(uint32_t reserved_3_31:29,
  274. __BITFIELD_FIELD(uint32_t fere:1,
  275. __BITFIELD_FIELD(uint32_t nfere:1,
  276. __BITFIELD_FIELD(uint32_t cere:1,
  277. ;))))
  278. } s;
  279. };
  280. union cvmx_pciercx_cfg448 {
  281. uint32_t u32;
  282. struct cvmx_pciercx_cfg448_s {
  283. __BITFIELD_FIELD(uint32_t rtl:16,
  284. __BITFIELD_FIELD(uint32_t rtltl:16,
  285. ;))
  286. } s;
  287. };
  288. union cvmx_pciercx_cfg452 {
  289. uint32_t u32;
  290. struct cvmx_pciercx_cfg452_s {
  291. __BITFIELD_FIELD(uint32_t reserved_26_31:6,
  292. __BITFIELD_FIELD(uint32_t eccrc:1,
  293. __BITFIELD_FIELD(uint32_t reserved_22_24:3,
  294. __BITFIELD_FIELD(uint32_t lme:6,
  295. __BITFIELD_FIELD(uint32_t reserved_12_15:4,
  296. __BITFIELD_FIELD(uint32_t link_rate:4,
  297. __BITFIELD_FIELD(uint32_t flm:1,
  298. __BITFIELD_FIELD(uint32_t reserved_6_6:1,
  299. __BITFIELD_FIELD(uint32_t dllle:1,
  300. __BITFIELD_FIELD(uint32_t reserved_4_4:1,
  301. __BITFIELD_FIELD(uint32_t ra:1,
  302. __BITFIELD_FIELD(uint32_t le:1,
  303. __BITFIELD_FIELD(uint32_t sd:1,
  304. __BITFIELD_FIELD(uint32_t omr:1,
  305. ;))))))))))))))
  306. } s;
  307. };
  308. union cvmx_pciercx_cfg455 {
  309. uint32_t u32;
  310. struct cvmx_pciercx_cfg455_s {
  311. __BITFIELD_FIELD(uint32_t m_cfg0_filt:1,
  312. __BITFIELD_FIELD(uint32_t m_io_filt:1,
  313. __BITFIELD_FIELD(uint32_t msg_ctrl:1,
  314. __BITFIELD_FIELD(uint32_t m_cpl_ecrc_filt:1,
  315. __BITFIELD_FIELD(uint32_t m_ecrc_filt:1,
  316. __BITFIELD_FIELD(uint32_t m_cpl_len_err:1,
  317. __BITFIELD_FIELD(uint32_t m_cpl_attr_err:1,
  318. __BITFIELD_FIELD(uint32_t m_cpl_tc_err:1,
  319. __BITFIELD_FIELD(uint32_t m_cpl_fun_err:1,
  320. __BITFIELD_FIELD(uint32_t m_cpl_rid_err:1,
  321. __BITFIELD_FIELD(uint32_t m_cpl_tag_err:1,
  322. __BITFIELD_FIELD(uint32_t m_lk_filt:1,
  323. __BITFIELD_FIELD(uint32_t m_cfg1_filt:1,
  324. __BITFIELD_FIELD(uint32_t m_bar_match:1,
  325. __BITFIELD_FIELD(uint32_t m_pois_filt:1,
  326. __BITFIELD_FIELD(uint32_t m_fun:1,
  327. __BITFIELD_FIELD(uint32_t dfcwt:1,
  328. __BITFIELD_FIELD(uint32_t reserved_11_14:4,
  329. __BITFIELD_FIELD(uint32_t skpiv:11,
  330. ;)))))))))))))))))))
  331. } s;
  332. };
  333. union cvmx_pciercx_cfg515 {
  334. uint32_t u32;
  335. struct cvmx_pciercx_cfg515_s {
  336. __BITFIELD_FIELD(uint32_t reserved_21_31:11,
  337. __BITFIELD_FIELD(uint32_t s_d_e:1,
  338. __BITFIELD_FIELD(uint32_t ctcrb:1,
  339. __BITFIELD_FIELD(uint32_t cpyts:1,
  340. __BITFIELD_FIELD(uint32_t dsc:1,
  341. __BITFIELD_FIELD(uint32_t le:9,
  342. __BITFIELD_FIELD(uint32_t n_fts:8,
  343. ;)))))))
  344. } s;
  345. };
  346. #endif