source: SVN/rincon/u-boot/cpu/ixp/npe/include/IxOsalOsIxp400.h @ 55

Last change on this file since 55 was 55, checked in by Tim Harvey, 22 months ago

rincon: added latest u-boot source

restored form server backup

Signed-off-by: Tim Harvey <tharvey@…>

File size: 11.1 KB
Line 
1/**
2 * @file IxOsalOsIxp400.h
3 *
4 * @brief OS and platform specific definitions
5 *
6 * Design Notes:
7 *
8 * @par
9 * IXP400 SW Release version 2.0
10 *
11 * -- Copyright Notice --
12 *
13 * @par
14 * Copyright 2001-2005, Intel Corporation.
15 * All rights reserved.
16 *
17 * @par
18 * Redistribution and use in source and binary forms, with or without
19 * modification, are permitted provided that the following conditions
20 * are met:
21 * 1. Redistributions of source code must retain the above copyright
22 *    notice, this list of conditions and the following disclaimer.
23 * 2. Redistributions in binary form must reproduce the above copyright
24 *    notice, this list of conditions and the following disclaimer in the
25 *    documentation and/or other materials provided with the distribution.
26 * 3. Neither the name of the Intel Corporation nor the names of its contributors
27 *    may be used to endorse or promote products derived from this software
28 *    without specific prior written permission.
29 *
30 * @par
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
32 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
33 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
34 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
35 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
39 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
40 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
41 * SUCH DAMAGE.
42 *
43 * @par
44 * -- End of Copyright Notice --
45 */
46
47#ifndef IxOsalOsIxp400_H
48#define IxOsalOsIxp400_H
49
50#define BIT(x) (1<<(x))
51
52#define IXP425_EthA_BASE        0xc8009000
53#define IXP425_EthB_BASE        0xc800a000
54
55#define IXP425_PSMA_BASE        0xc8006000
56#define IXP425_PSMB_BASE        0xc8007000
57#define IXP425_PSMC_BASE        0xc8008000
58
59#define IXP425_PERIPHERAL_BASE  0xc8000000
60
61#define IXP425_QMGR_BASE        0x60000000
62#define IXP425_OSTS             0xC8005000
63
64#define IXP425_INT_LVL_NPEA     0
65#define IXP425_INT_LVL_NPEB     1
66#define IXP425_INT_LVL_NPEC     2
67
68#define IXP425_INT_LVL_QM1      3
69#define IXP425_INT_LVL_QM2      4
70
71#define IXP425_EXPANSION_BUS_BASE1      0x50000000
72#define IXP425_EXPANSION_BUS_BASE2      0x50000000
73#define IXP425_EXPANSION_BUS_CS1_BASE   0x51000000
74
75#define IXP425_EXP_CONFIG_BASE          0xC4000000
76
77/* physical addresses to be used when requesting memory with IX_OSAL_MEM_MAP */
78#define IX_OSAL_IXP400_INTC_PHYS_BASE          IXP425_INTC_BASE
79#define IX_OSAL_IXP400_GPIO_PHYS_BASE          IXP425_GPIO_BASE
80#define IX_OSAL_IXP400_UART1_PHYS_BASE         IXP425_UART1_BASE
81#define IX_OSAL_IXP400_UART2_PHYS_BASE         IXP425_UART2_BASE
82#define IX_OSAL_IXP400_ETHA_PHYS_BASE          IXP425_EthA_BASE
83#define IX_OSAL_IXP400_ETHB_PHYS_BASE          IXP425_EthB_BASE
84#define IX_OSAL_IXP400_NPEA_PHYS_BASE          IXP425_NPEA_BASE
85#define IX_OSAL_IXP400_NPEB_PHYS_BASE          IXP425_NPEB_BASE
86#define IX_OSAL_IXP400_NPEC_PHYS_BASE          IXP425_NPEC_BASE
87#define IX_OSAL_IXP400_PERIPHERAL_PHYS_BASE    IXP425_PERIPHERAL_BASE
88#define IX_OSAL_IXP400_QMGR_PHYS_BASE          IXP425_QMGR_BASE
89#define IX_OSAL_IXP400_OSTS_PHYS_BASE          IXP425_TIMER_BASE
90#define IX_OSAL_IXP400_USB_PHYS_BASE           IXP425_USB_BASE
91#define IX_OSAL_IXP400_EXP_CFG_PHYS_BASE       IXP425_EXP_CFG_BASE
92#define IX_OSAL_IXP400_EXP_BUS_PHYS_BASE       IXP425_EXP_BUS_BASE2
93#define IX_OSAL_IXP400_EXP_BUS_BOOT_PHYS_BASE  IXP425_EXP_BUS_BASE1
94#define IX_OSAL_IXP400_EXP_BUS_CS0_PHYS_BASE   IXP425_EXP_BUS_CS0_BASE
95#define IX_OSAL_IXP400_EXP_BUS_CS1_PHYS_BASE   IXP425_EXP_BUS_CS1_BASE
96#define IX_OSAL_IXP400_EXP_BUS_CS4_PHYS_BASE   IXP425_EXP_BUS_CS4_BASE
97#define IX_OSAL_IXP400_EXP_BUS_REGS_PHYS_BASE  IXP425_EXP_CFG_BASE
98#define IX_OSAL_IXP400_PCI_CFG_PHYS_BASE       IXP425_PCI_CFG_BASE
99
100/* map sizes to be used when requesting memory with IX_OSAL_MEM_MAP */
101#define IX_OSAL_IXP400_QMGR_MAP_SIZE        (0x4000)     /**< Queue Manager map size */
102#define IX_OSAL_IXP400_PERIPHERAL_MAP_SIZE  (0xC000)     /**< Peripheral space map size */
103#define IX_OSAL_IXP400_UART1_MAP_SIZE       (0x1000)     /**< UART1 map size */
104#define IX_OSAL_IXP400_UART2_MAP_SIZE       (0x1000)     /**< UART2 map size */
105#define IX_OSAL_IXP400_PMU_MAP_SIZE         (0x1000)     /**< PMU map size */
106#define IX_OSAL_IXP400_OSTS_MAP_SIZE        (0x1000)     /**< OS Timers map size */
107#define IX_OSAL_IXP400_NPEA_MAP_SIZE        (0x1000)     /**< NPE A map size */
108#define IX_OSAL_IXP400_NPEB_MAP_SIZE        (0x1000)     /**< NPE B map size */
109#define IX_OSAL_IXP400_NPEC_MAP_SIZE        (0x1000)     /**< NPE C map size */
110#define IX_OSAL_IXP400_ETHA_MAP_SIZE        (0x1000)     /**< Eth A map size */
111#define IX_OSAL_IXP400_ETHB_MAP_SIZE        (0x1000)     /**< Eth B map size */
112#define IX_OSAL_IXP400_USB_MAP_SIZE         (0x1000)     /**< USB map size */
113#define IX_OSAL_IXP400_GPIO_MAP_SIZE        (0x1000)     /**< GPIO map size */
114#define IX_OSAL_IXP400_EXP_REG_MAP_SIZE     (0x1000)     /**< Exp Bus Config Registers map size */
115#define IX_OSAL_IXP400_EXP_BUS_MAP_SIZE     (0x08000000) /**< Expansion bus map size */
116#define IX_OSAL_IXP400_EXP_BUS_CS0_MAP_SIZE (0x01000000) /**< CS0 map size */
117#define IX_OSAL_IXP400_EXP_BUS_CS1_MAP_SIZE (0x01000000) /**< CS1 map size */
118#define IX_OSAL_IXP400_EXP_BUS_CS4_MAP_SIZE (0x01000000) /**< CS4 map size */
119#define IX_OSAL_IXP400_PCI_CFG_MAP_SIZE     (0x1000)     /**< PCI Bus Config Registers map size */
120
121#define IX_OSAL_IXP400_EXP_FUSE             (IXP425_EXP_CONFIG_BASE + 0x28)
122#define IX_OSAL_IXP400_ETH_NPEA_PHYS_BASE   0xC800C000
123#define IX_OSAL_IXP400_ETH_NPEA_MAP_SIZE    0x1000
124
125/*
126 * Interrupt Levels
127 */
128#define IX_OSAL_IXP400_NPEA_IRQ_LVL             (0)
129#define IX_OSAL_IXP400_NPEB_IRQ_LVL             (1)
130#define IX_OSAL_IXP400_NPEC_IRQ_LVL             (2)
131#define IX_OSAL_IXP400_QM1_IRQ_LVL              (3)
132#define IX_OSAL_IXP400_QM2_IRQ_LVL              (4)
133#define IX_OSAL_IXP400_TIMER1_IRQ_LVL           (5)
134#define IX_OSAL_IXP400_GPIO0_IRQ_LVL            (6)
135#define IX_OSAL_IXP400_GPIO1_IRQ_LVL            (7)
136#define IX_OSAL_IXP400_PCI_INT_IRQ_LVL          (8)
137#define IX_OSAL_IXP400_PCI_DMA1_IRQ_LVL         (9)
138#define IX_OSAL_IXP400_PCI_DMA2_IRQ_LVL         (10)
139#define IX_OSAL_IXP400_TIMER2_IRQ_LVL           (11)
140#define IX_OSAL_IXP400_USB_IRQ_LVL              (12)
141#define IX_OSAL_IXP400_UART2_IRQ_LVL            (13)
142#define IX_OSAL_IXP400_TIMESTAMP_IRQ_LVL        (14)
143#define IX_OSAL_IXP400_UART1_IRQ_LVL            (15)
144#define IX_OSAL_IXP400_WDOG_IRQ_LVL             (16)
145#define IX_OSAL_IXP400_AHB_PMU_IRQ_LVL          (17)
146#define IX_OSAL_IXP400_XSCALE_PMU_IRQ_LVL       (18)
147#define IX_OSAL_IXP400_GPIO2_IRQ_LVL            (19)
148#define IX_OSAL_IXP400_GPIO3_IRQ_LVL            (20)
149#define IX_OSAL_IXP400_GPIO4_IRQ_LVL            (21)
150#define IX_OSAL_IXP400_GPIO5_IRQ_LVL            (22)
151#define IX_OSAL_IXP400_GPIO6_IRQ_LVL            (23)
152#define IX_OSAL_IXP400_GPIO7_IRQ_LVL            (24)
153#define IX_OSAL_IXP400_GPIO8_IRQ_LVL            (25)
154#define IX_OSAL_IXP400_GPIO9_IRQ_LVL            (26)
155#define IX_OSAL_IXP400_GPIO10_IRQ_LVL           (27)
156#define IX_OSAL_IXP400_GPIO11_IRQ_LVL           (28)
157#define IX_OSAL_IXP400_GPIO12_IRQ_LVL           (29)
158#define IX_OSAL_IXP400_SW_INT1_IRQ_LVL          (30)
159#define IX_OSAL_IXP400_SW_INT2_IRQ_LVL          (31)
160
161/* USB interrupt level mask */
162#define IX_OSAL_IXP400_INT_LVL_USB             IRQ_IXP425_USB
163
164/* USB IRQ */
165#define IX_OSAL_IXP400_USB_IRQ                 IRQ_IXP425_USB
166
167/*
168 * OS name retrieval
169 */
170#define IX_OSAL_OEM_OS_NAME_GET(name, limit) \
171ixOsalOsIxp400NameGet((INT8*)(name), (INT32) (limit))
172
173/*
174 * OS version retrieval
175 */
176#define IX_OSAL_OEM_OS_VERSION_GET(version, limit) \
177ixOsalOsIxp400VersionGet((INT8*)(version), (INT32) (limit))
178
179/*
180 * Function to retrieve the OS name
181 */
182PUBLIC IX_STATUS ixOsalOsIxp400NameGet(INT8* osName, INT32 maxSize);
183
184/*
185 * Function to retrieve the OS version
186 */
187PUBLIC IX_STATUS ixOsalOsIxp400VersionGet(INT8* osVersion, INT32 maxSize);
188
189/*
190 * TimestampGet
191 */
192PUBLIC UINT32 ixOsalOsIxp400TimestampGet (void);
193
194/*
195 * Timestamp
196 */
197#define IX_OSAL_OEM_TIMESTAMP_GET ixOsalOsIxp400TimestampGet
198
199
200/*
201 * Timestamp resolution
202 */
203PUBLIC UINT32 ixOsalOsIxp400TimestampResolutionGet (void);
204
205#define IX_OSAL_OEM_TIMESTAMP_RESOLUTION_GET ixOsalOsIxp400TimestampResolutionGet
206
207/*
208 * Retrieves the system clock rate
209 */
210PUBLIC UINT32 ixOsalOsIxp400SysClockRateGet (void);
211
212#define IX_OSAL_OEM_SYS_CLOCK_RATE_GET ixOsalOsIxp400SysClockRateGet
213
214/*
215 * required by FS but is not really platform-specific.
216 */
217#define IX_OSAL_OEM_TIME_GET(pTv) ixOsalTimeGet(pTv)
218
219
220
221/* linux map/unmap functions */
222PUBLIC void ixOsalLinuxMemMap (IxOsalMemoryMap * map);
223
224PUBLIC void ixOsalLinuxMemUnmap (IxOsalMemoryMap * map);
225
226
227/*********************
228 *      Memory map
229 ********************/
230
231/* Global memmap only visible to IO MEM module */
232
233#ifdef IxOsalIoMem_C
234
235IxOsalMemoryMap ixOsalGlobalMemoryMap[] = {
236     {
237     /* Global BE and LE_AC map */
238     IX_OSAL_STATIC_MAP,        /* type            */
239     0x00000000,                /* physicalAddress */
240     0x30000000,                /* size            */
241     0x00000000,                /* virtualAddress  */
242     NULL,                      /* mapFunction     */
243     NULL,                      /* unmapFunction   */
244     0,                         /* refCount        */
245     IX_OSAL_BE | IX_OSAL_LE_AC,/* endianType      */
246     "global_low"               /* name            */
247     },
248
249    /* SDRAM LE_DC alias */
250    {
251     IX_OSAL_STATIC_MAP,        /* type            */
252     0x00000000,                /* physicalAddress */
253     0x10000000,                /* size            */
254     0x30000000,                /* virtualAddress  */
255     NULL,                      /* mapFunction     */
256     NULL,                      /* unmapFunction   */
257     0,                         /* refCount        */
258     IX_OSAL_LE_DC,             /* endianType      */
259     "sdram_dc"                 /* name            */
260     },
261
262    /* QMGR LE_DC alias */
263    {
264     IX_OSAL_STATIC_MAP,        /* type            */
265     0x60000000,                /* physicalAddress */
266     0x00100000,                /* size            */
267     0x60000000,                /* virtualAddress  */
268     NULL,                      /* mapFunction     */
269     NULL,                      /* unmapFunction   */
270     0,                         /* refCount        */
271     IX_OSAL_LE_DC,             /* endianType      */
272     "qmgr_dc"                  /* name            */
273     },
274
275    /* QMGR BE alias */
276    {
277     IX_OSAL_STATIC_MAP,        /* type            */
278     0x60000000,                /* physicalAddress */
279     0x00100000,                /* size            */
280     0x60000000,                /* virtualAddress  */
281     NULL,                      /* mapFunction     */
282     NULL,                      /* unmapFunction   */
283     0,                         /* refCount        */
284     IX_OSAL_BE | IX_OSAL_LE_AC,/* endianType      */
285     "qmgr_be"                  /* name            */
286     },
287
288    /* Global BE and LE_AC map */
289    {
290     IX_OSAL_STATIC_MAP,        /* type            */
291     0x40000000,                /* physicalAddress */
292     0x20000000,                /* size            */
293     0x40000000,                /* virtualAddress  */
294     NULL,                      /* mapFunction     */
295     NULL,                      /* unmapFunction   */
296     0,                         /* refCount        */
297     IX_OSAL_BE | IX_OSAL_LE_AC,/* endianType      */
298     "Misc Cfg"                 /* name            */
299     },
300
301    /* Global BE and LE_AC map */
302    {
303     IX_OSAL_STATIC_MAP,        /* type            */
304     0x70000000,                /* physicalAddress */
305     0x8FFFFFFF,                /* size            */
306     0x70000000,                /* virtualAddress  */
307     NULL,                      /* mapFunction     */
308     NULL,                      /* unmapFunction   */
309     0,                         /* refCount        */
310     IX_OSAL_BE | IX_OSAL_LE_AC,/* endianType      */
311     "Exp Cfg"                  /* name            */
312     },
313};
314
315#endif /* IxOsalIoMem_C */
316#endif /* #define IxOsalOsIxp400_H */
Note: See TracBrowser for help on using the repository browser.