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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [m68k/] [arch/] [current/] [cdl/] [hal_m68k.cdl] - Blame information for rev 856

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

Line No. Rev Author Line
1 786 skrzyp
# ====================================================================
2
#
3
#      hal_m68k.cdl
4
#
5
#      m68k 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) 2003, 2004, 2006, 2008 Free Software Foundation, 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
16
# version.
17
#
18
# eCos is distributed in the hope that it will be useful, but WITHOUT
19
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
21
# for more details.
22
#
23
# You should have received a copy of the GNU General Public License
24
# along with eCos; if not, write to the Free Software Foundation, Inc.,
25
# 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
26
#
27
# As a special exception, if other files instantiate templates or use
28
# macros or inline functions from this file, or you compile this file
29
# and link it with other works to produce a work based on this file,
30
# this file does not by itself cause the resulting work to be covered by
31
# the GNU General Public License. However the source code for this file
32
# must still be made available in accordance with section (3) of the GNU
33
# General Public License v2.
34
#
35
# This exception does not invalidate any other reasons why a work based
36
# on this file might be covered by the GNU General Public License.
37
# -------------------------------------------
38
# ####ECOSGPLCOPYRIGHTEND####
39
# ====================================================================
40
######DESCRIPTIONBEGIN####
41
#
42
# Author(s):     bartv
43
# Date:          2003-06-04
44
#
45
#####DESCRIPTIONEND####
46
#========================================================================
47
 
48
cdl_package CYGPKG_HAL_M68K {
49
    display "m68k architecture"
50
    parent        CYGPKG_HAL
51
    doc           ref/hal-m68k-arch.html
52
    hardware
53
    description   "
54
        The m68k architecture HAL package provides generic
55
        support for 68000 and ColdFire processors."
56
 
57
    include_dir   cyg/hal
58
    compile hal_m68k.c hal_arch.S m68k_stub.c
59
    define_proc {
60
        puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   "
61
    }
62
    make {
63
        /lib/vectors.o : /src/vectors.S
64
        $(CC) -Wp,-MD,vectors.tmp $(INCLUDE_PATH) $(ACTUAL_CFLAGS) -c -o $@ $<
65
        @echo $@ ": \\" > $(notdir $@).deps
66
        @tail -n +2 vectors.tmp >> $(notdir $@).deps
67
        @echo >> $(notdir $@).deps
68
        @rm vectors.tmp
69
    }
70
 
71
    # callgraph profiling, i.e. compiling with -pg, is supported. However
72
    # -pg is incompatible with -fomit-frame-pointer
73
    implements CYGINT_PROFILE_HAL_MCOUNT
74
    requires { ! (is_substr(CYGBLD_GLOBAL_CFLAGS, " -pg") && is_substr(CYGBLD_GLOBAL_CFLAGS, "-fomit-frame-pointer")) }
75
 
76
    cdl_option CYGNUM_HAL_DEFAULT_INTERRUPT_STACK_SIZE {
77
        display     "Default size for the startup and interrupt stack"
78
        description "
79
            The M68K HAL uses a single stack for system startup and for handling
80
          interrupts and exceptions. The size of this stack is configurable via
81
          the common HAL's CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE option, but
82
          this architectural HAL provides a default value."
83
        flavor      data
84
        calculated  { is_enabled(CYGNUM_HAL_M68K_PLATFORM_DEFAULT_INTERRUPT_STACK_SIZE) ?
85
            CYGNUM_HAL_M68K_PLATFORM_DEFAULT_INTERRUPT_STACK_SIZE :
86
            (CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING ? 4096 : 2048) }
87
    }
88
 
89
    cdl_option CYGNUM_HAL_M68K_STARTUP_STACK_SIZE {
90
        display     "Stack size to use during startup"
91
        active_if   !CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
92
        flavor      data
93
        default_value   2048
94
        description "
95
            By default eCos runs with a separate interrupt stack, which also gets
96
          used during system startup. This saves memory because it is not necessary
97
          to allow for interrupt overheads on every thread stack, but adds a number
98
          of instructions to the interrupt processing code. If the interrupt stack
99
          is disabled then a separate startup stack is needed. That stack will be
100
          used for running system initialization and for running some application
101
          code including cyg_start() and C++ static constructions."
102
    }
103
 
104
    cdl_component CYGPKG_HAL_M68K_VARIANT {
105
        display "Variant details"
106
        flavor  none
107
        description "
108
            Various subsystems like the floating point and memory management
109
            units are available on some but not all 68000 processors. Variant
110
            HAL packages will list which of these subsystems are actually
111
            present."
112
 
113
        cdl_interface CYGINT_HAL_M68K_VARIANT_TYPES {
114
            display "Data types"
115
            flavor  bool
116
            description "
117
                This interface will be implemented if the specific processor
118
                being used requires non-default data type definitions."
119
        }
120
 
121
        cdl_interface CYGINT_HAL_M68K_VARIANT_FPU {
122
            display "Floating point unit"
123
            flavor  bool
124
            description "
125
                This interface will be implemented if the specific processor
126
                being used has floating point hardware."
127
        }
128
 
129
        if { 0 } {
130
            # No MMU support available yet
131
            cdl_interface CYGINT_HAL_M68K_VARIANT_MMU {
132
                display "Floating point unit"
133
                flavor  bool
134
                description "
135
                    This interface will be implemented if the specific processor
136
                    being used has a memory management unit."
137
            }
138
        }
139
 
140
        cdl_interface CYGINT_HAL_M68K_VARIANT_CACHE {
141
            display "Cache"
142
            flavor  bool
143
            description "
144
                This interface will be implemented if the specific processor
145
                being used has an instruction cache, a data cache, or both."
146
        }
147
 
148
        cdl_interface CYGINT_HAL_M68K_VARIANT_IRAM {
149
            display     "On-chip RAM"
150
            flavor      bool
151
            description "
152
                This interface will be implemented if the specific processor
153
              being used has on-chip RAM."
154
        }
155
 
156
        cdl_interface CYGINT_HAL_M68K_USE_STANDARD_PLATFORM_STUB_SUPPORT {
157
            display     "Use standard platform gdb stub support"
158
            flavor      bool
159
            make -priority 1 {
160
                /include/cyg/hal/plf_stub.h : /src/plf_stub.h
161
                @cp $< $@
162
            }
163
            description "
164
                For platforms where target-side gdb stub support may be used the
165
              platform HAL is expected to provide a header file .
166
              In practice the same header file is applicable to nearly all platforms
167
              so the M68K architectural HAL will provide this header when the platform
168
              HAL requests this interface."
169
        }
170
    }
171
 
172
    cdl_component CYGPKG_HAL_M68K_FPU {
173
        display     "Support for the floating point unit"
174
        active_if   CYGINT_HAL_M68K_VARIANT_FPU
175
        flavor      none
176
        description "
177
            If the target processor has a hardware floating point unit then
178
            this component defines additional configuration options related
179
            to that unit."
180
 
181
        cdl_option CYGIMP_HAL_M68K_FPU_SAVE {
182
            display         "Save FPU state during context switch"
183
            default_value   1
184
            description "
185
                By default the floating point context gets saved during a
186
                context switch. This can be suppressed if the application
187
                does not actually perform any floating point arithmetic, or
188
                if it only does so from one thread."
189
        }
190
 
191
        cdl_option CYGNUM_HAL_M68K_FPU_CR_DEFAULT {
192
            display     "Default value for the FPU control register"
193
            flavor      data
194
            default_value   0
195
            legal_values    0 to 0x0FFFF
196
            description "
197
                The FPU control register controls rounding modes, precision,
198
                and exceptions. The default value of 0 gives IEE754 standard
199
                behaviour. It is assumed that the control register's value is
200
                not changed while the system is running, and hence does not
201
                have to be saved or restored during a thread switch or when
202
                an interrupt happens."
203
        }
204
    }
205
 
206
    cdl_component CYGPKG_HAL_M68K_OPTIONS {
207
        display     "Architectural HAL build options"
208
        flavor      none
209
        description "
210
            Package-specific build options including control over compiler
211
          flags used only when building this package, and details of which
212
          tests are built."
213
 
214
        cdl_option CYGPKG_HAL_M68K_CFLAGS_ADD {
215
            display         "Additional compiler flags"
216
            flavor          data
217
            no_define
218
            default_value   { "" }
219
            description   "
220
                This option modifies the set of compiler flags for building
221
              the architectural HAL package. These flags are used in addition
222
              to the set of global flags."
223
        }
224
 
225
        cdl_option CYGPKG_HAL_M68K_CFLAGS_REMOVE {
226
            display         "Suppressed compiler flags"
227
            flavor          data
228
            no_define
229
            default_value   { "" }
230
            description   "
231
                This option modifies the set of compiler flags for building
232
              the architectural HAL package. These flags are removed from
233
              the set of global flags if present."
234
        }
235
 
236
        cdl_option CYGPKG_HAL_M68K_TESTS {
237
            display         "Architectural HAL tests"
238
            flavor          data
239
            no_define
240
            calculated      { (CYGINT_HAL_M68K_VARIANT_IRAM ? "tests/iram1" : "") .
241
                ""
242
            }
243
            description   "
244
                This option specifies the set of tests for the M68K architectural HAL."
245
        }
246
 
247
        cdl_option CYGBLD_LINKER_SCRIPT {
248
            display "Linker script"
249
            flavor data
250
            no_define
251
            calculated  { "src/m68k.ld" }
252
            make {
253
                /lib/target.ld: /src/m68k.ld
254
                $(CC) -E -P -Wp,-MD,target.tmp -DEXTRAS=1 -xc $(INCLUDE_PATH) $(ACTUAL_CFLAGS) -o $@ $<
255
                @echo $@ ": \\" > $(notdir $@).deps
256
                @tail -n +2 target.tmp >> $(notdir $@).deps
257
                @echo >> $(notdir $@).deps
258
                @rm target.tmp
259
            }
260
        }
261
    }
262
}

powered by: WebSVN 2.1.0

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