]>
Commit | Line | Data |
---|---|---|
4cbf2bea AI |
1 | /* ********************************************************************* |
2 | * BCM1280/BCM1480 Board Support Package | |
3 | * | |
4 | * L2 Cache constants and macros File: bcm1480_l2c.h | |
5 | * | |
6 | * This module contains constants useful for manipulating the | |
7 | * level 2 cache. | |
8 | * | |
9 | * BCM1400 specification level: 1280-UM100-D2 (11/14/03) | |
10 | * | |
11 | ********************************************************************* | |
12 | * | |
13 | * Copyright 2000,2001,2002,2003 | |
14 | * Broadcom Corporation. All rights reserved. | |
15 | * | |
16 | * This program is free software; you can redistribute it and/or | |
17 | * modify it under the terms of the GNU General Public License as | |
18 | * published by the Free Software Foundation; either version 2 of | |
19 | * the License, or (at your option) any later version. | |
20 | * | |
21 | * This program is distributed in the hope that it will be useful, | |
22 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
23 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
24 | * GNU General Public License for more details. | |
25 | * | |
26 | * You should have received a copy of the GNU General Public License | |
27 | * along with this program; if not, write to the Free Software | |
28 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
29 | * MA 02111-1307 USA | |
30 | ********************************************************************* */ | |
31 | ||
32 | ||
33 | #ifndef _BCM1480_L2C_H | |
34 | #define _BCM1480_L2C_H | |
35 | ||
36 | #include "sb1250_defs.h" | |
37 | ||
38 | /* | |
39 | * Format of level 2 cache management address (Table 55) | |
40 | */ | |
41 | ||
42 | #define S_BCM1480_L2C_MGMT_INDEX 5 | |
21a151d8 RB |
43 | #define M_BCM1480_L2C_MGMT_INDEX _SB_MAKEMASK(12, S_BCM1480_L2C_MGMT_INDEX) |
44 | #define V_BCM1480_L2C_MGMT_INDEX(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_MGMT_INDEX) | |
45 | #define G_BCM1480_L2C_MGMT_INDEX(x) _SB_GETVALUE(x, S_BCM1480_L2C_MGMT_INDEX, M_BCM1480_L2C_MGMT_INDEX) | |
4cbf2bea AI |
46 | |
47 | #define S_BCM1480_L2C_MGMT_WAY 17 | |
21a151d8 RB |
48 | #define M_BCM1480_L2C_MGMT_WAY _SB_MAKEMASK(3, S_BCM1480_L2C_MGMT_WAY) |
49 | #define V_BCM1480_L2C_MGMT_WAY(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_MGMT_WAY) | |
50 | #define G_BCM1480_L2C_MGMT_WAY(x) _SB_GETVALUE(x, S_BCM1480_L2C_MGMT_WAY, M_BCM1480_L2C_MGMT_WAY) | |
4cbf2bea AI |
51 | |
52 | #define M_BCM1480_L2C_MGMT_DIRTY _SB_MAKEMASK1(20) | |
53 | #define M_BCM1480_L2C_MGMT_VALID _SB_MAKEMASK1(21) | |
54 | ||
55 | #define S_BCM1480_L2C_MGMT_ECC_DIAG 22 | |
21a151d8 RB |
56 | #define M_BCM1480_L2C_MGMT_ECC_DIAG _SB_MAKEMASK(2, S_BCM1480_L2C_MGMT_ECC_DIAG) |
57 | #define V_BCM1480_L2C_MGMT_ECC_DIAG(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_MGMT_ECC_DIAG) | |
58 | #define G_BCM1480_L2C_MGMT_ECC_DIAG(x) _SB_GETVALUE(x, S_BCM1480_L2C_MGMT_ECC_DIAG, M_BCM1480_L2C_MGMT_ECC_DIAG) | |
4cbf2bea AI |
59 | |
60 | #define A_BCM1480_L2C_MGMT_TAG_BASE 0x00D0000000 | |
61 | ||
62 | #define BCM1480_L2C_ENTRIES_PER_WAY 4096 | |
63 | #define BCM1480_L2C_NUM_WAYS 8 | |
64 | ||
65 | ||
66 | /* | |
67 | * Level 2 Cache Tag register (Table 59) | |
68 | */ | |
69 | ||
70 | #define S_BCM1480_L2C_TAG_MBZ 0 | |
21a151d8 | 71 | #define M_BCM1480_L2C_TAG_MBZ _SB_MAKEMASK(5, S_BCM1480_L2C_TAG_MBZ) |
4cbf2bea AI |
72 | |
73 | #define S_BCM1480_L2C_TAG_INDEX 5 | |
21a151d8 RB |
74 | #define M_BCM1480_L2C_TAG_INDEX _SB_MAKEMASK(12, S_BCM1480_L2C_TAG_INDEX) |
75 | #define V_BCM1480_L2C_TAG_INDEX(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_TAG_INDEX) | |
76 | #define G_BCM1480_L2C_TAG_INDEX(x) _SB_GETVALUE(x, S_BCM1480_L2C_TAG_INDEX, M_BCM1480_L2C_TAG_INDEX) | |
4cbf2bea AI |
77 | |
78 | /* Note that index bit 16 is also tag bit 40 */ | |
79 | #define S_BCM1480_L2C_TAG_TAG 17 | |
21a151d8 RB |
80 | #define M_BCM1480_L2C_TAG_TAG _SB_MAKEMASK(23, S_BCM1480_L2C_TAG_TAG) |
81 | #define V_BCM1480_L2C_TAG_TAG(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_TAG_TAG) | |
82 | #define G_BCM1480_L2C_TAG_TAG(x) _SB_GETVALUE(x, S_BCM1480_L2C_TAG_TAG, M_BCM1480_L2C_TAG_TAG) | |
4cbf2bea AI |
83 | |
84 | #define S_BCM1480_L2C_TAG_ECC 40 | |
21a151d8 RB |
85 | #define M_BCM1480_L2C_TAG_ECC _SB_MAKEMASK(6, S_BCM1480_L2C_TAG_ECC) |
86 | #define V_BCM1480_L2C_TAG_ECC(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_TAG_ECC) | |
87 | #define G_BCM1480_L2C_TAG_ECC(x) _SB_GETVALUE(x, S_BCM1480_L2C_TAG_ECC, M_BCM1480_L2C_TAG_ECC) | |
4cbf2bea AI |
88 | |
89 | #define S_BCM1480_L2C_TAG_WAY 46 | |
21a151d8 RB |
90 | #define M_BCM1480_L2C_TAG_WAY _SB_MAKEMASK(3, S_BCM1480_L2C_TAG_WAY) |
91 | #define V_BCM1480_L2C_TAG_WAY(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_TAG_WAY) | |
92 | #define G_BCM1480_L2C_TAG_WAY(x) _SB_GETVALUE(x, S_BCM1480_L2C_TAG_WAY, M_BCM1480_L2C_TAG_WAY) | |
4cbf2bea AI |
93 | |
94 | #define M_BCM1480_L2C_TAG_DIRTY _SB_MAKEMASK1(49) | |
95 | #define M_BCM1480_L2C_TAG_VALID _SB_MAKEMASK1(50) | |
96 | ||
97 | #define S_BCM1480_L2C_DATA_ECC 51 | |
21a151d8 RB |
98 | #define M_BCM1480_L2C_DATA_ECC _SB_MAKEMASK(10, S_BCM1480_L2C_DATA_ECC) |
99 | #define V_BCM1480_L2C_DATA_ECC(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_DATA_ECC) | |
100 | #define G_BCM1480_L2C_DATA_ECC(x) _SB_GETVALUE(x, S_BCM1480_L2C_DATA_ECC, M_BCM1480_L2C_DATA_ECC) | |
4cbf2bea AI |
101 | |
102 | ||
103 | /* | |
104 | * L2 Misc0 Value Register (Table 60) | |
105 | */ | |
106 | ||
107 | #define S_BCM1480_L2C_MISC0_WAY_REMOTE 0 | |
21a151d8 RB |
108 | #define M_BCM1480_L2C_MISC0_WAY_REMOTE _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_REMOTE) |
109 | #define G_BCM1480_L2C_MISC0_WAY_REMOTE(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_WAY_REMOTE, M_BCM1480_L2C_MISC0_WAY_REMOTE) | |
4cbf2bea AI |
110 | |
111 | #define S_BCM1480_L2C_MISC0_WAY_LOCAL 8 | |
21a151d8 RB |
112 | #define M_BCM1480_L2C_MISC0_WAY_LOCAL _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_LOCAL) |
113 | #define G_BCM1480_L2C_MISC0_WAY_LOCAL(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_WAY_LOCAL, M_BCM1480_L2C_MISC0_WAY_LOCAL) | |
4cbf2bea AI |
114 | |
115 | #define S_BCM1480_L2C_MISC0_WAY_ENABLE 16 | |
21a151d8 RB |
116 | #define M_BCM1480_L2C_MISC0_WAY_ENABLE _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_ENABLE) |
117 | #define G_BCM1480_L2C_MISC0_WAY_ENABLE(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_WAY_ENABLE, M_BCM1480_L2C_MISC0_WAY_ENABLE) | |
4cbf2bea AI |
118 | |
119 | #define S_BCM1480_L2C_MISC0_CACHE_DISABLE 24 | |
21a151d8 RB |
120 | #define M_BCM1480_L2C_MISC0_CACHE_DISABLE _SB_MAKEMASK(2, S_BCM1480_L2C_MISC0_CACHE_DISABLE) |
121 | #define G_BCM1480_L2C_MISC0_CACHE_DISABLE(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_CACHE_DISABLE, M_BCM1480_L2C_MISC0_CACHE_DISABLE) | |
4cbf2bea AI |
122 | |
123 | #define S_BCM1480_L2C_MISC0_CACHE_QUAD 26 | |
21a151d8 RB |
124 | #define M_BCM1480_L2C_MISC0_CACHE_QUAD _SB_MAKEMASK(2, S_BCM1480_L2C_MISC0_CACHE_QUAD) |
125 | #define G_BCM1480_L2C_MISC0_CACHE_QUAD(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_CACHE_QUAD, M_BCM1480_L2C_MISC0_CACHE_QUAD) | |
4cbf2bea AI |
126 | |
127 | #define S_BCM1480_L2C_MISC0_MC_PRIORITY 30 | |
128 | #define M_BCM1480_L2C_MISC0_MC_PRIORITY _SB_MAKEMASK1(S_BCM1480_L2C_MISC0_MC_PRIORITY) | |
129 | ||
130 | #define S_BCM1480_L2C_MISC0_ECC_CLEANUP 31 | |
131 | #define M_BCM1480_L2C_MISC0_ECC_CLEANUP _SB_MAKEMASK1(S_BCM1480_L2C_MISC0_ECC_CLEANUP) | |
132 | ||
133 | ||
134 | /* | |
135 | * L2 Misc1 Value Register (Table 60) | |
136 | */ | |
137 | ||
138 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_0 0 | |
21a151d8 RB |
139 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_0 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_0) |
140 | #define G_BCM1480_L2C_MISC1_WAY_AGENT_0(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC1_WAY_AGENT_0, M_BCM1480_L2C_MISC1_WAY_AGENT_0) | |
4cbf2bea AI |
141 | |
142 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_1 8 | |
21a151d8 RB |
143 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_1 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_1) |
144 | #define G_BCM1480_L2C_MISC1_WAY_AGENT_1(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC1_WAY_AGENT_1, M_BCM1480_L2C_MISC1_WAY_AGENT_1) | |
4cbf2bea AI |
145 | |
146 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_2 16 | |
21a151d8 RB |
147 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_2 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_2) |
148 | #define G_BCM1480_L2C_MISC1_WAY_AGENT_2(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC1_WAY_AGENT_2, M_BCM1480_L2C_MISC1_WAY_AGENT_2) | |
4cbf2bea AI |
149 | |
150 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_3 24 | |
21a151d8 RB |
151 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_3 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_3) |
152 | #define G_BCM1480_L2C_MISC1_WAY_AGENT_3(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC1_WAY_AGENT_3, M_BCM1480_L2C_MISC1_WAY_AGENT_3) | |
4cbf2bea AI |
153 | |
154 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_4 32 | |
21a151d8 RB |
155 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_4 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_4) |
156 | #define G_BCM1480_L2C_MISC1_WAY_AGENT_4(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC1_WAY_AGENT_4, M_BCM1480_L2C_MISC1_WAY_AGENT_4) | |
4cbf2bea AI |
157 | |
158 | ||
159 | /* | |
160 | * L2 Misc2 Value Register (Table 60) | |
161 | */ | |
162 | ||
163 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_8 0 | |
21a151d8 RB |
164 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_8 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_8) |
165 | #define G_BCM1480_L2C_MISC2_WAY_AGENT_8(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC2_WAY_AGENT_8, M_BCM1480_L2C_MISC2_WAY_AGENT_8) | |
4cbf2bea AI |
166 | |
167 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_9 8 | |
21a151d8 RB |
168 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_9 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_9) |
169 | #define G_BCM1480_L2C_MISC2_WAY_AGENT_9(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC2_WAY_AGENT_9, M_BCM1480_L2C_MISC2_WAY_AGENT_9) | |
4cbf2bea AI |
170 | |
171 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_A 16 | |
21a151d8 RB |
172 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_A _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_A) |
173 | #define G_BCM1480_L2C_MISC2_WAY_AGENT_A(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC2_WAY_AGENT_A, M_BCM1480_L2C_MISC2_WAY_AGENT_A) | |
4cbf2bea AI |
174 | |
175 | ||
176 | #endif /* _BCM1480_L2C_H */ |