]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/hal/arm/mxc91311/evb/v2_0/cdl/hal_arm_board.cdl
Initial revision
[karo-tx-redboot.git] / packages / hal / arm / mxc91311 / evb / v2_0 / cdl / hal_arm_board.cdl
1 # ====================================================================
2 #
3 #      hal_arm_board.cdl
4 #
5 # ====================================================================
6 #####ECOSGPLCOPYRIGHTBEGIN####
7 ## -------------------------------------------
8 ## This file is part of eCos, the Embedded Configurable Operating System.
9 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
10 ##
11 ## eCos is free software; you can redistribute it and/or modify it under
12 ## the terms of the GNU General Public License as published by the Free
13 ## Software Foundation; either version 2 or (at your option) any later version.
14 ##
15 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
16 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
18 ## for more details.
19 ##
20 ## You should have received a copy of the GNU General Public License along
21 ## with eCos; if not, write to the Free Software Foundation, Inc.,
22 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
23 ##
24 ## As a special exception, if other files instantiate templates or use macros
25 ## or inline functions from this file, or you compile this file and link it
26 ## with other works to produce a work based on this file, this file does not
27 ## by itself cause the resulting work to be covered by the GNU General Public
28 ## License. However the source code for this file must still be made available
29 ## in accordance with section (3) of the GNU General Public License.
30 ##
31 ## This exception does not invalidate any other reasons why a work based on
32 ## this file might be covered by the GNU General Public License.
33 ##
34 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
35 ## at http://sources.redhat.com/ecos/ecos-license/
36 ## -------------------------------------------
37 #####ECOSGPLCOPYRIGHTEND####
38
39 cdl_package CYGPKG_HAL_ARM_MXC30020EVB {
40     display       "Freescale board"
41     parent        CYGPKG_HAL_ARM_MXC91311
42     hardware
43     include_dir   cyg/hal
44     define_header hal_arm_board.h
45     description   "
46         This HAL platform package provides generic
47         support for the Freescale MXC Board."
48
49     compile       board_misc.c board_diag.c
50     implements    CYGINT_HAL_DEBUG_GDB_STUBS
51     implements    CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
52     implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
53
54     implements    CYGHWR_HAL_ARM_MXC30020EVB
55     implements    CYGHWR_HAL_ARM_DUART_UARTA
56     #implements    CYGHWR_HAL_ARM_SOC_UART2
57     implements    CYGHWR_HAL_ARM_SOC_UART3
58     #implements    CYGHWR_HAL_ARM_SOC_UART4
59
60     define_proc {
61         puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
62         puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_soc.h>"
63         puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_board.h>"
64         puts $::cdl_header "#define HAL_PLATFORM_CPU    \"Freescale MXC91311 based\""
65         puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"MXC300-20 EVB\""
66         puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  0x50D"
67         puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK board_program_new_stack"
68     }
69
70     cdl_component CYG_HAL_STARTUP {
71         display       "Startup type"
72         flavor        data
73         default_value {"ROM"}
74         legal_values  {"RAM" "ROM" "ROMRAM"}
75         no_define
76         define -file system.h CYG_HAL_STARTUP
77         description   "
78            When targetting the eval board it is possible to build
79            the system for either RAM bootstrap or ROM bootstrap(s). Select
80            'ram' when building programs to load into RAM using eCos GDB
81            stubs.  Select 'rom' when building a stand-alone application
82            which will be put into ROM, or for the special case of
83            building the eCos GDB stubs themselves. Using ROMRAM will allow
84            the program to exist in ROM, but be copied to RAM during startup."
85     }
86
87     cdl_interface     CYGHWR_HAL_ARM_MXC30020EVB {
88         display   "For MXC300-20 EVB"
89         description "EVB"
90     }
91
92     cdl_interface     CYGHWR_HAL_ARM_DUART_UARTA {
93         display   "ST16552 UARTA available as diagnostic/debug channel"
94         description "
95           The board has a ST16552 DUART chip. This
96           interface allows a platform to indicate that the specified
97           serial port can be used as a diagnostic and/or debug channel."
98     }
99
100     cdl_interface     CYGHWR_HAL_ARM_DUART_UARTB {
101         display   "ST16552 UARTB available as diagnostic/debug channel"
102         description "
103           The board has a ST16552 DUART chip. This
104           interface allows a platform to indicate that the specified
105           serial port can be used as a diagnostic and/or debug channel."
106     }
107
108     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
109         display       "Diagnostic serial port baud rate"
110         flavor        data
111         legal_values  9600 19200 38400 57600 115200
112         default_value 115200
113         description   "
114             This option selects the baud rate used for the console port.
115             Note: this should match the value chosen for the GDB port if the
116             console and GDB port are the same."
117     }
118
119     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
120         display       "GDB serial port baud rate"
121         flavor        data
122         legal_values  9600 19200 38400 57600 115200
123         default_value 115200
124         description   "
125             This option selects the baud rate used for the GDB port.
126             Note: this should match the value chosen for the console port if the
127             console and GDB port are the same."
128     }
129
130     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
131         display      "Number of communication channels on the board"
132         flavor       data
133         calculated   6
134     }
135
136     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
137         display          "Debug serial port"
138         active_if        CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_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 board has three serial ports. This option
144             chooses which port will be used to connect to a host
145             running GDB."
146      }
147
148      cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
149          display      "Default console channel."
150          flavor       data
151          legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
152          calculated   0
153      }
154
155      cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
156          display          "Console serial port"
157          active_if        CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
158          flavor data
159          legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
160          default_value    CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
161          description      "
162             The board has only three serial ports.  This option
163             chooses which port will be used for console output."
164      }
165
166     cdl_component CYGBLD_GLOBAL_OPTIONS {
167         display "Global build options"
168         flavor  none
169         no_define
170         description   "
171             Global build options including control over
172             compiler flags, linker flags and choice of toolchain."
173
174
175         parent  CYGPKG_NONE
176
177         cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
178             display "Global command prefix"
179             flavor  data
180             no_define
181             default_value { "arm-elf" }
182             description "
183                 This option specifies the command prefix used when
184                 invoking the build tools."
185         }
186
187         cdl_option CYGBLD_GLOBAL_CFLAGS {
188             display "Global compiler flags"
189             flavor  data
190             no_define
191             default_value { "-mcpu=arm9 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" }
192             description   "
193                 This option controls the global compiler flags which are used to
194                 compile all packages by default. Individual packages may define
195                 options which override these global flags."
196         }
197
198         cdl_option CYGBLD_GLOBAL_LDFLAGS {
199             display "Global linker flags"
200             flavor  data
201             no_define
202             default_value { "-Wl,--gc-sections -Wl,-static -g -O2 -nostdlib" }
203             description   "
204                 This option controls the global linker flags. Individual
205                 packages may define options which override these global flags."
206         }
207
208         cdl_option CYGBLD_BUILD_GDB_STUBS {
209             display "Build GDB stub ROM image"
210             default_value 0
211             requires { CYG_HAL_STARTUP == "ROM" }
212             requires CYGSEM_HAL_ROM_MONITOR
213             requires CYGBLD_BUILD_COMMON_GDB_STUBS
214             requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
215             requires CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
216             requires CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
217             requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
218             requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
219             no_define
220             description "
221                 This option enables the building of the GDB stubs for the
222                 board. The common HAL controls takes care of most of the
223                 build process, but the final conversion from ELF image to
224                 binary data is handled by the platform CDL, allowing
225                 relocation of the data if necessary."
226
227             make -priority 320 {
228                 <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
229                 $(OBJCOPY) --remove-section=.fixed_vectors -O binary $< $@
230             }
231         }
232     }
233
234     cdl_component CYGPKG_HAL_ARM_BOARD_OPTIONS {
235         display "Freescale MXC Board build options"
236         flavor  none
237         no_define
238         description   "
239             Package specific build options including control over
240             compiler flags used only in building this package,
241             and details of which tests are built."
242
243         cdl_option CYGPKG_HAL_ARM_BOARD_CFLAGS_ADD {
244             display "Additional compiler flags"
245             flavor  data
246             no_define
247             default_value { "" }
248             description   "
249                 This option modifies the set of compiler flags for
250                 building the board HAL. These flags are used in addition
251                 to the set of global flags."
252         }
253
254         cdl_option CYGPKG_HAL_ARM_BOARD_CFLAGS_REMOVE {
255             display "Suppressed compiler flags"
256             flavor  data
257             no_define
258             default_value { "" }
259             description   "
260                 This option modifies the set of compiler flags for
261                 building the board HAL. These flags are removed from
262                 the set of global flags if present."
263         }
264
265     }
266
267     cdl_component CYGHWR_MEMORY_LAYOUT {
268         display "Memory layout"
269         flavor data
270         no_define
271         calculated { (CYG_HAL_STARTUP == "RAM")    ? "arm_board_ram" :
272                      (CYG_HAL_STARTUP == "ROMRAM") ? "arm_board_romram" :
273                                                      "arm_board_rom" }
274
275         cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
276             display "Memory layout linker script fragment"
277             flavor data
278             no_define
279             define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
280             calculated { (CYG_HAL_STARTUP == "RAM") ?    "<pkgconf/mlt_arm_board_ram.ldi>" :
281                          (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_board_romram.ldi>" :
282                                                          "<pkgconf/mlt_arm_board_rom.ldi>" }
283         }
284
285         cdl_option CYGHWR_MEMORY_LAYOUT_H {
286             display "Memory layout header file"
287             flavor data
288             no_define
289             define -file system.h CYGHWR_MEMORY_LAYOUT_H
290             calculated { (CYG_HAL_STARTUP == "RAM")    ? "<pkgconf/mlt_arm_board_ram.h>" :
291                          (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_board_romram.h>" :
292                                                          "<pkgconf/mlt_arm_board_rom.h>" }
293         }
294     }
295
296     cdl_option CYGSEM_HAL_ROM_MONITOR {
297         display       "Behave as a ROM monitor"
298         flavor        bool
299         default_value 0
300         parent        CYGPKG_HAL_ROM_MONITOR
301         requires      { CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" }
302         description   "
303             Enable this option if this program is to be used as a ROM monitor,
304             i.e. applications will be loaded into RAM on the board, and this
305             ROM monitor may process exceptions or interrupts generated from the
306             application. This enables features such as utilizing a separate
307             interrupt stack when exceptions are generated."
308     }
309
310     cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
311          display       "Work with a ROM monitor"
312          flavor        booldata
313          legal_values  { "Generic" "GDB_stubs" }
314          default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
315          parent        CYGPKG_HAL_ROM_MONITOR
316          requires      { CYG_HAL_STARTUP == "RAM" }
317          description   "
318              Support can be enabled for different varieties of ROM monitor.
319              This support changes various eCos semantics such as the encoding
320              of diagnostic output, or the overriding of hardware interrupt
321              vectors.
322              Firstly there is \"Generic\" support which prevents the HAL
323              from overriding the hardware vectors that it does not use, to
324              instead allow an installed ROM monitor to handle them. This is
325              the most basic support which is likely to be common to most
326              implementations of ROM monitor.
327              \"GDB_stubs\" provides support when GDB stubs are included in
328              the ROM monitor or boot ROM."
329      }
330
331     cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
332         display       "Redboot HAL options"
333         flavor        none
334         no_define
335         parent        CYGPKG_REDBOOT
336         active_if     CYGPKG_REDBOOT
337         description   "
338             This option lists the target's requirements for a valid Redboot
339             configuration."
340
341             compile -library=libextras.a redboot_cmds.c
342
343         cdl_option CYGBLD_BUILD_REDBOOT_BIN {
344             display       "Build Redboot ROM binary image"
345             active_if     CYGBLD_BUILD_REDBOOT
346             default_value 1
347             no_define
348             description "This option enables the conversion of the Redboot ELF
349                          image to a binary image suitable for ROM programming."
350
351             make -priority 325 {
352                 <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
353                 $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
354                 $(OBJCOPY) -O srec $< $(@:.bin=.srec)
355                 $(OBJCOPY) -O binary $< $@
356             }
357         }
358     }
359
360     cdl_component CYGPKG_REDBOOT_HAL_BOARD_OPTIONS {
361         display       "Redboot HAL variant options"
362         flavor        none
363         no_define
364         parent        CYGPKG_REDBOOT
365         active_if     CYGPKG_REDBOOT
366
367         # RedBoot details
368         requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x80008000 }
369         define_proc {
370             puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
371         }
372     }
373 }