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 | ||
a1ce3928 | 36 | #include <asm/sibyte/sb1250_defs.h> |
4cbf2bea AI |
37 | |
38 | /* | |
39 | * Format of level 2 cache management address (Table 55) | |
40 | */ | |
41 | ||
70342287 RB |
42 | #define S_BCM1480_L2C_MGMT_INDEX 5 |
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 | 46 | |
70342287 RB |
47 | #define S_BCM1480_L2C_MGMT_WAY 17 |
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 | 51 | |
70342287 RB |
52 | #define M_BCM1480_L2C_MGMT_DIRTY _SB_MAKEMASK1(20) |
53 | #define M_BCM1480_L2C_MGMT_VALID _SB_MAKEMASK1(21) | |
4cbf2bea | 54 | |
70342287 RB |
55 | #define S_BCM1480_L2C_MGMT_ECC_DIAG 22 |
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 | 59 | |
70342287 | 60 | #define A_BCM1480_L2C_MGMT_TAG_BASE 0x00D0000000 |
4cbf2bea | 61 | |
70342287 RB |
62 | #define BCM1480_L2C_ENTRIES_PER_WAY 4096 |
63 | #define BCM1480_L2C_NUM_WAYS 8 | |
4cbf2bea AI |
64 | |
65 | ||
66 | /* | |
67 | * Level 2 Cache Tag register (Table 59) | |
68 | */ | |
69 | ||
70342287 RB |
70 | #define S_BCM1480_L2C_TAG_MBZ 0 |
71 | #define M_BCM1480_L2C_TAG_MBZ _SB_MAKEMASK(5, S_BCM1480_L2C_TAG_MBZ) | |
4cbf2bea | 72 | |
70342287 RB |
73 | #define S_BCM1480_L2C_TAG_INDEX 5 |
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 */ | |
70342287 RB |
79 | #define S_BCM1480_L2C_TAG_TAG 17 |
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 | 83 | |
70342287 RB |
84 | #define S_BCM1480_L2C_TAG_ECC 40 |
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 | 88 | |
70342287 RB |
89 | #define S_BCM1480_L2C_TAG_WAY 46 |
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 | 93 | |
70342287 RB |
94 | #define M_BCM1480_L2C_TAG_DIRTY _SB_MAKEMASK1(49) |
95 | #define M_BCM1480_L2C_TAG_VALID _SB_MAKEMASK1(50) | |
4cbf2bea | 96 | |
70342287 RB |
97 | #define S_BCM1480_L2C_DATA_ECC 51 |
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 | ||
70342287 RB |
107 | #define S_BCM1480_L2C_MISC0_WAY_REMOTE 0 |
108 | #define M_BCM1480_L2C_MISC0_WAY_REMOTE _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_REMOTE) | |
21a151d8 | 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 | 110 | |
70342287 RB |
111 | #define S_BCM1480_L2C_MISC0_WAY_LOCAL 8 |
112 | #define M_BCM1480_L2C_MISC0_WAY_LOCAL _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_LOCAL) | |
21a151d8 | 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 | 114 | |
70342287 RB |
115 | #define S_BCM1480_L2C_MISC0_WAY_ENABLE 16 |
116 | #define M_BCM1480_L2C_MISC0_WAY_ENABLE _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_ENABLE) | |
21a151d8 | 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 | 122 | |
70342287 RB |
123 | #define S_BCM1480_L2C_MISC0_CACHE_QUAD 26 |
124 | #define M_BCM1480_L2C_MISC0_CACHE_QUAD _SB_MAKEMASK(2, S_BCM1480_L2C_MISC0_CACHE_QUAD) | |
21a151d8 | 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 | 126 | |
70342287 RB |
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) | |
4cbf2bea | 129 | |
70342287 RB |
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) | |
4cbf2bea AI |
132 | |
133 | ||
134 | /* | |
135 | * L2 Misc1 Value Register (Table 60) | |
136 | */ | |
137 | ||
70342287 RB |
138 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_0 0 |
139 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_0 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_0) | |
21a151d8 | 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 | 141 | |
70342287 RB |
142 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_1 8 |
143 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_1 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_1) | |
21a151d8 | 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 | 145 | |
70342287 RB |
146 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_2 16 |
147 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_2 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_2) | |
21a151d8 | 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 | 149 | |
70342287 RB |
150 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_3 24 |
151 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_3 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_3) | |
21a151d8 | 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 | 153 | |
70342287 RB |
154 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_4 32 |
155 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_4 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_4) | |
21a151d8 | 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 | ||
70342287 RB |
163 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_8 0 |
164 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_8 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_8) | |
21a151d8 | 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 | 166 | |
70342287 RB |
167 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_9 8 |
168 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_9 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_9) | |
21a151d8 | 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 | 170 | |
70342287 RB |
171 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_A 16 |
172 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_A _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_A) | |
21a151d8 | 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 */ |