~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/mips/include/asm/octeon/cvmx-ciu-defs.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /* Octeon CIU definitions
  3  *
  4  * Copyright (C) 2003-2018 Cavium, Inc.
  5  */
  6 
  7 #ifndef __CVMX_CIU_DEFS_H__
  8 #define __CVMX_CIU_DEFS_H__
  9 
 10 #include <asm/bitfield.h>
 11 
 12 #define CVMX_CIU_ADDR(addr, coreid, coremask, offset)                          \
 13         (CVMX_ADD_IO_SEG(0x0001070000000000ull + addr##ull) +                  \
 14         (((coreid) & (coremask)) * offset))
 15 
 16 #define CVMX_CIU_EN2_PPX_IP4(c)         CVMX_CIU_ADDR(0xA400, c, 0x0F, 8)
 17 #define CVMX_CIU_EN2_PPX_IP4_W1C(c)     CVMX_CIU_ADDR(0xCC00, c, 0x0F, 8)
 18 #define CVMX_CIU_EN2_PPX_IP4_W1S(c)     CVMX_CIU_ADDR(0xAC00, c, 0x0F, 8)
 19 #define CVMX_CIU_FUSE                   CVMX_CIU_ADDR(0x0728, 0, 0x00, 0)
 20 #define CVMX_CIU_INT_SUM1               CVMX_CIU_ADDR(0x0108, 0, 0x00, 0)
 21 #define CVMX_CIU_INTX_EN0(c)            CVMX_CIU_ADDR(0x0200, c, 0x3F, 16)
 22 #define CVMX_CIU_INTX_EN0_W1C(c)        CVMX_CIU_ADDR(0x2200, c, 0x3F, 16)
 23 #define CVMX_CIU_INTX_EN0_W1S(c)        CVMX_CIU_ADDR(0x6200, c, 0x3F, 16)
 24 #define CVMX_CIU_INTX_EN1(c)            CVMX_CIU_ADDR(0x0208, c, 0x3F, 16)
 25 #define CVMX_CIU_INTX_EN1_W1C(c)        CVMX_CIU_ADDR(0x2208, c, 0x3F, 16)
 26 #define CVMX_CIU_INTX_EN1_W1S(c)        CVMX_CIU_ADDR(0x6208, c, 0x3F, 16)
 27 #define CVMX_CIU_INTX_SUM0(c)           CVMX_CIU_ADDR(0x0000, c, 0x3F, 8)
 28 #define CVMX_CIU_NMI                    CVMX_CIU_ADDR(0x0718, 0, 0x00, 0)
 29 #define CVMX_CIU_PCI_INTA               CVMX_CIU_ADDR(0x0750, 0, 0x00, 0)
 30 #define CVMX_CIU_PP_BIST_STAT           CVMX_CIU_ADDR(0x07E0, 0, 0x00, 0)
 31 #define CVMX_CIU_PP_DBG                 CVMX_CIU_ADDR(0x0708, 0, 0x00, 0)
 32 #define CVMX_CIU_PP_RST                 CVMX_CIU_ADDR(0x0700, 0, 0x00, 0)
 33 #define CVMX_CIU_QLM0                   CVMX_CIU_ADDR(0x0780, 0, 0x00, 0)
 34 #define CVMX_CIU_QLM1                   CVMX_CIU_ADDR(0x0788, 0, 0x00, 0)
 35 #define CVMX_CIU_QLM_JTGC               CVMX_CIU_ADDR(0x0768, 0, 0x00, 0)
 36 #define CVMX_CIU_QLM_JTGD               CVMX_CIU_ADDR(0x0770, 0, 0x00, 0)
 37 #define CVMX_CIU_SOFT_BIST              CVMX_CIU_ADDR(0x0738, 0, 0x00, 0)
 38 #define CVMX_CIU_SOFT_PRST1             CVMX_CIU_ADDR(0x0758, 0, 0x00, 0)
 39 #define CVMX_CIU_SOFT_PRST              CVMX_CIU_ADDR(0x0748, 0, 0x00, 0)
 40 #define CVMX_CIU_SOFT_RST               CVMX_CIU_ADDR(0x0740, 0, 0x00, 0)
 41 #define CVMX_CIU_SUM2_PPX_IP4(c)        CVMX_CIU_ADDR(0x8C00, c, 0x0F, 8)
 42 #define CVMX_CIU_TIM_MULTI_CAST         CVMX_CIU_ADDR(0xC200, 0, 0x00, 0)
 43 #define CVMX_CIU_TIMX(c)                CVMX_CIU_ADDR(0x0480, c, 0x0F, 8)
 44 
 45 static inline uint64_t CVMX_CIU_MBOX_CLRX(unsigned int coreid)
 46 {
 47         if (cvmx_get_octeon_family() == (OCTEON_CN68XX & OCTEON_FAMILY_MASK))
 48                 return CVMX_CIU_ADDR(0x100100600, coreid, 0x0F, 8);
 49         else
 50                 return CVMX_CIU_ADDR(0x000000680, coreid, 0x0F, 8);
 51 }
 52 
 53 static inline uint64_t CVMX_CIU_MBOX_SETX(unsigned int coreid)
 54 {
 55         if (cvmx_get_octeon_family() == (OCTEON_CN68XX & OCTEON_FAMILY_MASK))
 56                 return CVMX_CIU_ADDR(0x100100400, coreid, 0x0F, 8);
 57         else
 58                 return CVMX_CIU_ADDR(0x000000600, coreid, 0x0F, 8);
 59 }
 60 
 61 static inline uint64_t CVMX_CIU_PP_POKEX(unsigned int coreid)
 62 {
 63         switch (cvmx_get_octeon_family()) {
 64         case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
 65                 return CVMX_CIU_ADDR(0x100100200, coreid, 0x0F, 8);
 66         case OCTEON_CNF75XX & OCTEON_FAMILY_MASK:
 67         case OCTEON_CN73XX & OCTEON_FAMILY_MASK:
 68         case OCTEON_CN78XX & OCTEON_FAMILY_MASK:
 69                 return CVMX_CIU_ADDR(0x000030000, coreid, 0x0F, 8) -
 70                         0x60000000000ull;
 71         default:
 72                 return CVMX_CIU_ADDR(0x000000580, coreid, 0x0F, 8);
 73         }
 74 }
 75 
 76 static inline uint64_t CVMX_CIU_WDOGX(unsigned int coreid)
 77 {
 78         switch (cvmx_get_octeon_family()) {
 79         case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
 80                 return CVMX_CIU_ADDR(0x100100000, coreid, 0x0F, 8);
 81         case OCTEON_CNF75XX & OCTEON_FAMILY_MASK:
 82         case OCTEON_CN73XX & OCTEON_FAMILY_MASK:
 83         case OCTEON_CN78XX & OCTEON_FAMILY_MASK:
 84                 return CVMX_CIU_ADDR(0x000020000, coreid, 0x0F, 8) -
 85                         0x60000000000ull;
 86         default:
 87                 return CVMX_CIU_ADDR(0x000000500, coreid, 0x0F, 8);
 88         }
 89 }
 90 
 91 
 92 union cvmx_ciu_qlm {
 93         uint64_t u64;
 94         struct cvmx_ciu_qlm_s {
 95                 __BITFIELD_FIELD(uint64_t g2bypass:1,
 96                 __BITFIELD_FIELD(uint64_t reserved_53_62:10,
 97                 __BITFIELD_FIELD(uint64_t g2deemph:5,
 98                 __BITFIELD_FIELD(uint64_t reserved_45_47:3,
 99                 __BITFIELD_FIELD(uint64_t g2margin:5,
100                 __BITFIELD_FIELD(uint64_t reserved_32_39:8,
101                 __BITFIELD_FIELD(uint64_t txbypass:1,
102                 __BITFIELD_FIELD(uint64_t reserved_21_30:10,
103                 __BITFIELD_FIELD(uint64_t txdeemph:5,
104                 __BITFIELD_FIELD(uint64_t reserved_13_15:3,
105                 __BITFIELD_FIELD(uint64_t txmargin:5,
106                 __BITFIELD_FIELD(uint64_t reserved_4_7:4,
107                 __BITFIELD_FIELD(uint64_t lane_en:4,
108                 ;)))))))))))))
109         } s;
110 };
111 
112 union cvmx_ciu_qlm_jtgc {
113         uint64_t u64;
114         struct cvmx_ciu_qlm_jtgc_s {
115                 __BITFIELD_FIELD(uint64_t reserved_17_63:47,
116                 __BITFIELD_FIELD(uint64_t bypass_ext:1,
117                 __BITFIELD_FIELD(uint64_t reserved_11_15:5,
118                 __BITFIELD_FIELD(uint64_t clk_div:3,
119                 __BITFIELD_FIELD(uint64_t reserved_7_7:1,
120                 __BITFIELD_FIELD(uint64_t mux_sel:3,
121                 __BITFIELD_FIELD(uint64_t bypass:4,
122                 ;)))))))
123         } s;
124 };
125 
126 union cvmx_ciu_qlm_jtgd {
127         uint64_t u64;
128         struct cvmx_ciu_qlm_jtgd_s {
129                 __BITFIELD_FIELD(uint64_t capture:1,
130                 __BITFIELD_FIELD(uint64_t shift:1,
131                 __BITFIELD_FIELD(uint64_t update:1,
132                 __BITFIELD_FIELD(uint64_t reserved_45_60:16,
133                 __BITFIELD_FIELD(uint64_t select:5,
134                 __BITFIELD_FIELD(uint64_t reserved_37_39:3,
135                 __BITFIELD_FIELD(uint64_t shft_cnt:5,
136                 __BITFIELD_FIELD(uint64_t shft_reg:32,
137                 ;))))))))
138         } s;
139 };
140 
141 union cvmx_ciu_soft_prst {
142         uint64_t u64;
143         struct cvmx_ciu_soft_prst_s {
144                 __BITFIELD_FIELD(uint64_t reserved_3_63:61,
145                 __BITFIELD_FIELD(uint64_t host64:1,
146                 __BITFIELD_FIELD(uint64_t npi:1,
147                 __BITFIELD_FIELD(uint64_t soft_prst:1,
148                 ;))))
149         } s;
150 };
151 
152 union cvmx_ciu_timx {
153         uint64_t u64;
154         struct cvmx_ciu_timx_s {
155                 __BITFIELD_FIELD(uint64_t reserved_37_63:27,
156                 __BITFIELD_FIELD(uint64_t one_shot:1,
157                 __BITFIELD_FIELD(uint64_t len:36,
158                 ;)))
159         } s;
160 };
161 
162 union cvmx_ciu_wdogx {
163         uint64_t u64;
164         struct cvmx_ciu_wdogx_s {
165                 __BITFIELD_FIELD(uint64_t reserved_46_63:18,
166                 __BITFIELD_FIELD(uint64_t gstopen:1,
167                 __BITFIELD_FIELD(uint64_t dstop:1,
168                 __BITFIELD_FIELD(uint64_t cnt:24,
169                 __BITFIELD_FIELD(uint64_t len:16,
170                 __BITFIELD_FIELD(uint64_t state:2,
171                 __BITFIELD_FIELD(uint64_t mode:2,
172                 ;)))))))
173         } s;
174 };
175 
176 #endif /* __CVMX_CIU_DEFS_H__ */
177 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php