• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7800-V1.0.2.28/target/linux/generic/files/crypto/ocf/kirkwood/mvHal/kw_family/ctrlEnv/
1/*******************************************************************************
2Copyright (C) Marvell International Ltd. and its affiliates
3
4This software file (the "File") is owned and distributed by Marvell
5International Ltd. and/or its affiliates ("Marvell") under the following
6alternative licensing terms.  Once you have made an election to distribute the
7File under one of the following license alternatives, please (i) delete this
8introductory statement regarding license alternatives, (ii) delete the two
9license alternatives that you have not elected to use and (iii) preserve the
10Marvell copyright notice above.
11
12********************************************************************************
13Marvell Commercial License Option
14
15If you received this File from Marvell and you have entered into a commercial
16license agreement (a "Commercial License") with Marvell, the File is licensed
17to you under the terms of the applicable Commercial License.
18
19********************************************************************************
20Marvell GPL License Option
21
22If you received this File from Marvell, you may opt to use, redistribute and/or
23modify this File in accordance with the terms and conditions of the General
24Public License Version 2, June 1991 (the "GPL License"), a copy of which is
25available along with the File in the license.txt file or by writing to the Free
26Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
27on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
28
29THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
30WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
31DISCLAIMED.  The GPL License provides additional details about this warranty
32disclaimer.
33********************************************************************************
34Marvell BSD License Option
35
36If you received this File from Marvell, you may opt to use, redistribute and/or
37modify this File under the following licensing terms.
38Redistribution and use in source and binary forms, with or without modification,
39are permitted provided that the following conditions are met:
40
41    *   Redistributions of source code must retain the above copyright notice,
42        this list of conditions and the following disclaimer.
43
44    *   Redistributions in binary form must reproduce the above copyright
45        notice, this list of conditions and the following disclaimer in the
46        documentation and/or other materials provided with the distribution.
47
48    *   Neither the name of Marvell nor the names of its contributors may be
49        used to endorse or promote products derived from this software without
50        specific prior written permission.
51
52THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
53ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
54WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
55DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
56ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
57(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
58LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
59ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
60(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
61SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
62
63*******************************************************************************/
64
65#ifndef __INCmvCtrlEnvSpech
66#define __INCmvCtrlEnvSpech
67
68#include "mvDeviceId.h"
69#include "mvSysHwConfig.h"
70
71#ifdef __cplusplus
72extern "C" {
73#endif /* __cplusplus */
74
75#define MV_ARM_SOC
76#define SOC_NAME_PREFIX			"MV88F"
77
78
79/* units base and port numbers */
80#ifdef MV_ASMLANGUAGE
81#define XOR_UNIT_BASE(unit)           	0x60800
82#else
83#define MV_XOR_REG_BASE			0x60000
84#define XOR_UNIT_BASE(unit)           	((unit)? 0x60900:0x60800)
85#endif
86
87#define TDM_REG_BASE			0xD0000
88#define USB_REG_BASE(dev)       	0x50000
89#define AUDIO_REG_BASE  		0xA0000
90#define SATA_REG_BASE           	0x80000
91#define MV_CESA_REG_BASE                0x3D000
92#define MV_CESA_TDMA_REG_BASE		0x30000
93#define MV_SDIO_REG_BASE		0x90000
94#define MV_ETH_REG_BASE(port)      	(((port) == 0) ? 0x72000 : 0x76000)
95#define MV_UART_CHAN_BASE(chanNum)	(0x12000 + (chanNum * 0x100))
96#define DRAM_BASE			0x0
97#define CNTMR_BASE                  	0x20300
98#define TWSI_SLAVE_BASE(chanNum)    	0x11000
99#define PEX_IF_BASE(pexIf)      	0x40000
100#define MPP_REG_BASE			0x10000
101#define TSU_GLOBAL_REG_BASE             0xB4000
102#define MAX_AHB_TO_MBUS_REG_BASE	0x20000
103
104#define INTER_REGS_SIZE	 	 	_1M
105/* This define describes the TWSI interrupt bit and location */
106#define TWSI_CPU_MAIN_INT_CAUSE_REG		0x20200
107#define TWSI0_CPU_MAIN_INT_BIT			(1<<29)
108#define TWSI_SPEED				100000
109
110#define MV_GPP_MAX_GROUP    		2
111#define MV_CNTMR_MAX_COUNTER 		2
112#define MV_UART_MAX_CHAN		2
113#define MV_XOR_MAX_UNIT         	2
114#define MV_XOR_MAX_CHAN         	4 /* total channels for all units together*/
115#define MV_XOR_MAX_CHAN_PER_UNIT       	2 /* channels for units */
116#define MV_SATA_MAX_CHAN	 	2
117
118#define MV_6281_MPP_MAX_MODULE    	2
119#define MV_6192_MPP_MAX_MODULE    	1
120#define MV_6190_MPP_MAX_MODULE    	1
121#define MV_6180_MPP_MAX_MODULE    	2
122#define MV_6281_MPP_MAX_GROUP    	7
123#define MV_6192_MPP_MAX_GROUP    	4
124#define MV_6190_MPP_MAX_GROUP    	4
125#define MV_6180_MPP_MAX_GROUP    	3
126
127#define MV_DRAM_MAX_CS      		4
128
129/* This define describes the maximum number of supported PCI\PCIX Interfaces*/
130#define MV_PCI_MAX_IF		0
131#define MV_PCI_START_IF		0
132
133/* This define describes the maximum number of supported PEX Interfaces 	*/
134#define MV_INCLUDE_PEX0
135#define MV_DISABLE_PEX_DEVICE_BAR
136#define MV_PEX_MAX_IF		1
137#define MV_PEX_START_IF		MV_PCI_MAX_IF
138
139/* This define describes the maximum number of supported PCI Interfaces 	*/
140#define MV_PCI_IF_MAX_IF   	(MV_PEX_MAX_IF+MV_PCI_MAX_IF)
141
142#define MV_ETH_MAX_PORTS		2
143#define MV_6281_ETH_MAX_PORTS	   	2
144#define MV_6192_ETH_MAX_PORTS	   	2
145#define MV_6190_ETH_MAX_PORTS	   	1
146#define MV_6180_ETH_MAX_PORTS	   	1
147
148#define MV_IDMA_MAX_CHAN    		0
149
150#define MV_USB_MAX_PORTS		1
151
152#define MV_USB_VERSION              1
153
154
155#define MV_6281_NAND			1
156#define MV_6192_NAND			1
157#define MV_6190_NAND			1
158#define MV_6180_NAND			0
159
160#define MV_6281_SDIO			1
161#define MV_6192_SDIO			1
162#define MV_6190_SDIO			1
163#define MV_6180_SDIO			1
164
165#define MV_6281_TS			1
166#define MV_6192_TS			1
167#define MV_6190_TS			0
168#define MV_6180_TS			0
169
170#define MV_6281_AUDIO			1
171#define MV_6192_AUDIO			1
172#define MV_6190_AUDIO			0
173#define MV_6180_AUDIO			1
174
175#define MV_6281_TDM			1
176#define MV_6192_TDM			1
177#define MV_6190_TDM			0
178#define MV_6180_TDM			0
179
180#define MV_DEVICE_MAX_CS      		4
181
182/* Others */
183#define PEX_HOST_BUS_NUM(pciIf)		(pciIf)
184#define PEX_HOST_DEV_NUM(pciIf)		0
185
186#define PCI_IO(pciIf)		(PEX0_IO)
187#define PCI_MEM(pciIf, memNum)  (PEX0_MEM0)
188/* CESA version #2: One channel, 2KB SRAM, TDMA */
189#if defined(MV_CESA_CHAIN_MODE_SUPPORT)
190	#define MV_CESA_VERSION		 	3
191#else
192#define MV_CESA_VERSION		 	2
193#endif
194#define MV_CESA_SRAM_SIZE               2*1024
195/* This define describes the maximum number of supported Ethernet ports 	*/
196#define MV_ETH_VERSION 			4
197#define MV_ETH_MAX_RXQ              	8
198#define MV_ETH_MAX_TXQ              	8
199#define MV_ETH_PORT_SGMII          	{ MV_FALSE, MV_FALSE }
200/* This define describes the the support of USB 	*/
201#define MV_USB_VERSION  		1
202
203#define MV_INCLUDE_SDRAM_CS0
204#define MV_INCLUDE_SDRAM_CS1
205#define MV_INCLUDE_SDRAM_CS2
206#define MV_INCLUDE_SDRAM_CS3
207
208#define MV_INCLUDE_DEVICE_CS0
209#define MV_INCLUDE_DEVICE_CS1
210#define MV_INCLUDE_DEVICE_CS2
211#define MV_INCLUDE_DEVICE_CS3
212
213#define MPP_GROUP_1_TYPE {\
214	{0, 0, 0}, /* Reserved for AUTO */ \
215	{0x22220000, 0x22222222, 0x2222}, /* TDM */ \
216	{0x44440000, 0x00044444, 0x0000}, /* AUDIO */ \
217	{0x33330000, 0x33003333, 0x0033}, /* RGMII */ \
218	{0x33330000, 0x03333333, 0x0033}, /* GMII */ \
219	{0x11110000, 0x11111111, 0x0001}, /* TS */ \
220	{0x33330000, 0x33333333, 0x3333}  /* MII */ \
221}
222
223#define MPP_GROUP_2_TYPE {\
224	{0, 0, 0}, /* Reserved for AUTO */ \
225	{0x22220000, 0x22222222, 0x22}, /* TDM */ \
226	{0x44440000, 0x00044444, 0x0}, /* AUDIO */ \
227	{0, 0, 0}, /* N_A */ \
228	{0, 0, 0}, /* N_A */ \
229	{0x11110000, 0x11111111, 0x01}  /* TS */ \
230}
231
232#ifndef MV_ASMLANGUAGE
233
234/* This enumerator defines the Marvell Units ID      */
235typedef enum _mvUnitId
236{
237    DRAM_UNIT_ID,
238    PEX_UNIT_ID,
239    ETH_GIG_UNIT_ID,
240    USB_UNIT_ID,
241    IDMA_UNIT_ID,
242    XOR_UNIT_ID,
243    SATA_UNIT_ID,
244    TDM_UNIT_ID,
245    UART_UNIT_ID,
246    CESA_UNIT_ID,
247    SPI_UNIT_ID,
248    AUDIO_UNIT_ID,
249    SDIO_UNIT_ID,
250    TS_UNIT_ID,
251    MAX_UNITS_ID
252
253}MV_UNIT_ID;
254
255#endif
256
257#endif /* __INCmvCtrlEnvSpech */
258