]> git.karo-electronics.de Git - karo-tx-redboot.git/blob - packages/hal/i386/arch/v2_0/cdl/hal_i386.cdl
Initial revision
[karo-tx-redboot.git] / packages / hal / i386 / arch / v2_0 / cdl / hal_i386.cdl
1 # ====================================================================
2 #
3 #      hal_i386.cdl
4 #
5 #      i386 architectural HAL package configuration data
6 #
7 # ====================================================================
8 #####ECOSGPLCOPYRIGHTBEGIN####
9 ## -------------------------------------------
10 ## This file is part of eCos, the Embedded Configurable Operating System.
11 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12 ##
13 ## eCos is free software; you can redistribute it and/or modify it under
14 ## the terms of the GNU General Public License as published by the Free
15 ## Software Foundation; either version 2 or (at your option) any later version.
16 ##
17 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20 ## for more details.
21 ##
22 ## You should have received a copy of the GNU General Public License along
23 ## with eCos; if not, write to the Free Software Foundation, Inc.,
24 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25 ##
26 ## As a special exception, if other files instantiate templates or use macros
27 ## or inline functions from this file, or you compile this file and link it
28 ## with other works to produce a work based on this file, this file does not
29 ## by itself cause the resulting work to be covered by the GNU General Public
30 ## License. However the source code for this file must still be made available
31 ## in accordance with section (3) of the GNU General Public License.
32 ##
33 ## This exception does not invalidate any other reasons why a work based on
34 ## this file might be covered by the GNU General Public License.
35 ##
36 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37 ## at http://sources.redhat.com/ecos/ecos-license/
38 ## -------------------------------------------
39 #####ECOSGPLCOPYRIGHTEND####
40 # ====================================================================
41 ######DESCRIPTIONBEGIN####
42 #
43 # Author(s):      jskov
44 # Original data:  jskov
45 # Contributors:
46 # Date:           1999-11-01
47 #
48 #####DESCRIPTIONEND####
49 #
50 # ====================================================================
51
52 cdl_package CYGPKG_HAL_I386 {
53     display       "i386 architecture"
54     parent        CYGPKG_HAL
55     hardware
56     include_dir   cyg/hal
57     define_header hal_i386.h
58     description   "
59         The i386 architecture HAL package provides generic
60         support for this processor architecture. It is also
61         necessary to select a specific target platform HAL
62         package."
63
64     implements    CYGINT_PROFILE_HAL_MCOUNT
65     
66     compile       hal_misc.c context.S i386_stub.c hal_syscall.c
67
68     make {
69         <PREFIX>/lib/vectors.o : <PACKAGE>/src/vectors.S
70         $(CC) -Wp,-MD,vectors.tmp $(INCLUDE_PATH) $(CFLAGS) -c -o $@ $<
71         @echo $@ ": \\" > $(notdir $@).deps
72         @tail -n +2 vectors.tmp >> $(notdir $@).deps
73         @echo >> $(notdir $@).deps
74         @rm vectors.tmp
75     }
76
77     make {
78         <PREFIX>/lib/target.ld: <PACKAGE>/src/i386.ld
79         $(CC) -E -P -Wp,-MD,target.tmp -DEXTRAS=1 -xc $(INCLUDE_PATH) $(CFLAGS) -o $@ $<
80         @echo $@ ": \\" > $(notdir $@).deps
81         @tail -n +2 target.tmp >> $(notdir $@).deps
82         @echo >> $(notdir $@).deps
83         @rm target.tmp
84     }
85
86     cdl_component CYGPKG_HAL_SMP_SUPPORT {
87         display       "SMP support"
88         default_value 0
89         requires { CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0 }
90         
91         cdl_option CYGPKG_HAL_SMP_CPU_MAX {
92             display       "Max number of CPUs supported"
93             flavor        data
94             default_value 2
95         }
96     }
97         
98     cdl_component CYGHWR_HAL_I386_FPU {
99         display       "Enable I386 FPU support"
100         default_value 1
101         description   "This component enables support for the
102                       I386 floating point unit."
103
104         cdl_option CYGHWR_HAL_I386_FPU_SWITCH_LAZY {
105             display       "Use lazy FPU state switching"
106             flavor        bool
107             default_value 1
108
109             description "
110                         This option enables lazy FPU state switching.
111                         The default behaviour for eCos is to save and
112                         restore FPU state on every thread switch, interrupt
113                         and exception. While simple and deterministic, this
114                         approach can be expensive if the FPU is not used by
115                         all threads. The alternative, enabled by this option,
116                         is to use hardware features that allow the FPU state
117                         of a thread to be left in the FPU after it has been
118                         descheduled, and to allow the state to be switched to
119                         a new thread only if it actually uses the FPU. Where
120                         only one or two threads use the FPU this can avoid a
121                         lot of unnecessary state switching."
122         }
123     }
124     
125     cdl_component CYGHWR_HAL_I386_PENTIUM {
126         display       "Enable Pentium class CPU features"
127         default_value 0
128         description   "This component enables support for various
129                       features of Pentium class CPUs."
130
131         cdl_option CYGHWR_HAL_I386_PENTIUM_SSE {
132             display       "Save/Restore SSE registers on context switch"
133             flavor        bool
134             default_value 0
135
136             description "
137                         This option enables SSE state switching. The default
138                         behaviour for eCos is to ignore the SSE registers.
139                         Enabling this option adds SSE state information to
140                         every thread context."
141         }
142
143         cdl_option CYGHWR_HAL_I386_PENTIUM_GDB_REGS {
144             display       "Support extra Pentium registers in GDB stub"
145             flavor        bool
146             default_value 0
147
148             description "
149                         This option enables support for extra Pentium registers
150                         in the GDB stub. These are registers such as CR0-CR4, and
151                         all MSRs. Not all GDBs support these registers, so the
152                         default behaviour for eCos is to not include them in the
153                         GDB stub support code."
154         }
155     }
156     
157     cdl_option CYGBLD_LINKER_SCRIPT {
158         display "Linker script"
159         flavor data
160         no_define
161         calculated  { "src/i386.ld" }
162     }
163
164     cdl_interface CYGINT_HAL_I386_MEM_REAL_REGION_TOP {
165         display  "Implementations of hal_i386_mem_real_region_top()"
166     }
167
168     cdl_component CYGPKG_REDBOOT_I386_LINUX_EXEC {
169         display        "Provide the exec command in RedBoot"
170         flavor         none
171         active_if      CYGBLD_BUILD_REDBOOT_WITH_EXEC
172         description    "
173             This option contains requirements for booting linux
174             from RedBoot. The component is enabled/disabled from
175             RedBoots CDL."
176         compile -library=libextras.a redboot_linux_exec.c 
177
178         cdl_option CYGHWR_REDBOOT_I386_TRAMPOLINE_ADDRESS {
179             display       "Address for the trampoline code"
180             flavor        data
181             default_value 0x7C000
182             description   "This is the address to where the trampoline code is
183                            copied.  The trampoline copies the image to its
184                            final location and jumps to its entry point."
185         }
186     }
187 }