]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/hal/arm/at91/jtst/v2_0/cdl/hal_arm_at91_jtst.cdl
Initial revision
[karo-tx-redboot.git] / packages / hal / arm / at91 / jtst / v2_0 / cdl / hal_arm_at91_jtst.cdl
1 # ====================================================================
2 #
3 #      hal_arm_at91_jtst.cdl
4 #
5 #      ARM AT91 AT572D74-DK1(JTST) HAL package configuration data
6 #
7 # ====================================================================
8 #####ECOSGPLCOPYRIGHTBEGIN####
9 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
10 ## Copyright (C) 2003 Nick Garnett <nickg@calivar.com>
11 ##
12 ## eCos is free software; you can redistribute it and/or modify it under
13 ## the terms of the GNU General Public License as published by the Free
14 ## Software Foundation; either version 2 or (at your option) any later version.
15 ##
16 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
17 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19 ## for more details.
20 ##
21 ## You should have received a copy of the GNU General Public License along
22 ## with eCos; if not, write to the Free Software Foundation, Inc.,
23 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
24 ##
25 ## As a special exception, if other files instantiate templates or use macros
26 ## or inline functions from this file, or you compile this file and link it
27 ## with other works to produce a work based on this file, this file does not
28 ## by itself cause the resulting work to be covered by the GNU General Public
29 ## License. However the source code for this file must still be made available
30 ## in accordance with section (3) of the GNU General Public License.
31 ##
32 ## This exception does not invalidate any other reasons why a work based on
33 ## this file might be covered by the GNU General Public License.
34 ##
35 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
36 ## at http://sources.redhat.com/ecos/ecos-license/
37 ## -------------------------------------------
38 #####ECOSGPLCOPYRIGHTEND####
39 # ====================================================================
40 ######DESCRIPTIONBEGIN####
41 #
42 # Author(s):      amichelotti
43 # Contributors:   gthomas, tkoeller, nickg
44 # Date:           2004-06-3
45 #
46 #####DESCRIPTIONEND####
47 #
48 # ====================================================================
49
50 cdl_package CYGPKG_HAL_ARM_AT91_JTST {
51     display       "Atmel AT572D740 eval board (JTST) HAL"
52     parent        CYGPKG_HAL_ARM_AT91
53     define_header hal_arm_at91_jtst.h
54     include_dir   cyg/hal
55     hardware
56     description   "
57         The JTST HAL package provides the support needed to run
58         eCos on an Atmel AT572D740-DK1 (diopsis) eval board."
59
60     compile       jtst_misc.c
61
62     requires      { CYGHWR_HAL_ARM_AT91 == "JTST" }
63     requires      { CYGHWR_HAL_ARM_AT91_FIQ     }
64     define_proc {
65         puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
66         puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_at91.h>"
67         puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91_jtst.h>"
68         puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
69         puts $::cdl_header "#define HAL_PLATFORM_CPU    \"ARM7TDMI\""
70         puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Atmel (jtst) AT572D74-DK1\""
71         puts $::cdl_header "#define HAL_PLATFORM_EXTRA  \"\""
72     }
73
74 cdl_component CYGNUM_HAL_RTC_CONSTANTS {
75         display       "Real-time clock constants"
76         flavor        none
77
78         cdl_option CYGNUM_HAL_RTC_NUMERATOR {
79             display       "Real-time clock numerator"
80             flavor        data
81             default_value 1000000000
82         }
83         cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
84             display       "Real-time clock denominator"
85             flavor        data
86             default_value 100
87         }
88         cdl_option CYGNUM_HAL_RTC_PERIOD {
89             display       "Real-time clock period"
90             flavor        data
91             default_value ((CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/32) / CYGNUM_HAL_RTC_DENOMINATOR)
92         }
93     }
94     
95     cdl_component CYG_HAL_STARTUP {
96         display       "Startup type"
97         flavor        data
98         default_value {"RAM"}
99         legal_values  {"RAM" "ROM" }
100             no_define
101             define -file system.h CYG_HAL_STARTUP
102         description   "
103             When targetting the AT91 EBxx eval board it is possible to build
104             the system for either RAM bootstrap or ROM bootstrap(s). Select
105             'ram' when building programs to load into RAM using onboard
106             debug software such as Angel or eCos GDB stubs.  Select 'rom'
107             when building a stand-alone application which will be put
108             into ROM"
109     }
110
111     # Real-time clock/counter specifics
112     cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED {
113         display       "CPU clock speed"
114         flavor        data
115         default_value 50000000
116     }
117
118     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
119         display      "Number of communication channels on the board"
120         flavor       data
121         calculated   2
122     }
123  
124     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
125         display          "Debug serial port"
126         active_if        CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
127         flavor data
128         legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
129         default_value    0
130         description      "
131             The AT91 EBxx board has two serial ports. This option
132             chooses which port will be used to connect to a host
133             running GDB."
134     }
135  
136     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
137         display          "Diagnostic serial port"
138         active_if        CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
139         flavor data
140         legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
141         default_value    0
142         description      "
143             The AT91 EBxx board has two serial ports. This option
144             chooses which port will be used for diagnostic output."
145     }
146      
147     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
148         display       "Diagnostic serial port baud rate"
149         flavor        data
150         legal_values  9600 19200 38400 57600 115200
151         default_value 115200
152         description   "
153             This option selects the baud rate used for the diagnostic port."
154     }
155  
156     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
157          display       "GDB serial port baud rate"
158          flavor        data
159          legal_values  9600 19200 38400 57600 115200
160          default_value 115200
161          description   "
162             This option controls the baud rate used for the GDB connection."
163     }
164  
165     cdl_option CYGSEM_HAL_ROM_MONITOR {
166         display       "Behave as a ROM monitor"
167         flavor        bool
168         default_value 0
169         parent        CYGPKG_HAL_ROM_MONITOR
170         requires      { CYG_HAL_STARTUP == "ROM" }
171         description   "
172             Enable this option if this program is to be used as a ROM monitor,
173             i.e. applications will be loaded into RAM on the board, and this
174             ROM monitor may process exceptions or interrupts generated from the
175             application. This enables features such as utilizing a separate
176             interrupt stack when exceptions are generated."
177     }
178
179     cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
180          display       "Work with a ROM monitor"
181          flavor        booldata
182          legal_values  { "Generic" "GDB_stubs" }
183          default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
184          parent        CYGPKG_HAL_ROM_MONITOR
185          requires      { CYG_HAL_STARTUP == "RAM" }
186          description   "
187              Support can be enabled for different varieties of ROM monitor.
188              This support changes various eCos semantics such as the encoding
189              of diagnostic output, or the overriding of hardware interrupt
190              vectors.
191              Firstly there is \"Generic\" support which prevents the HAL
192              from overriding the hardware vectors that it does not use, to
193              instead allow an installed ROM monitor to handle them. This is
194              the most basic support which is likely to be common to most
195              implementations of ROM monitor.
196              \"GDB_stubs\" provides support when GDB stubs are included in
197              the ROM monitor or boot ROM."
198     }
199
200     cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
201         display       "Redboot HAL options"
202         flavor        none
203         no_define
204         parent        CYGPKG_REDBOOT
205         active_if     CYGPKG_REDBOOT
206         description   "
207             This option lists the target's requirements for a valid Redboot
208             configuration."
209
210         cdl_option CYGBLD_BUILD_REDBOOT_BIN {
211             display       "Build Redboot ROM binary image"
212             active_if     CYGBLD_BUILD_REDBOOT
213             default_value 1
214             no_define
215             description "This option enables the conversion of the Redboot ELF
216                          image to a binary image suitable for ROM programming."
217     
218             make -priority 325 {
219                 <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
220                 $(OBJCOPY) --strip-debug $< $(@:.bin=.img) 
221                 $(OBJCOPY) -O srec $< $(@:.bin=.srec)
222                 $(OBJCOPY) -O binary $< $@
223             }
224
225         }
226     }
227
228     cdl_component CYGBLD_GLOBAL_OPTIONS {
229         display "Global build options"
230         flavor  none
231         parent  CYGPKG_NONE
232         description   "
233             Global build options including control over
234             compiler flags, linker flags and choice of toolchain."
235
236
237         cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
238             display "Global command prefix"
239             flavor  data
240             no_define
241             default_value { "arm-elf" }
242             description "
243                 This option specifies the command prefix used when
244                 invoking the build tools."
245         }
246
247         cdl_option CYGBLD_GLOBAL_CFLAGS {
248             display "Global compiler flags"
249             flavor  data
250             no_define
251             default_value { (CYGHWR_THUMB ? "-mthumb " : "") . (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . "-mcpu=arm7tdmi -mno-short-load-words -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" }
252             description   "
253                 This option controls the global compiler flags which are used 
254                 to compile all packages by default. Individual packages may 
255                 define options which override these global flags."
256         }
257
258         cdl_option CYGBLD_GLOBAL_LDFLAGS {
259             display "Global linker flags"
260             flavor  data
261             no_define
262             default_value { (CYGHWR_THUMB ? "-mthumb " : "") . (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . "-mcpu=arm7tdmi -mno-short-load-words -Wl,--gc-sections -Wl,-static -g -nostdlib" }
263             description   "
264                 This option controls the global linker flags. Individual
265                 packages may define options which override these global flags."
266         }
267     }
268
269     cdl_component CYGHWR_MEMORY_LAYOUT {
270         display "Memory layout"
271         flavor data
272         no_define
273         calculated { (CYG_HAL_STARTUP == "RAM") ?    "arm_at91_jtst_ram" : 
274                      "arm_at91_jtst_rom" }
275
276         cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
277             display "Memory layout linker script fragment"
278             flavor data
279             no_define
280             define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
281             calculated { (CYG_HAL_STARTUP == "RAM") ? 
282                 "<pkgconf/mlt_arm_at91_jtst_ram.ldi>" : 
283                 "<pkgconf/mlt_arm_at91_jtst_rom.ldi>" }
284         }
285
286         cdl_option CYGHWR_MEMORY_LAYOUT_H {
287             display "Memory layout header file"
288             flavor data
289             no_define
290             define -file system.h CYGHWR_MEMORY_LAYOUT_H
291             calculated { (CYG_HAL_STARTUP == "RAM") ? 
292                 "<pkgconf/mlt_arm_at91_jtst_ram.h>" :     
293                 "<pkgconf/mlt_arm_at91_jtst_rom.h>" }
294         }
295     }
296 }