OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [hal/] [arm/] [arch/] [v2_0/] [cdl/] [hal_arm.cdl] - Blame information for rev 773

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
# ====================================================================
2
#
3
#      hal_arm.cdl
4
#
5
#      ARM 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):      bartv
44
# Original data:  gthomas
45
# Contributors:
46
# Date:           1999-06-13
47
#
48
#####DESCRIPTIONEND####
49
#
50
# ====================================================================
51
cdl_package CYGPKG_HAL_ARM {
52
    display       "ARM architecture"
53
    parent        CYGPKG_HAL
54
    hardware
55
    include_dir   cyg/hal
56
    define_header hal_arm.h
57
    description   "
58
        The ARM architecture HAL package provides generic
59
        support for this processor architecture. It is also
60
        necessary to select a specific target platform HAL
61
        package."
62
 
63
    compile       hal_misc.c context.S arm_stub.c hal_syscall.c
64
 
65
    # The "-o file" is a workaround for CR100958 - without it the
66
    # output file would end up in the source directory under CygWin.
67
    # n.b. grep does not behave itself under win32
68
    make -priority 1 {
69
        arm.inc : /src/hal_mk_defs.c
70
        $(CC) $(CFLAGS) $(INCLUDE_PATH) -Wp,-MD,arm.tmp -o hal_mk_defs.tmp -S $<
71
        fgrep .equ hal_mk_defs.tmp | sed s/#// > $@
72
        @echo $@ ": \\" > $(notdir $@).deps
73
        @tail +2 arm.tmp >> $(notdir $@).deps
74
        @echo >> $(notdir $@).deps
75
        @rm arm.tmp hal_mk_defs.tmp
76
    }
77
 
78
    make {
79
        /lib/vectors.o : /src/vectors.S
80
        $(CC) -Wp,-MD,vectors.tmp $(INCLUDE_PATH) $(CFLAGS) -c -o $@ $<
81
        @echo $@ ": \\" > $(notdir $@).deps
82
        @tail +2 vectors.tmp >> $(notdir $@).deps
83
        @echo >> $(notdir $@).deps
84
        @rm vectors.tmp
85
    }
86
 
87
    make {
88
        /lib/target.ld: /src/arm.ld
89
        $(CC) -E -P -Wp,-MD,target.tmp -xc $(INCLUDE_PATH) $(CFLAGS) -o $@ $<
90
        @echo $@ ": \\" > $(notdir $@).deps
91
        @tail +2 target.tmp >> $(notdir $@).deps
92
        @echo >> $(notdir $@).deps
93
        @rm target.tmp
94
    }
95
 
96
    cdl_interface CYGINT_HAL_ARM_THUMB_ARCH {
97
        display "The CPU architecture supports THUMB mode"
98
    }
99
 
100
    cdl_option CYGHWR_THUMB {
101
        display          "Enable Thumb instruction set"
102
        active_if        { CYGINT_HAL_ARM_THUMB_ARCH != 0 }
103
        default_value    0
104
        description      "
105
            Enable use of the Thumb instruction set."
106
    }
107
 
108
    # Note that when building a ROM monitor we include Thumb
109
    # interworking in order to support Thumb applications running
110
    # under a ARM ROM monitor.
111
    cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
112
        display       "Enable Thumb interworking compiler option"
113
        active_if        { CYGINT_HAL_ARM_THUMB_ARCH != 0 }
114
        default_value { (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) }
115
        description "
116
            This option controls the use of -mthumb-interwork in the
117
            compiler flags. It defaults enabled in Thumb or ROM monitor
118
            configurations, but can be overridden for reduced memory
119
            footprint where interworking is not a requirement."
120
    }
121
 
122
    cdl_interface CYGINT_HAL_ARM_BIGENDIAN {
123
        display "The platform and architecture supports Big Endian operation"
124
    }
125
 
126
    cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
127
        display          "Use big-endian mode"
128
        active_if        { CYGINT_HAL_ARM_BIGENDIAN != 0 }
129
        default_value    0
130
        description      "
131
            Use the CPU in big-endian mode."
132
    }
133
 
134
    cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {
135
        display "The platform uses a processor with an ARM7 core"
136
    }
137
 
138
    cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 {
139
        display "The platform uses a processor with an ARM9 core"
140
    }
141
 
142
    cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM {
143
        display "The platform uses a processor with a StrongARM core"
144
    }
145
 
146
    cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE {
147
        display "The platform uses a processor with a XScale core"
148
    }
149
 
150
    cdl_option CYGHWR_HAL_ARM_CPU_FAMILY {
151
        display       "ARM CPU family"
152
        flavor        data
153
        legal_values  { (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
154
                        (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
155
                        (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
156
                        (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
157
                        "" }
158
        default_value  { (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" :
159
                         (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" :
160
                         (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" :
161
                         (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
162
                         "unknown" }
163
        no_define
164
        description   "
165
             It is possible to optimize code for different
166
             ARM CPU families. This option selects which CPU to
167
             optimize for on boards that support multiple CPU types."
168
    }
169
 
170
    cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS {
171
        display          "Provide diagnostic dump for exceptions"
172
        requires         !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
173
        default_value    0
174
        description      "
175
            Print messages about hardware exceptions, including
176
            raw exception frame dump and register contents."
177
    }
178
 
179
    cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS {
180
        display          "Process all exceptions with the eCos application"
181
        default_value    0
182
        description      "
183
           Normal RAM-based programs which do not include GDB stubs
184
           defer processing of the illegal instruction exception to GDB.
185
           Setting this options allows the program to explicitly handle
186
           the illegal instruction exception itself.  Note: this will
187
           prevent the use of GDB to debug the application as breakpoints
188
           will no longer work."
189
    }
190
 
191
    cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT {
192
        display          "Support GDB thread operations via ICE/Multi-ICE"
193
        default_value    0
194
        requires         CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
195
        requires         CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
196
        requires         CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
197
        description      "
198
           Allow GDB to get thread information via the ICE/Multi-ICE
199
           connection."
200
    }
201
 
202
    cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT {
203
        display         "Support for 'gprof' callbacks"
204
        calculated      1
205
        no_define
206
        active_if       CYGSEM_REDBOOT_BSP_SYSCALLS
207
        active_if       { CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT }
208
        implements      CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT
209
        description     "
210
            The ARM HAL provides the macro for 'gprof' callbacks from RedBoot
211
            to acquire the interrupt-context PC and SP, when this option is
212
            active."
213
    }
214
 
215
    cdl_component CYGPKG_REDBOOT_ARM_OPTIONS {
216
        display       "Redboot for ARM options"
217
        flavor        none
218
        no_define
219
        parent        CYGPKG_REDBOOT
220
        active_if     CYGPKG_REDBOOT
221
        description   "
222
            This option lists the target's requirements for a valid Redboot
223
            configuration."
224
 
225
        cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC {
226
            display        "Provide the exec command in RedBoot"
227
            flavor         none
228
            parent         CYGPKG_REDBOOT_ARM_OPTIONS
229
            active_if      CYGBLD_BUILD_REDBOOT_WITH_EXEC
230
            description    "
231
                This option contains requirements for booting linux
232
                from RedBoot. The component is enabled/disabled from
233
                RedBoots CDL."
234
            compile -library=libextras.a redboot_linux_exec.c
235
 
236
            cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
237
                display       "Physical base address of linux kernel"
238
                flavor        data
239
                default_value CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
240
                description   "
241
                    This is the physical address of the base of the
242
                    Linux kernel image."
243
            }
244
 
245
            cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
246
                display       "Default physical base address of linux kernel"
247
                flavor        data
248
                default_value 0x00008000
249
                no_define
250
                description   "
251
                    This is the physical address of the base of the
252
                    Linux kernel image. This option gets set by the
253
                    platform CDL."
254
            }
255
 
256
            cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS {
257
                display       "Base address of linux kernel parameter tags"
258
                flavor        data
259
                default_value 0x100
260
                description   "
261
                   This is the base address of the area of memory used to
262
                   pass parameters to the Linux kernel. This should be chosen
263
                   to avoid overlap with the kernel and any ramdisk image."
264
            }
265
        }
266
 
267
    }
268
 
269
    cdl_option CYGBLD_LINKER_SCRIPT {
270
        display "Linker script"
271
        flavor data
272
        no_define
273
        calculated  { "src/arm.ld" }
274
    }
275
 
276
    cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP {
277
        display  "Implementations of hal_arm_mem_real_region_top()"
278
    }
279
}
280
 
281
# EOF hal_arm.cdl

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.