1 /*
2  *  Copyright 2001-2008 Texas Instruments - http://www.ti.com/
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  */
16 
17 /*
18  *  ======== cfgdefs.h ========
19  *  DSP-BIOS Bridge driver support functions for TI OMAP processors.
20  *  Purpose:
21  *      Global CFG constants and types, shared between class and mini driver.
22  *
23  *! Revision History:
24  *! ================
25  *! 24-Feb-2003 kc  Removed wIOPort* in CFG_HOSTRES.
26  *! 06-Sep-2000 jeh Added channel info to CFG_HOSTRES.
27  *! 09-May-2000 rr: CFG_HOSTRES now support multiple windows for PCI support.
28  *! 31-Jan-2000 rr: Comments changed after code review.
29  *! 06-Jan-2000 rr: Bus Type included in CFG_HOSTRES.
30  *! 12-Nov-1999 rr: CFG_HOSTRES member names changed.
31  *! 25-Oct-1999 rr: Modified the CFG_HOSTRES Structure
32  *!                 PCMCIA ISR Register/Unregister fxn removed..
33  *!                 New flag PCCARD introduced during compile time.
34  *! 10-Sep-1999 ww: Added PCMCIA ISR Register/Unregister fxn.
35  *! 01-Sep-1999 ag: Removed NT/95 specific fields in CFG_HOSTRES
36  *! 27-Oct-1997 cr: Updated CFG_HOSTRES struct to support 1+ IRQs per board.
37  *! 17-Sep-1997 gp: Tacked some NT config info to end of CFG_HOSTRES structure.
38  *! 12-Dec-1996 cr: Cleaned up after code review.
39  *! 14-Nov-1996 gp: Renamed from wsxcfg.h
40  *! 19-Jun-1996 cr: Created.
41  */
42 
43 #ifndef CFGDEFS_
44 #define CFGDEFS_
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
50 /* Maximum length of module search path. */
51 #define CFG_MAXSEARCHPATHLEN    255
52 
53 /* Maximum length of general paths. */
54 #define CFG_MAXPATH             255
55 
56 /* Host Resources:  */
57 #define CFG_MAXMEMREGISTERS     9
58 #define CFG_MAXIOPORTS          20
59 #define CFG_MAXIRQS             7
60 #define CFG_MAXDMACHANNELS      7
61 
62 /* IRQ flag */
63 #define CFG_IRQSHARED           0x01	/* IRQ can be shared */
64 
65 /* DSP Resources: */
66 #define CFG_DSPMAXMEMTYPES      10
67 #define CFG_DEFAULT_NUM_WINDOWS 1	/* We support only one window. */
68 
69 /* A platform-related device handle: */
70 	/*typedef struct CFG_DEVNODE *CFG_HDEVNODE;*/
71 	struct CFG_DEVNODE;
72 
73 /*
74  *  Host resource structure.
75  */
76 	struct CFG_HOSTRES {
77 		DWORD wNumMemWindows;	/* Set to default */
78 		/* This is the base.memory */
79 		DWORD dwMemBase[CFG_MAXMEMREGISTERS];	/* SHM virtual address */
80 		DWORD dwMemLength[CFG_MAXMEMREGISTERS];	/* Length of the  Base */
81 		DWORD dwMemPhys[CFG_MAXMEMREGISTERS];	/* SHM Physical address */
82 		BYTE bIRQRegisters;	/* IRQ Number */
83 		BYTE bIRQAttrib;	/* IRQ Attribute */
84 		DWORD dwOffsetForMonitor;	/* The Shared memory starts from
85 						 * dwMemBase + this offset
86 						 */
87 		DWORD dwBusType;	/* Bus type for this device */
88 		DWORD dwProgBase;	/* DSP ProgBase */
89 		DWORD dwProgLength;	/* DSP ProgBase Length */
90 		DWORD dwRegBase;	/* DSP memory mapped register base */
91 		DWORD dwRegLength;	/* DSP Register Base Length */
92 		DWORD ClientHandle;	/* Client Handle */
93 		DWORD SocketHandle;	/* Socket and Function Pair */
94 		DWORD CardInfo;	/* This will be used as a context data in
95 				 * in the CardRequestIRQ
96 				 */
97 		/*
98 		 *  Info needed by NODE for allocating channels to communicate with RMS:
99 		 *      dwChnlOffset:       Offset of RMS channels. Lower channels are
100 		 *                          reserved.
101 		 *      dwChnlBufSize:      Size of channel buffer to send to RMS
102 		 *      dwNumChnls:       Total number of channels (including reserved).
103 		 */
104 		DWORD dwChnlOffset;
105 		DWORD dwChnlBufSize;
106 		DWORD dwNumChnls;
107 
108 #ifdef OMAP_2430
109 		DWORD dwPrcmBase;
110 		DWORD dwWdTimerDspBase;
111 		DWORD dwMboxBase;
112 		DWORD dwDmmuBase;
113 		DWORD dwDipiBase;
114 		DWORD dwSysCtrlBase;
115 #endif
116 
117 #ifdef OMAP_3430
118 		DWORD dwPrmBase;
119 		DWORD dwCmBase;
120 		DWORD dwPerBase;
121 		DWORD dwWdTimerDspBase;
122 		DWORD dwMboxBase;
123 		DWORD dwDmmuBase;
124 		DWORD dwDipiBase;
125 		DWORD dwSysCtrlBase;
126 #endif
127 	} ;
128 
129 	struct CFG_DSPMEMDESC {
130 		UINT uMemType;	/* Type of memory.                        */
131 		ULONG ulMin;	/* Minimum amount of memory of this type. */
132 		ULONG ulMax;	/* Maximum amount of memory of this type. */
133 	} ;
134 
135 	struct CFG_DSPRES {
136 		UINT uChipType;	/* DSP chip type.               */
137 		UINT uWordSize;	/* Number of bytes in a word    */
138 		UINT cChips;	/* Number of chips.             */
139 		UINT cMemTypes;	/* Types of memory.             */
140 		struct CFG_DSPMEMDESC aMemDesc[CFG_DSPMAXMEMTYPES];
141 		/* DSP Memory types */
142 	} ;
143 
144 #ifdef __cplusplus
145 }
146 #endif
147 #endif				/* CFGDEFS_ */
148