# ====================================================================
|
# ====================================================================
|
#
|
#
|
# hal.cdl
|
# hal.cdl
|
#
|
#
|
# HAL configuration data
|
# HAL configuration data
|
#
|
#
|
# ====================================================================
|
# ====================================================================
|
#####ECOSGPLCOPYRIGHTBEGIN####
|
#####ECOSGPLCOPYRIGHTBEGIN####
|
## -------------------------------------------
|
## -------------------------------------------
|
## This file is part of eCos, the Embedded Configurable Operating System.
|
## This file is part of eCos, the Embedded Configurable Operating System.
|
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
|
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
|
## Copyright (C) 2002 Gary Thomas
|
## Copyright (C) 2002 Gary Thomas
|
##
|
##
|
## eCos is free software; you can redistribute it and/or modify it under
|
## eCos is free software; you can redistribute it and/or modify it under
|
## the terms of the GNU General Public License as published by the Free
|
## the terms of the GNU General Public License as published by the Free
|
## Software Foundation; either version 2 or (at your option) any later version.
|
## Software Foundation; either version 2 or (at your option) any later version.
|
##
|
##
|
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
|
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
|
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
## for more details.
|
## for more details.
|
##
|
##
|
## You should have received a copy of the GNU General Public License along
|
## You should have received a copy of the GNU General Public License along
|
## with eCos; if not, write to the Free Software Foundation, Inc.,
|
## with eCos; if not, write to the Free Software Foundation, Inc.,
|
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
##
|
##
|
## As a special exception, if other files instantiate templates or use macros
|
## As a special exception, if other files instantiate templates or use macros
|
## or inline functions from this file, or you compile this file and link it
|
## or inline functions from this file, or you compile this file and link it
|
## with other works to produce a work based on this file, this file does not
|
## with other works to produce a work based on this file, this file does not
|
## by itself cause the resulting work to be covered by the GNU General Public
|
## by itself cause the resulting work to be covered by the GNU General Public
|
## License. However the source code for this file must still be made available
|
## License. However the source code for this file must still be made available
|
## in accordance with section (3) of the GNU General Public License.
|
## in accordance with section (3) of the GNU General Public License.
|
##
|
##
|
## This exception does not invalidate any other reasons why a work based on
|
## This exception does not invalidate any other reasons why a work based on
|
## this file might be covered by the GNU General Public License.
|
## this file might be covered by the GNU General Public License.
|
##
|
##
|
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
|
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
|
## at http://sources.redhat.com/ecos/ecos-license/
|
## at http://sources.redhat.com/ecos/ecos-license/
|
## -------------------------------------------
|
## -------------------------------------------
|
#####ECOSGPLCOPYRIGHTEND####
|
#####ECOSGPLCOPYRIGHTEND####
|
# ====================================================================
|
# ====================================================================
|
######DESCRIPTIONBEGIN####
|
######DESCRIPTIONBEGIN####
|
#
|
#
|
# Author(s): bartv
|
# Author(s): bartv
|
# Original data: nickg,jskov,jlarmour
|
# Original data: nickg,jskov,jlarmour
|
# Contributors: dmoseley
|
# Contributors: dmoseley
|
# Date: 1999-06-13
|
# Date: 1999-06-13
|
#
|
#
|
#####DESCRIPTIONEND####
|
#####DESCRIPTIONEND####
|
#
|
#
|
# ====================================================================
|
# ====================================================================
|
|
|
cdl_package CYGPKG_HAL {
|
cdl_package CYGPKG_HAL {
|
display "eCos HAL"
|
display "eCos HAL"
|
include_dir cyg/hal
|
include_dir cyg/hal
|
description "
|
description "
|
The eCos HAL package provide a porting layer for
|
The eCos HAL package provide a porting layer for
|
higher-level parts of the system such as the kernel and the
|
higher-level parts of the system such as the kernel and the
|
C library. Each installation should have HAL packages for
|
C library. Each installation should have HAL packages for
|
one or more architectures, and for each architecture there
|
one or more architectures, and for each architecture there
|
may be one or more supported platforms. It is necessary to
|
may be one or more supported platforms. It is necessary to
|
select one target architecture and one platform for that
|
select one target architecture and one platform for that
|
architecture. There are also a number of configuration
|
architecture. There are also a number of configuration
|
options that are common to all HAL packages."
|
options that are common to all HAL packages."
|
doc ref/the-ecos-hardware-abstraction-layer.html
|
doc ref/the-ecos-hardware-abstraction-layer.html
|
|
|
compile drv_api.c
|
compile drv_api.c
|
compile -library=libextras.a dummy.c
|
compile -library=libextras.a dummy.c
|
|
|
requires CYGPKG_INFRA
|
requires CYGPKG_INFRA
|
|
|
make -priority 250 {
|
make -priority 250 {
|
/lib/extras.o: /lib/libextras.a
|
/lib/extras.o: /lib/libextras.a
|
$(CC) $(CFLAGS) -nostdlib -Wl,-r -Wl,--whole-archive -o $@ $<
|
$(CC) $(CFLAGS) -nostdlib -Wl,-r -Wl,--whole-archive -o $@ $<
|
}
|
}
|
|
|
|
|
cdl_component CYGPKG_HAL_COMMON {
|
cdl_component CYGPKG_HAL_COMMON {
|
display "Platform-independent HAL options"
|
display "Platform-independent HAL options"
|
flavor none
|
flavor none
|
description "
|
description "
|
A number of configuration options are common to most or all
|
A number of configuration options are common to most or all
|
HAL packages, for example options controlling how much state
|
HAL packages, for example options controlling how much state
|
should be saved during a context switch. The implementations
|
should be saved during a context switch. The implementations
|
of these options will vary from architecture to architecture."
|
of these options will vary from architecture to architecture."
|
|
|
script common.cdl
|
script common.cdl
|
}
|
}
|
|
|
cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
|
cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
|
display "HAL interrupt handling"
|
display "HAL interrupt handling"
|
flavor none
|
flavor none
|
description "
|
description "
|
A number of configuration options related to interrupt
|
A number of configuration options related to interrupt
|
handling are common to most or all HAL packages, even though
|
handling are common to most or all HAL packages, even though
|
the implementations will vary from architecture to
|
the implementations will vary from architecture to
|
architecture."
|
architecture."
|
|
|
script interrupts.cdl
|
script interrupts.cdl
|
}
|
}
|
|
|
cdl_component CYGPKG_HAL_COMMON_CONTEXT {
|
cdl_component CYGPKG_HAL_COMMON_CONTEXT {
|
display "HAL context switch support"
|
display "HAL context switch support"
|
flavor none
|
flavor none
|
description "
|
description "
|
A number of configuration options related to thread contexts
|
A number of configuration options related to thread contexts
|
are common to most or all HAL packages, even though the
|
are common to most or all HAL packages, even though the
|
implementations will vary from architecture to architecture."
|
implementations will vary from architecture to architecture."
|
|
|
cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
|
cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
|
display "Use minimum thread context"
|
display "Use minimum thread context"
|
parent CYGPKG_HAL_COMMON_CONTEXT
|
parent CYGPKG_HAL_COMMON_CONTEXT
|
default_value 1
|
default_value 1
|
description "
|
description "
|
The thread context switch code can exploit the calling
|
The thread context switch code can exploit the calling
|
conventions defined for a given architecture to reduce the
|
conventions defined for a given architecture to reduce the
|
amount of state that has to be saved during a context
|
amount of state that has to be saved during a context
|
switch. Generally this improves performance and reduces
|
switch. Generally this improves performance and reduces
|
code size. However it can make source-level debugging more
|
code size. However it can make source-level debugging more
|
difficult."
|
difficult."
|
}
|
}
|
}
|
}
|
|
|
cdl_component CYGPKG_HAL_CACHE_CONTROL {
|
cdl_component CYGPKG_HAL_CACHE_CONTROL {
|
display "Explicit control over cache behaviour"
|
display "Explicit control over cache behaviour"
|
flavor none
|
flavor none
|
no_define
|
no_define
|
description "
|
description "
|
These options let the default behaviour of the caches
|
These options let the default behaviour of the caches
|
be easily configurable."
|
be easily configurable."
|
|
|
cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
|
cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
|
display "Enable DATA cache on startup"
|
display "Enable DATA cache on startup"
|
default_value 1
|
default_value 1
|
description "
|
description "
|
Enabling this option will cause the data cache to be enabled
|
Enabling this option will cause the data cache to be enabled
|
as soon as practicable when eCos starts up. One would choose
|
as soon as practicable when eCos starts up. One would choose
|
to disable this if the data cache cannot safely be turned on,
|
to disable this if the data cache cannot safely be turned on,
|
such as a case where the cache(s) require additional platform
|
such as a case where the cache(s) require additional platform
|
specific setup."
|
specific setup."
|
cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE {
|
cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE {
|
display "DATA cache mode on startup"
|
display "DATA cache mode on startup"
|
flavor data
|
flavor data
|
legal_values { "COPYBACK" "WRITETHRU" }
|
legal_values { "COPYBACK" "WRITETHRU" }
|
default_value { "COPYBACK" }
|
default_value { "COPYBACK" }
|
description "
|
description "
|
This option controls the mode the cache will be set to
|
This option controls the mode the cache will be set to
|
when enabled on startup."
|
when enabled on startup."
|
}
|
}
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
|
cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
|
display "Enable INSTRUCTION cache on startup"
|
display "Enable INSTRUCTION cache on startup"
|
default_value 1
|
default_value 1
|
description "
|
description "
|
Enabling this option will cause the instruction cache to be enabled
|
Enabling this option will cause the instruction cache to be enabled
|
as soon as practicable when eCos starts up. One would choose
|
as soon as practicable when eCos starts up. One would choose
|
to disable this if the instruction cache cannot safely be turned on,
|
to disable this if the instruction cache cannot safely be turned on,
|
such as a case where the cache(s) require additional platform
|
such as a case where the cache(s) require additional platform
|
specific setup."
|
specific setup."
|
}
|
}
|
}
|
}
|
|
|
cdl_component CYGPKG_HAL_DEBUG {
|
cdl_component CYGPKG_HAL_DEBUG {
|
display "Source-level debugging support"
|
display "Source-level debugging support"
|
flavor none
|
flavor none
|
description "
|
description "
|
If the source level debugger gdb is to be used for debugging
|
If the source level debugger gdb is to be used for debugging
|
application code then it may be necessary to configure in support
|
application code then it may be necessary to configure in support
|
for this in the HAL."
|
for this in the HAL."
|
|
|
script debugging.cdl
|
script debugging.cdl
|
}
|
}
|
|
|
cdl_component CYGPKG_HAL_ROM_MONITOR {
|
cdl_component CYGPKG_HAL_ROM_MONITOR {
|
display "ROM monitor support"
|
display "ROM monitor support"
|
flavor none
|
flavor none
|
no_define
|
no_define
|
description "
|
description "
|
Support for ROM monitors can be built in to your application.
|
Support for ROM monitors can be built in to your application.
|
It may also be relevant to build your application as a ROM monitor
|
It may also be relevant to build your application as a ROM monitor
|
itself. Such options are contained here if relevant for your chosen
|
itself. Such options are contained here if relevant for your chosen
|
platform. The options and ROM monitors available to choose are
|
platform. The options and ROM monitors available to choose are
|
platform-dependent."
|
platform-dependent."
|
|
|
|
|
|
|
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
|
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
|
display "Target has virtual vector support"
|
display "Target has virtual vector support"
|
no_define
|
no_define
|
}
|
}
|
|
|
|
|
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT {
|
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT {
|
display "Target supports baud rate control via vectors"
|
display "Target supports baud rate control via vectors"
|
no_define
|
no_define
|
description "
|
description "
|
Whether this target supports the __COMMCTL_GETBAUD
|
Whether this target supports the __COMMCTL_GETBAUD
|
and __COMMCTL_SETBAUD virtual vector comm control operations."
|
and __COMMCTL_SETBAUD virtual vector comm control operations."
|
}
|
}
|
|
|
cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT {
|
cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT {
|
display "Enable use of virtual vector calling interface"
|
display "Enable use of virtual vector calling interface"
|
active_if CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
|
active_if CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
|
calculated 1
|
calculated 1
|
description "
|
description "
|
Virtual vector support allows the HAL to let the ROM
|
Virtual vector support allows the HAL to let the ROM
|
monitor handle certain operations. The virtual vector table
|
monitor handle certain operations. The virtual vector table
|
defines a calling interface between applications running in
|
defines a calling interface between applications running in
|
RAM and the ROM monitor."
|
RAM and the ROM monitor."
|
compile hal_if.c hal_misc.c
|
compile hal_if.c hal_misc.c
|
|
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE {
|
display "Inherit console settings from ROM monitor"
|
display "Inherit console settings from ROM monitor"
|
active_if CYGSEM_HAL_USE_ROM_MONITOR
|
active_if CYGSEM_HAL_USE_ROM_MONITOR
|
default_value { !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS }
|
default_value { !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS }
|
description "
|
description "
|
When this option is set, the application will inherit
|
When this option is set, the application will inherit
|
the console as set up by the ROM monitor. This means
|
the console as set up by the ROM monitor. This means
|
that the application will use whatever channel and
|
that the application will use whatever channel and
|
mangling style was used by the ROM monitor when
|
mangling style was used by the ROM monitor when
|
the application was launched."
|
the application was launched."
|
}
|
}
|
|
|
cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE {
|
cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE {
|
display "Debug channel is configurable"
|
display "Debug channel is configurable"
|
calculated { CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS }
|
calculated { CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS }
|
description "
|
description "
|
This option is a configuration hint - it is enabled
|
This option is a configuration hint - it is enabled
|
when the HAL initialization code will make use
|
when the HAL initialization code will make use
|
of the debug channel configuration option."
|
of the debug channel configuration option."
|
}
|
}
|
|
|
cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE {
|
cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE {
|
display "Console channel is configurable"
|
display "Console channel is configurable"
|
calculated { !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE \
|
calculated { !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE \
|
&& !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN }
|
&& !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN }
|
description "
|
description "
|
This option is a configuration hint - it is enabled
|
This option is a configuration hint - it is enabled
|
when the HAL initialization code will make use
|
when the HAL initialization code will make use
|
of the console channel configuration option."
|
of the console channel configuration option."
|
}
|
}
|
|
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE {
|
display "Initialize whole of virtual vector table"
|
display "Initialize whole of virtual vector table"
|
default_value { CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR }
|
default_value { CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR }
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
|
requires CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
|
description "
|
description "
|
This option will cause the whole of the virtual
|
This option will cause the whole of the virtual
|
vector table to be initialized with dummy values on
|
vector table to be initialized with dummy values on
|
startup. When this option is enabled, all the
|
startup. When this option is enabled, all the
|
options below must also be enabled - or the
|
options below must also be enabled - or the
|
table would be empty when the application
|
table would be empty when the application
|
launches.
|
launches.
|
|
|
On targets where older ROM monitors without
|
On targets where older ROM monitors without
|
virtual vector support may still be in use, it is
|
virtual vector support may still be in use, it is
|
necessary for RAM applictions to initialize the
|
necessary for RAM applictions to initialize the
|
table (since all HAL diagnostics and debug IO
|
table (since all HAL diagnostics and debug IO
|
happens via the table)."
|
happens via the table)."
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT {
|
display "Claim virtual vector table entries by default"
|
display "Claim virtual vector table entries by default"
|
active_if !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
|
active_if !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
|
default_value 1
|
default_value 1
|
description "
|
description "
|
By default most virtual vectors will be claimed by
|
By default most virtual vectors will be claimed by
|
RAM startup configurations, meaning that the RAM
|
RAM startup configurations, meaning that the RAM
|
application will provide the services. The
|
application will provide the services. The
|
exception is COMMS support (HAL
|
exception is COMMS support (HAL
|
diagnostics/debugging IO) which is left in the
|
diagnostics/debugging IO) which is left in the
|
control of the ROM monitor.
|
control of the ROM monitor.
|
|
|
The reasoning behind this is to get as much of the
|
The reasoning behind this is to get as much of the
|
code exercised during regular development so it
|
code exercised during regular development so it
|
is known to be working the few times a new ROM
|
is known to be working the few times a new ROM
|
monitor or a ROM production configuration is used
|
monitor or a ROM production configuration is used
|
- COMMS are excluded only by necessity in order to
|
- COMMS are excluded only by necessity in order to
|
avoid breaking an existing debugger connections
|
avoid breaking an existing debugger connections
|
(there may be ways around this).
|
(there may be ways around this).
|
|
|
For production RAM configurations this option can
|
For production RAM configurations this option can
|
be switched off, causing the appliction to rely on
|
be switched off, causing the appliction to rely on
|
the ROM monitor for these services, thus
|
the ROM monitor for these services, thus
|
saving some space.
|
saving some space.
|
|
|
Individual vectors may also be left unclaimed,
|
Individual vectors may also be left unclaimed,
|
controlled by the below options (meaning that the
|
controlled by the below options (meaning that the
|
associated service provided by the ROM monitor
|
associated service provided by the ROM monitor
|
will be used)."
|
will be used)."
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET {
|
display "Claim reset virtual vectors"
|
display "Claim reset virtual vectors"
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
|
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
|
description "
|
description "
|
This option will cause the reset and kill_by_reset
|
This option will cause the reset and kill_by_reset
|
virtual vectors to be claimed."
|
virtual vectors to be claimed."
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION {
|
display "Claim version virtual vectors"
|
display "Claim version virtual vectors"
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE }
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE }
|
description "
|
description "
|
This option will cause the version
|
This option will cause the version
|
virtual vectors to be claimed."
|
virtual vectors to be claimed."
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US {
|
display "Claim delay_us virtual vector"
|
display "Claim delay_us virtual vector"
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
|
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
|
description "
|
description "
|
This option will cause the delay_us
|
This option will cause the delay_us
|
virtual vector to be claimed."
|
virtual vector to be claimed."
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE {
|
display "Claim cache virtual vectors"
|
display "Claim cache virtual vectors"
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
|
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
|
description "
|
description "
|
This option will cause the cache virtual vectors
|
This option will cause the cache virtual vectors
|
to be claimed."
|
to be claimed."
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA {
|
display "Claim data virtual vectors"
|
display "Claim data virtual vectors"
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
|
|| CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT }
|
description "
|
description "
|
This option will cause the data virtual vectors
|
This option will cause the data virtual vectors
|
to be claimed. At present there is only one, used
|
to be claimed. At present there is only one, used
|
by the RedBoot ethernet driver to share diag output."
|
by the RedBoot ethernet driver to share diag output."
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS {
|
display "Claim comms virtual vectors"
|
display "Claim comms virtual vectors"
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
default_value { CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE \
|
|| CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS }
|
|| CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS }
|
description "
|
description "
|
This option will cause the communication tables
|
This option will cause the communication tables
|
that are part of the virtual vectors mechanism to
|
that are part of the virtual vectors mechanism to
|
be claimed. Note that doing this may cause an
|
be claimed. Note that doing this may cause an
|
existing ROM monitor communication connection to
|
existing ROM monitor communication connection to
|
be closed. For this reason, the option is disabled
|
be closed. For this reason, the option is disabled
|
per default for normal application
|
per default for normal application
|
configurations."
|
configurations."
|
}
|
}
|
|
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_DIAG {
|
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_DIAG {
|
display "Do diagnostic IO via virtual vector table"
|
display "Do diagnostic IO via virtual vector table"
|
calculated 1
|
calculated 1
|
description "
|
description "
|
All HAL IO happens via the virtual vector table / comm
|
All HAL IO happens via the virtual vector table / comm
|
tables when those tables are supported by the HAL.
|
tables when those tables are supported by the HAL.
|
|
|
If so desired, the low-level IO functions can
|
If so desired, the low-level IO functions can
|
still be provided by the RAM application by
|
still be provided by the RAM application by
|
enabling the CLAIM_COMMS option."
|
enabling the CLAIM_COMMS option."
|
}
|
}
|
}
|
}
|
|
|
cdl_option CYGBLD_BUILD_COMMON_GDB_STUBS {
|
cdl_option CYGBLD_BUILD_COMMON_GDB_STUBS {
|
display "Build common GDB stub ROM image"
|
display "Build common GDB stub ROM image"
|
default_value 0
|
default_value 0
|
parent CYGBLD_GLOBAL_OPTIONS
|
parent CYGBLD_GLOBAL_OPTIONS
|
requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
|
requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
|
no_define
|
no_define
|
description "
|
description "
|
Unless a target board has specific requirements to the
|
Unless a target board has specific requirements to the
|
stub implementation, it can use a simple common stub.
|
stub implementation, it can use a simple common stub.
|
This option, which gets enabled by platform HALs as
|
This option, which gets enabled by platform HALs as
|
appropriate, controls the building of the common stub."
|
appropriate, controls the building of the common stub."
|
|
|
make -priority 315 {
|
make -priority 315 {
|
/bin/gdb_module.img : /src/stubrom/stubrom.c /lib/extras.o /lib/libtarget.a /lib/target.ld /lib/vectors.o
|
/bin/gdb_module.img : /src/stubrom/stubrom.c /lib/extras.o /lib/libtarget.a /lib/target.ld /lib/vectors.o
|
@sh -c "mkdir -p src/stubrom $(dir $@)"
|
@sh -c "mkdir -p src/stubrom $(dir $@)"
|
$(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/stubrom/gdb_module.o $<
|
$(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/stubrom/gdb_module.o $<
|
@echo $@ ": \\" > $(notdir $@).deps
|
@echo $@ ": \\" > $(notdir $@).deps
|
@echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
|
@echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
|
@tail +2 deps.tmp >> $(notdir $@).deps
|
@tail +2 deps.tmp >> $(notdir $@).deps
|
@echo >> $(notdir $@).deps
|
@echo >> $(notdir $@).deps
|
@rm deps.tmp
|
@rm deps.tmp
|
$(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ src/stubrom/gdb_module.o
|
$(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ src/stubrom/gdb_module.o
|
}
|
}
|
}
|
}
|
|
|
|
|
}
|
}
|
|
|
# Does platform need special I/O initializations?
|
# Does platform need special I/O initializations?
|
cdl_interface CYGINT_HAL_PLF_IF_INIT {
|
cdl_interface CYGINT_HAL_PLF_IF_INIT {
|
display "Platform defined I/O channels."
|
display "Platform defined I/O channels."
|
description "
|
description "
|
Platforms which provide additional I/O channels can implement
|
Platforms which provide additional I/O channels can implement
|
this interface, indicating that the function plf_if_init()
|
this interface, indicating that the function plf_if_init()
|
needs to be called."
|
needs to be called."
|
}
|
}
|
|
|
# Does platform provide IDE I/O macros?
|
# Does platform provide IDE I/O macros?
|
cdl_interface CYGINT_HAL_PLF_IF_IDE {
|
cdl_interface CYGINT_HAL_PLF_IF_IDE {
|
display "Platform IDE I/O support."
|
display "Platform IDE I/O support."
|
description "
|
description "
|
Platforms which provide IDE controllers can implement
|
Platforms which provide IDE controllers can implement
|
this interface, indicating that IDE I/O macros are
|
this interface, indicating that IDE I/O macros are
|
available."
|
available."
|
}
|
}
|
cdl_option CYGPKG_HAL_GDB_FILEIO {
|
cdl_option CYGPKG_HAL_GDB_FILEIO {
|
display "File I/O operations via GDB"
|
display "File I/O operations via GDB"
|
default_value 0
|
default_value 0
|
active_if CYGSEM_REDBOOT_BSP_SYSCALLS
|
active_if CYGSEM_REDBOOT_BSP_SYSCALLS
|
requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
|
requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
|
compile gdb-fileio.c
|
compile gdb-fileio.c
|
description "This option enables support for various file I/O
|
description "This option enables support for various file I/O
|
operations using the GDB remote protocol to communicate
|
operations using the GDB remote protocol to communicate
|
with GDB. The operations are then performed on the
|
with GDB. The operations are then performed on the
|
debugging host by proxy. These operations are only
|
debugging host by proxy. These operations are only
|
currently available by using a system call interface
|
currently available by using a system call interface
|
to RedBoot. This may change in the future."
|
to RedBoot. This may change in the future."
|
}
|
}
|
|
|
define_proc {
|
define_proc {
|
puts $::cdl_header "/***** proc output start *****/"
|
puts $::cdl_header "/***** proc output start *****/"
|
puts $::cdl_header "#include "
|
puts $::cdl_header "#include "
|
|
|
puts $::cdl_header "#include CYGBLD_HAL_TARGET_H"
|
puts $::cdl_header "#include CYGBLD_HAL_TARGET_H"
|
puts $::cdl_header "#ifdef CYGBLD_HAL_VARIANT_H"
|
puts $::cdl_header "#ifdef CYGBLD_HAL_VARIANT_H"
|
puts $::cdl_header "#include CYGBLD_HAL_VARIANT_H"
|
puts $::cdl_header "#include CYGBLD_HAL_VARIANT_H"
|
puts $::cdl_header "#endif"
|
puts $::cdl_header "#endif"
|
puts $::cdl_header "#include CYGBLD_HAL_PLATFORM_H"
|
puts $::cdl_header "#include CYGBLD_HAL_PLATFORM_H"
|
|
|
puts $::cdl_header "/****** proc output end ******/"
|
puts $::cdl_header "/****** proc output end ******/"
|
|
|
}
|
}
|
|
|
cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
|
cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
|
display "Build Compiler sanity checking tests"
|
display "Build Compiler sanity checking tests"
|
description "
|
description "
|
Enabling this option causes compiler tests to be built."
|
Enabling this option causes compiler tests to be built."
|
}
|
}
|
|
|
cdl_component CYGPKG_HAL_TESTS {
|
cdl_component CYGPKG_HAL_TESTS {
|
display "Common HAL tests"
|
display "Common HAL tests"
|
flavor data
|
flavor data
|
no_define
|
no_define
|
calculated { "tests/context tests/basic"
|
calculated { "tests/context tests/basic"
|
. ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
|
. ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
|
. ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
|
. ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
|
. ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? " tests/intr" : "") }
|
. ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? " tests/intr" : "") }
|
description "
|
description "
|
This option specifies the set of tests for the common HAL."
|
This option specifies the set of tests for the common HAL."
|
|
|
|
|
cdl_interface CYGINT_HAL_TESTS_NO_CACHES {
|
cdl_interface CYGINT_HAL_TESTS_NO_CACHES {
|
display "Interface for cache presence"
|
display "Interface for cache presence"
|
flavor booldata
|
flavor booldata
|
description "
|
description "
|
Some architectures and/or platforms do not have caches. By
|
Some architectures and/or platforms do not have caches. By
|
implementing this interface, these can disable the various
|
implementing this interface, these can disable the various
|
cache-related tests."
|
cache-related tests."
|
}
|
}
|
|
|
}
|
}
|
}
|
}
|
|
|