Mercurial > ecos
diff packages/hal/common/current/cdl/hal.cdl @ 76:435cced73e2f ecos-v1_3_1-release
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
| author | jlarmour |
|---|---|
| date | Tue, 28 Mar 2000 14:10:45 +0000 |
| parents | |
| children | 6736c52df507 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/hal/common/current/cdl/hal.cdl @@ -0,0 +1,182 @@ +# ==================================================================== +# +# hal.cdl +# +# HAL configuration data +# +# ==================================================================== +#####COPYRIGHTBEGIN#### +# +# ------------------------------------------- +# The contents of this file are subject to the Red Hat eCos Public License +# Version 1.1 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.redhat.com/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +# License for the specific language governing rights and limitations under +# the License. +# +# The Original Code is eCos - Embedded Configurable Operating System, +# released September 30, 1998. +# +# The Initial Developer of the Original Code is Red Hat. +# Portions created by Red Hat are +# Copyright (C) 1998, 1999, 2000 Red Hat, Inc. +# All Rights Reserved. +# ------------------------------------------- +# +#####COPYRIGHTEND#### +# ==================================================================== +######DESCRIPTIONBEGIN#### +# +# Author(s): bartv +# Original data: nickg,jskov,jlarmour +# Contributors: +# Date: 1999-06-13 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + +cdl_package CYGPKG_HAL { + display "eCos HAL" + include_dir cyg/hal + description " + The eCos HAL package provide a porting layer for + higher-level parts of the system such as the kernel and the + C library. Each installation should have HAL packages for + one or more architectures, and for each architecture there + may be one or more supported platforms. It is necessary to + select one target architecture and one platform for that + architecture. There are also a number of configuration + options that are common to all HAL packages." + doc redirect/the-ecos-hardware-abstraction-layer-hal.html + + compile generic-stub.c thread-packets.c hal_stub.c drv_api.c + compile -library=libextras.a dummy.c + + make -priority 250 { + <PREFIX>/lib/extras.o: <PREFIX>/lib/libextras.a + $(CC) $(CFLAGS) -nostdlib -Wl,-r -Wl,--whole-archive -o $@ $< + } + + + cdl_component CYGPKG_HAL_COMMON { + display "Platform-independent HAL options" + flavor none + description " + A number of configuration options are common to most or all + HAL packages, for example options controlling how much state + should be saved during a context switch. The implementations + of these options will vary from architecture to architecture." + + script common.cdl + } + + cdl_component CYGPKG_HAL_COMMON_INTERRUPTS { + display "HAL interrupt handling" + flavor none + description " + A number of configuration options related to interrupt + handling are common to most or all HAL packages, even though + the implementations will vary from architecture to + architecture." + + script interrupts.cdl + } + + cdl_component CYGPKG_HAL_COMMON_CONTEXT { + display "HAL context switch support" + flavor none + description " + A number of configuration options related to thread contexts + are common to most or all HAL packages, even though the + implementations will vary from architecture to architecture." + + cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM { + display "Use minimum thread context" + parent CYGPKG_HAL_COMMON_CONTEXT + default_value 1 + description " + The thread context switch code can exploit the calling + conventions defined for a given architecture to reduce the + amount of state that has to be saved during a context + switch. Generally this improves performance and reduces + code size. However it can make source-level debugging more + difficult." + } + } + + cdl_component CYGPKG_HAL_DEBUG { + display "Source-level debugging support" + flavor none + description " + If the source level debugger gdb is to be used for debugging + application code then it may be necessary to configure in support + for this in the HAL." + + script debugging.cdl + } + + cdl_component CYGPKG_HAL_ROM_MONITOR { + display "ROM monitor support" + flavor none + no_define + description " + Support for ROM monitors can be built in to your application. + It may also be relevant to build your application as a ROM monitor + itself. Such options are contained here if relevant for your chosen + platform. The options and ROM monitors available to choose are + platform-dependent." + + + cdl_option CYGBLD_BUILD_COMMON_GDB_STUBS { + display "Build common GDB stub ROM image" + default_value 0 + parent CYGBLD_GLOBAL_OPTIONS + requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + no_define + description " + Unless a target board has specific requirements to the + stub implementation, it can use a simple common stub. + This option, which gets enabled by platform HALs as + appropriate, controls the building of the common stub." + + make -priority 315 { + <PREFIX>/bin/gdb_module.img : <PACKAGE>/src/stubrom/stubrom.c + @sh -c "mkdir -p src/stubrom $(dir $@)" + $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/stubrom/gdb_module.o $< + @echo $@ ": \\" > $(notdir $@).deps + @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps + @tail +2 deps.tmp >> $(notdir $@).deps + @echo >> $(notdir $@).deps + @rm deps.tmp + $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ src/stubrom/gdb_module.o + } + } + + + } + + define_proc { + puts $::cdl_header "/***** proc output start *****/" + puts $::cdl_header "#include <pkgconf/system.h>" + + puts $::cdl_header "#include CYGBLD_HAL_TARGET_H" + puts $::cdl_header "#include CYGBLD_HAL_PLATFORM_H" + + puts $::cdl_header "/****** proc output end ******/" + + } + + cdl_option CYGPKG_HAL_TESTS { + display "Common HAL tests" + flavor data + no_define + calculated { "tests/cache tests/context tests/intr" } + description " + This option specifies the set of tests for the common HAL." + } +}
