]>
Commit | Line | Data |
---|---|---|
1a59d1b8 | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
4cbf2bea AI |
2 | /* ********************************************************************* |
3 | * BCM1280/BCM1480 Board Support Package | |
4 | * | |
5 | * L2 Cache constants and macros File: bcm1480_l2c.h | |
6 | * | |
7 | * This module contains constants useful for manipulating the | |
8 | * level 2 cache. | |
9 | * | |
10 | * BCM1400 specification level: 1280-UM100-D2 (11/14/03) | |
11 | * | |
12 | ********************************************************************* | |
13 | * | |
14 | * Copyright 2000,2001,2002,2003 | |
15 | * Broadcom Corporation. All rights reserved. | |
16 | * | |
4cbf2bea AI |
17 | ********************************************************************* */ |
18 | ||
19 | ||
20 | #ifndef _BCM1480_L2C_H | |
21 | #define _BCM1480_L2C_H | |
22 | ||
a1ce3928 | 23 | #include <asm/sibyte/sb1250_defs.h> |
4cbf2bea AI |
24 | |
25 | /* | |
26 | * Format of level 2 cache management address (Table 55) | |
27 | */ | |
28 | ||
70342287 RB |
29 | #define S_BCM1480_L2C_MGMT_INDEX 5 |
30 | #define M_BCM1480_L2C_MGMT_INDEX _SB_MAKEMASK(12, S_BCM1480_L2C_MGMT_INDEX) | |
31 | #define V_BCM1480_L2C_MGMT_INDEX(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_MGMT_INDEX) | |
32 | #define G_BCM1480_L2C_MGMT_INDEX(x) _SB_GETVALUE(x, S_BCM1480_L2C_MGMT_INDEX, M_BCM1480_L2C_MGMT_INDEX) | |
4cbf2bea | 33 | |
70342287 RB |
34 | #define S_BCM1480_L2C_MGMT_WAY 17 |
35 | #define M_BCM1480_L2C_MGMT_WAY _SB_MAKEMASK(3, S_BCM1480_L2C_MGMT_WAY) | |
36 | #define V_BCM1480_L2C_MGMT_WAY(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_MGMT_WAY) | |
37 | #define G_BCM1480_L2C_MGMT_WAY(x) _SB_GETVALUE(x, S_BCM1480_L2C_MGMT_WAY, M_BCM1480_L2C_MGMT_WAY) | |
4cbf2bea | 38 | |
70342287 RB |
39 | #define M_BCM1480_L2C_MGMT_DIRTY _SB_MAKEMASK1(20) |
40 | #define M_BCM1480_L2C_MGMT_VALID _SB_MAKEMASK1(21) | |
4cbf2bea | 41 | |
70342287 RB |
42 | #define S_BCM1480_L2C_MGMT_ECC_DIAG 22 |
43 | #define M_BCM1480_L2C_MGMT_ECC_DIAG _SB_MAKEMASK(2, S_BCM1480_L2C_MGMT_ECC_DIAG) | |
44 | #define V_BCM1480_L2C_MGMT_ECC_DIAG(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_MGMT_ECC_DIAG) | |
45 | #define G_BCM1480_L2C_MGMT_ECC_DIAG(x) _SB_GETVALUE(x, S_BCM1480_L2C_MGMT_ECC_DIAG, M_BCM1480_L2C_MGMT_ECC_DIAG) | |
4cbf2bea | 46 | |
70342287 | 47 | #define A_BCM1480_L2C_MGMT_TAG_BASE 0x00D0000000 |
4cbf2bea | 48 | |
70342287 RB |
49 | #define BCM1480_L2C_ENTRIES_PER_WAY 4096 |
50 | #define BCM1480_L2C_NUM_WAYS 8 | |
4cbf2bea AI |
51 | |
52 | ||
53 | /* | |
54 | * Level 2 Cache Tag register (Table 59) | |
55 | */ | |
56 | ||
70342287 RB |
57 | #define S_BCM1480_L2C_TAG_MBZ 0 |
58 | #define M_BCM1480_L2C_TAG_MBZ _SB_MAKEMASK(5, S_BCM1480_L2C_TAG_MBZ) | |
4cbf2bea | 59 | |
70342287 RB |
60 | #define S_BCM1480_L2C_TAG_INDEX 5 |
61 | #define M_BCM1480_L2C_TAG_INDEX _SB_MAKEMASK(12, S_BCM1480_L2C_TAG_INDEX) | |
62 | #define V_BCM1480_L2C_TAG_INDEX(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_TAG_INDEX) | |
63 | #define G_BCM1480_L2C_TAG_INDEX(x) _SB_GETVALUE(x, S_BCM1480_L2C_TAG_INDEX, M_BCM1480_L2C_TAG_INDEX) | |
4cbf2bea AI |
64 | |
65 | /* Note that index bit 16 is also tag bit 40 */ | |
70342287 RB |
66 | #define S_BCM1480_L2C_TAG_TAG 17 |
67 | #define M_BCM1480_L2C_TAG_TAG _SB_MAKEMASK(23, S_BCM1480_L2C_TAG_TAG) | |
68 | #define V_BCM1480_L2C_TAG_TAG(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_TAG_TAG) | |
69 | #define G_BCM1480_L2C_TAG_TAG(x) _SB_GETVALUE(x, S_BCM1480_L2C_TAG_TAG, M_BCM1480_L2C_TAG_TAG) | |
4cbf2bea | 70 | |
70342287 RB |
71 | #define S_BCM1480_L2C_TAG_ECC 40 |
72 | #define M_BCM1480_L2C_TAG_ECC _SB_MAKEMASK(6, S_BCM1480_L2C_TAG_ECC) | |
73 | #define V_BCM1480_L2C_TAG_ECC(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_TAG_ECC) | |
74 | #define G_BCM1480_L2C_TAG_ECC(x) _SB_GETVALUE(x, S_BCM1480_L2C_TAG_ECC, M_BCM1480_L2C_TAG_ECC) | |
4cbf2bea | 75 | |
70342287 RB |
76 | #define S_BCM1480_L2C_TAG_WAY 46 |
77 | #define M_BCM1480_L2C_TAG_WAY _SB_MAKEMASK(3, S_BCM1480_L2C_TAG_WAY) | |
78 | #define V_BCM1480_L2C_TAG_WAY(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_TAG_WAY) | |
79 | #define G_BCM1480_L2C_TAG_WAY(x) _SB_GETVALUE(x, S_BCM1480_L2C_TAG_WAY, M_BCM1480_L2C_TAG_WAY) | |
4cbf2bea | 80 | |
70342287 RB |
81 | #define M_BCM1480_L2C_TAG_DIRTY _SB_MAKEMASK1(49) |
82 | #define M_BCM1480_L2C_TAG_VALID _SB_MAKEMASK1(50) | |
4cbf2bea | 83 | |
70342287 RB |
84 | #define S_BCM1480_L2C_DATA_ECC 51 |
85 | #define M_BCM1480_L2C_DATA_ECC _SB_MAKEMASK(10, S_BCM1480_L2C_DATA_ECC) | |
86 | #define V_BCM1480_L2C_DATA_ECC(x) _SB_MAKEVALUE(x, S_BCM1480_L2C_DATA_ECC) | |
87 | #define G_BCM1480_L2C_DATA_ECC(x) _SB_GETVALUE(x, S_BCM1480_L2C_DATA_ECC, M_BCM1480_L2C_DATA_ECC) | |
4cbf2bea AI |
88 | |
89 | ||
90 | /* | |
91 | * L2 Misc0 Value Register (Table 60) | |
92 | */ | |
93 | ||
70342287 RB |
94 | #define S_BCM1480_L2C_MISC0_WAY_REMOTE 0 |
95 | #define M_BCM1480_L2C_MISC0_WAY_REMOTE _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_REMOTE) | |
21a151d8 | 96 | #define G_BCM1480_L2C_MISC0_WAY_REMOTE(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_WAY_REMOTE, M_BCM1480_L2C_MISC0_WAY_REMOTE) |
4cbf2bea | 97 | |
70342287 RB |
98 | #define S_BCM1480_L2C_MISC0_WAY_LOCAL 8 |
99 | #define M_BCM1480_L2C_MISC0_WAY_LOCAL _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_LOCAL) | |
21a151d8 | 100 | #define G_BCM1480_L2C_MISC0_WAY_LOCAL(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_WAY_LOCAL, M_BCM1480_L2C_MISC0_WAY_LOCAL) |
4cbf2bea | 101 | |
70342287 RB |
102 | #define S_BCM1480_L2C_MISC0_WAY_ENABLE 16 |
103 | #define M_BCM1480_L2C_MISC0_WAY_ENABLE _SB_MAKEMASK(8, S_BCM1480_L2C_MISC0_WAY_ENABLE) | |
21a151d8 | 104 | #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 |
105 | |
106 | #define S_BCM1480_L2C_MISC0_CACHE_DISABLE 24 | |
21a151d8 RB |
107 | #define M_BCM1480_L2C_MISC0_CACHE_DISABLE _SB_MAKEMASK(2, S_BCM1480_L2C_MISC0_CACHE_DISABLE) |
108 | #define G_BCM1480_L2C_MISC0_CACHE_DISABLE(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_CACHE_DISABLE, M_BCM1480_L2C_MISC0_CACHE_DISABLE) | |
4cbf2bea | 109 | |
70342287 RB |
110 | #define S_BCM1480_L2C_MISC0_CACHE_QUAD 26 |
111 | #define M_BCM1480_L2C_MISC0_CACHE_QUAD _SB_MAKEMASK(2, S_BCM1480_L2C_MISC0_CACHE_QUAD) | |
21a151d8 | 112 | #define G_BCM1480_L2C_MISC0_CACHE_QUAD(x) _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_CACHE_QUAD, M_BCM1480_L2C_MISC0_CACHE_QUAD) |
4cbf2bea | 113 | |
70342287 RB |
114 | #define S_BCM1480_L2C_MISC0_MC_PRIORITY 30 |
115 | #define M_BCM1480_L2C_MISC0_MC_PRIORITY _SB_MAKEMASK1(S_BCM1480_L2C_MISC0_MC_PRIORITY) | |
4cbf2bea | 116 | |
70342287 RB |
117 | #define S_BCM1480_L2C_MISC0_ECC_CLEANUP 31 |
118 | #define M_BCM1480_L2C_MISC0_ECC_CLEANUP _SB_MAKEMASK1(S_BCM1480_L2C_MISC0_ECC_CLEANUP) | |
4cbf2bea AI |
119 | |
120 | ||
121 | /* | |
122 | * L2 Misc1 Value Register (Table 60) | |
123 | */ | |
124 | ||
70342287 RB |
125 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_0 0 |
126 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_0 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_0) | |
21a151d8 | 127 | #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 | 128 | |
70342287 RB |
129 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_1 8 |
130 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_1 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_1) | |
21a151d8 | 131 | #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 | 132 | |
70342287 RB |
133 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_2 16 |
134 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_2 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_2) | |
21a151d8 | 135 | #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 | 136 | |
70342287 RB |
137 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_3 24 |
138 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_3 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_3) | |
21a151d8 | 139 | #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 | 140 | |
70342287 RB |
141 | #define S_BCM1480_L2C_MISC1_WAY_AGENT_4 32 |
142 | #define M_BCM1480_L2C_MISC1_WAY_AGENT_4 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC1_WAY_AGENT_4) | |
21a151d8 | 143 | #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 |
144 | |
145 | ||
146 | /* | |
147 | * L2 Misc2 Value Register (Table 60) | |
148 | */ | |
149 | ||
70342287 RB |
150 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_8 0 |
151 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_8 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_8) | |
21a151d8 | 152 | #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 | 153 | |
70342287 RB |
154 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_9 8 |
155 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_9 _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_9) | |
21a151d8 | 156 | #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 | 157 | |
70342287 RB |
158 | #define S_BCM1480_L2C_MISC2_WAY_AGENT_A 16 |
159 | #define M_BCM1480_L2C_MISC2_WAY_AGENT_A _SB_MAKEMASK(8, S_BCM1480_L2C_MISC2_WAY_AGENT_A) | |
21a151d8 | 160 | #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 |
161 | |
162 | ||
163 | #endif /* _BCM1480_L2C_H */ |