~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/mips/include/asm/sibyte/bcm1480_l2c.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
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)
 
46
 
 
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)
 
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
 
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)
 
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
 
71
#define M_BCM1480_L2C_TAG_MBZ               _SB_MAKEMASK(5, S_BCM1480_L2C_TAG_MBZ)
 
72
 
 
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)
 
77
 
 
78
/* Note that index bit 16 is also tag bit 40 */
 
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)
 
83
 
 
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)
 
88
 
 
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)
 
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
 
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)
 
101
 
 
102
 
 
103
/*
 
104
 * L2 Misc0 Value Register (Table 60)
 
105
 */
 
106
 
 
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)
 
109
#define G_BCM1480_L2C_MISC0_WAY_REMOTE(x)   _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_WAY_REMOTE, M_BCM1480_L2C_MISC0_WAY_REMOTE)
 
110
 
 
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)
 
113
#define G_BCM1480_L2C_MISC0_WAY_LOCAL(x)    _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_WAY_LOCAL, M_BCM1480_L2C_MISC0_WAY_LOCAL)
 
114
 
 
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)
 
117
#define G_BCM1480_L2C_MISC0_WAY_ENABLE(x)   _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_WAY_ENABLE, M_BCM1480_L2C_MISC0_WAY_ENABLE)
 
118
 
 
119
#define S_BCM1480_L2C_MISC0_CACHE_DISABLE   24
 
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)
 
122
 
 
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)
 
125
#define G_BCM1480_L2C_MISC0_CACHE_QUAD(x)   _SB_GETVALUE(x, S_BCM1480_L2C_MISC0_CACHE_QUAD, M_BCM1480_L2C_MISC0_CACHE_QUAD)
 
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
 
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)
 
141
 
 
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)
 
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)
 
145
 
 
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)
 
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)
 
149
 
 
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)
 
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)
 
153
 
 
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)
 
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)
 
157
 
 
158
 
 
159
/*
 
160
 * L2 Misc2 Value Register (Table 60)
 
161
 */
 
162
 
 
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)
 
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)
 
166
 
 
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)
 
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)
 
170
 
 
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)
 
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)
 
174
 
 
175
 
 
176
#endif /* _BCM1480_L2C_H */