Merge branch 'next' into for-linus
[linux-2.6] / drivers / staging / epl / EplCfg.h
1 /****************************************************************************
2
3   (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29
4       www.systec-electronic.com
5
6   Project:      openPOWERLINK
7
8   Description:  configuration file
9
10   License:
11
12     Redistribution and use in source and binary forms, with or without
13     modification, are permitted provided that the following conditions
14     are met:
15
16     1. Redistributions of source code must retain the above copyright
17        notice, this list of conditions and the following disclaimer.
18
19     2. Redistributions in binary form must reproduce the above copyright
20        notice, this list of conditions and the following disclaimer in the
21        documentation and/or other materials provided with the distribution.
22
23     3. Neither the name of SYSTEC electronic GmbH nor the names of its
24        contributors may be used to endorse or promote products derived
25        from this software without prior written permission. For written
26        permission, please contact info@systec-electronic.com.
27
28     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
29     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
30     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
31     FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
32     COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
33     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
34     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
35     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
36     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
38     ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
39     POSSIBILITY OF SUCH DAMAGE.
40
41     Severability Clause:
42
43         If a provision of this License is or becomes illegal, invalid or
44         unenforceable in any jurisdiction, that shall not affect:
45         1. the validity or enforceability in that jurisdiction of any other
46            provision of this License; or
47         2. the validity or enforceability in other jurisdictions of that or
48            any other provision of this License.
49
50   -------------------------------------------------------------------------
51
52                 $RCSfile: EplCfg.h,v $
53
54                 $Author: D.Krueger $
55
56                 $Revision: 1.4 $  $Date: 2008/10/17 15:32:32 $
57
58                 $State: Exp $
59
60                 Build Environment:
61                     ...
62
63   -------------------------------------------------------------------------
64
65   Revision History:
66
67   2006/06/06    k.t.: Start of Implementation
68
69 ****************************************************************************/
70
71 #ifndef _EPLCFG_H_
72 #define _EPLCFG_H_
73
74 // =========================================================================
75 // generic defines which for whole EPL Stack
76 // =========================================================================
77 #define EPL_USE_DELETEINST_FUNC TRUE
78
79 // needed to support datatypes over 32 bit by global.h
80 #define USE_VAR64
81
82 // EPL_MAX_INSTANCES specifies count of instances of all EPL modules.
83 // If it is greater than 1 the first parameter of all
84 // functions is the instance number.
85 #define EPL_MAX_INSTANCES               1
86
87 // This defines the target hardware. Here is encoded wich CPU and wich external
88 // peripherals are connected. For possible values refere to target.h. If
89 // necessary value is not available EPL stack has to
90 // be adapted and tested.
91 #define TARGET_HARDWARE                 TGTHW_PC_WRAPP
92
93 // use no FIFOs, make direct calls
94 //#define EPL_NO_FIFO
95
96 // use no IPC between user- and kernelspace modules, make direct calls
97 #define EPL_NO_USER_KERNEL
98
99 #ifndef BENCHMARK_MODULES
100 #define BENCHMARK_MODULES       0       //0xEE800042L
101 #endif
102
103 // Default defug level:
104 // Only debug traces of these modules will be compiled which flags are set in define DEF_DEBUG_LVL.
105 #ifndef DEF_DEBUG_LVL
106 #define DEF_DEBUG_LVL           0xEC000000L
107 #endif
108 //   EPL_DBGLVL_OBD         =   0x00000004L
109 // * EPL_DBGLVL_ASSERT      =   0x20000000L
110 // * EPL_DBGLVL_ERROR       =   0x40000000L
111 // * EPL_DBGLVL_ALWAYS      =   0x80000000L
112
113 // EPL_MODULE_INTEGRATION defines all modules which are included in
114 // EPL application. Please add or delete modules for your application.
115 #define EPL_MODULE_INTEGRATION EPL_MODULE_OBDK \
116                                | EPL_MODULE_PDOK \
117                                | EPL_MODULE_NMT_MN \
118                                | EPL_MODULE_SDOS \
119                                | EPL_MODULE_SDOC \
120                                | EPL_MODULE_SDO_ASND \
121                                | EPL_MODULE_SDO_UDP \
122                                | EPL_MODULE_NMT_CN \
123                                | EPL_MODULE_NMTU \
124                                | EPL_MODULE_NMTK \
125                                | EPL_MODULE_DLLK \
126                                | EPL_MODULE_DLLU \
127                                | EPL_MODULE_VETH
128 //                               | EPL_MODULE_OBDU
129
130 // =========================================================================
131 // EPL ethernet driver (Edrv) specific defines
132 // =========================================================================
133
134 // switch this define to TRUE if Edrv supports fast tx frames
135 #define EDRV_FAST_TXFRAMES              FALSE
136 //#define EDRV_FAST_TXFRAMES              TRUE
137
138 // switch this define to TRUE if Edrv supports early receive interrupts
139 #define EDRV_EARLY_RX_INT               FALSE
140 //#define EDRV_EARLY_RX_INT               TRUE
141
142 // enables setting of several port pins for benchmarking purposes
143 #define EDRV_BENCHMARK                  FALSE
144 //#define EDRV_BENCHMARK                  TRUE // MCF_GPIO_PODR_PCIBR
145
146 // Call Tx handler (i.e. EplDllCbFrameTransmitted()) already if DMA has finished,
147 // otherwise call the Tx handler if frame was actually transmitted over ethernet.
148 #define EDRV_DMA_TX_HANDLER             FALSE
149 //#define EDRV_DMA_TX_HANDLER             TRUE
150
151 // number of used ethernet controller
152 //#define EDRV_USED_ETH_CTRL              1
153
154 // =========================================================================
155 // Data Link Layer (DLL) specific defines
156 // =========================================================================
157
158 // switch this define to TRUE if Edrv supports fast tx frames
159 // and DLL shall pass PRes as ready to Edrv after SoC
160 #define EPL_DLL_PRES_READY_AFTER_SOC    FALSE
161 //#define EPL_DLL_PRES_READY_AFTER_SOC    TRUE
162
163 // switch this define to TRUE if Edrv supports fast tx frames
164 // and DLL shall pass PRes as ready to Edrv after SoA
165 #define EPL_DLL_PRES_READY_AFTER_SOA    FALSE
166 //#define EPL_DLL_PRES_READY_AFTER_SOA    TRUE
167
168 // =========================================================================
169 // OBD specific defines
170 // =========================================================================
171
172 // switch this define to TRUE if Epl should compare object range
173 // automaticly
174 #define EPL_OBD_CHECK_OBJECT_RANGE          FALSE
175 //#define EPL_OBD_CHECK_OBJECT_RANGE          TRUE
176
177 // set this define to TRUE if there are strings or domains in OD, which
178 // may be changed in object size and/or object data pointer by its object
179 // callback function (called event kObdEvWrStringDomain)
180 //#define EPL_OBD_USE_STRING_DOMAIN_IN_RAM    FALSE
181 #define EPL_OBD_USE_STRING_DOMAIN_IN_RAM    TRUE
182
183 #define EPL_OBD_USE_VARIABLE_SUBINDEX_TAB TRUE
184
185 // =========================================================================
186 // Timer module specific defines
187 // =========================================================================
188
189 // if TRUE it uses the Timer module implementation of EPL user also in EPL kernel
190 #define EPL_TIMER_USE_USER              TRUE
191
192 // if TRUE the high resolution timer module will be used
193 #define EPL_TIMER_USE_HIGHRES              TRUE
194 //#define EPL_TIMER_USE_HIGHRES              FALSE
195
196 #endif //_EPLCFG_H_