source: SVN/cambria/redboot/packages/devs/eth/intel/npe/common/current/include/osal/ecos/platforms/ixp400/IxOsalOsIxp400.h @ 1

Last change on this file since 1 was 1, checked in by Tim Harvey, 2 years ago

restored latest version of files from server backup

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

File size: 10.9 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 1.5
10 *
11 * -- Intel Copyright Notice --
12 *
13 * @par
14 * Copyright 2002-2004 Intel Corporation All Rights Reserved.
15 *
16 * @par
17 * The source code contained or described herein and all documents
18 * related to the source code ("Material") are owned by Intel Corporation
19 * or its suppliers or licensors.  Title to the Material remains with
20 * Intel Corporation or its suppliers and licensors.
21 *
22 * @par
23 * The Material is protected by worldwide copyright and trade secret laws
24 * and treaty provisions. No part of the Material may be used, copied,
25 * reproduced, modified, published, uploaded, posted, transmitted,
26 * distributed, or disclosed in any way except in accordance with the
27 * applicable license agreement .
28 *
29 * @par
30 * No license under any patent, copyright, trade secret or other
31 * intellectual property right is granted to or conferred upon you by
32 * disclosure or delivery of the Materials, either expressly, by
33 * implication, inducement, estoppel, except in accordance with the
34 * applicable license agreement.
35 *
36 * @par
37 * Unless otherwise agreed by Intel in writing, you may not remove or
38 * alter this notice or any other notice embedded in Materials by Intel
39 * or Intel's suppliers or licensors in any way.
40 *
41 * @par
42 * For further details, please see the file README.TXT distributed with
43 * this software.
44 *
45 * @par
46 * -- End Intel Copyright Notice --
47 */
48
49#ifndef IxOsalOsIxp400_H
50#define IxOsalOsIxp400_H
51
52#define BIT(x) (1<<(x))
53
54#define IXP425_EthA_BASE        0xc8009000
55#define IXP425_EthB_BASE        0xc800a000
56
57#define IXP425_PSMA_BASE        0xc8006000
58#define IXP425_PSMB_BASE        0xc8007000
59#define IXP425_PSMC_BASE        0xc8008000
60
61#define IXP425_PERIPHERAL_BASE  0xc8000000
62
63#define IXP425_QMGR_BASE        0x60000000
64#define IXP425_OSTS             0xC8005000
65
66#define IXP425_INT_LVL_NPEA     0
67#define IXP425_INT_LVL_NPEB     1
68#define IXP425_INT_LVL_NPEC     2
69
70#define IXP425_INT_LVL_QM1      3
71#define IXP425_INT_LVL_QM2      4
72
73#define IXP425_EXPANSION_BUS_BASE1      0x50000000
74#define IXP425_EXPANSION_BUS_BASE2      0x50000000
75#define IXP425_EXPANSION_BUS_CS1_BASE   0x51000000
76
77#define IXP425_EXP_CONFIG_BASE          0xC4000000
78
79/* physical addresses to be used when requesting memory with IX_OSAL_MEM_MAP */
80#define IX_OSAL_IXP400_INTC_PHYS_BASE          IXP425_INTC_BASE
81#define IX_OSAL_IXP400_GPIO_PHYS_BASE          IXP425_GPIO_BASE
82#define IX_OSAL_IXP400_UART1_PHYS_BASE         IXP425_UART1_BASE
83#define IX_OSAL_IXP400_UART2_PHYS_BASE         IXP425_UART2_BASE
84#define IX_OSAL_IXP400_ETH_MAC_B0_PHYS_BASE    IXP425_EthA_BASE
85#define IX_OSAL_IXP400_ETH_MAC_C0_PHYS_BASE    IXP425_EthB_BASE
86#define IX_OSAL_IXP400_NPEA_PHYS_BASE          IXP425_NPEA_BASE
87#define IX_OSAL_IXP400_NPEB_PHYS_BASE          IXP425_NPEB_BASE
88#define IX_OSAL_IXP400_NPEC_PHYS_BASE          IXP425_NPEC_BASE
89#define IX_OSAL_IXP400_PERIPHERAL_PHYS_BASE    IXP425_PERIPHERAL_BASE
90#define IX_OSAL_IXP400_QMGR_PHYS_BASE          IXP425_QMGR_BASE
91#define IX_OSAL_IXP400_OSTS_PHYS_BASE          IXP425_TIMER_BASE
92#define IX_OSAL_IXP400_USB_PHYS_BASE           IXP425_USB_BASE
93#define IX_OSAL_IXP400_EXP_BUS_REGS_PHYS_BASE  IXP425_EXP_CFG_BASE
94#define IX_OSAL_IXP400_PCI_CFG_PHYS_BASE       IXP425_PCI_CFG_BASE
95
96#if 0
97#define IX_OSAL_IXP400_SDRAM_CFG_PHYS_BASE      IXP400_SDRAM_CONFIG_BASE
98#define IX_OSAL_IXP400_PMU_PHYS_BASE            IXP400_PMU_BASE
99
100#define IX_OSAL_IXP400_EXP_CFG_PHYS_BASE       IXP425_EXP_CFG_BASE
101#define IX_OSAL_IXP400_EXP_BUS_PHYS_BASE       IXP425_EXP_BUS_BASE2
102#define IX_OSAL_IXP400_EXP_BUS_BOOT_PHYS_BASE  IXP425_EXP_BUS_BASE1
103#define IX_OSAL_IXP400_EXP_BUS_CS0_PHYS_BASE   IXP425_EXP_BUS_CS0_BASE
104#define IX_OSAL_IXP400_EXP_BUS_CS1_PHYS_BASE   IXP425_EXP_BUS_CS1_BASE
105#define IX_OSAL_IXP400_EXP_BUS_CS4_PHYS_BASE   IXP425_EXP_BUS_CS4_BASE
106#endif
107
108/* map sizes to be used when requesting memory with IX_OSAL_MEM_MAP */
109#define IX_OSAL_IXP400_QMGR_MAP_SIZE        (0x4000)     /**< Queue Manager map size */
110#define IX_OSAL_IXP400_PERIPHERAL_MAP_SIZE  (0xC000)     /**< Peripheral space map size */
111#define IX_OSAL_IXP400_UART1_MAP_SIZE       (0x1000)     /**< UART1 map size */
112#define IX_OSAL_IXP400_UART2_MAP_SIZE       (0x1000)     /**< UART2 map size */
113#define IX_OSAL_IXP400_PMU_MAP_SIZE         (0x1000)     /**< PMU map size */
114#define IX_OSAL_IXP400_OSTS_MAP_SIZE        (0x1000)     /**< OS Timers map size */
115#define IX_OSAL_IXP400_NPEA_MAP_SIZE        (0x1000)     /**< NPE A map size */
116#define IX_OSAL_IXP400_NPEB_MAP_SIZE        (0x1000)     /**< NPE B map size */
117#define IX_OSAL_IXP400_NPEC_MAP_SIZE        (0x1000)     /**< NPE C map size */
118#define IX_OSAL_IXP400_ETH_MAC_B0_MAP_SIZE  (0x1000)     /**< Eth A map size */
119#define IX_OSAL_IXP400_ETH_MAC_C0_MAP_SIZE  (0x1000)     /**< Eth B map size */
120#define IX_OSAL_IXP400_USB_MAP_SIZE         (0x1000)     /**< USB map size */
121#define IX_OSAL_IXP400_GPIO_MAP_SIZE        (0x1000)     /**< GPIO map size */
122
123#define IX_OSAL_IXP400_EXP_REG_MAP_SIZE     (0x1000)     /**< Exp Bus Config Registers map size */
124#define IX_OSAL_IXP400_EXP_BUS_MAP_SIZE     (0x08000000) /**< Expansion bus map size */
125#define IX_OSAL_IXP400_EXP_BUS_CS0_MAP_SIZE (0x01000000) /**< CS0 map size */
126#define IX_OSAL_IXP400_EXP_BUS_CS1_MAP_SIZE (0x01000000) /**< CS1 map size */
127#define IX_OSAL_IXP400_EXP_BUS_CS4_MAP_SIZE (0x01000000) /**< CS4 map size */
128#define IX_OSAL_IXP400_PCI_CFG_MAP_SIZE     (0x1000)     /**< PCI Bus Config Registers map size */
129
130#define IX_OSAL_IXP400_EXP_FUSE             (IXP425_EXP_CONFIG_BASE + 0x28)
131#define IX_OSAL_IXP400_ETH_MAC_A0_PHYS_BASE 0xC800C000
132#define IX_OSAL_IXP400_ETH_MAC_A0_MAP_SIZE  0x1000
133
134/*
135 * Interrupt Levels
136 */
137#define IX_OSAL_IXP400_NPEA_IRQ_LVL             (0)
138#define IX_OSAL_IXP400_NPEB_IRQ_LVL             (1)
139#define IX_OSAL_IXP400_NPEC_IRQ_LVL             (2)
140#define IX_OSAL_IXP400_QM1_IRQ_LVL              (3)
141#define IX_OSAL_IXP400_QM2_IRQ_LVL              (4)
142#define IX_OSAL_IXP400_TIMER1_IRQ_LVL           (5)
143#define IX_OSAL_IXP400_GPIO0_IRQ_LVL            (6)
144#define IX_OSAL_IXP400_GPIO1_IRQ_LVL            (7)
145#define IX_OSAL_IXP400_PCI_INT_IRQ_LVL          (8)
146#define IX_OSAL_IXP400_PCI_DMA1_IRQ_LVL         (9)
147#define IX_OSAL_IXP400_PCI_DMA2_IRQ_LVL         (10)
148#define IX_OSAL_IXP400_TIMER2_IRQ_LVL           (11)
149#define IX_OSAL_IXP400_USB_IRQ_LVL              (12)
150#define IX_OSAL_IXP400_UART2_IRQ_LVL            (13)
151#define IX_OSAL_IXP400_TIMESTAMP_IRQ_LVL        (14)
152#define IX_OSAL_IXP400_UART1_IRQ_LVL            (15)
153#define IX_OSAL_IXP400_WDOG_IRQ_LVL             (16)
154#define IX_OSAL_IXP400_AHB_PMU_IRQ_LVL          (17)
155#define IX_OSAL_IXP400_XSCALE_PMU_IRQ_LVL       (18)
156#define IX_OSAL_IXP400_GPIO2_IRQ_LVL            (19)
157#define IX_OSAL_IXP400_GPIO3_IRQ_LVL            (20)
158#define IX_OSAL_IXP400_GPIO4_IRQ_LVL            (21)
159#define IX_OSAL_IXP400_GPIO5_IRQ_LVL            (22)
160#define IX_OSAL_IXP400_GPIO6_IRQ_LVL            (23)
161#define IX_OSAL_IXP400_GPIO7_IRQ_LVL            (24)
162#define IX_OSAL_IXP400_GPIO8_IRQ_LVL            (25)
163#define IX_OSAL_IXP400_GPIO9_IRQ_LVL            (26)
164#define IX_OSAL_IXP400_GPIO10_IRQ_LVL           (27)
165#define IX_OSAL_IXP400_GPIO11_IRQ_LVL           (28)
166#define IX_OSAL_IXP400_GPIO12_IRQ_LVL           (29)
167#define IX_OSAL_IXP400_SW_INT1_IRQ_LVL          (30)
168#define IX_OSAL_IXP400_SW_INT2_IRQ_LVL          (31)
169
170/* USB interrupt level mask */
171#define IX_OSAL_IXP400_INT_LVL_USB             IRQ_IXP425_USB
172
173/* USB IRQ */
174#define IX_OSAL_IXP400_USB_IRQ                 IRQ_IXP425_USB
175
176/*
177 * OS name retrieval
178 */
179#define IX_OSAL_OEM_OS_NAME_GET(name, limit) \
180ixOsalOsIxp400NameGet((INT8*)(name), (INT32) (limit))
181
182/*
183 * OS version retrieval
184 */
185#define IX_OSAL_OEM_OS_VERSION_GET(version, limit) \
186ixOsalOsIxp400VersionGet((INT8*)(version), (INT32) (limit))
187
188/*
189 * Function to retrieve the OS name
190 */
191PUBLIC IX_STATUS ixOsalOsIxp400NameGet(INT8* osName, INT32 maxSize);
192
193/*
194 * Function to retrieve the OS version
195 */
196PUBLIC IX_STATUS ixOsalOsIxp400VersionGet(INT8* osVersion, INT32 maxSize);
197
198/*
199 * TimestampGet
200 */
201PUBLIC UINT32 ixOsalOsIxp400TimestampGet (void);
202
203/*
204 * Timestamp
205 */
206#define IX_OSAL_OEM_TIMESTAMP_GET ixOsalOsIxp400TimestampGet
207
208
209/*
210 * Timestamp resolution
211 */
212PUBLIC UINT32 ixOsalOsIxp400TimestampResolutionGet (void);
213
214#define IX_OSAL_OEM_TIMESTAMP_RESOLUTION_GET ixOsalOsIxp400TimestampResolutionGet
215
216/*
217 * Retrieves the system clock rate
218 */
219PUBLIC UINT32 ixOsalOsIxp400SysClockRateGet (void);
220
221#define IX_OSAL_OEM_SYS_CLOCK_RATE_GET ixOsalOsIxp400SysClockRateGet
222
223/*
224 * required by FS but is not really platform-specific.
225 */
226#define IX_OSAL_OEM_TIME_GET(pTv) ixOsalTimeGet(pTv)
227
228
229
230/* linux map/unmap functions */
231PUBLIC void ixOsalLinuxMemMap (IxOsalMemoryMap * map);
232
233PUBLIC void ixOsalLinuxMemUnmap (IxOsalMemoryMap * map);
234
235
236/*********************
237 *      Memory map
238 ********************/
239
240/* Global memmap only visible to IO MEM module */
241
242#ifdef IxOsalIoMem_C
243
244IxOsalMemoryMap ixOsalGlobalMemoryMap[] = {
245     {
246     /* Global BE and LE_AC map */
247     IX_OSAL_STATIC_MAP,        /* type            */
248     0x00000000,                /* physicalAddress */
249     0x30000000,                /* size            */
250     0x00000000,                /* virtualAddress  */
251     NULL,                      /* mapFunction     */
252     NULL,                      /* unmapFunction   */
253     0,                         /* refCount        */
254     IX_OSAL_BE | IX_OSAL_LE_AC,/* endianType      */   
255     "global_low"               /* name            */
256     },
257
258    /* SDRAM LE_DC alias */
259    {
260     IX_OSAL_STATIC_MAP,        /* type            */
261     0x00000000,                /* physicalAddress */
262     0x10000000,                /* size            */
263     0x30000000,                /* virtualAddress  */
264     NULL,                      /* mapFunction     */
265     NULL,                      /* unmapFunction   */
266     0,                         /* refCount        */
267     IX_OSAL_LE_DC,             /* endianType      */
268     "sdram_dc"                 /* name            */
269     },
270
271    /* QMGR LE_DC alias */
272    {
273     IX_OSAL_STATIC_MAP,        /* type            */
274     0x60000000,                /* physicalAddress */
275     0x00100000,                /* size            */
276     0x60000000,                /* virtualAddress  */
277     NULL,                      /* mapFunction     */
278     NULL,                      /* unmapFunction   */
279     0,                         /* refCount        */
280     IX_OSAL_LE_DC,             /* endianType      */
281     "qmgr_dc"                  /* name            */
282     },
283
284    /* QMGR BE alias */
285    {
286     IX_OSAL_STATIC_MAP,        /* type            */
287     0x60000000,                /* physicalAddress */
288     0x00100000,                /* size            */
289     0x60000000,                /* virtualAddress  */
290     NULL,                      /* mapFunction     */
291     NULL,                      /* unmapFunction   */
292     0,                         /* refCount        */
293     IX_OSAL_BE | IX_OSAL_LE_AC,/* endianType      */   
294     "qmgr_be"                  /* name            */
295     },
296
297    /* Global BE and LE_AC map */
298    {
299     IX_OSAL_STATIC_MAP,        /* type            */
300     0x40000000,                /* physicalAddress */
301     0x20000000,                /* size            */
302     0x40000000,                /* virtualAddress  */
303     NULL,                      /* mapFunction     */
304     NULL,                      /* unmapFunction   */
305     0,                         /* refCount        */
306     IX_OSAL_BE | IX_OSAL_LE_AC,/* endianType      */
307     "Misc Cfg"                 /* name            */
308     },
309
310    /* Global BE and LE_AC map */
311    {
312     IX_OSAL_STATIC_MAP,        /* type            */
313     0x70000000,                /* physicalAddress */
314     0x8FFFFFFF,                /* size            */
315     0x70000000,                /* virtualAddress  */
316     NULL,                      /* mapFunction     */
317     NULL,                      /* unmapFunction   */
318     0,                         /* refCount        */
319     IX_OSAL_BE | IX_OSAL_LE_AC,/* endianType      */
320     "Exp Cfg"                  /* name            */
321     },
322};
323
324#endif /* IxOsalIoMem_C */
325#endif /* #define IxOsalOsIxp400_H */
Note: See TracBrowser for help on using the repository browser.