source: SVN/cambria/redboot/packages/hal/arm/xscale/kixrp435/current/cdl/hal_arm_xscale_kixrp435.cdl @ 1

Last change on this file since 1 was 1, checked in by Tim Harvey, 2 years ago

restored latest version of files from server backup

Signed-off-by: Tim Harvey <tharvey@…>

File size: 12.6 KB
Line 
1# ====================================================================
2#
3#      hal_arm_xscale_kixrp435.cdl
4#
5#      Intel XScale Network Processor KIXRP435 Board HAL package
6#
7# ====================================================================
8#####ECOSGPLCOPYRIGHTBEGIN####
9## -------------------------------------------
10## This file is part of eCos, the Embedded Configurable Operating System.
11## Copyright (C) 2007 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 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## -------------------------------------------
37#####ECOSGPLCOPYRIGHTEND####
38# ====================================================================
39######DESCRIPTIONBEGIN####
40#
41# Author(s):      msalter@redhat.com
42# Contributors:   
43# Date:           2007-01-04
44#
45#####DESCRIPTIONEND####
46#
47# ====================================================================
48cdl_package CYGPKG_HAL_ARM_XSCALE_KIXRP435 {
49    display       "Intel XScale Network Processor KIXRP435 Board"
50    parent        CYGPKG_HAL_ARM_XSCALE
51    implements    CYGINT_HAL_ARM_BIGENDIAN
52    requires      { CYGHWR_HAL_ARM_XSCALE_CPU == "IXP43x" }
53    hardware
54    include_dir   cyg/hal
55    define_header hal_arm_xscale_kixrp435.h
56    description   "
57        This HAL platform package provides support for
58        the Intel XScale KIXRP435 board."
59
60    compile       kixrp435_misc.c kixrp435_pci.c
61
62    define_proc {
63        puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
64        puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_xscale_ixp425.h>"
65        puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_kixrp435.h>"
66        puts $::cdl_header "#define CYGBLD_HAL_PLF_INTS_H <cyg/hal/hal_plf_ints.h>"
67        puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Gateworks Cambria Platform\""
68        puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  1468"
69    }
70
71    cdl_component CYG_HAL_STARTUP {
72        display       "Startup type"
73        flavor        data
74        default_value {"RAM"}
75        legal_values  {"RAM" "ROM" "ROMRAM" }
76        no_define
77        define -file system.h CYG_HAL_STARTUP
78        description   "
79           When targeting the KIXRP435 eval board it is possible to build
80           the system for either RAM bootstrap or ROM bootstrap(s). Select
81           'ram' when building programs to load into RAM using onboard
82           debug software such as RedBoot or eCos GDB stubs. Select 'romram'
83           when building a stand-alone application which will be put
84           into ROM, but execute from RAM."
85    }
86
87    cdl_component CYGBLD_GLOBAL_OPTIONS {
88        display "Global build options"
89        flavor  none
90        no_define
91        description   "
92            Global build options including control over
93            compiler flags, linker flags and choice of toolchain."
94
95        parent  CYGPKG_NONE
96
97        cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
98            display "Global command prefix"
99            flavor  data
100            no_define
101            default_value { "xscale-elf" }
102            description "
103                This option specifies the command prefix used when
104                invoking the build tools."
105        }
106
107        cdl_option CYGBLD_GLOBAL_CFLAGS {
108            display "Global compiler flags"
109            flavor  data
110            no_define
111            default_value { CYGHWR_HAL_ARM_BIGENDIAN ? "-mbig-endian -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -mapcs-frame" :
112                            "-Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -mapcs-frame" }
113            description   "
114                This option controls the global compiler flags which are used to
115                compile all packages by default. Individual packages may define
116                options which override these global flags."
117        }
118
119        cdl_option CYGBLD_GLOBAL_LDFLAGS {
120            display "Global linker flags"
121            flavor  data
122            no_define
123            default_value { CYGHWR_HAL_ARM_BIGENDIAN ? "-Wl,-Map,redboot.map -mbig-endian -Wl,--gc-sections -Wl,-static -g -O2 -nostdlib" :
124                            "-Wl,--gc-sections -Wl,-static -g -O2 -nostdlib " }
125            description   "
126                This option controls the global linker flags. Individual
127                packages may define options which override these global flags."
128        }
129
130        cdl_option CYGBLD_BUILD_GDB_STUBS {
131            display "Build GDB stub ROM image"
132            default_value 0
133            requires { CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" }
134            requires CYGSEM_HAL_ROM_MONITOR
135            requires CYGBLD_BUILD_COMMON_GDB_STUBS
136            requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
137            requires CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
138            requires CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
139            requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
140            requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
141            no_define
142            description "
143                This option enables the building of the GDB stubs for the
144                board. The common HAL controls takes care of most of the
145                build process, but the final conversion from ELF image to
146                binary data is handled by the platform CDL, allowing
147                relocation of the data if necessary."
148
149            make -priority 320 {
150                <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
151                $(OBJCOPY) --remove-section=.fixed_vectors -O binary $< $@
152            }
153        }
154    }
155
156    cdl_component CYGPKG_HAL_ARM_XSCALE_KIXRP435_OPTIONS {
157        display "Intel XScale KIXRP435 build options"
158        flavor  none
159        no_define
160        description   "
161            Package specific build options including control over
162            compiler flags used only in building this package,
163            and details of which tests are built."
164
165        cdl_option CYGPKG_HAL_ARM_XSCALE_KIXRP435_CFLAGS_ADD {
166            display "Additional compiler flags"
167            flavor  data
168            no_define
169            default_value { "" }
170            description   "
171                This option modifies the set of compiler flags for building
172                the XScale KIXRP435 HAL. These flags are used in addition to
173                the set of global flags."
174        }
175
176        cdl_option CYGPKG_HAL_ARM_XSCALE_KIXRP435_CFLAGS_REMOVE {
177            display "Suppressed compiler flags"
178            flavor  data
179            no_define
180            default_value { "" }
181            description   "
182                This option modifies the set of compiler flags for
183                building the XScale Kixrp435 HAL. These flags are removed from
184                the set of global flags if present."
185        }
186
187        cdl_option CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
188            display       "Number of breakpoints supported by the HAL."
189            flavor        data
190            default_value 32
191            description   "
192                This option determines the number of breakpoints supported by the HAL."
193        }
194    }
195
196    cdl_option CYGSEM_HAL_IXP425_PLF_USES_UART1 {
197        display       "KIXRP435 uses IXP425 high-speed UART"
198        flavor        bool
199        default_value 1
200        description   "
201            Enable this option if the IXP435 high-speed UART is used
202            as a virtual vector communications channel."
203    }
204
205    cdl_component CYGHWR_MEMORY_LAYOUT {
206        display "Memory layout"
207        flavor data
208        no_define
209        calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_kixrp435_ram" : \
210                     CYG_HAL_STARTUP == "ROM" ? "arm_xscale_kixrp435_rom" : \
211                                        "arm_xscale_kixrp435_romram" }
212
213        cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
214            display "Memory layout linker script fragment"
215            flavor data
216            no_define
217            define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
218            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_xscale_kixrp435_ram.ldi>" : \
219                         CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_xscale_kixrp435_rom.ldi>" : \
220                                                    "<pkgconf/mlt_arm_xscale_kixrp435_romram.ldi>" }
221        }
222
223        cdl_option CYGHWR_MEMORY_LAYOUT_H {
224            display "Memory layout header file"
225            flavor data
226            no_define
227            define -file system.h CYGHWR_MEMORY_LAYOUT_H
228            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_xscale_kixrp435_ram.h>" : \
229                         CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_xscale_kixrp435_rom.h>" : \
230                                                    "<pkgconf/mlt_arm_xscale_kixrp435_romram.h>" }
231        }
232    }
233
234    cdl_option CYGSEM_HAL_ROM_MONITOR {
235        display       "Behave as a ROM monitor"
236        flavor        bool
237        default_value 0
238        parent        CYGPKG_HAL_ROM_MONITOR
239        requires      { CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" }
240        description   "
241            Enable this option if this program is to be used as a ROM monitor,
242            i.e. applications will be loaded into RAM on the board, and this
243            ROM monitor may process exceptions or interrupts generated from the
244            application. This enables features such as utilizing a separate
245            interrupt stack when exceptions are generated."
246    }
247
248    cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
249         display       "Work with a ROM monitor"
250         flavor        booldata
251         legal_values  { "Generic" "GDB_stubs" }
252         default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
253         parent        CYGPKG_HAL_ROM_MONITOR
254         requires      { CYG_HAL_STARTUP == "RAM" }
255         description   "
256             Support can be enabled for different varieties of ROM monitor.
257             This support changes various eCos semantics such as the encoding
258             of diagnostic output, or the overriding of hardware interrupt
259             vectors.
260             Firstly there is \"Generic\" support which prevents the HAL
261             from overriding the hardware vectors that it does not use, to
262             instead allow an installed ROM monitor to handle them. This is
263             the most basic support which is likely to be common to most
264             implementations of ROM monitor.
265             \"GDB_stubs\" provides support when GDB stubs are included in
266             the ROM monitor or boot ROM."
267     }
268
269    cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
270        display       "Redboot HAL options"
271        flavor        none
272        no_define
273        parent        CYGPKG_REDBOOT
274        active_if     CYGPKG_REDBOOT
275        description   "
276            This option lists the target's requirements for a valid Redboot
277            configuration."
278
279        cdl_option CYGBLD_BUILD_REDBOOT_BIN {
280            display       "Build Redboot ROM binary image"
281            active_if     CYGBLD_BUILD_REDBOOT
282            default_value 1
283            no_define
284            description "This option enables the conversion of the Redboot ELF
285                         image to a binary image suitable for ROM programming."
286
287            make -priority 325 {
288                <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
289                $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
290                $(OBJCOPY) -O srec $< $(@:.bin=.srec)
291                $(OBJCOPY) -O binary $< $@
292            }
293        }
294    }
295}
Note: See TracBrowser for help on using the repository browser.