cvmx-rnm-defs.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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_RNM_DEFS_H__
  28. #define __CVMX_RNM_DEFS_H__
  29. #include <linux/types.h>
  30. #define CVMX_RNM_BIST_STATUS \
  31. CVMX_ADD_IO_SEG(0x0001180040000008ull)
  32. #define CVMX_RNM_CTL_STATUS \
  33. CVMX_ADD_IO_SEG(0x0001180040000000ull)
  34. union cvmx_rnm_bist_status {
  35. uint64_t u64;
  36. struct cvmx_rnm_bist_status_s {
  37. uint64_t reserved_2_63:62;
  38. uint64_t rrc:1;
  39. uint64_t mem:1;
  40. } s;
  41. struct cvmx_rnm_bist_status_s cn30xx;
  42. struct cvmx_rnm_bist_status_s cn31xx;
  43. struct cvmx_rnm_bist_status_s cn38xx;
  44. struct cvmx_rnm_bist_status_s cn38xxp2;
  45. struct cvmx_rnm_bist_status_s cn50xx;
  46. struct cvmx_rnm_bist_status_s cn52xx;
  47. struct cvmx_rnm_bist_status_s cn52xxp1;
  48. struct cvmx_rnm_bist_status_s cn56xx;
  49. struct cvmx_rnm_bist_status_s cn56xxp1;
  50. struct cvmx_rnm_bist_status_s cn58xx;
  51. struct cvmx_rnm_bist_status_s cn58xxp1;
  52. };
  53. union cvmx_rnm_ctl_status {
  54. uint64_t u64;
  55. struct cvmx_rnm_ctl_status_s {
  56. uint64_t reserved_9_63:55;
  57. uint64_t ent_sel:4;
  58. uint64_t exp_ent:1;
  59. uint64_t rng_rst:1;
  60. uint64_t rnm_rst:1;
  61. uint64_t rng_en:1;
  62. uint64_t ent_en:1;
  63. } s;
  64. struct cvmx_rnm_ctl_status_cn30xx {
  65. uint64_t reserved_4_63:60;
  66. uint64_t rng_rst:1;
  67. uint64_t rnm_rst:1;
  68. uint64_t rng_en:1;
  69. uint64_t ent_en:1;
  70. } cn30xx;
  71. struct cvmx_rnm_ctl_status_cn30xx cn31xx;
  72. struct cvmx_rnm_ctl_status_cn30xx cn38xx;
  73. struct cvmx_rnm_ctl_status_cn30xx cn38xxp2;
  74. struct cvmx_rnm_ctl_status_s cn50xx;
  75. struct cvmx_rnm_ctl_status_s cn52xx;
  76. struct cvmx_rnm_ctl_status_s cn52xxp1;
  77. struct cvmx_rnm_ctl_status_s cn56xx;
  78. struct cvmx_rnm_ctl_status_s cn56xxp1;
  79. struct cvmx_rnm_ctl_status_s cn58xx;
  80. struct cvmx_rnm_ctl_status_s cn58xxp1;
  81. };
  82. #endif