source: svn/trunk/newcon3bcm2_21bu/toolchain/mips-linux-uclibc/include/asm/sibyte/sb1250_l2c.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 5.0 KB
Line 
1/*  *********************************************************************
2    *  SB1250 Board Support Package
3    * 
4    *  L2 Cache constants and macros            File: sb1250_l2c.h
5    * 
6    *  This module contains constants useful for manipulating the
7    *  level 2 cache.
8    * 
9    *  SB1250 specification level:  User's manual 1/02/02
10    * 
11    *  Author:  Mitch Lichtenberg
12    * 
13    ********************************************************************* 
14    *
15    *  Copyright 2000,2001,2002,2003
16    *  Broadcom Corporation. All rights reserved.
17    * 
18    *  This program is free software; you can redistribute it and/or
19    *  modify it under the terms of the GNU General Public License as
20    *  published by the Free Software Foundation; either version 2 of
21    *  the License, or (at your option) any later version.
22    *
23    *  This program is distributed in the hope that it will be useful,
24    *  but WITHOUT ANY WARRANTY; without even the implied warranty of
25    *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26    *  GNU General Public License for more details.
27    *
28    *  You should have received a copy of the GNU General Public License
29    *  along with this program; if not, write to the Free Software
30    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
31    *  MA 02111-1307 USA
32    ********************************************************************* */
33
34
35#ifndef _SB1250_L2C_H
36#define _SB1250_L2C_H
37
38#include "sb1250_defs.h"
39
40/*
41 * Level 2 Cache Tag register (Table 5-3)
42 */
43
44#define S_L2C_TAG_MBZ               0
45#define M_L2C_TAG_MBZ               _SB_MAKEMASK(5,S_L2C_TAG_MBZ)
46
47#define S_L2C_TAG_INDEX             5
48#define M_L2C_TAG_INDEX             _SB_MAKEMASK(12,S_L2C_TAG_INDEX)
49#define V_L2C_TAG_INDEX(x)          _SB_MAKEVALUE(x,S_L2C_TAG_INDEX)
50#define G_L2C_TAG_INDEX(x)          _SB_GETVALUE(x,S_L2C_TAG_INDEX,M_L2C_TAG_INDEX)
51
52#define S_L2C_TAG_TAG               17
53#define M_L2C_TAG_TAG               _SB_MAKEMASK(23,S_L2C_TAG_TAG)
54#define V_L2C_TAG_TAG(x)            _SB_MAKEVALUE(x,S_L2C_TAG_TAG)
55#define G_L2C_TAG_TAG(x)            _SB_GETVALUE(x,S_L2C_TAG_TAG,M_L2C_TAG_TAG)
56
57#define S_L2C_TAG_ECC               40
58#define M_L2C_TAG_ECC               _SB_MAKEMASK(6,S_L2C_TAG_ECC)
59#define V_L2C_TAG_ECC(x)            _SB_MAKEVALUE(x,S_L2C_TAG_ECC)
60#define G_L2C_TAG_ECC(x)            _SB_GETVALUE(x,S_L2C_TAG_ECC,M_L2C_TAG_ECC)
61
62#define S_L2C_TAG_WAY               46
63#define M_L2C_TAG_WAY               _SB_MAKEMASK(2,S_L2C_TAG_WAY)
64#define V_L2C_TAG_WAY(x)            _SB_MAKEVALUE(x,S_L2C_TAG_WAY)
65#define G_L2C_TAG_WAY(x)            _SB_GETVALUE(x,S_L2C_TAG_WAY,M_L2C_TAG_WAY)
66
67#define M_L2C_TAG_DIRTY             _SB_MAKEMASK1(48)
68#define M_L2C_TAG_VALID             _SB_MAKEMASK1(49)
69
70/*
71 * Format of level 2 cache management address (table 5-2)
72 */
73
74#define S_L2C_MGMT_INDEX            5
75#define M_L2C_MGMT_INDEX            _SB_MAKEMASK(12,S_L2C_MGMT_INDEX)
76#define V_L2C_MGMT_INDEX(x)         _SB_MAKEVALUE(x,S_L2C_MGMT_INDEX)
77#define G_L2C_MGMT_INDEX(x)         _SB_GETVALUE(x,S_L2C_MGMT_INDEX,M_L2C_MGMT_INDEX)
78
79#define S_L2C_MGMT_QUADRANT         15
80#define M_L2C_MGMT_QUADRANT         _SB_MAKEMASK(2,S_L2C_MGMT_QUADRANT)
81#define V_L2C_MGMT_QUADRANT(x)      _SB_MAKEVALUE(x,S_L2C_MGMT_QUADRANT)
82#define G_L2C_MGMT_QUADRANT(x)      _SB_GETVALUE(x,S_L2C_MGMT_QUADRANT,M_L2C_MGMT_QUADRANT)
83
84#define S_L2C_MGMT_HALF             16
85#define M_L2C_MGMT_HALF             _SB_MAKEMASK(1,S_L2C_MGMT_HALF)
86
87#define S_L2C_MGMT_WAY              17
88#define M_L2C_MGMT_WAY              _SB_MAKEMASK(2,S_L2C_MGMT_WAY)
89#define V_L2C_MGMT_WAY(x)           _SB_MAKEVALUE(x,S_L2C_MGMT_WAY)
90#define G_L2C_MGMT_WAY(x)           _SB_GETVALUE(x,S_L2C_MGMT_WAY,M_L2C_MGMT_WAY)
91
92#define S_L2C_MGMT_TAG              21
93#define M_L2C_MGMT_TAG              _SB_MAKEMASK(6,S_L2C_MGMT_TAG)
94#define V_L2C_MGMT_TAG(x)           _SB_MAKEVALUE(x,S_L2C_MGMT_TAG)
95#define G_L2C_MGMT_TAG(x)           _SB_GETVALUE(x,S_L2C_MGMT_TAG,M_L2C_MGMT_TAG)
96
97#define M_L2C_MGMT_DIRTY            _SB_MAKEMASK1(19)
98#define M_L2C_MGMT_VALID            _SB_MAKEMASK1(20)
99
100#define A_L2C_MGMT_TAG_BASE         0x00D0000000
101
102#define L2C_ENTRIES_PER_WAY       4096
103#define L2C_NUM_WAYS              4
104
105
106#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1)
107/*
108 * L2 Read Misc. register (A_L2_READ_MISC)
109 */
110#define S_L2C_MISC_NO_WAY               10
111#define M_L2C_MISC_NO_WAY               _SB_MAKEMASK(4,S_L2C_MISC_NO_WAY)
112#define V_L2C_MISC_NO_WAY(x)            _SB_MAKEVALUE(x,S_L2C_MISC_NO_WAY)
113#define G_L2C_MISC_NO_WAY(x)            _SB_GETVALUE(x,S_L2C_MISC_NO_WAY,M_L2C_MISC_NO_WAY)
114
115#define M_L2C_MISC_ECC_CLEANUP_DIS      _SB_MAKEMASK1(9)
116#define M_L2C_MISC_MC_PRIO_LOW          _SB_MAKEMASK1(8)
117#define M_L2C_MISC_SOFT_DISABLE_T       _SB_MAKEMASK1(7)
118#define M_L2C_MISC_SOFT_DISABLE_B       _SB_MAKEMASK1(6)
119#define M_L2C_MISC_SOFT_DISABLE_R       _SB_MAKEMASK1(5)
120#define M_L2C_MISC_SOFT_DISABLE_L       _SB_MAKEMASK1(4)
121#define M_L2C_MISC_SCACHE_DISABLE_T     _SB_MAKEMASK1(3)
122#define M_L2C_MISC_SCACHE_DISABLE_B     _SB_MAKEMASK1(2)
123#define M_L2C_MISC_SCACHE_DISABLE_R     _SB_MAKEMASK1(1)
124#define M_L2C_MISC_SCACHE_DISABLE_L     _SB_MAKEMASK1(0)
125#endif /* 1250 PASS3 || 112x PASS1 */
126
127
128#endif
Note: See TracBrowser for help on using the repository browser.