Mercurial > flash_v2
annotate packages/hal/common/current/include/pkgconf/hal.h @ 56:755351606154 ecos-sw-1999-12-01
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
| author | jlarmour |
|---|---|
| date | Wed, 01 Dec 1999 18:33:37 +0000 |
| parents | f10165814f1e |
| children | 7a6ac9edc838 |
| rev | line source |
|---|---|
| 0 | 1 #ifndef CYGONCE_PKGCONF_HAL_H |
| 2 #define CYGONCE_PKGCONF_HAL_H | |
| 3 // ==================================================================== | |
| 4 // | |
| 2 | 5 // pkgconf/hal.h |
| 0 | 6 // |
| 2 | 7 // HAL configuration file |
| 0 | 8 // |
| 9 // ==================================================================== | |
| 10 //####COPYRIGHTBEGIN#### | |
| 11 // | |
| 12 // ------------------------------------------- | |
| 13 // The contents of this file are subject to the Cygnus eCos Public License | |
| 14 // Version 1.0 (the "License"); you may not use this file except in | |
| 15 // compliance with the License. You may obtain a copy of the License at | |
| 16 // http://sourceware.cygnus.com/ecos | |
| 17 // | |
| 18 // Software distributed under the License is distributed on an "AS IS" | |
| 19 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the | |
| 20 // License for the specific language governing rights and limitations under | |
| 21 // the License. | |
| 22 // | |
| 23 // The Original Code is eCos - Embedded Cygnus Operating System, released | |
| 24 // September 30, 1998. | |
| 25 // | |
| 26 // The Initial Developer of the Original Code is Cygnus. Portions created | |
| 2 | 27 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. |
| 0 | 28 // ------------------------------------------- |
| 29 // | |
| 30 //####COPYRIGHTEND#### | |
| 31 // ==================================================================== | |
| 32 //#####DESCRIPTIONBEGIN#### | |
| 33 // | |
| 2 | 34 // Author(s): nickg, jskov |
| 35 // Contributors: nickg, jskov, | |
| 36 // jlarmour | |
| 37 // Date: 1999-01-21 | |
| 38 // Purpose: To allow the user to edit HAL configuration options. | |
| 0 | 39 // Description: |
| 40 // | |
| 41 //####DESCRIPTIONEND#### | |
| 42 // | |
| 43 // ==================================================================== | |
| 44 | |
| 45 /* --------------------------------------------------------------------- | |
| 46 * Some of the HAL configuration options depend on global options, | |
| 47 * so it is necessary to include the global options first. | |
| 48 */ | |
| 49 | |
| 50 #include <pkgconf/system.h> | |
| 51 | |
| 52 /* --------------------------------------------------------------------- | |
| 53 Define an overall package for the HAL. All other HAL packages | |
| 54 live below this. | |
| 55 | |
| 56 {{CFG_DATA | |
| 57 | |
| 58 cdl_package CYGPKG_HAL { | |
| 59 display "eCos HAL" | |
| 60 type dummy | |
| 61 description " | |
| 62 The eCos HAL package provide a porting layer for | |
| 63 higher-level parts of the system such as the kernel and the | |
| 64 C library. Each installation should have HAL packages for | |
| 65 one or more architectures, and for each architecture there | |
| 66 may be one or more supported platforms. It is necessary to | |
| 67 select one target architecture and one platform for that | |
| 68 architecture. There are also a number of configuration | |
| 69 options that are common to all HAL packages." | |
| 2 | 70 doc ref/ecos-ref/the-ecos-hardware-abstraction-layer-hal.html |
| 0 | 71 } |
| 72 | |
| 73 }}CFG_DATA */ | |
| 74 | |
| 75 /* --------------------------------------------------------------------- | |
| 76 * The platform-independent HAL configuration options go here, | |
| 77 * inside a component CYGPKG_HAL_COMMON. In practice some of the | |
| 78 * options are not completely platform-independent, but they are | |
| 79 * likely to be available on the vast majority of platforms and | |
| 80 * it is more convenient to provide them by default and let the | |
| 81 * appropriate platforms disable them (probably via a suitable | |
| 82 * interface). | |
| 83 * | |
| 84 * The common component is subdivided into components for | |
| 85 * interrupt handling, thread context, and rom monitor/gdb support. | |
| 86 | |
| 87 {{CFG_DATA | |
| 88 | |
| 89 cdl_component CYGPKG_HAL_COMMON { | |
| 90 display "Platform-independent HAL options" | |
| 91 parent CYGPKG_HAL | |
| 92 type dummy | |
| 93 description " | |
| 94 A number of configuration options are common to most or all | |
| 95 HAL packages, for example options controlling how much state | |
| 96 should be saved during a context switch. The implementations | |
| 97 of these options will vary from architecture to architecture." | |
| 98 } | |
| 99 | |
| 100 cdl_option CYGFUN_HAL_COMMON_KERNEL_SUPPORT { | |
| 101 display "Provide eCos kernel support" | |
| 102 parent CYGPKG_HAL_COMMON | |
| 103 requires CYGPKG_KERNEL | |
| 104 description " | |
| 105 The HAL can be configured to either support the full eCos | |
| 106 kernel, or to support only very simple applications which do | |
| 107 not require a full kernel. If kernel support is not required | |
| 108 then some of the startup, exception, and interrupt handling | |
| 109 code can be eliminated." | |
| 110 } | |
| 111 | |
|
54
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
112 cdl_option CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
113 display "Disable GDB protocol for diagnostic output" |
|
56
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
114 parent CYGPKG_HAL_COMMON |
|
54
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
115 description " |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
116 This option forces diagnostic output to not use the GDB |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
117 protocol. Most programs will use the GDB protocol for |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
118 diagnostic I/O because of the environment. This option |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
119 allows for an explicit override in these cases." |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
120 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
121 |
| 0 | 122 }}CFG_DATA */ |
| 123 #define CYGFUN_HAL_COMMON_KERNEL_SUPPORT | |
|
54
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
124 #undef CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
125 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
126 #ifdef CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
127 #if !defined(CYGPKG_HAL_ARM) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
128 #err GDB protocol cannot be explicitly disabled for this platform. |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
129 #endif |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
38
diff
changeset
|
130 #endif |
| 0 | 131 |
| 132 /* {{CFG_DATA | |
| 133 | |
| 134 cdl_component CYGPKG_HAL_COMMON_INTERRUPTS { | |
| 135 display "HAL interrupt handling" | |
| 136 parent CYGPKG_HAL_COMMON | |
| 137 type dummy | |
| 138 description " | |
| 139 A number of configuration options related to interrupt | |
| 140 handling are common to most or all HAL packages, even though | |
| 141 the implementations will vary from architecture to | |
| 142 architecture." | |
| 143 } | |
| 144 | |
| 145 cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK { | |
| 146 display "Use separate stack for interrupts" | |
| 147 parent CYGPKG_HAL_COMMON_INTERRUPTS | |
| 148 description " | |
| 149 When an interrupt occurs this interrupt can be handled either | |
| 150 on the current stack or on a separate stack maintained by the | |
| 151 HAL. Using a separate stack requires a small number of extra | |
| 152 instructions in the interrupt handling code, but it has the | |
| 153 advantage that it is no longer necessary to allow extra space | |
| 154 in every thread stack for the interrupt handlers. The amount | |
| 155 of extra space required depends on the interrupt handlers | |
| 156 that are being used." | |
| 157 } | |
| 158 | |
| 159 # NOTE: various parts of the system such as device drivers should | |
| 160 # impose lower bounds on this. The actual lower bound depends on a | |
| 161 # platform-specific value for startup overheads, and the minimum | |
| 162 # sizes specified by the various device drivers. If interrupts are | |
| 163 # not handled on a separate stack then only the startup overheads | |
| 164 # are significant. If nested interrupts are disabled then the | |
| 165 # lower bound is the maximum of the individual sizes, otherwise | |
| 166 # it is the sum of these sizes. It is not currently possible to | |
| 167 # express a relationship like this. | |
| 168 cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE { | |
| 169 display "Interrupt stack size" | |
| 170 parent CYGPKG_HAL_COMMON_INTERRUPTS | |
| 171 type count | |
| 172 legal_values 1024 to 1048576 | |
| 173 description " | |
| 174 This configuration option specifies the stack size in bytes | |
| 175 for the interrupt stack. Typically this should be a multiple | |
| 176 of 16, but the exact requirements will vary from architecture | |
| 177 to architecture. The interrupt stack serves two separate | |
| 178 purposes. It is used as the stack during system | |
| 179 initialization. In addition, if the interrupt system is | |
| 180 configured to use a separate stack then all interrupts will | |
| 181 be processed on this stack. The exact memory requirements | |
| 182 will vary from application to application, and will depend | |
| 183 heavily on whether or not other interrupt-related options, | |
| 184 for example nested interrupts, are enabled." | |
| 185 } | |
| 186 | |
| 187 cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING { | |
| 188 display "Allow nested interrupts" | |
| 189 parent CYGPKG_HAL_COMMON_INTERRUPTS | |
| 190 description " | |
| 191 When an interrupt occurs the HAL interrupt handling code can | |
| 192 either leave interrupts disabled for the duration of the | |
| 193 interrupt handling code, or by doing some extra work it can | |
| 194 reenable interrupts before invoking the interrupt handler and | |
| 195 thus allow nested interrupts to happen. If all the interrupt | |
| 196 handlers being used are small and do not involve any loops | |
| 197 then it is usually better to disallow nested interrupts. | |
| 198 However if any of the interrupt handlers are more complicated | |
| 199 than nested interrupts will usually be required." | |
| 200 } | |
| 201 | |
| 202 cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT { | |
| 203 display "Save minimum context on interrupt" | |
| 204 parent CYGPKG_HAL_COMMON_INTERRUPTS | |
| 205 description " | |
| 206 The HAL interrupt handling code can exploit the calling conventions | |
| 207 defined for a given architecture to reduce the amount of state | |
| 208 that has to be saved. Generally this improves performance and | |
| 209 reduces code size. However it can make source-level debugging | |
| 210 more difficult. | |
| 211 " | |
| 212 } | |
| 213 | |
| 214 cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN { | |
| 215 display "Chain all interrupts together" | |
| 216 parent CYGPKG_HAL_COMMON_INTERRUPTS | |
| 217 description " | |
| 218 Interrupts can be attached to vectors either singly, or be | |
| 219 chained together. The latter is necessary if there is no way | |
| 220 of discovering which device has interrupted without | |
| 221 inspecting the device itself. It can also reduce the amount | |
| 222 of RAM needed for interrupt decoding tables and code." | |
| 223 } | |
| 224 | |
|
38
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
225 cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS { |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
226 display "Ignore spurious [fleeting] interrupts" |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
227 parent CYGPKG_HAL_COMMON_INTERRUPTS |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
228 description " |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
229 On some hardware, interrupt sources may not be de-bounced or |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
230 de-glitched. Rather than try to handle these interrupts (no |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
231 handling may be possible), this option allows the HAL to simply |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
232 ignore them. In most cases, if the interrupt is real it will |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
233 reoccur in a detectable form." |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
234 } |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
235 |
|
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
236 |
| 0 | 237 }}CFG_DATA |
| 238 | |
| 239 */ | |
| 240 | |
| 241 #define CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK | |
| 242 #define CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE 4096 | |
| 243 #undef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING | |
| 244 #define CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT | |
| 245 #undef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN | |
|
38
e7ba79f6d3a8
Merge from eCos master repository on 1999-09-23-20:10:25-BST
jlarmour
parents:
36
diff
changeset
|
246 #undef CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS |
| 0 | 247 |
| 248 | |
| 249 /* {{CFG_DATA | |
| 250 | |
| 251 cdl_component CYGPKG_HAL_COMMON_CONTEXT { | |
| 252 display "HAL context switch support" | |
| 253 parent CYGPKG_HAL_COMMON | |
| 254 type dummy | |
| 255 description " | |
| 256 A number of configuration options related to thread contexts | |
| 257 are common to most or all HAL packages, even though the | |
| 258 implementations will vary from architecture to architecture." | |
| 259 } | |
| 260 | |
| 261 cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM { | |
| 262 display "Use minimum thread context" | |
| 263 parent CYGPKG_HAL_COMMON_CONTEXT | |
| 264 description " | |
| 265 The thread context switch code can exploit the calling conventions | |
| 266 defined for a given architecture to reduce the amount of state | |
| 267 that has to be saved during a context switch. Generally this | |
| 268 improves performance and reduces code size. However it can make | |
| 269 source-level debugging more difficult." | |
| 270 } | |
| 271 | |
| 272 }}CFG_DATA */ | |
| 273 #define CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM | |
| 274 | |
| 275 /* {{CFG_DATA | |
| 276 | |
| 277 # NOTE: The requirement for kernel exception support is bogus in that | |
| 278 # the user can supply a deliver_exception function herself. In that | |
| 279 # case, however, it is easy to force the kernel option off while leaving | |
| 280 # this one on. Having the requirement prevents accidental invalid | |
| 281 # configurations of the kernel. | |
| 282 cdl_option CYGPKG_HAL_EXCEPTIONS { | |
| 283 display "HAL exception support" | |
| 284 parent CYGPKG_HAL_COMMON | |
| 285 requires CYGPKG_KERNEL_EXCEPTIONS | |
| 286 description " | |
| 287 When a processor exception occurs, for example an attempt to | |
| 288 execute an illegal instruction or to perform a divide by | |
| 289 zero, this exception may be handled in a number of different | |
| 290 ways. If the target system has gdb support then typically | |
| 291 the exception will be handled by gdb code. Otherwise if the | |
| 292 HAL exception support is enabled then the HAL will invoke a | |
| 293 routine deliver_exception(). Typically this routine will be | |
| 294 provided by the eCos kernel, but it is possible for | |
| 295 application code to provide its own implementation. If the | |
| 296 HAL exception support is not enabled and a processor | |
| 297 exception occurs then the behaviour of the system is | |
| 298 undefined. | |
| 299 " | |
| 300 } | |
| 301 | |
| 302 }}CFG_DATA */ | |
| 303 #define CYGPKG_HAL_EXCEPTIONS | |
| 304 | |
| 2 | 305 /* {{CFG_DATA |
| 306 | |
| 307 cdl_option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG { | |
| 308 display "Stop calling constructors early" | |
| 309 description "This option supports environments where some constructors | |
| 310 must be run in the context of a thread rather than at | |
| 311 simple system startup time. A boolean flag named | |
| 312 cyg_hal_stop_constructors is set to 1 when constructors | |
| 313 should no longer be invoked. It is up to some other | |
| 314 package to deal with the rest of the constructors. | |
| 315 In the current version this is only possible with the | |
| 316 C library." | |
| 317 type boolean | |
| 318 requires CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS | |
| 319 parent CYGPKG_HAL_COMMON | |
| 320 } | |
| 321 | |
| 322 }}CFG_DATA */ | |
| 323 | |
| 324 #undef CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG | |
| 0 | 325 |
|
56
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
326 /* {{CFG_DATA |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
327 |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
328 cdl_option CYGSEM_HAL_INSTALL_MMU_TABLES { |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
329 display "Install MMU tables." |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
330 description "This option controls whether this application installs |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
331 it's own Memory Management Unit (MMU) tables, or relies on the |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
332 existing environment to run." |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
333 type boolean |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
334 parent CYGPKG_HAL_COMMON |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
335 } |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
336 |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
337 cdl_option CYGSEM_HAL_STATIC_MMU_TABLES { |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
338 display "Use static MMU tables." |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
339 description "This option defines an environment where any Memory |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
340 Management Unit (MMU) tables are constant. Normally used by ROM |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
341 based environments, this provides a way to save RAM usage which |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
342 would otherwise be required for these tables." |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
343 type boolean |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
344 requires CYGSEM_HAL_INSTALL_MMU_TABLES |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
345 parent CYGPKG_HAL_COMMON |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
346 } |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
347 |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
348 }}CFG_DATA */ |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
349 |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
350 #define CYGSEM_HAL_INSTALL_MMU_TABLES |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
351 #undef CYGSEM_HAL_STATIC_MMU_TABLES |
|
755351606154
Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents:
54
diff
changeset
|
352 |
| 0 | 353 /* --------------------------------------------------------------------- |
| 354 * Options related to source-level debugging and diagnostics. | |
| 355 | |
| 356 {{CFG_DATA | |
| 357 | |
| 358 cdl_component CYGPKG_HAL_DEBUG { | |
| 359 display "Source-level debugging support" | |
| 360 type dummy | |
| 361 parent CYGPKG_HAL | |
| 362 description " | |
| 363 If the source level debugger gdb is to be used for debugging | |
| 364 application code then it may be necessary to configure in support | |
| 365 for this in the HAL." | |
| 366 } | |
| 367 | |
| 368 cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS { | |
| 369 display "Include GDB stubs in HAL" | |
| 370 parent CYGPKG_HAL_DEBUG | |
| 371 requires !CYGPKG_HAL_POWERPC_SIM | |
|
36
e97d78785e2d
Merge from eCos master repository on 1999-09-12-15:40:34-BST
jlarmour
parents:
34
diff
changeset
|
372 requires !CYGPKG_HAL_MN10300_AM31_SIM |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
373 requires !CYGPKG_HAL_MIPS_SIM |
| 2 | 374 requires !CYGPKG_HAL_I386_LINUX |
| 375 requires !CYGPKG_HAL_SPARCLITE | |
| 0 | 376 description " |
| 377 This option causes a set of GDB stubs to be included into the | |
| 378 system. On some target systems the GDB support will be | |
| 379 provided by other means, for example by a ROM monitor. On | |
| 380 other targets, especially when building a ROM-booting system, | |
| 381 the necessary support has to go into the target library | |
| 382 itself." | |
| 383 } | |
| 384 | |
| 2 | 385 cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT { |
|
18
7253dcc42a09
Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents:
16
diff
changeset
|
386 display "Include GDB external break support for stubs" |
|
20
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
18
diff
changeset
|
387 parent CYGPKG_HAL_DEBUG |
| 2 | 388 requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
389 requires !CYGPKG_HAL_MIPS_TX39_JMR3904 |
| 2 | 390 requires !CYGPKG_HAL_POWERPC_FADS |
|
16
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
391 requires !CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT |
| 2 | 392 description " |
| 393 This option causes the GDB stub to add a serial interrupt handler | |
| 394 which will listen for GDB break packets. This lets you stop the | |
| 395 target asynchronously when using GDB, usually by hitting Control+C | |
|
18
7253dcc42a09
Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents:
16
diff
changeset
|
396 or pressing the STOP button. This option differs from |
|
7253dcc42a09
Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents:
16
diff
changeset
|
397 CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT in that it is used when |
|
7253dcc42a09
Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents:
16
diff
changeset
|
398 GDB stubs are present." |
| 2 | 399 } |
| 400 | |
|
16
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
401 cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT { |
|
18
7253dcc42a09
Merge from eCos master repository on 1999-06-25-15:31:50-BST
jlarmour
parents:
16
diff
changeset
|
402 display "Include GDB external break support when no stubs" |
|
16
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
403 parent CYGPKG_HAL_DEBUG |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
404 requires !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
405 description " |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
406 This option adds an interrupt handler for the GDB serial line |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
407 which will listen for GDB break packets. This lets you stop the |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
408 target asynchronously when using GDB, usually by hitting Control+C |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
409 or pressing the STOP button. This option differs from |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
410 CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT in that it is used when the GDB |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
411 stubs are NOT present." |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
412 } |
|
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
413 |
| 0 | 414 cdl_option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT { |
| 415 display "Include GDB multi-threading debug support" | |
| 416 parent CYGPKG_HAL_DEBUG | |
| 417 requires CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT | |
| 418 description " | |
| 419 This option enables some extra HAL code which is needed | |
| 420 to support multi-threaded source level debugging." | |
| 421 } | |
| 422 | |
| 423 }}CFG_DATA */ | |
| 424 | |
| 2 | 425 #undef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS |
| 426 #undef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT | |
|
16
4f2df4ab82c8
Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents:
10
diff
changeset
|
427 #define CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT |
| 0 | 428 #define CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT |
| 429 | |
| 430 /* | |
| 431 * NOTE: | |
| 432 * | |
| 433 * Right now there is no easy way to express the ROM monitor options | |
| 434 * in CDL. The problem is that the default values depend on the | |
| 435 * target platform and on the desired start-up. It is possible to | |
| 436 * produce something that will work correctly in a clean world, but | |
| 437 * not something more general. | |
| 438 * | |
| 439 * One possibility is to duplicate the relevant options in the various | |
| 440 * platform HAL packages, renaming them to avoid collisions. This appears | |
| 441 * to be feasible with the current sources because the rom monitor options | |
| 442 * are only referenced in the HAL packages. It is not clear whether or not | |
| 443 * this will continue to be the case. */ | |
| 444 | |
| 445 /* | |
| 446 * Some development boards come with a ROM monitor that provides | |
| 447 * download and debug facilities. Such ROMs may also supply interrupt | |
| 448 * redirection and IO facilities. The following option causes the HAL | |
| 449 * to integrate with the ROM monitor present on the configured | |
| 450 * platform. If this option is not defined, the monitor will not be | |
| 451 * used. Where there is more than one ROM monitor for a specific | |
| 452 * platform, a subsidiary define should identify the appropriate monitor | |
| 453 * type. | |
| 454 */ | |
| 455 | |
| 456 //#define CYG_HAL_USE_ROM_MONITOR | |
| 457 | |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
458 #if defined(CYG_HAL_MIPS_TX39_JMR3904) && defined(CYG_HAL_STARTUP_RAM) |
| 0 | 459 #define CYG_HAL_USE_ROM_MONITOR |
| 460 #define CYG_HAL_USE_ROM_MONITOR_CYGMON | |
| 461 #endif | |
|
30
641b639be825
Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents:
20
diff
changeset
|
462 #if defined(CYG_HAL_MN10300_AM31_STDEVAL1) && defined(CYG_HAL_STARTUP_RAM) |
| 0 | 463 #define CYG_HAL_USE_ROM_MONITOR |
| 464 #define CYG_HAL_USE_ROM_MONITOR_CYGMON | |
| 465 #endif | |
| 466 | |
| 467 #ifdef CYG_HAL_USE_ROM_MONITOR | |
| 468 | |
| 469 //#define CYG_HAL_USE_ROM_MONITOR_SLOAD | |
| 470 //#define CYG_HAL_USE_ROM_MONITOR_GDB_STUBS | |
| 471 //#define CYG_HAL_USE_ROM_MONITOR_CYGMON | |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
472 //#define CYG_HAL_USE_ROM_MONITOR_PMON |
| 0 | 473 |
| 474 #endif | |
| 475 | |
| 476 /* --------------------------------------------------------------------- | |
|
10
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
477 * This option decides whether we are going to BE a ROM monitor. On |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
478 * some targets and platforms we provide a simple ROM monitor (the GDB |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
479 * STUBS monitor) by means of a simple configuration of the HAL and |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
480 * GDB stubs. |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
481 * This option has no CDL since it is only set by a special configuration |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
482 * permutation used for building a monitor. |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
483 */ |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
484 |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
485 #undef CYG_HAL_ROM_MONITOR |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
486 |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
487 /* --------------------------------------------------------------------- |
| 0 | 488 * |
| 489 * The section below deals with some inferences about package/feature | |
| 490 * presence that are not yet supported by the full external configuration | |
| 491 * tool; they are NOT user configuration, and you should NOT edit them. | |
| 492 */ | |
| 493 | |
| 494 /* | |
| 495 * CYG_HAL_<TARGET> and CYG_HAL_<TARGET>_<PLATFORM> are generated by | |
| 496 * pkgconf, using the information from the targets file. | |
| 497 * | |
| 498 * NOTE: Currently the code also needs these #defines. | |
| 499 */ | |
| 500 #ifdef CYG_HAL_POWERPC_COGENT | |
| 2 | 501 # define CYG_HAL_POWERPC_MPC8xx |
| 502 # define CYG_HAL_POWERPC_MPC860 | |
| 503 # undef CYG_HAL_POWERPC_MPC850 | |
| 504 # undef CYG_HAL_POWERPC_MPC823 | |
| 505 #endif | |
| 506 #ifdef CYG_HAL_POWERPC_FADS | |
| 507 # define CYG_HAL_POWERPC_MPC8xx | |
| 508 # define CYG_HAL_POWERPC_MPC860 | |
| 0 | 509 #endif |
|
32
5af43b635655
Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
30
diff
changeset
|
510 #ifdef CYG_HAL_POWERPC_MBX |
|
5af43b635655
Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
30
diff
changeset
|
511 # define CYG_HAL_POWERPC_MPC8xx |
|
5af43b635655
Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
30
diff
changeset
|
512 # define CYG_HAL_POWERPC_MPC860 |
|
5af43b635655
Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
30
diff
changeset
|
513 # define CYG_HAL_POWERPC_COPY_VECTORS |
|
5af43b635655
Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents:
30
diff
changeset
|
514 #endif |
| 0 | 515 #ifdef CYG_HAL_POWERPC_SIM |
| 2 | 516 # define CYG_HAL_POWERPC_MPC603 |
| 0 | 517 #endif |
| 518 | |
|
10
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
6
diff
changeset
|
519 |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
520 #include CYGBLD_HAL_TARGET_H |
|
34
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
32
diff
changeset
|
521 #include CYGBLD_HAL_PLATFORM_H |
| 0 | 522 |
| 523 /* -------------------------------------------------------------------*/ | |
| 524 #endif /* CYGONCE_PKGCONF_HAL_H */ | |
| 525 /* EOF hal.h */ |
