1220297Sadrian/*-
2220297Sadrian * Copyright (c) 2010 Aleksandr Rybalko.
3220297Sadrian * All rights reserved.
4220297Sadrian *
5220297Sadrian * Redistribution and use in source and binary forms, with or without
6220297Sadrian * modification, are permitted provided that the following conditions
7220297Sadrian * are met:
8220297Sadrian * 1. Redistributions of source code must retain the above copyright
9220297Sadrian *    notice, this list of conditions and the following disclaimer.
10220297Sadrian * 2. Redistributions in binary form must reproduce the above copyright
11220297Sadrian *    notice, this list of conditions and the following disclaimer in the
12220297Sadrian *    documentation and/or other materials provided with the distribution.
13220297Sadrian *
14220297Sadrian * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15220297Sadrian * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16220297Sadrian * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17220297Sadrian * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18220297Sadrian * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19220297Sadrian * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20220297Sadrian * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21220297Sadrian * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22220297Sadrian * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23220297Sadrian * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24220297Sadrian * SUCH DAMAGE.
25220297Sadrian *
26220297Sadrian * $FreeBSD: releng/10.2/sys/mips/rt305x/rt_swreg.h 220297 2011-04-03 14:39:55Z adrian $
27220297Sadrian */
28220297Sadrian
29220297Sadrian#ifndef _RT_SWREG_H_
30220297Sadrian#define _RT_SWREG_H_
31220297Sadrian
32220297Sadrian/* XXX: must move to config */
33220297Sadrian#define RT3052F
34220297Sadrian
35220297Sadrian#define RT_SW_BASE	0x10110000
36220297Sadrian
37220297Sadrian#define RT_SW_ISR		0x00
38220297Sadrian
39220297Sadrian#define 	WATCHDOG1_TMR_EXPIRED	(1<<29)
40220297Sadrian#define 	WATCHDOG0_TMR_EXPIRED	(1<<28)
41220297Sadrian#define 	HAS_INTRUDER		(1<<27)
42220297Sadrian#define 	PORT_ST_CHG		(1<<26)
43220297Sadrian#define 	BC_STORM		(1<<25)
44220297Sadrian#define 	MUST_DROP_LAN		(1<<24)
45220297Sadrian#define 	GLOBAL_QUE_FULL		(1<<23)
46220297Sadrian#define 	LAN_QUE_FULL6		(1<<20)
47220297Sadrian#define 	LAN_QUE_FULL5		(1<<19)
48220297Sadrian#define 	LAN_QUE_FULL4		(1<<18)
49220297Sadrian#define 	LAN_QUE_FULL3		(1<<17)
50220297Sadrian#define 	LAN_QUE_FULL2		(1<<16)
51220297Sadrian#define 	LAN_QUE_FULL1		(1<<15)
52220297Sadrian#define 	LAN_QUE_FULL0		(1<<14)
53220297Sadrian
54220297Sadrian#define RT_SW_IMR		0x04
55220297Sadrian
56220297Sadrian#define RT_SW_FCT0		0x08
57220297Sadrian#define RT_SW_FCT1		0x0c
58220297Sadrian#define RT_SW_PFC0		0x10
59220297Sadrian#define RT_SW_PFC1		0x14
60220297Sadrian#define RT_SW_PFC2		0x18
61220297Sadrian#define RT_SW_GQS0		0x1c
62220297Sadrian#define RT_SW_GQS1		0x20
63220297Sadrian#define RT_SW_ATS		0x24
64220297Sadrian#define RT_SW_ATS0		0x28
65220297Sadrian#define RT_SW_ATS1		0x2c
66220297Sadrian#define RT_SW_ATS2		0x30
67220297Sadrian#define RT_SW_WMAD0		0x34
68220297Sadrian#define RT_SW_WMAD1		0x38
69220297Sadrian#define RT_SW_WMAD2		0x3c
70220297Sadrian#define RT_SW_PVIDC0		0x40
71220297Sadrian#define RT_SW_PVIDC1		0x44
72220297Sadrian#define RT_SW_PVIDC2		0x48
73220297Sadrian#define RT_SW_PVIDC3		0x4c
74220297Sadrian#define RT_SW_VID0		0x50
75220297Sadrian#define RT_SW_VID1		0x54
76220297Sadrian#define RT_SW_VID2		0x58
77220297Sadrian#define RT_SW_VID3		0x5c
78220297Sadrian#define RT_SW_VID4		0x60
79220297Sadrian#define RT_SW_VID5		0x64
80220297Sadrian#define RT_SW_VID6		0x68
81220297Sadrian#define RT_SW_VID7		0x6c
82220297Sadrian#define RT_SW_VMSC0		0x70
83220297Sadrian#define RT_SW_VMSC1		0x74
84220297Sadrian#define RT_SW_VMSC2		0x78
85220297Sadrian#define RT_SW_VMSC3		0x7c
86220297Sadrian#define RT_SW_POA		0x80
87220297Sadrian#define RT_SW_FPA		0x84
88220297Sadrian#define RT_SW_PTS		0x88
89220297Sadrian#define RT_SW_SOCPC		0x8c
90220297Sadrian#define RT_SW_POC0		0x90
91220297Sadrian#define RT_SW_POC1		0x94
92220297Sadrian#define RT_SW_POC2		0x98
93220297Sadrian#define RT_SW_SGC		0x9c
94220297Sadrian#define RT_SW_STRT		0xa0
95220297Sadrian#define RT_SW_LEDP0		0xa4
96220297Sadrian#define RT_SW_LEDP1		0xa8
97220297Sadrian#define RT_SW_LEDP2		0xac
98220297Sadrian#define RT_SW_LEDP3		0xb0
99220297Sadrian#define RT_SW_LEDP4		0xb4
100220297Sadrian#define RT_SW_WDTR		0xb8
101220297Sadrian#define RT_SW_DES		0xbc
102220297Sadrian#define RT_SW_PCR0		0xc0
103220297Sadrian#define RT_SW_PCR1		0xc4
104220297Sadrian#define RT_SW_FPA		0xc8
105220297Sadrian#define RT_SW_FCT2		0xcc
106220297Sadrian#define RT_SW_QSS0		0xd0
107220297Sadrian
108220297Sadrian#define RT_SW_QSS1		0xd4
109220297Sadrian#define RT_SW_DEC		0xd8
110220297Sadrian#define 	BRIDGE_IPG_SHIFT	24
111220297Sadrian#define 	DEBUG_SW_PORT_SEL_SHIFT	3
112220297Sadrian#define 	DEBUG_SW_PORT_SEL_MASK	0x00000038
113220297Sadrian
114220297Sadrian#define RT_SW_MTI		0xdc
115220297Sadrian#define 	SKIP_BLOCKS_SHIFT	7
116220297Sadrian#define 	SKIP_BLOCKS_MASK	0x0000ff80
117220297Sadrian#define 	SW_RAM_TEST_DONE	(1<<6)
118220297Sadrian#define 	AT_RAM_TEST_DONE	(1<<5)
119220297Sadrian#define 	AT_RAM_TEST_FAIL	(1<<4)
120220297Sadrian#define 	LK_RAM_TEST_DONE	(1<<3)
121220297Sadrian#define 	LK_RAM_TEST_FAIL	(1<<2)
122220297Sadrian#define 	DT_RAM_TEST_DONE	(1<<1)
123220297Sadrian#define 	DT_RAM_TEST_FAIL	(1<<0)
124220297Sadrian
125220297Sadrian#define RT_SW_PPC		0xe0
126220297Sadrian#define 	SW2FE_CNT_SHIFT		16
127220297Sadrian#define 	FE2SW_CNT_SHIFT		0
128220297Sadrian
129220297Sadrian#define RT_SW_SGC2		0xe4
130220297Sadrian#define 	FE2SW_WL_FC_EN	(1<<30)
131220297Sadrian#define 	LAN_PMAP_P0_IS_LAN		(1<<24)
132220297Sadrian#define 	LAN_PMAP_P1_IS_LAN		(1<<25)
133220297Sadrian#define 	LAN_PMAP_P2_IS_LAN		(1<<26)
134220297Sadrian#define 	LAN_PMAP_P3_IS_LAN		(1<<27)
135220297Sadrian#define 	LAN_PMAP_P4_IS_LAN		(1<<28)
136220297Sadrian#define 	LAN_PMAP_P5_IS_LAN		(1<<29)
137220297Sadrian/* Transmit CPU TPID(810x) port bit map */
138220297Sadrian#define 	TX_CPU_TPID_BIT_MAP_SHIFT	16
139220297Sadrian#define 	TX_CPU_TPID_BIT_MAP_MASK	0x007f0000
140220297Sadrian#define 	ARBITER_LAN_EN			(1<<11)
141220297Sadrian#define 	CPU_TPID_EN			(1<<10)
142220297Sadrian#define 	P0_DOUBLE_TAG_EN		(1<<0)
143220297Sadrian#define 	P1_DOUBLE_TAG_EN		(1<<1)
144220297Sadrian#define 	P2_DOUBLE_TAG_EN		(1<<2)
145220297Sadrian#define 	P3_DOUBLE_TAG_EN		(1<<3)
146220297Sadrian#define 	P4_DOUBLE_TAG_EN		(1<<4)
147220297Sadrian#define 	P5_DOUBLE_TAG_EN		(1<<5)
148220297Sadrian
149220297Sadrian#define RT_SW_P0PC		0xe8
150220297Sadrian#define RT_SW_P1PC		0xec
151220297Sadrian#define RT_SW_P2PC		0xf0
152220297Sadrian#define RT_SW_P3PC		0xf4
153220297Sadrian#define RT_SW_P4PC		0xf8
154220297Sadrian#define RT_SW_P5PC		0xfc
155220297Sadrian#define 	BAD_PCOUNT_SHIFT	16
156220297Sadrian#define 	BAD_PCOUNT_MASK		0xffff0000
157220297Sadrian#define 	GOOD_PCOUNT_SHIFT	0
158220297Sadrian#define 	GOOD_PCOUNT_MASK	0x0000ffff
159220297Sadrian
160220297Sadrian#endif /* _RT_SWREG_H_ */
161