PageRenderTime 44ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/drivers/staging/octeon/cvmx-fpa-defs.h

https://github.com/mstsirkin/linux
C Header | 403 lines | 360 code | 17 blank | 26 comment | 0 complexity | bb4b6d0a8ee53202b007c52a9036dbca MD5 | raw file
  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_FPA_DEFS_H__
  28. #define __CVMX_FPA_DEFS_H__
  29. #define CVMX_FPA_BIST_STATUS \
  30. CVMX_ADD_IO_SEG(0x00011800280000E8ull)
  31. #define CVMX_FPA_CTL_STATUS \
  32. CVMX_ADD_IO_SEG(0x0001180028000050ull)
  33. #define CVMX_FPA_FPF0_MARKS \
  34. CVMX_ADD_IO_SEG(0x0001180028000000ull)
  35. #define CVMX_FPA_FPF0_SIZE \
  36. CVMX_ADD_IO_SEG(0x0001180028000058ull)
  37. #define CVMX_FPA_FPF1_MARKS \
  38. CVMX_ADD_IO_SEG(0x0001180028000008ull)
  39. #define CVMX_FPA_FPF2_MARKS \
  40. CVMX_ADD_IO_SEG(0x0001180028000010ull)
  41. #define CVMX_FPA_FPF3_MARKS \
  42. CVMX_ADD_IO_SEG(0x0001180028000018ull)
  43. #define CVMX_FPA_FPF4_MARKS \
  44. CVMX_ADD_IO_SEG(0x0001180028000020ull)
  45. #define CVMX_FPA_FPF5_MARKS \
  46. CVMX_ADD_IO_SEG(0x0001180028000028ull)
  47. #define CVMX_FPA_FPF6_MARKS \
  48. CVMX_ADD_IO_SEG(0x0001180028000030ull)
  49. #define CVMX_FPA_FPF7_MARKS \
  50. CVMX_ADD_IO_SEG(0x0001180028000038ull)
  51. #define CVMX_FPA_FPFX_MARKS(offset) \
  52. CVMX_ADD_IO_SEG(0x0001180028000008ull + (((offset) & 7) * 8) - 8 * 1)
  53. #define CVMX_FPA_FPFX_SIZE(offset) \
  54. CVMX_ADD_IO_SEG(0x0001180028000060ull + (((offset) & 7) * 8) - 8 * 1)
  55. #define CVMX_FPA_INT_ENB \
  56. CVMX_ADD_IO_SEG(0x0001180028000048ull)
  57. #define CVMX_FPA_INT_SUM \
  58. CVMX_ADD_IO_SEG(0x0001180028000040ull)
  59. #define CVMX_FPA_QUE0_PAGE_INDEX \
  60. CVMX_ADD_IO_SEG(0x00011800280000F0ull)
  61. #define CVMX_FPA_QUE1_PAGE_INDEX \
  62. CVMX_ADD_IO_SEG(0x00011800280000F8ull)
  63. #define CVMX_FPA_QUE2_PAGE_INDEX \
  64. CVMX_ADD_IO_SEG(0x0001180028000100ull)
  65. #define CVMX_FPA_QUE3_PAGE_INDEX \
  66. CVMX_ADD_IO_SEG(0x0001180028000108ull)
  67. #define CVMX_FPA_QUE4_PAGE_INDEX \
  68. CVMX_ADD_IO_SEG(0x0001180028000110ull)
  69. #define CVMX_FPA_QUE5_PAGE_INDEX \
  70. CVMX_ADD_IO_SEG(0x0001180028000118ull)
  71. #define CVMX_FPA_QUE6_PAGE_INDEX \
  72. CVMX_ADD_IO_SEG(0x0001180028000120ull)
  73. #define CVMX_FPA_QUE7_PAGE_INDEX \
  74. CVMX_ADD_IO_SEG(0x0001180028000128ull)
  75. #define CVMX_FPA_QUEX_AVAILABLE(offset) \
  76. CVMX_ADD_IO_SEG(0x0001180028000098ull + (((offset) & 7) * 8))
  77. #define CVMX_FPA_QUEX_PAGE_INDEX(offset) \
  78. CVMX_ADD_IO_SEG(0x00011800280000F0ull + (((offset) & 7) * 8))
  79. #define CVMX_FPA_QUE_ACT \
  80. CVMX_ADD_IO_SEG(0x0001180028000138ull)
  81. #define CVMX_FPA_QUE_EXP \
  82. CVMX_ADD_IO_SEG(0x0001180028000130ull)
  83. #define CVMX_FPA_WART_CTL \
  84. CVMX_ADD_IO_SEG(0x00011800280000D8ull)
  85. #define CVMX_FPA_WART_STATUS \
  86. CVMX_ADD_IO_SEG(0x00011800280000E0ull)
  87. union cvmx_fpa_bist_status {
  88. uint64_t u64;
  89. struct cvmx_fpa_bist_status_s {
  90. uint64_t reserved_5_63:59;
  91. uint64_t frd:1;
  92. uint64_t fpf0:1;
  93. uint64_t fpf1:1;
  94. uint64_t ffr:1;
  95. uint64_t fdr:1;
  96. } s;
  97. struct cvmx_fpa_bist_status_s cn30xx;
  98. struct cvmx_fpa_bist_status_s cn31xx;
  99. struct cvmx_fpa_bist_status_s cn38xx;
  100. struct cvmx_fpa_bist_status_s cn38xxp2;
  101. struct cvmx_fpa_bist_status_s cn50xx;
  102. struct cvmx_fpa_bist_status_s cn52xx;
  103. struct cvmx_fpa_bist_status_s cn52xxp1;
  104. struct cvmx_fpa_bist_status_s cn56xx;
  105. struct cvmx_fpa_bist_status_s cn56xxp1;
  106. struct cvmx_fpa_bist_status_s cn58xx;
  107. struct cvmx_fpa_bist_status_s cn58xxp1;
  108. };
  109. union cvmx_fpa_ctl_status {
  110. uint64_t u64;
  111. struct cvmx_fpa_ctl_status_s {
  112. uint64_t reserved_18_63:46;
  113. uint64_t reset:1;
  114. uint64_t use_ldt:1;
  115. uint64_t use_stt:1;
  116. uint64_t enb:1;
  117. uint64_t mem1_err:7;
  118. uint64_t mem0_err:7;
  119. } s;
  120. struct cvmx_fpa_ctl_status_s cn30xx;
  121. struct cvmx_fpa_ctl_status_s cn31xx;
  122. struct cvmx_fpa_ctl_status_s cn38xx;
  123. struct cvmx_fpa_ctl_status_s cn38xxp2;
  124. struct cvmx_fpa_ctl_status_s cn50xx;
  125. struct cvmx_fpa_ctl_status_s cn52xx;
  126. struct cvmx_fpa_ctl_status_s cn52xxp1;
  127. struct cvmx_fpa_ctl_status_s cn56xx;
  128. struct cvmx_fpa_ctl_status_s cn56xxp1;
  129. struct cvmx_fpa_ctl_status_s cn58xx;
  130. struct cvmx_fpa_ctl_status_s cn58xxp1;
  131. };
  132. union cvmx_fpa_fpfx_marks {
  133. uint64_t u64;
  134. struct cvmx_fpa_fpfx_marks_s {
  135. uint64_t reserved_22_63:42;
  136. uint64_t fpf_wr:11;
  137. uint64_t fpf_rd:11;
  138. } s;
  139. struct cvmx_fpa_fpfx_marks_s cn38xx;
  140. struct cvmx_fpa_fpfx_marks_s cn38xxp2;
  141. struct cvmx_fpa_fpfx_marks_s cn56xx;
  142. struct cvmx_fpa_fpfx_marks_s cn56xxp1;
  143. struct cvmx_fpa_fpfx_marks_s cn58xx;
  144. struct cvmx_fpa_fpfx_marks_s cn58xxp1;
  145. };
  146. union cvmx_fpa_fpfx_size {
  147. uint64_t u64;
  148. struct cvmx_fpa_fpfx_size_s {
  149. uint64_t reserved_11_63:53;
  150. uint64_t fpf_siz:11;
  151. } s;
  152. struct cvmx_fpa_fpfx_size_s cn38xx;
  153. struct cvmx_fpa_fpfx_size_s cn38xxp2;
  154. struct cvmx_fpa_fpfx_size_s cn56xx;
  155. struct cvmx_fpa_fpfx_size_s cn56xxp1;
  156. struct cvmx_fpa_fpfx_size_s cn58xx;
  157. struct cvmx_fpa_fpfx_size_s cn58xxp1;
  158. };
  159. union cvmx_fpa_fpf0_marks {
  160. uint64_t u64;
  161. struct cvmx_fpa_fpf0_marks_s {
  162. uint64_t reserved_24_63:40;
  163. uint64_t fpf_wr:12;
  164. uint64_t fpf_rd:12;
  165. } s;
  166. struct cvmx_fpa_fpf0_marks_s cn38xx;
  167. struct cvmx_fpa_fpf0_marks_s cn38xxp2;
  168. struct cvmx_fpa_fpf0_marks_s cn56xx;
  169. struct cvmx_fpa_fpf0_marks_s cn56xxp1;
  170. struct cvmx_fpa_fpf0_marks_s cn58xx;
  171. struct cvmx_fpa_fpf0_marks_s cn58xxp1;
  172. };
  173. union cvmx_fpa_fpf0_size {
  174. uint64_t u64;
  175. struct cvmx_fpa_fpf0_size_s {
  176. uint64_t reserved_12_63:52;
  177. uint64_t fpf_siz:12;
  178. } s;
  179. struct cvmx_fpa_fpf0_size_s cn38xx;
  180. struct cvmx_fpa_fpf0_size_s cn38xxp2;
  181. struct cvmx_fpa_fpf0_size_s cn56xx;
  182. struct cvmx_fpa_fpf0_size_s cn56xxp1;
  183. struct cvmx_fpa_fpf0_size_s cn58xx;
  184. struct cvmx_fpa_fpf0_size_s cn58xxp1;
  185. };
  186. union cvmx_fpa_int_enb {
  187. uint64_t u64;
  188. struct cvmx_fpa_int_enb_s {
  189. uint64_t reserved_28_63:36;
  190. uint64_t q7_perr:1;
  191. uint64_t q7_coff:1;
  192. uint64_t q7_und:1;
  193. uint64_t q6_perr:1;
  194. uint64_t q6_coff:1;
  195. uint64_t q6_und:1;
  196. uint64_t q5_perr:1;
  197. uint64_t q5_coff:1;
  198. uint64_t q5_und:1;
  199. uint64_t q4_perr:1;
  200. uint64_t q4_coff:1;
  201. uint64_t q4_und:1;
  202. uint64_t q3_perr:1;
  203. uint64_t q3_coff:1;
  204. uint64_t q3_und:1;
  205. uint64_t q2_perr:1;
  206. uint64_t q2_coff:1;
  207. uint64_t q2_und:1;
  208. uint64_t q1_perr:1;
  209. uint64_t q1_coff:1;
  210. uint64_t q1_und:1;
  211. uint64_t q0_perr:1;
  212. uint64_t q0_coff:1;
  213. uint64_t q0_und:1;
  214. uint64_t fed1_dbe:1;
  215. uint64_t fed1_sbe:1;
  216. uint64_t fed0_dbe:1;
  217. uint64_t fed0_sbe:1;
  218. } s;
  219. struct cvmx_fpa_int_enb_s cn30xx;
  220. struct cvmx_fpa_int_enb_s cn31xx;
  221. struct cvmx_fpa_int_enb_s cn38xx;
  222. struct cvmx_fpa_int_enb_s cn38xxp2;
  223. struct cvmx_fpa_int_enb_s cn50xx;
  224. struct cvmx_fpa_int_enb_s cn52xx;
  225. struct cvmx_fpa_int_enb_s cn52xxp1;
  226. struct cvmx_fpa_int_enb_s cn56xx;
  227. struct cvmx_fpa_int_enb_s cn56xxp1;
  228. struct cvmx_fpa_int_enb_s cn58xx;
  229. struct cvmx_fpa_int_enb_s cn58xxp1;
  230. };
  231. union cvmx_fpa_int_sum {
  232. uint64_t u64;
  233. struct cvmx_fpa_int_sum_s {
  234. uint64_t reserved_28_63:36;
  235. uint64_t q7_perr:1;
  236. uint64_t q7_coff:1;
  237. uint64_t q7_und:1;
  238. uint64_t q6_perr:1;
  239. uint64_t q6_coff:1;
  240. uint64_t q6_und:1;
  241. uint64_t q5_perr:1;
  242. uint64_t q5_coff:1;
  243. uint64_t q5_und:1;
  244. uint64_t q4_perr:1;
  245. uint64_t q4_coff:1;
  246. uint64_t q4_und:1;
  247. uint64_t q3_perr:1;
  248. uint64_t q3_coff:1;
  249. uint64_t q3_und:1;
  250. uint64_t q2_perr:1;
  251. uint64_t q2_coff:1;
  252. uint64_t q2_und:1;
  253. uint64_t q1_perr:1;
  254. uint64_t q1_coff:1;
  255. uint64_t q1_und:1;
  256. uint64_t q0_perr:1;
  257. uint64_t q0_coff:1;
  258. uint64_t q0_und:1;
  259. uint64_t fed1_dbe:1;
  260. uint64_t fed1_sbe:1;
  261. uint64_t fed0_dbe:1;
  262. uint64_t fed0_sbe:1;
  263. } s;
  264. struct cvmx_fpa_int_sum_s cn30xx;
  265. struct cvmx_fpa_int_sum_s cn31xx;
  266. struct cvmx_fpa_int_sum_s cn38xx;
  267. struct cvmx_fpa_int_sum_s cn38xxp2;
  268. struct cvmx_fpa_int_sum_s cn50xx;
  269. struct cvmx_fpa_int_sum_s cn52xx;
  270. struct cvmx_fpa_int_sum_s cn52xxp1;
  271. struct cvmx_fpa_int_sum_s cn56xx;
  272. struct cvmx_fpa_int_sum_s cn56xxp1;
  273. struct cvmx_fpa_int_sum_s cn58xx;
  274. struct cvmx_fpa_int_sum_s cn58xxp1;
  275. };
  276. union cvmx_fpa_quex_available {
  277. uint64_t u64;
  278. struct cvmx_fpa_quex_available_s {
  279. uint64_t reserved_29_63:35;
  280. uint64_t que_siz:29;
  281. } s;
  282. struct cvmx_fpa_quex_available_s cn30xx;
  283. struct cvmx_fpa_quex_available_s cn31xx;
  284. struct cvmx_fpa_quex_available_s cn38xx;
  285. struct cvmx_fpa_quex_available_s cn38xxp2;
  286. struct cvmx_fpa_quex_available_s cn50xx;
  287. struct cvmx_fpa_quex_available_s cn52xx;
  288. struct cvmx_fpa_quex_available_s cn52xxp1;
  289. struct cvmx_fpa_quex_available_s cn56xx;
  290. struct cvmx_fpa_quex_available_s cn56xxp1;
  291. struct cvmx_fpa_quex_available_s cn58xx;
  292. struct cvmx_fpa_quex_available_s cn58xxp1;
  293. };
  294. union cvmx_fpa_quex_page_index {
  295. uint64_t u64;
  296. struct cvmx_fpa_quex_page_index_s {
  297. uint64_t reserved_25_63:39;
  298. uint64_t pg_num:25;
  299. } s;
  300. struct cvmx_fpa_quex_page_index_s cn30xx;
  301. struct cvmx_fpa_quex_page_index_s cn31xx;
  302. struct cvmx_fpa_quex_page_index_s cn38xx;
  303. struct cvmx_fpa_quex_page_index_s cn38xxp2;
  304. struct cvmx_fpa_quex_page_index_s cn50xx;
  305. struct cvmx_fpa_quex_page_index_s cn52xx;
  306. struct cvmx_fpa_quex_page_index_s cn52xxp1;
  307. struct cvmx_fpa_quex_page_index_s cn56xx;
  308. struct cvmx_fpa_quex_page_index_s cn56xxp1;
  309. struct cvmx_fpa_quex_page_index_s cn58xx;
  310. struct cvmx_fpa_quex_page_index_s cn58xxp1;
  311. };
  312. union cvmx_fpa_que_act {
  313. uint64_t u64;
  314. struct cvmx_fpa_que_act_s {
  315. uint64_t reserved_29_63:35;
  316. uint64_t act_que:3;
  317. uint64_t act_indx:26;
  318. } s;
  319. struct cvmx_fpa_que_act_s cn30xx;
  320. struct cvmx_fpa_que_act_s cn31xx;
  321. struct cvmx_fpa_que_act_s cn38xx;
  322. struct cvmx_fpa_que_act_s cn38xxp2;
  323. struct cvmx_fpa_que_act_s cn50xx;
  324. struct cvmx_fpa_que_act_s cn52xx;
  325. struct cvmx_fpa_que_act_s cn52xxp1;
  326. struct cvmx_fpa_que_act_s cn56xx;
  327. struct cvmx_fpa_que_act_s cn56xxp1;
  328. struct cvmx_fpa_que_act_s cn58xx;
  329. struct cvmx_fpa_que_act_s cn58xxp1;
  330. };
  331. union cvmx_fpa_que_exp {
  332. uint64_t u64;
  333. struct cvmx_fpa_que_exp_s {
  334. uint64_t reserved_29_63:35;
  335. uint64_t exp_que:3;
  336. uint64_t exp_indx:26;
  337. } s;
  338. struct cvmx_fpa_que_exp_s cn30xx;
  339. struct cvmx_fpa_que_exp_s cn31xx;
  340. struct cvmx_fpa_que_exp_s cn38xx;
  341. struct cvmx_fpa_que_exp_s cn38xxp2;
  342. struct cvmx_fpa_que_exp_s cn50xx;
  343. struct cvmx_fpa_que_exp_s cn52xx;
  344. struct cvmx_fpa_que_exp_s cn52xxp1;
  345. struct cvmx_fpa_que_exp_s cn56xx;
  346. struct cvmx_fpa_que_exp_s cn56xxp1;
  347. struct cvmx_fpa_que_exp_s cn58xx;
  348. struct cvmx_fpa_que_exp_s cn58xxp1;
  349. };
  350. union cvmx_fpa_wart_ctl {
  351. uint64_t u64;
  352. struct cvmx_fpa_wart_ctl_s {
  353. uint64_t reserved_16_63:48;
  354. uint64_t ctl:16;
  355. } s;
  356. struct cvmx_fpa_wart_ctl_s cn30xx;
  357. struct cvmx_fpa_wart_ctl_s cn31xx;
  358. struct cvmx_fpa_wart_ctl_s cn38xx;
  359. struct cvmx_fpa_wart_ctl_s cn38xxp2;
  360. struct cvmx_fpa_wart_ctl_s cn50xx;
  361. struct cvmx_fpa_wart_ctl_s cn52xx;
  362. struct cvmx_fpa_wart_ctl_s cn52xxp1;
  363. struct cvmx_fpa_wart_ctl_s cn56xx;
  364. struct cvmx_fpa_wart_ctl_s cn56xxp1;
  365. struct cvmx_fpa_wart_ctl_s cn58xx;
  366. struct cvmx_fpa_wart_ctl_s cn58xxp1;
  367. };
  368. union cvmx_fpa_wart_status {
  369. uint64_t u64;
  370. struct cvmx_fpa_wart_status_s {
  371. uint64_t reserved_32_63:32;
  372. uint64_t status:32;
  373. } s;
  374. struct cvmx_fpa_wart_status_s cn30xx;
  375. struct cvmx_fpa_wart_status_s cn31xx;
  376. struct cvmx_fpa_wart_status_s cn38xx;
  377. struct cvmx_fpa_wart_status_s cn38xxp2;
  378. struct cvmx_fpa_wart_status_s cn50xx;
  379. struct cvmx_fpa_wart_status_s cn52xx;
  380. struct cvmx_fpa_wart_status_s cn52xxp1;
  381. struct cvmx_fpa_wart_status_s cn56xx;
  382. struct cvmx_fpa_wart_status_s cn56xxp1;
  383. struct cvmx_fpa_wart_status_s cn58xx;
  384. struct cvmx_fpa_wart_status_s cn58xxp1;
  385. };
  386. #endif