1 /*  *********************************************************************
2     *  BCM1280/BCM1480 Board Support Package
3     *
4     *  Remote line directory constants and macros	File: bcm1480_rld.h
5     *
6     *  This module contains constants useful for manipulating the
7     *  BCM1280/BCM1480 remote line directory (part of the node controller).
8     *
9     *  BCM1400 specification level:  1X55_1X80-UM100-D4 (11/24/03)
10     *
11     *********************************************************************
12     *
13     *  Copyright 2000,2001,2002,2003,2004
14     *  Broadcom Corporation. All rights reserved.
15     *
16     *  This software is furnished under license and may be used and
17     *  copied only in accordance with the following terms and
18     *  conditions.  Subject to these conditions, you may download,
19     *  copy, install, use, modify and distribute modified or unmodified
20     *  copies of this software in source and/or binary form.  No title
21     *  or ownership is transferred hereby.
22     *
23     *  1) Any source code used, modified or distributed must reproduce
24     *     and retain this copyright notice and list of conditions
25     *     as they appear in the source file.
26     *
27     *  2) No right is granted to use any trade name, trademark, or
28     *     logo of Broadcom Corporation.  The "Broadcom Corporation"
29     *     name may not be used to endorse or promote products derived
30     *     from this software without the prior written permission of
31     *     Broadcom Corporation.
32     *
33     *  3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
34     *     IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
35     *     WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
36     *     PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
37     *     SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
38     *     PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
39     *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
40     *     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
41     *     GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
42     *     BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
43     *     OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
44     *     TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
45     *     THE POSSIBILITY OF SUCH DAMAGE.
46     ********************************************************************* */
47 
48 #ifndef _BCM1480_RLD_H
49 #define _BCM1480_RLD_H
50 
51 #include "sb1250_defs.h"
52 
53 /*
54  * RLD Field Way Enable Register (Table 185)
55  */
56 
57 #define S_BCM1480_RLD_WAY_ENABLE            0
58 #define M_BCM1480_RLD_WAY_ENABLE            _SB_MAKEMASK(8,S_BCM1480_RLD_WAY_ENABLE)
59 #define V_BCM1480_RLD_WAY_ENABLE(x)         _SB_MAKEVALUE(x,S_BCM1480_RLD_WAY_ENABLE)
60 #define G_BCM1480_RLD_WAY_ENABLE(x)         _SB_GETVALUE(x,S_BCM1480_RLD_WAY_ENABLE,M_BCM1480_RLD_WAY_ENABLE)
61 
62 /*
63  * RLD Random LFSR Seed Register (Table 186)
64  */
65 
66 #define S_BCM1480_RLD_RANDOM_SEED           0
67 #define M_BCM1480_RLD_RANDOM_SEED           _SB_MAKEMASK(8,S_BCM1480_RLD_RANDOM_SEED)
68 #define V_BCM1480_RLD_RANDOM_SEED(x)        _SB_MAKEVALUE(x,S_BCM1480_RLD_RANDOM_SEED)
69 #define G_BCM1480_RLD_RANDOM_SEED(x)        _SB_GETVALUE(x,S_BCM1480_RLD_RANDOM_SEED,M_BCM1480_RLD_RANDOM_SEED)
70 
71 /*
72  * RLD Field Register (Table 187)
73  */
74 
75 #define S_BCM1480_RLD_FIELD_OFFSET          0
76 #define M_BCM1480_RLD_FIELD_OFFSET          _SB_MAKEMASK(5,S_BCM1480_RLD_FIELD_OFFSET)
77 #define V_BCM1480_RLD_FIELD_OFFSET(x)       _SB_MAKEVALUE(x,S_BCM1480_RLD_FIELD_OFFSET)
78 #define G_BCM1480_RLD_FIELD_OFFSET(x)       _SB_GETVALUE(x,S_BCM1480_RLD_FIELD_OFFSET,M_BCM1480_RLD_FIELD_OFFSET)
79 
80 #define S_BCM1480_RLD_FIELD_INDEX           5
81 #define M_BCM1480_RLD_FIELD_INDEX           _SB_MAKEMASK(11,S_BCM1480_RLD_FIELD_INDEX)
82 #define V_BCM1480_RLD_FIELD_INDEX(x)        _SB_MAKEVALUE(x,S_BCM1480_RLD_FIELD_INDEX)
83 #define G_BCM1480_RLD_FIELD_INDEX(x)        _SB_GETVALUE(x,S_BCM1480_RLD_FIELD_INDEX,M_BCM1480_RLD_FIELD_INDEX)
84 
85 #define S_BCM1480_RLD_FIELD_TAG             16
86 #define M_BCM1480_RLD_FIELD_TAG             _SB_MAKEMASK(20,S_BCM1480_RLD_FIELD_TAG)
87 #define V_BCM1480_RLD_FIELD_TAG(x)          _SB_MAKEVALUE(x,S_BCM1480_RLD_FIELD_TAG)
88 #define G_BCM1480_RLD_FIELD_TAG(x)          _SB_GETVALUE(x,S_BCM1480_RLD_FIELD_TAG,M_BCM1480_RLD_FIELD_TAG)
89 
90 #define S_BCM1480_RLD_FIELD_WAY_SELECT      36
91 #define M_BCM1480_RLD_FIELD_WAY_SELECT      _SB_MAKEMASK(3,S_BCM1480_RLD_FIELD_WAY_SELECT)
92 #define V_BCM1480_RLD_FIELD_WAY_SELECT(x)   _SB_MAKEVALUE(x,S_BCM1480_RLD_FIELD_WAY_SELECT)
93 #define G_BCM1480_RLD_FIELD_WAY_SELECT(x)   _SB_GETVALUE(x,S_BCM1480_RLD_FIELD_WAY_SELECT,M_BCM1480_RLD_FIELD_WAY_SELECT)
94 
95 #define M_BCM1480_RLD_FIELD_VALID           _SB_MAKEMASK1(39)
96 #define M_BCM1480_RLD_FIELD_MODIFIED        _SB_MAKEMASK1(40)
97 
98 #define S_BCM1480_RLD_FIELD_NODE_VECTOR     41
99 #define M_BCM1480_RLD_FIELD_NODE_VECTOR     _SB_MAKEMASK(11,S_BCM1480_RLD_FIELD_NODE_VECTOR)
100 #define V_BCM1480_RLD_FIELD_NODE_VECTOR(x)  _SB_MAKEVALUE(x,S_BCM1480_RLD_FIELD_NODE_VECTOR)
101 #define G_BCM1480_RLD_FIELD_NODE_VECTOR(x)  _SB_GETVALUE(x,S_BCM1480_RLD_FIELD_NODE_VECTOR,M_BCM1480_RLD_FIELD_NODE_VECTOR)
102 
103 #define S_BCM1480_RLD_FIELD_ECC_BITS        52
104 #define M_BCM1480_RLD_FIELD_ECC_BITS        _SB_MAKEMASK(7,S_BCM1480_RLD_FIELD_ECC_BITS)
105 #define V_BCM1480_RLD_FIELD_ECC_BITS(x)     _SB_MAKEVALUE(x,S_BCM1480_RLD_FIELD_ECC_BITS)
106 #define G_BCM1480_RLD_FIELD_ECC_BITS(x)     _SB_GETVALUE(x,S_BCM1480_RLD_FIELD_ECC_BITS,M_BCM1480_RLD_FIELD_ECC_BITS)
107 
108 #define M_BCM1480_RLD_FIELD_NEW_ECC         _SB_MAKEMASK1(59)
109 #define M_BCM1480_RLD_FIELD_CHECK_ECC       _SB_MAKEMASK1(60)
110 
111 /*
112  * RLD Trigger Register (Table 188)
113  */
114 
115 #define S_BCM1480_RLD_TRIGGER_TAG           0
116 #define M_BCM1480_RLD_TRIGGER_TAG           _SB_MAKEMASK(20,S_BCM1480_RLD_TRIGGER_TAG)
117 #define V_BCM1480_RLD_TRIGGER_TAG(x)        _SB_MAKEVALUE(x,S_BCM1480_RLD_TRIGGER_TAG)
118 #define G_BCM1480_RLD_TRIGGER_TAG(x)        _SB_GETVALUE(x,S_BCM1480_RLD_TRIGGER_TAG,M_BCM1480_RLD_TRIGGER_TAG)
119 
120 #define M_BCM1480_RLD_TRIGGER_VALID         _SB_MAKEMASK1(20)
121 #define M_BCM1480_RLD_TRIGGER_MODIFIED      _SB_MAKEMASK1(21)
122 
123 #define S_BCM1480_RLD_TRIGGER_NODE_VECTOR   22
124 #define M_BCM1480_RLD_TRIGGER_NODE_VECTOR   _SB_MAKEMASK(11,S_BCM1480_RLD_TRIGGER_NODE_VECTOR)
125 #define V_BCM1480_RLD_TRIGGER_NODE_VECTOR(x) _SB_MAKEVALUE(x,S_BCM1480_RLD_TRIGGER_NODE_VECTOR)
126 #define G_BCM1480_RLD_TRIGGER_NODE_VECTOR(x) _SB_GETVALUE(x,S_BCM1480_RLD_TRIGGER_NODE_VECTOR,M_BCM1480_RLD_TRIGGER_NODE_VECTOR)
127 
128 #define S_BCM1480_RLD_TRIGGER_ECC_BITS      33
129 #define M_BCM1480_RLD_TRIGGER_ECC_BITS      _SB_MAKEMASK(7,S_BCM1480_RLD_TRIGGER_ECC_BITS)
130 #define V_BCM1480_RLD_TRIGGER_ECC_BITS(x)   _SB_MAKEVALUE(x,S_BCM1480_RLD_TRIGGER_ECC_BITS)
131 #define G_BCM1480_RLD_TRIGGER_ECC_BITS(x)   _SB_GETVALUE(x,S_BCM1480_RLD_TRIGGER_ECC_BITS,M_BCM1480_RLD_TRIGGER_ECC_BITS)
132 
133 #define M_BCM1480_RLD_TRIGGER_S_BERR        _SB_MAKEMASK1(40)
134 #define M_BCM1480_RLD_TRIGGER_D_BERR        _SB_MAKEMASK1(41)
135 
136 /*
137  * RLD Uncorrectable ECC Error Counter (Table 189)
138  */
139 
140 #define S_BCM1480_RLD_BAD_ECC               0
141 #define M_BCM1480_RLD_BAD_ECC               _SB_MAKEMASK(8,S_BCM1480_RLD_BAD_ECC)
142 #define V_BCM1480_RLD_BAD_ECC(x)            _SB_MAKEVALUE(x,S_BCM1480_RLD_BAD_ECC)
143 #define G_BCM1480_RLD_BAD_ECC(x)            _SB_GETVALUE(x,S_BCM1480_RLD_BAD_ECC,M_BCM1480_RLD_BAD_ECC)
144 
145 /*
146  * RLD Correctable ECC Error Counter (Table 190)
147  */
148 
149 #define S_BCM1480_RLD_COR_ERR               0
150 #define M_BCM1480_RLD_COR_ERR               _SB_MAKEMASK(8,S_BCM1480_RLD_COR_ERR)
151 #define V_BCM1480_RLD_COR_ERR(x)            _SB_MAKEVALUE(x,S_BCM1480_RLD_COR_ERR)
152 #define G_BCM1480_RLD_COR_ERR(x)            _SB_GETVALUE(x,S_BCM1480_RLD_COR_ERR,M_BCM1480_RLD_COR_ERR)
153 
154 /*
155  * RLD ECC Content Status Register (Table 191)
156  */
157 
158 #define S_BCM1480_RLD_ECC_CS_OFFSET         0
159 #define M_BCM1480_RLD_ECC_CS_OFFSET         _SB_MAKEMASK(5,S_BCM1480_RLD_ECC_CS_OFFSET)
160 #define V_BCM1480_RLD_ECC_CS_OFFSET(x)      _SB_MAKEVALUE(x,S_BCM1480_RLD_ECC_CS_OFFSET)
161 #define G_BCM1480_RLD_ECC_CS_OFFSET(x)      _SB_GETVALUE(x,S_BCM1480_RLD_ECC_CS_OFFSET,M_BCM1480_RLD_ECC_CS_OFFSET)
162 
163 #define S_BCM1480_RLD_ECC_CS_INDEX          5
164 #define M_BCM1480_RLD_ECC_CS_INDEX          _SB_MAKEMASK(11,S_BCM1480_RLD_ECC_CS_INDEX)
165 #define V_BCM1480_RLD_ECC_CS_INDEX(x)       _SB_MAKEVALUE(x,S_BCM1480_RLD_ECC_CS_INDEX)
166 #define G_BCM1480_RLD_ECC_CS_INDEX(x)       _SB_GETVALUE(x,S_BCM1480_RLD_ECC_CS_INDEX,M_BCM1480_RLD_ECC_CS_INDEX)
167 
168 #define S_BCM1480_RLD_ECC_CS_TAG            16
169 #define M_BCM1480_RLD_ECC_CS_TAG            _SB_MAKEMASK(20,S_BCM1480_RLD_ECC_CS_TAG)
170 #define V_BCM1480_RLD_ECC_CS_TAG(x)         _SB_MAKEVALUE(x,S_BCM1480_RLD_ECC_CS_TAG)
171 #define G_BCM1480_RLD_ECC_CS_TAG(x)         _SB_GETVALUE(x,S_BCM1480_RLD_ECC_CS_TAG,M_BCM1480_RLD_ECC_CS_TAG)
172 
173 #define S_BCM1480_RLD_ECC_CS_WAY_SELECT     36
174 #define M_BCM1480_RLD_ECC_CS_WAY_SELECT     _SB_MAKEMASK(3,S_BCM1480_RLD_ECC_CS_WAY_SELECT)
175 #define V_BCM1480_RLD_ECC_CS_WAY_SELECT(x)  _SB_MAKEVALUE(x,S_BCM1480_RLD_ECC_CS_WAY_SELECT)
176 #define G_BCM1480_RLD_ECC_CS_WAY_SELECT(x)  _SB_GETVALUE(x,S_BCM1480_RLD_ECC_CS_WAY_SELECT,M_BCM1480_RLD_ECC_CS_WAY_SELECT)
177 
178 #define M_BCM1480_RLD_ECC_CS_VALID          _SB_MAKEMASK1(39)
179 #define M_BCM1480_RLD_ECC_CS_MODIFIED       _SB_MAKEMASK1(40)
180 
181 #define S_BCM1480_RLD_ECC_CS_NODE_VECTOR    41
182 #define M_BCM1480_RLD_ECC_CS_NODE_VECTOR    _SB_MAKEMASK(11,S_BCM1480_RLD_ECC_CS_NODE_VECTOR)
183 #define V_BCM1480_RLD_ECC_CS_NODE_VECTOR(x) _SB_MAKEVALUE(x,S_BCM1480_RLD_ECC_CS_NODE_VECTOR)
184 #define G_BCM1480_RLD_ECC_CS_NODE_VECTOR(x) _SB_GETVALUE(x,S_BCM1480_RLD_ECC_CS_NODE_VECTOR,M_BCM1480_RLD_ECC_CS_NODE_VECTOR)
185 
186 #define S_BCM1480_RLD_ECC_CS_ECC_BITS       52
187 #define M_BCM1480_RLD_ECC_CS_ECC_BITS       _SB_MAKEMASK(7,S_BCM1480_RLD_ECC_CS_ECC_BITS)
188 #define V_BCM1480_RLD_ECC_CS_ECC_BITS(x)    _SB_MAKEVALUE(x,S_BCM1480_RLD_ECC_CS_ECC_BITS)
189 #define G_BCM1480_RLD_ECC_CS_ECC_BITS(x)    _SB_GETVALUE(x,S_BCM1480_RLD_ECC_CS_ECC_BITS,M_BCM1480_RLD_ECC_CS_ECC_BITS)
190 
191 #define M_BCM1480_RLD_ECC_CS_SINGLE_BIT_ERR _SB_MAKEMASK1(59)
192 #define M_BCM1480_RLD_ECC_CS_DOUBLE_BIT_ERR _SB_MAKEMASK1(60)
193 
194 #endif /* _BCM1480_BCM1480_RLD_H */
195