annotate packages/hal/common/current/include/pkgconf/hal.h @ 34:29bc183297e1 ecos-sw-1999-09-02

Merge from eCos master repository on 1999-09-02-16:26:10-BST
author jlarmour
date Thu, 02 Sep 1999 16:11:22 +0000
parents 5af43b635655
children e97d78785e2d
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112 }}CFG_DATA */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 #define CYGFUN_HAL_COMMON_KERNEL_SUPPORT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115 /* {{CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117 cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118 display "HAL interrupt handling"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 parent CYGPKG_HAL_COMMON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 type dummy
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
122 A number of configuration options related to interrupt
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
123 handling are common to most or all HAL packages, even though
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 the implementations will vary from architecture to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125 architecture."
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
128 cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
129 display "Use separate stack for interrupts"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
130 parent CYGPKG_HAL_COMMON_INTERRUPTS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
131 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
132 When an interrupt occurs this interrupt can be handled either
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
133 on the current stack or on a separate stack maintained by the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
134 HAL. Using a separate stack requires a small number of extra
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135 instructions in the interrupt handling code, but it has the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 advantage that it is no longer necessary to allow extra space
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137 in every thread stack for the interrupt handlers. The amount
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
138 of extra space required depends on the interrupt handlers
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139 that are being used."
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142 # NOTE: various parts of the system such as device drivers should
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 # impose lower bounds on this. The actual lower bound depends on a
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144 # platform-specific value for startup overheads, and the minimum
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
145 # sizes specified by the various device drivers. If interrupts are
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146 # not handled on a separate stack then only the startup overheads
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 # are significant. If nested interrupts are disabled then the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148 # lower bound is the maximum of the individual sizes, otherwise
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149 # 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
150 # express a relationship like this.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
151 cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152 display "Interrupt stack size"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
153 parent CYGPKG_HAL_COMMON_INTERRUPTS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 type count
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
155 legal_values 1024 to 1048576
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157 This configuration option specifies the stack size in bytes
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158 for the interrupt stack. Typically this should be a multiple
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159 of 16, but the exact requirements will vary from architecture
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160 to architecture. The interrupt stack serves two separate
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 purposes. It is used as the stack during system
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162 initialization. In addition, if the interrupt system is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
163 configured to use a separate stack then all interrupts will
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164 be processed on this stack. The exact memory requirements
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165 will vary from application to application, and will depend
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 heavily on whether or not other interrupt-related options,
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167 for example nested interrupts, are enabled."
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170 cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 display "Allow nested interrupts"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
172 parent CYGPKG_HAL_COMMON_INTERRUPTS
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 When an interrupt occurs the HAL interrupt handling code can
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175 either leave interrupts disabled for the duration of the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 interrupt handling code, or by doing some extra work it can
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177 reenable interrupts before invoking the interrupt handler and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 thus allow nested interrupts to happen. If all the interrupt
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
179 handlers being used are small and do not involve any loops
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180 then it is usually better to disallow nested interrupts.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
181 However if any of the interrupt handlers are more complicated
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182 than nested interrupts will usually be required."
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185 cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186 display "Save minimum context on interrupt"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187 parent CYGPKG_HAL_COMMON_INTERRUPTS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 The HAL interrupt handling code can exploit the calling conventions
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190 defined for a given architecture to reduce the amount of state
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
191 that has to be saved. Generally this improves performance and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 reduces code size. However it can make source-level debugging
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193 more difficult.
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197 cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
198 display "Chain all interrupts together"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199 parent CYGPKG_HAL_COMMON_INTERRUPTS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
201 Interrupts can be attached to vectors either singly, or be
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202 chained together. The latter is necessary if there is no way
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
203 of discovering which device has interrupted without
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
204 inspecting the device itself. It can also reduce the amount
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205 of RAM needed for interrupt decoding tables and code."
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 }}CFG_DATA
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212 #define CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213 #define CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE 4096
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214 #undef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
215 #define CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 #undef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219 /* {{CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221 cdl_component CYGPKG_HAL_COMMON_CONTEXT {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 display "HAL context switch support"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 parent CYGPKG_HAL_COMMON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224 type dummy
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 A number of configuration options related to thread contexts
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
227 are common to most or all HAL packages, even though the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 implementations will vary from architecture to architecture."
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231 cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232 display "Use minimum thread context"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233 parent CYGPKG_HAL_COMMON_CONTEXT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235 The thread context switch code can exploit the calling conventions
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236 defined for a given architecture to reduce the amount of state
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237 that has to be saved during a context switch. Generally this
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
238 improves performance and reduces code size. However it can make
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
239 source-level debugging more difficult."
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242 }}CFG_DATA */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
243 #define CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
244
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
245 /* {{CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
246
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
247 # NOTE: The requirement for kernel exception support is bogus in that
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
248 # the user can supply a deliver_exception function herself. In that
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249 # 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
250 # this one on. Having the requirement prevents accidental invalid
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 # configurations of the kernel.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 cdl_option CYGPKG_HAL_EXCEPTIONS {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 display "HAL exception support"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
254 parent CYGPKG_HAL_COMMON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
255 requires CYGPKG_KERNEL_EXCEPTIONS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257 When a processor exception occurs, for example an attempt to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 execute an illegal instruction or to perform a divide by
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259 zero, this exception may be handled in a number of different
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260 ways. If the target system has gdb support then typically
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261 the exception will be handled by gdb code. Otherwise if the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
262 HAL exception support is enabled then the HAL will invoke a
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
263 routine deliver_exception(). Typically this routine will be
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264 provided by the eCos kernel, but it is possible for
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265 application code to provide its own implementation. If the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
266 HAL exception support is not enabled and a processor
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267 exception occurs then the behaviour of the system is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
268 undefined.
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
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 CYGPKG_HAL_EXCEPTIONS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
274
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
275 /* {{CFG_DATA
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
276
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
277 cdl_option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG {
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
278 display "Stop calling constructors early"
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
279 description "This option supports environments where some constructors
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
280 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
281 simple system startup time. A boolean flag named
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
282 cyg_hal_stop_constructors is set to 1 when constructors
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
283 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
284 package to deal with the rest of the constructors.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
285 In the current version this is only possible with the
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
286 C library."
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
287 type boolean
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
288 requires CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
289 parent CYGPKG_HAL_COMMON
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
290 }
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
291
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
292 }}CFG_DATA */
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
293
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
294 #undef CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
295
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
296 /* ---------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
297 * Options related to source-level debugging and diagnostics.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
298
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
299 {{CFG_DATA
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 cdl_component CYGPKG_HAL_DEBUG {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
302 display "Source-level debugging support"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
303 type dummy
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
304 parent CYGPKG_HAL
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
305 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
306 If the source level debugger gdb is to be used for debugging
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
307 application code then it may be necessary to configure in support
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
308 for this in the HAL."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
309 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
310
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
311 cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
312 display "Include GDB stubs in HAL"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
313 parent CYGPKG_HAL_DEBUG
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
314 requires !CYGPKG_HAL_POWERPC_SIM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
315 requires !CYGPKG_HAL_MN10300_SIM
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents: 2
diff changeset
316 requires !CYGPKG_HAL_MIPS_SIM
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
317 requires !CYGPKG_HAL_I386_LINUX
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
318 requires !CYGPKG_HAL_SPARCLITE
0
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 a set of GDB stubs to be included into the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
321 system. On some target systems the GDB support will be
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
322 provided by other means, for example by a ROM monitor. On
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
323 other targets, especially when building a ROM-booting system,
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
324 the necessary support has to go into the target library
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
325 itself."
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
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
328 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
329 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
330 parent CYGPKG_HAL_DEBUG
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
331 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
332 requires !CYGPKG_HAL_MIPS_TX39_JMR3904
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
333 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
334 requires !CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
335 description "
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
336 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
337 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
338 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
339 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
340 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
341 GDB stubs are present."
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
342 }
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
343
16
4f2df4ab82c8 Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents: 10
diff changeset
344 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
345 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
346 parent CYGPKG_HAL_DEBUG
4f2df4ab82c8 Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents: 10
diff changeset
347 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
348 description "
4f2df4ab82c8 Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents: 10
diff changeset
349 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
350 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
351 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
352 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
353 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
354 stubs are NOT present."
4f2df4ab82c8 Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents: 10
diff changeset
355 }
4f2df4ab82c8 Merge from eCos master repository on 1999-06-18-15:25:04-BST
jlarmour
parents: 10
diff changeset
356
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
357 cdl_option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
358 display "Include GDB multi-threading debug support"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
359 parent CYGPKG_HAL_DEBUG
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
360 requires CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
361 description "
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
362 This option enables some extra HAL code which is needed
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
363 to support multi-threaded source level debugging."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
364 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
365
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
366 }}CFG_DATA */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
367
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
368 #undef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
369 #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
370 #define CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
371 #define CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
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 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
374 * NOTE:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
375 *
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
376 * 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
377 * in CDL. The problem is that the default values depend on the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
378 * target platform and on the desired start-up. It is possible to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
379 * produce something that will work correctly in a clean world, but
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
380 * not something more general.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
381 *
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
382 * One possibility is to duplicate the relevant options in the various
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
383 * platform HAL packages, renaming them to avoid collisions. This appears
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
384 * to be feasible with the current sources because the rom monitor options
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
385 * 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
386 * this will continue to be the case. */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
387
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 * Some development boards come with a ROM monitor that provides
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
390 * download and debug facilities. Such ROMs may also supply interrupt
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
391 * redirection and IO facilities. The following option causes the HAL
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
392 * to integrate with the ROM monitor present on the configured
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
393 * platform. If this option is not defined, the monitor will not be
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
394 * used. Where there is more than one ROM monitor for a specific
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
395 * platform, a subsidiary define should identify the appropriate monitor
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
396 * type.
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 //#define CYG_HAL_USE_ROM_MONITOR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
400
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents: 2
diff changeset
401 #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
402 #define CYG_HAL_USE_ROM_MONITOR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
403 #define CYG_HAL_USE_ROM_MONITOR_CYGMON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
404 #endif
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 20
diff changeset
405 #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
406 #define CYG_HAL_USE_ROM_MONITOR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
407 #define CYG_HAL_USE_ROM_MONITOR_CYGMON
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
408 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
409
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
410 #ifdef CYG_HAL_USE_ROM_MONITOR
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 //#define CYG_HAL_USE_ROM_MONITOR_SLOAD
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
413 //#define CYG_HAL_USE_ROM_MONITOR_GDB_STUBS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
414 //#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
415 //#define CYG_HAL_USE_ROM_MONITOR_PMON
0
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 #endif
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 /* ---------------------------------------------------------------------
10
d3fbcdfa1b2f Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents: 6
diff changeset
420 * 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
421 * 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
422 * 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
423 * GDB stubs.
d3fbcdfa1b2f Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents: 6
diff changeset
424 * 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
425 * 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
426 */
d3fbcdfa1b2f Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents: 6
diff changeset
427
d3fbcdfa1b2f Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents: 6
diff changeset
428 #undef CYG_HAL_ROM_MONITOR
d3fbcdfa1b2f Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents: 6
diff changeset
429
d3fbcdfa1b2f Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents: 6
diff changeset
430 /* ---------------------------------------------------------------------
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
431 *
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
432 * The section below deals with some inferences about package/feature
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
433 * presence that are not yet supported by the full external configuration
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
434 * tool; they are NOT user configuration, and you should NOT edit them.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
435 */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
436
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
437 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
438 * CYG_HAL_<TARGET> and CYG_HAL_<TARGET>_<PLATFORM> are generated by
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
439 * pkgconf, using the information from the targets file.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
440 *
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
441 * NOTE: Currently the code also needs these #defines.
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 #ifdef CYG_HAL_POWERPC_COGENT
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
444 # define CYG_HAL_POWERPC_MPC8xx
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
445 # define CYG_HAL_POWERPC_MPC860
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
446 # undef CYG_HAL_POWERPC_MPC850
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
447 # undef CYG_HAL_POWERPC_MPC823
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
448 #endif
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
449 #ifdef CYG_HAL_POWERPC_FADS
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
450 # define CYG_HAL_POWERPC_MPC8xx
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
451 # define CYG_HAL_POWERPC_MPC860
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
452 #endif
32
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents: 30
diff changeset
453 #ifdef CYG_HAL_POWERPC_MBX
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents: 30
diff changeset
454 # define CYG_HAL_POWERPC_MPC8xx
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents: 30
diff changeset
455 # define CYG_HAL_POWERPC_MPC860
5af43b635655 Merge from eCos master repository on 1999-08-18-15:20:01-BST
jlarmour
parents: 30
diff changeset
456 # 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
457 #endif
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
458 #ifdef CYG_HAL_POWERPC_SIM
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
459 # define CYG_HAL_POWERPC_MPC603
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
460 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
461
10
d3fbcdfa1b2f Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents: 6
diff changeset
462
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents: 2
diff changeset
463 #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
464 #include CYGBLD_HAL_PLATFORM_H
0
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 #endif /* CYGONCE_PKGCONF_HAL_H */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
468 /* EOF hal.h */