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