]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - drivers/net/npe/include/IxNpeMhMacros_p.h
imx6 SION bit has to be on for the pins that are used as ENET_REF_CLK
[karo-tx-uboot.git] / drivers / net / npe / include / IxNpeMhMacros_p.h
1 /**
2  * @file IxNpeMhMacros_p.h
3  *
4  * @author Intel Corporation
5  * @date 21 Jan 2002
6  *
7  * @brief This file contains the macros for the IxNpeMh component.
8  *
9  * 
10  * @par
11  * IXP400 SW Release version 2.0
12  * 
13  * -- Copyright Notice --
14  * 
15  * @par
16  * Copyright 2001-2005, Intel Corporation.
17  * All rights reserved.
18  * 
19  * @par
20  * SPDX-License-Identifier:     BSD-3-Clause
21  * @par
22  * -- End of Copyright Notice --
23 */
24
25 /**
26  * @defgroup IxNpeMhMacros_p IxNpeMhMacros_p
27  *
28  * @brief Macros for the IxNpeMh component.
29  * 
30  * @{
31  */
32
33 #ifndef IXNPEMHMACROS_P_H
34 #define IXNPEMHMACROS_P_H
35
36 /* if we are running as a unit test */
37 #ifdef IX_UNIT_TEST
38 #undef NDEBUG
39 #endif /* #ifdef IX_UNIT_TEST */
40
41 #include "IxOsal.h"
42
43 /*
44  * #defines for function return types, etc.
45  */
46
47 #define IX_NPEMH_SHOW_TEXT_WIDTH (40) /**< text width for stats display */
48 #define IX_NPEMH_SHOW_STAT_WIDTH (10) /**< stat width for stats display */
49
50 /**
51  * @def IX_NPEMH_SHOW
52  *
53  * @brief Macro for displaying a stat preceded by a textual description.
54  */
55
56 #define IX_NPEMH_SHOW(TEXT, STAT) \
57     ixOsalLog (IX_OSAL_LOG_LVL_USER, IX_OSAL_LOG_DEV_STDOUT, \
58                "%-40s: %10d\n", (int) TEXT, (int) STAT, 0, 0, 0, 0)
59
60 /*
61  * Prototypes for interface functions.
62  */
63
64 /**
65  * @typedef IxNpeMhTraceTypes
66  *
67  * @brief Enumeration defining IxNpeMh trace levels
68  */
69
70 typedef enum
71 {
72     IX_NPEMH_TRACE_OFF     = IX_OSAL_LOG_LVL_NONE,    /**< no trace */
73     IX_NPEMH_WARNING       = IX_OSAL_LOG_LVL_WARNING, /**< warning */
74     IX_NPEMH_DEBUG         = IX_OSAL_LOG_LVL_MESSAGE, /**< debug */
75     IX_NPEMH_FN_ENTRY_EXIT = IX_OSAL_LOG_LVL_DEBUG3   /**< function entry/exit */
76 } IxNpeMhTraceTypes;
77
78 #ifdef IX_UNIT_TEST
79 #define IX_NPEMH_TRACE_LEVEL (IX_NPEMH_FN_ENTRY_EXIT) /**< trace level */
80 #else
81 #define IX_NPEMH_TRACE_LEVEL (IX_NPEMH_TRACE_OFF) /**< trace level */
82 #endif
83
84 /**
85  * @def IX_NPEMH_TRACE0
86  *
87  * @brief Trace macro taking 0 arguments.
88  */
89
90 #define IX_NPEMH_TRACE0(LEVEL, STR) \
91     IX_NPEMH_TRACE6(LEVEL, STR, 0, 0, 0, 0, 0, 0)
92
93 /**
94  * @def IX_NPEMH_TRACE1
95  *
96  * @brief Trace macro taking 1 argument.
97  */
98
99 #define IX_NPEMH_TRACE1(LEVEL, STR, ARG1) \
100     IX_NPEMH_TRACE6(LEVEL, STR, ARG1, 0, 0, 0, 0, 0)
101
102 /**
103  * @def IX_NPEMH_TRACE2
104  *
105  * @brief Trace macro taking 2 arguments.
106  */
107
108 #define IX_NPEMH_TRACE2(LEVEL, STR, ARG1, ARG2) \
109     IX_NPEMH_TRACE6(LEVEL, STR, ARG1, ARG2, 0, 0, 0, 0)
110
111 /**
112  * @def IX_NPEMH_TRACE3
113  *
114  * @brief Trace macro taking 3 arguments.
115  */
116
117 #define IX_NPEMH_TRACE3(LEVEL, STR, ARG1, ARG2, ARG3) \
118     IX_NPEMH_TRACE6(LEVEL, STR, ARG1, ARG2, ARG3, 0, 0, 0)
119
120 /**
121  * @def IX_NPEMH_TRACE4
122  *
123  * @brief Trace macro taking 4 arguments.
124  */
125
126 #define IX_NPEMH_TRACE4(LEVEL, STR, ARG1, ARG2, ARG3, ARG4) \
127     IX_NPEMH_TRACE6(LEVEL, STR, ARG1, ARG2, ARG3, ARG4, 0, 0)
128
129 /**
130  * @def IX_NPEMH_TRACE5
131  *
132  * @brief Trace macro taking 5 arguments.
133  */
134
135 #define IX_NPEMH_TRACE5(LEVEL, STR, ARG1, ARG2, ARG3, ARG4, ARG5) \
136     IX_NPEMH_TRACE6(LEVEL, STR, ARG1, ARG2, ARG3, ARG4, ARG5, 0)
137
138 /**
139  * @def IX_NPEMH_TRACE6
140  *
141  * @brief Trace macro taking 6 arguments.
142  */
143
144 #define IX_NPEMH_TRACE6(LEVEL, STR, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \
145 { \
146     if (LEVEL <= IX_NPEMH_TRACE_LEVEL) \
147     { \
148         (void) ixOsalLog (LEVEL, IX_OSAL_LOG_DEV_STDOUT, (STR), \
149                           (int)(ARG1), (int)(ARG2), (int)(ARG3), \
150                           (int)(ARG4), (int)(ARG5), (int)(ARG6)); \
151     } \
152 }
153
154 /**
155  * @def IX_NPEMH_ERROR_REPORT
156  *
157  * @brief Error reporting facility.
158  */
159
160 #define IX_NPEMH_ERROR_REPORT(STR) \
161 { \
162     (void) ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDERR, \
163                       (STR), 0, 0, 0, 0, 0, 0); \
164 }
165
166 /* if we are running on XScale, i.e. real environment */
167 #if CPU==XSCALE
168
169 /**
170  * @def IX_NPEMH_REGISTER_READ
171  *
172  * @brief This macro reads a memory-mapped register.
173  */
174
175 #define IX_NPEMH_REGISTER_READ(registerAddress, value) \
176 { \
177     *value = IX_OSAL_READ_LONG(registerAddress); \
178 }
179
180 /**
181  * @def IX_NPEMH_REGISTER_READ_BITS
182  *
183  * @brief This macro partially reads a memory-mapped register.
184  */
185
186 #define IX_NPEMH_REGISTER_READ_BITS(registerAddress, value, mask) \
187 { \
188     *value = (IX_OSAL_READ_LONG(registerAddress) & mask); \
189 }
190
191 /**
192  * @def IX_NPEMH_REGISTER_WRITE
193  *
194  * @brief This macro writes a memory-mapped register.
195  */
196
197 #define IX_NPEMH_REGISTER_WRITE(registerAddress, value) \
198 { \
199     IX_OSAL_WRITE_LONG(registerAddress, value); \
200 }
201
202 /**
203  * @def IX_NPEMH_REGISTER_WRITE_BITS
204  *
205  * @brief This macro partially writes a memory-mapped register.
206  */
207
208 #define IX_NPEMH_REGISTER_WRITE_BITS(registerAddress, value, mask) \
209 { \
210     UINT32 orig = IX_OSAL_READ_LONG(registerAddress); \
211     orig &= (~mask); \
212     orig |= (value & mask); \
213     IX_OSAL_WRITE_LONG(registerAddress, orig); \
214 }
215
216
217 /* if we are running as a unit test */
218 #else /* #if CPU==XSCALE */
219
220 #include "IxNpeMhTestRegister.h"
221
222 /**
223  * @def IX_NPEMH_REGISTER_READ
224  *
225  * @brief This macro reads a memory-mapped register.
226  */
227
228 #define IX_NPEMH_REGISTER_READ(registerAddress, value) \
229 { \
230     ixNpeMhTestRegisterRead (registerAddress, value); \
231 }
232
233 /**
234  * @def IX_NPEMH_REGISTER_READ_BITS
235  *
236  * @brief This macro partially reads a memory-mapped register.
237  */
238
239 #define IX_NPEMH_REGISTER_READ_BITS(registerAddress, value, mask) \
240 { \
241     ixNpeMhTestRegisterReadBits (registerAddress, value, mask); \
242 }
243
244 /**
245  * @def IX_NPEMH_REGISTER_WRITE
246  *
247  * @brief This macro writes a memory-mapped register.
248  */
249
250 #define IX_NPEMH_REGISTER_WRITE(registerAddress, value) \
251 { \
252     ixNpeMhTestRegisterWrite (registerAddress, value); \
253 }
254
255 /**
256  * @def IX_NPEMH_REGISTER_WRITE_BITS
257  *
258  * @brief This macro partially writes a memory-mapped register.
259  */
260
261 #define IX_NPEMH_REGISTER_WRITE_BITS(registerAddress, value, mask) \
262 { \
263     ixNpeMhTestRegisterWriteBits (registerAddress, value, mask); \
264 }
265
266 #endif /* #if CPU==XSCALE */
267
268 #endif /* IXNPEMHMACROS_P_H */
269
270 /**
271  * @} defgroup IxNpeMhMacros_p
272  */