annotate packages/hal/common/current/include/pkgconf/hal.h @ 0:3111d98ba7b3 ecos-v1_1-release

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