annotate packages/hal/common/current/include/pkgconf/hal.h @ 54:f10165814f1e ecos-sw-1999-11-19

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