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