OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [arm/] [xscale/] [ixp425/] [current/] [include/] [hal_ixp425.h] - Blame information for rev 868

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
/*=============================================================================
2
//
3
//      hal_ixp425.h
4
//
5
//      IXP425 Network Processor support (register layout, etc)
6
//
7
//=============================================================================
8
// ####ECOSGPLCOPYRIGHTBEGIN####
9
// -------------------------------------------
10
// This file is part of eCos, the Embedded Configurable Operating System.
11
// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
12
//
13
// eCos is free software; you can redistribute it and/or modify it under
14
// the terms of the GNU General Public License as published by the Free
15
// Software Foundation; either version 2 or (at your option) any later
16
// version.
17
//
18
// eCos is distributed in the hope that it will be useful, but WITHOUT
19
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
21
// for more details.
22
//
23
// You should have received a copy of the GNU General Public License
24
// along with eCos; if not, write to the Free Software Foundation, Inc.,
25
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
26
//
27
// As a special exception, if other files instantiate templates or use
28
// macros or inline functions from this file, or you compile this file
29
// and link it with other works to produce a work based on this file,
30
// this file does not by itself cause the resulting work to be covered by
31
// the GNU General Public License. However the source code for this file
32
// must still be made available in accordance with section (3) of the GNU
33
// General Public License v2.
34
//
35
// This exception does not invalidate any other reasons why a work based
36
// on this file might be covered by the GNU General Public License.
37
// -------------------------------------------
38
// ####ECOSGPLCOPYRIGHTEND####
39
//=============================================================================
40
//#####DESCRIPTIONBEGIN####
41
//
42
// Author(s):    msalter
43
// Contributors: msalter
44
// Date:         2002-12-08
45
// Purpose:
46
// Description:  IXP425 Processor support.
47
// Usage:        #include <cyg/hal/hal_ixp425.h>
48
//
49
//####DESCRIPTIONEND####
50
//
51
//===========================================================================*/
52
#ifndef CYGONCE_HAL_ARM_XSCALE_HAL_IXP425_H
53
#define CYGONCE_HAL_ARM_XSCALE_HAL_IXP425_H
54
 
55
#include <pkgconf/system.h>
56
#include <cyg/hal/hal_xscale.h>
57
 
58
// --------------------------------------------------------------------------
59
#define IXP425_PCI_WINDOW_BASE     0x48000000
60
#define IXP425_PCI_WINDOW_SIZE     0x04000000
61
 
62
#define IXP425_QMGR_BASE           0x60000000
63
#define IXP425_QMGR_SIZE           0x04000000
64
 
65
#define IXP425_MISC_CFG_BASE       0xC8000000
66
#define IXP425_MISC_CFG_SIZE       0x00100000
67
 
68
// --------------------------------------------------------------------------
69
// PCI Registers  (Chapter 6)
70
#define IXP425_PCI_CFG_BASE        0xC0000000
71
#define IXP425_PCI_CFG_SIZE        0x00100000
72
#define IXP425_PCI_NP_AD           REG32(IXP425_PCI_CFG_BASE,0x00)
73
#define IXP425_PCI_NP_CBE          REG32(IXP425_PCI_CFG_BASE,0x04)
74
#define IXP425_PCI_NP_WDATA        REG32(IXP425_PCI_CFG_BASE,0x08)
75
#define IXP425_PCI_NP_RDATA        REG32(IXP425_PCI_CFG_BASE,0x0C)
76
#define IXP425_PCI_CRP_AD_CPE      REG32(IXP425_PCI_CFG_BASE,0x10)
77
#define IXP425_PCI_CRP_WDATA       REG32(IXP425_PCI_CFG_BASE,0x14)
78
#define IXP425_PCI_CRP_RDATA       REG32(IXP425_PCI_CFG_BASE,0x18)
79
#define IXP425_PCI_CSR             REG32(IXP425_PCI_CFG_BASE,0x1C)
80
#define IXP425_PCI_ISR             REG32(IXP425_PCI_CFG_BASE,0x20)
81
#define IXP425_PCI_INTEN           REG32(IXP425_PCI_CFG_BASE,0x24)
82
#define IXP425_PCI_DMACTRL         REG32(IXP425_PCI_CFG_BASE,0x28)
83
#define IXP425_PCI_AHBMEMBASE      REG32(IXP425_PCI_CFG_BASE,0x2C)
84
#define IXP425_PCI_AHBIOBASE       REG32(IXP425_PCI_CFG_BASE,0x30)
85
#define IXP425_PCI_PCIMEMBASE      REG32(IXP425_PCI_CFG_BASE,0x34)
86
#define IXP425_PCI_AHBDOORBELL     REG32(IXP425_PCI_CFG_BASE,0x38)
87
#define IXP425_PCI_PCIDOORBELL     REG32(IXP425_PCI_CFG_BASE,0x3C)
88
#define IXP425_PCI_ATPDMA0_AHBADDR REG32(IXP425_PCI_CFG_BASE,0x40)
89
#define IXP425_PCI_ATPDMA0_PCIADDR REG32(IXP425_PCI_CFG_BASE,0x44)
90
#define IXP425_PCI_ATPDMA0_LENGTH  REG32(IXP425_PCI_CFG_BASE,0x48)
91
#define IXP425_PCI_ATPDMA1_AHBADDR REG32(IXP425_PCI_CFG_BASE,0x4C)
92
#define IXP425_PCI_ATPDMA1_PCIADDR REG32(IXP425_PCI_CFG_BASE,0x50)
93
#define IXP425_PCI_ATPDMA1_LENGTH  REG32(IXP425_PCI_CFG_BASE,0x54)
94
#define IXP425_PCI_PTADMA0_AHBADDR REG32(IXP425_PCI_CFG_BASE,0x58)
95
#define IXP425_PCI_PTADMA0_PCIADDR REG32(IXP425_PCI_CFG_BASE,0x5C)
96
#define IXP425_PCI_PTADMA0_LENGTH  REG32(IXP425_PCI_CFG_BASE,0x60)
97
#define IXP425_PCI_PTADMA1_AHBADDR REG32(IXP425_PCI_CFG_BASE,0x64)
98
#define IXP425_PCI_PTADMA1_PCIADDR REG32(IXP425_PCI_CFG_BASE,0x68)
99
#define IXP425_PCI_PTADMA1_LENGTH  REG32(IXP425_PCI_CFG_BASE,0x6C)
100
 
101
// PCI_NP_CBE bits
102
#define PCI_NP_CMD_IOR             0x2
103
#define PCI_NP_CMD_IOW             0x3
104
#define PCI_NP_CMD_CONFIGR         0xA
105
#define PCI_NP_CMD_CONFIGW         0xB
106
#define PCI_NP_BE_SHIFT            4
107
 
108
// PCI_CRP_AD_CBE bits
109
#define PCI_CRP_AD_CBE_READ        0
110
#define PCI_CRP_AD_CBE_WRITE       (1 << 16)
111
#define PCI_CRP_AD_CBE_BE_SHIFT    20
112
 
113
// PCI_CSR bits
114
#define PCI_CSR_HOST               (1 << 0)
115
#define PCI_CSR_ARBEN              (1 << 1)
116
#define PCI_CSR_ADS                (1 << 2)
117
#define PCI_CSR_PDS                (1 << 3)
118
#define PCI_CSR_ABE                (1 << 4)
119
#define PCI_CSR_DBT                (1 << 5)
120
#define PCI_CSR_ASE                (1 << 8)
121
#define PCI_CSR_IC                 (1 << 15)
122
#define PCI_CSR_PRST               (1 << 16)
123
 
124
// PCI_ISR bits
125
#define PCI_ISR_PSE                (1 << 0)
126
#define PCI_ISR_PFE                (1 << 1)
127
#define PCI_ISR_PPE                (1 << 2)
128
#define PCI_ISR_AHBE               (1 << 3)
129
#define PCI_ISR_APDC               (1 << 4)
130
#define PCI_ISR_PADC               (1 << 5)
131
#define PCI_ISR_ADB                (1 << 6)
132
#define PCI_ISR_PDB                (1 << 7)
133
 
134
// PCI_INTEN bits
135
#define PCI_INTEN_PSE              (1 << 0)
136
#define PCI_INTEN_PFE              (1 << 1)
137
#define PCI_INTEN_PPE              (1 << 2)
138
#define PCI_INTEN_AHBE             (1 << 3)
139
#define PCI_INTEN_APDC             (1 << 4)
140
#define PCI_INTEN_PADC             (1 << 5)
141
#define PCI_INTEN_ADB              (1 << 6)
142
#define PCI_INTEN_PDB              (1 << 7)
143
 
144
// --------------------------------------------------------------------------
145
// SDRAM Registers  (Chapter 7)
146
#define IXP425_SDRAM_CFG_BASE      0xCC000000
147
#define IXP425_SDRAM_CFG_SIZE      0x00100000
148
#define IXP425_SDRAM_CONFIG        REG32(IXP425_SDRAM_CFG_BASE,0x00)
149
#define IXP425_SDRAM_REFRESH       REG32(IXP425_SDRAM_CFG_BASE,0x04)
150
#define IXP425_SDRAM_IR            REG32(IXP425_SDRAM_CFG_BASE,0x08)
151
 
152
// SDRAM_CONFIG bits
153
#define SDRAM_CONFIG_2x8Mx16       0
154
#define SDRAM_CONFIG_4x8Mx16       1
155
#define SDRAM_CONFIG_2x16Mx16      2
156
#define SDRAM_CONFIG_4x16Mx16      3
157
#define SDRAM_CONFIG_2x32Mx16      4
158
#define SDRAM_CONFIG_4x32Mx16      5
159
#define SDRAM_CONFIG_CAS_3         (1 << 3)
160
#define SDRAM_CONFIG_RAS_3         (1 << 4)
161
 
162
// SDRAM_IR commands
163
#define SDRAM_IR_MODE_SET_CAS2     0
164
#define SDRAM_IR_MODE_SET_CAS3     1
165
#define SDRAM_IR_PRECHARGE         2
166
#define SDRAM_IR_NOP               3
167
#define SDRAM_IR_AUTO_REFRESH      4
168
#define SDRAM_IR_BURST_TERMINATE   5
169
#define SDRAM_IR_NORMAL            6
170
 
171
// --------------------------------------------------------------------------
172
// Expansion Bus Register (Chapter 9)
173
#define IXP425_EXP_CFG_BASE        0xC4000000
174
#define IXP425_EXP_CFG_SIZE        0x00100000
175
#define IXP425_EXP_CS_BASE         0x50000000
176
#define IXP425_EXP_CS_SIZE         0x01000000
177
#define IXP425_EXP_CS0             REG32(IXP425_EXP_CFG_BASE,0x00)
178
#define IXP425_EXP_CS1             REG32(IXP425_EXP_CFG_BASE,0x04)
179
#define IXP425_EXP_CS2             REG32(IXP425_EXP_CFG_BASE,0x08)
180
#define IXP425_EXP_CS3             REG32(IXP425_EXP_CFG_BASE,0x0C)
181
#define IXP425_EXP_CS4             REG32(IXP425_EXP_CFG_BASE,0x10)
182
#define IXP425_EXP_CS5             REG32(IXP425_EXP_CFG_BASE,0x14)
183
#define IXP425_EXP_CS6             REG32(IXP425_EXP_CFG_BASE,0x18)
184
#define IXP425_EXP_CS7             REG32(IXP425_EXP_CFG_BASE,0x1C)
185
#define IXP425_EXP_CNFG0           REG32(IXP425_EXP_CFG_BASE,0x20)
186
#define IXP425_EXP_CNFG1           REG32(IXP425_EXP_CFG_BASE,0x24)
187
 
188
// EXP_CSn bits
189
#define EXP_BYTE_EN                (1 << 0)
190
#define EXP_WR_EN                  (1 << 1)
191
#define EXP_SPLT_EN                (1 << 3)
192
#define EXP_MUX_EN                 (1 << 4)
193
#define EXP_HRDY_POL               (1 << 5)
194
#define EXP_BYTE_RD16              (1 << 6)
195
#define EXP_SZ_512                 (0 << 10)
196
#define EXP_SZ_1K                  (1 << 10)
197
#define EXP_SZ_2K                  (2 << 10)
198
#define EXP_SZ_4K                  (3 << 10)
199
#define EXP_SZ_8K                  (4 << 10)
200
#define EXP_SZ_16K                 (5 << 10)
201
#define EXP_SZ_32K                 (6 << 10)
202
#define EXP_SZ_64K                 (7 << 10)
203
#define EXP_SZ_128K                (8 << 10)
204
#define EXP_SZ_256K                (9 << 10)
205
#define EXP_SZ_512K                (10 << 10)
206
#define EXP_SZ_1M                  (11 << 10)
207
#define EXP_SZ_2M                  (12 << 10)
208
#define EXP_SZ_4M                  (13 << 10)
209
#define EXP_SZ_8M                  (14 << 10)
210
#define EXP_SZ_16M                 (15 << 10)
211
#define EXP_CYC_INTEL              (0 << 14)
212
#define EXP_CYC_MOTO               (1 << 14)
213
#define EXP_CYC_HPI                (2 << 14)
214
 
215
#define EXP_RECOVERY_SHIFT         16
216
#define EXP_HOLD_SHIFT             20
217
#define EXP_STROBE_SHIFT           22
218
#define EXP_SETUP_SHIFT            26
219
#define EXP_ADDR_SHIFT             28
220
#define EXP_CS_EN                  (1 << 31)
221
 
222
#define EXP_RECOVERY_T(x)   (((x) & 15) << EXP_RECOVERY_SHIFT)
223
#define EXP_HOLD_T(x)       (((x) & 3)  << EXP_HOLD_SHIFT)
224
#define EXP_STROBE_T(x)     (((x) & 15) << EXP_STROBE_SHIFT)
225
#define EXP_SETUP_T(x)      (((x) & 3)  << EXP_SETUP_SHIFT)
226
#define EXP_ADDR_T(x)       (((x) & 3)  << EXP_ADDR_SHIFT)
227
 
228
// EXP_CNFG0 bits
229
#define EXP_CNFG0_8BIT             (1 << 0)
230
#define EXP_CNFG0_PCI_HOST         (1 << 1)
231
#define EXP_CNFG0_PCI_ARB          (1 << 2)
232
#define EXP_CNFG0_PCI_66MHZ        (1 << 4)
233
#define EXP_CNFG0_MEM_MAP          (1 << 31)
234
 
235
// EXP_CNFG1 bits
236
#define EXP_CNFG1_SW_INT0          (1 << 0)
237
#define EXP_CNFG1_SW_INT1          (1 << 1)
238
#define EXP_CNFG1_BYTE_SWAP_EN     (1 << 8)
239
 
240
 
241
// --------------------------------------------------------------------------
242
// GPIO (Chapter 13)
243
#define IXP425_GPIO_CFG_BASE       0xC8004000
244
#define IXP425_GPOUTR              REG32(IXP425_GPIO_CFG_BASE,0x00)
245
#define IXP425_GPOER               REG32(IXP425_GPIO_CFG_BASE,0x04)
246
#define IXP425_GPINR               REG32(IXP425_GPIO_CFG_BASE,0x08)
247
#define IXP425_GPISR               REG32(IXP425_GPIO_CFG_BASE,0x0C)
248
#define IXP425_GPIT1R              REG32(IXP425_GPIO_CFG_BASE,0x10)
249
#define IXP425_GPIT2R              REG32(IXP425_GPIO_CFG_BASE,0x14)
250
#define IXP425_GPCLKR              REG32(IXP425_GPIO_CFG_BASE,0x18)
251
 
252
// GPCLKR bits
253
#define GPCLKR_CLK0DC_SHIFT        0
254
#define GPCLKR_CLK0TC_SHIFT        4
255
#define GPCLKR_CLK0_ENABLE         (1 << 8)
256
#define GPCLKR_CLK1DC_SHIFT        16
257
#define GPCLKR_CLK1TC_SHIFT        20
258
#define GPCLKR_CLK1_ENABLE         (1 << 24)
259
 
260
#define GPCLKR_CLK0_PCLK2   \
261
    ((0xf << GPCLKR_CLK0DC_SHIFT) | (0xf << GPCLKR_CLK0TC_SHIFT))
262
 
263
#define GPCLKR_CLK1_PCLK2   \
264
    ((0xf << GPCLKR_CLK1DC_SHIFT) | (0xf << GPCLKR_CLK1TC_SHIFT))
265
 
266
#define HAL_GPIO_OUTPUT_ENABLE(line) \
267
    *IXP425_GPOER &= ~(1 << (line))
268
 
269
#define HAL_GPIO_OUTPUT_DISABLE(line) \
270
    *IXP425_GPOER |= (1 << (line))
271
 
272
#define HAL_GPIO_OUTPUT_SET(line) \
273
    *IXP425_GPOUTR |= (1 << (line))
274
 
275
#define HAL_GPIO_OUTPUT_CLEAR(line) \
276
    *IXP425_GPOUTR &= ~(1 << (line))
277
 
278
// --------------------------------------------------------------------------
279
// Interrupts (Chapter 14)
280
#define IXP425_INTR_CFG_BASE       0xC8003000
281
#define IXP425_INTR_ST             REG32(IXP425_INTR_CFG_BASE,0x00)
282
#define IXP425_INTR_EN             REG32(IXP425_INTR_CFG_BASE,0x04)
283
#define IXP425_INTR_SEL            REG32(IXP425_INTR_CFG_BASE,0x08)
284
#define IXP425_INTR_IRQ_ST         REG32(IXP425_INTR_CFG_BASE,0x0C)
285
#define IXP425_INTR_FIQ_ST         REG32(IXP425_INTR_CFG_BASE,0x10)
286
#define IXP425_INTR_PRTY           REG32(IXP425_INTR_CFG_BASE,0x14)
287
#define IXP425_INTR_IRQ_ENC_ST     REG32(IXP425_INTR_CFG_BASE,0x18)
288
#define IXP425_INTR_FIQ_ENC_ST     REG32(IXP425_INTR_CFG_BASE,0x1C)
289
 
290
// --------------------------------------------------------------------------
291
// Timers (Chapter 15)
292
#define IXP425_OST_CFG_BASE        0xC8005000
293
#define IXP425_OST_TS              REG32(IXP425_OST_CFG_BASE,0x00)
294
#define IXP425_OST_TIM0            REG32(IXP425_OST_CFG_BASE,0x04)
295
#define IXP425_OST_TIM0_RL         REG32(IXP425_OST_CFG_BASE,0x08)
296
#define IXP425_OST_TIM1            REG32(IXP425_OST_CFG_BASE,0x0C)
297
#define IXP425_OST_TIM1_RL         REG32(IXP425_OST_CFG_BASE,0x10)
298
#define IXP425_OST_WDOG            REG32(IXP425_OST_CFG_BASE,0x14)
299
#define IXP425_OST_WDOG_ENA        REG32(IXP425_OST_CFG_BASE,0x18)
300
#define IXP425_OST_WDOG_KEY        REG32(IXP425_OST_CFG_BASE,0x1C)
301
#define IXP425_OST_STS             REG32(IXP425_OST_CFG_BASE,0x20)
302
 
303
// OST_STS bits
304
#define OST_STS_T0INT              0x01
305
#define OST_STS_T1INT              0x02
306
#define OST_STS_TSINT              0x04
307
#define OST_STS_WDOGINT            0x08
308
#define OST_STS_RESET              0x10
309
 
310
// OST_TIMx_RL bits
311
#define OST_TIM_RL_ENABLE          0x01
312
#define OST_TIM_RL_ONESHOT         0x02
313
#define OST_TIM_RL_MASK            0xFFFFFFFC
314
 
315
 
316
#endif // CYGONCE_HAL_ARM_XSCALE_HAL_IXP425_H
317
// EOF hal_ixp425.h

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.