From: lothar Date: Thu, 16 Jun 2011 14:58:36 +0000 (+0000) Subject: TX53 Release 2011-06-16 X-Git-Tag: v1.5.3~17 X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-redboot.git;a=commitdiff_plain;h=84d27734bc516723cef57f3f9564d1f54675cb4c TX53 Release 2011-06-16 --- diff --git a/config/TX27-40x0.ecc b/config/TX27-40x0.ecc index a9de1f03..9362d5cb 100644 --- a/config/TX27-40x0.ecc +++ b/config/TX27-40x0.ecc @@ -794,6 +794,24 @@ cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD { }; # < +# MXC FEC MII Gasket for RMII mode +# This option enables the use of the MII Gasket for +# RMII mode found in i.MX25 and i.MX53 processors. +# +cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK { + # This option is not active + # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 + # CYGPKG_HAL_ARM_MX25 (unknown) == 0 + # CYGPKG_HAL_ARM_MX53 (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + # < # Ethernet transceiver (PHY) support # API for ethernet PHY devices diff --git a/config/TX27-40x1.ecc b/config/TX27-40x1.ecc index 7cef0a19..6109d967 100644 --- a/config/TX27-40x1.ecc +++ b/config/TX27-40x1.ecc @@ -794,6 +794,24 @@ cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD { }; # < +# MXC FEC MII Gasket for RMII mode +# This option enables the use of the MII Gasket for +# RMII mode found in i.MX25 and i.MX53 processors. +# +cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK { + # This option is not active + # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 + # CYGPKG_HAL_ARM_MX25 (unknown) == 0 + # CYGPKG_HAL_ARM_MX53 (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + # < # Ethernet transceiver (PHY) support # API for ethernet PHY devices diff --git a/config/TX37-50x0.ecc b/config/TX37-50x0.ecc index aa397c88..226da56f 100644 --- a/config/TX37-50x0.ecc +++ b/config/TX37-50x0.ecc @@ -792,6 +792,24 @@ cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD { }; # < +# MXC FEC MII Gasket for RMII mode +# This option enables the use of the MII Gasket for +# RMII mode found in i.MX25 and i.MX53 processors. +# +cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK { + # This option is not active + # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 + # CYGPKG_HAL_ARM_MX25 (unknown) == 0 + # CYGPKG_HAL_ARM_MX53 (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + # < # Ethernet transceiver (PHY) support # API for ethernet PHY devices diff --git a/config/TX51-80x0.ecc b/config/TX51-80x0.ecc index 1a9890dc..bb5b40cd 100644 --- a/config/TX51-80x0.ecc +++ b/config/TX51-80x0.ecc @@ -794,6 +794,24 @@ cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD { }; # < +# MXC FEC MII Gasket for RMII mode +# This option enables the use of the MII Gasket for +# RMII mode found in i.MX25 and i.MX53 processors. +# +cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK { + # This option is not active + # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 + # CYGPKG_HAL_ARM_MX25 (unknown) == 0 + # CYGPKG_HAL_ARM_MX53 (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + # < # Ethernet transceiver (PHY) support # API for ethernet PHY devices diff --git a/config/TX53-1xx1.ecc b/config/TX53-1xx1.ecc new file mode 100644 index 00000000..fb588343 --- /dev/null +++ b/config/TX53-1xx1.ecc @@ -0,0 +1,10352 @@ +# eCos saved configuration + +# ---- commands -------------------------------------------------------- +# This section contains information about the savefile format. +# It should not be edited. Any modifications made to this section +# may make it impossible for the configuration tools to read +# the savefile. + +cdl_savefile_version 1; +cdl_savefile_command cdl_savefile_version {}; +cdl_savefile_command cdl_savefile_command {}; +cdl_savefile_command cdl_configuration { description hardware template package }; +cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value }; + +# ---- toplevel -------------------------------------------------------- +# This section defines the toplevel configuration object. The only +# values that can be changed are the name of the configuration and +# the description field. It is not possible to modify the target, +# the template or the set of packages simply by editing the lines +# below because these changes have wide-ranging effects. Instead +# the appropriate tools should be used to make such modifications. + +cdl_configuration eCos { + description "" ; + + # These fields should not be modified. + hardware tx53karo ; + template redboot ; + package -hardware CYGPKG_HAL_ARM current ; + package -hardware CYGPKG_HAL_ARM_MX53 current ; + package -hardware CYGPKG_HAL_ARM_TX53KARO current ; + package -template CYGPKG_HAL current ; + package -template CYGPKG_INFRA current ; + package -template CYGPKG_REDBOOT current ; + package -template CYGPKG_ISOINFRA current ; + package -template CYGPKG_LIBC_STRING current ; + package -template CYGPKG_CRC current ; + package -hardware CYGPKG_IO_ETH_DRIVERS current ; + package -hardware CYGPKG_DEVS_ETH_ARM_TX53 current ; + package -hardware CYGPKG_DEVS_ETH_FEC current ; + package -hardware CYGPKG_COMPRESS_ZLIB current ; + package -hardware CYGPKG_IO_FLASH current ; + package -hardware CYGPKG_DEVS_FLASH_ONMXC current ; + package -template CYGPKG_MEMALLOC current ; + package -template CYGPKG_DEVS_ETH_PHY current ; + package -template CYGPKG_LIBC_I18N current ; + package -template CYGPKG_LIBC_STDLIB current ; + package -template CYGPKG_ERROR current ; + package -hardware CYGPKG_DEVS_MXC_I2C current ; + package -hardware CYGPKG_DEVS_IMX_IPU current ; +}; + +# ---- conflicts ------------------------------------------------------- +# There are no conflicts. + +# ---- contents -------------------------------------------------------- +# > +# > +# Global build options +# Global build options including control over +# compiler flags, linker flags and choice of toolchain. +# +cdl_component CYGBLD_GLOBAL_OPTIONS { + # There is no associated value. + + # The following properties are affected by this value +}; + +# > +# Global command prefix +# This option specifies the command prefix used when +# invoking the build tools. +# +cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX { + # Flavor: data + user_value arm-cortexa8-linux-gnu + # value_source user + # Default value: arm-926ejs-linux-gnu +}; + +# Global compiler flags +# This option controls the global compiler flags which are used to +# compile all packages by default. Individual packages may define +# options which override these global flags. +# +cdl_option CYGBLD_GLOBAL_CFLAGS { + # Flavor: data + user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # The inferred value should not be edited directly. + inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # value_source user + # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS + # CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1 + # --> 1 + + # The following properties are affected by this value + # option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS + # Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") + # option CYGBLD_INFRA_CFLAGS_PIPE + # Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") +}; + +# Global linker flags +# This option controls the global linker flags. Individual +# packages may define options which override these global flags. +# +cdl_option CYGBLD_GLOBAL_LDFLAGS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-Wl,--gc-sections -Wl,-static -O2 -nostdlib" + # value_source default + # Default value: "-Wl,--gc-sections -Wl,-static -O2 -nostdlib" +}; + +# Build common GDB stub ROM image +# 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. +# +cdl_option CYGBLD_BUILD_COMMON_GDB_STUBS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 +}; + +# < +# ISO C library string functions +# doc: ref/libc.html +# This package provides string functions specified by the +# ISO C standard - ISO/IEC 9899:1990. +# +cdl_package CYGPKG_LIBC_STRING { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == "" + # CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == + # --> 1 + # Requires: CYGBLD_ISO_STRING_MEMFUNCS_HEADER == "" + # CYGBLD_ISO_STRING_MEMFUNCS_HEADER == + # --> 1 + # Requires: CYGBLD_ISO_STRING_STRFUNCS_HEADER == "" + # CYGBLD_ISO_STRING_STRFUNCS_HEADER == + # --> 1 + # Requires: CYGBLD_ISO_STRTOK_R_HEADER == "" + # CYGBLD_ISO_STRTOK_R_HEADER == + # --> 1 + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 +}; + +# > +# Inline versions of functions +# This option chooses whether some of the +# particularly simple string functions from +# are available as inline +# functions. This may improve performance, and as +# the functions are small, may even improve code +# size. +# +cdl_option CYGIMP_LIBC_STRING_INLINES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Optimize string functions for code size +# This option tries to reduce string function +# code size at the expense of execution speed. The +# same effect can be produced if the code is +# compiled with the -Os option to the compiler. +# +cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Provide BSD compatibility functions +# Enabling this option causes various compatibility functions +# commonly found in the BSD UNIX operating system to be included. +# These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp, +# strncasecmp, index, rindex and swab. +# +cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + # Requires: CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == "" + # CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == + # --> 1 + # Requires: CYGINT_ISO_CTYPE + # CYGINT_ISO_CTYPE == 1 + # --> 1 +}; + +# strtok +# These options control the behaviour of the +# strtok() and strtok_r() string tokenization +# functions. +# +cdl_component CYGPKG_LIBC_STRING_STRTOK { + # There is no associated value. +}; + +# > +# Per-thread strtok() +# This option controls whether the string function +# strtok() has its state recorded on a per-thread +# basis rather than global. If this option is +# disabled, some per-thread space can be saved. +# Note there is also a POSIX-standard strtok_r() +# function to achieve a similar effect with user +# support. Enabling this option will use one slot +# of kernel per-thread data. You should ensure you +# have enough slots configured for all your +# per-thread data. +# +cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 + # Requires: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 +}; + +# Tracing level +# Trace verbosity level for debugging the +# functions strtok() and strtok_r(). Increase this +# value to get additional trace output. +# +cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# < +# strdup +# This option indicates whether strdup() is to be supported. +# +cdl_option CYGFUN_LIBC_STRING_STRDUP { + # ActiveIf constraint: CYGINT_ISO_MALLOC + # CYGINT_ISO_MALLOC == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# C library string functions build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_LIBC_STRING_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the C library. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the C library. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# C library string function tests +# This option specifies the set of tests for the C library +# string functions. +# +cdl_option CYGPKG_LIBC_STRING_TESTS { + # Calculated value: "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2" + # Flavor: data + # Current_value: tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2 +}; + +# < +# < +# Common ethernet support +# doc: ref/io-eth-drv-generic.html +# Platform independent ethernet drivers +# +cdl_package CYGPKG_IO_ETH_DRIVERS { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_NETWORKING + # ActiveIf: CYGPKG_IO_ETH_DRIVERS + # package CYGPKG_DEVS_ETH_ARM_TX53 + # ActiveIf: CYGPKG_IO_ETH_DRIVERS + # package CYGPKG_DEVS_ETH_FEC + # ActiveIf: CYGPKG_IO_ETH_DRIVERS + # package CYGPKG_DEVS_ETH_PHY + # ActiveIf: CYGPKG_IO_ETH_DRIVERS +}; + +# > +# Network drivers +# +cdl_interface CYGHWR_NET_DRIVERS { + # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE + # ActiveIf: CYGHWR_NET_DRIVERS > 1 + # option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE + # ActiveIf: CYGHWR_NET_DRIVERS > 1 +}; + +# Driver supports multicast addressing +# This interface defines whether or not a driver can handle +# requests for multicast addressing. +# +cdl_interface CYGINT_IO_ETH_MULTICAST { + # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# Support printing driver debug information +# Selecting this option will include code to allow the driver to +# print lots of information on diagnostic output such as full +# packet dumps. +# +cdl_component CYGDBG_IO_ETH_DRIVERS_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Driver debug output verbosity +# The value of this option indicates the default verbosity +# level of debugging output. 0 means no debugging output +# is made by default. Higher values indicate higher verbosity. +# The verbosity level may also be changed at run time by +# changing the variable cyg_io_eth_net_debug. +# +cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Size of scatter-gather I/O lists +# A scatter-gather list is used to pass requests to/from +# the physical device driver. This list can typically be +# small, as the data is normally already packed into reasonable +# chunks. +# +cdl_option CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 32 + # value_source default + # Default value: 32 +}; + +# Support for standard eCos TCP/IP stack. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_NET { + # This option is not active + # ActiveIf constraint: CYGPKG_NET + # CYGPKG_NET (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 +}; + +# > +# Warn when there are no more mbufs +# Warnings about running out of mbufs are printed to the +# diagnostic output channel via diag_printf() if this option +# is enabled. Mbufs are the network stack's basic dynamic +# memory objects that hold all packets in transit; running +# out is bad for performance but not fatal, not a crash. +# You might want to turn off the warnings to preserve realtime +# properties of the system even in extremis. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_WARN_NO_MBUFS { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Simulate network failures for testing +# This package contains a suite of simulated failure modes +# for the ethernet device layer, including dropping and/or +# corrupting received packets, dropping packets queued for +# transmission, and simulating a complete network break. +# It requires the kernel as a source of time information. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Drop incoming packets (percentage) +# +cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_RX { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 10 + # value_source default + # Default value: 1 10 + # Legal values: 10 50 80 +}; + +# Corrupt incoming packets (percentage) +# +cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_CORRUPT_RX { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 10 + # value_source default + # Default value: 1 10 + # Legal values: 10 50 80 +}; + +# Drop outgoing packets (percentage) +# +cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_TX { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 10 + # value_source default + # Default value: 1 10 + # Legal values: 10 50 80 +}; + +# Simulate a line cut from time to time +# This option causes the system to drop all packets for a +# short random period (10s of seconds), and then act +# normally for up to 4 times that long. This simulates your +# sysadmin fiddling with plugs in the network switch +# cupboard. +# +cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_LINE_CUT { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# < +# Support for stand-alone network stack. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE { + # ActiveIf constraint: !CYGPKG_NET + # CYGPKG_NET (unknown) == 0 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGINT_ISO_STRING_MEMFUNCS + # CYGINT_ISO_STRING_MEMFUNCS == 1 + # --> 1 +}; + +# > +# Pass packets to an alternate stack +# Define this to allow packets seen by this layer to be +# passed on to the previous logical layer, i.e. when +# stand-alone processing replaces system (eCos) processing. +# +cdl_option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 0 != CYGPKG_REDBOOT_NETWORKING + # CYGPKG_REDBOOT_NETWORKING == 1 + # --> 1 +}; + +# Number of [network] buffers +# This option is used to allocate space to buffer incoming network +# packets. These buffers are used to hold data until they can be +# logically processed by higher layers. +# +cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4 + # value_source default + # Default value: 4 + # Legal values: 2 to 32 +}; + +# Show driver warnings +# Selecting this option will allows the stand-alone ethernet driver +# to display warnings on the system console when incoming network +# packets are being discarded due to lack of buffer space. +# +cdl_option CYGSEM_IO_ETH_DRIVERS_WARN { + # ActiveIf constraint: CYGPKG_REDBOOT + # CYGPKG_REDBOOT == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Support for lwIP network stack. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP { + # This option is not active + # ActiveIf constraint: CYGPKG_NET_LWIP + # CYGPKG_NET_LWIP (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: !CYGPKG_NET + # CYGPKG_NET (unknown) == 0 + # --> 1 +}; + +# Interrupt support required +# This interface is used to indicate to the low +# level device drivers that interrupt driven operation +# is required by higher layers. +# +cdl_interface CYGINT_IO_ETH_INT_SUPPORT_REQUIRED { + # Implemented by CYGPKG_IO_ETH_DRIVERS_NET, inactive, enabled + # Implemented by CYGPKG_IO_ETH_DRIVERS_LWIP, inactive, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + + # The following properties are affected by this value +}; + +# Common ethernet support build options +# +cdl_component CYGPKG_IO_ETH_DRIVERS_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the common ethernet support package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_IO_ETH_DRIVERS_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-D_KERNEL -D__ECOS" + # value_source default + # Default value: "-D_KERNEL -D__ECOS" +}; + +# < +# Ethernet driver for Ka-Ro electronics TX53 processor module +# +cdl_package CYGPKG_DEVS_ETH_ARM_TX53 { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS + # CYGPKG_IO_ETH_DRIVERS == current + # --> 1 + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current +}; + +# > +# FEC ethernet driver required +# +cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED { + # Implemented by CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # package CYGPKG_DEVS_ETH_FEC + # ActiveIf: CYGINT_DEVS_ETH_FEC_REQUIRED +}; + +# Ka-Ro TX53 ethernet port driver +# This option includes the ethernet device driver for the +# MXC Board port. +# +cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE + # CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1 + # --> 1 + # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700 + # CYGHWR_DEVS_ETH_PHY_LAN8700 == 1 + # --> 1 +}; + +# > +# Device name for the ETH0 ethernet driver +# This option sets the name of the ethernet device. +# +cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "\"eth0\"" + # value_source default + # Default value: "\"eth0\"" +}; + +# OUI part of MAC address +# This option sets OUI part (manufacturer ID) of the MAC address +# for validation. +# +cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI { + # ActiveIf constraint: CYGSEM_REDBOOT_PLF_ESA_VALIDATE + # CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1 + # --> 1 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "{ 0x00, 0x0c, 0xc6 }" + # value_source default + # Default value: "{ 0x00, 0x0c, 0xc6 }" +}; + +# < +# < +# Driver for fast ethernet controller. +# Driver for fast ethernet controller. +# +cdl_package CYGPKG_DEVS_ETH_FEC { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS + # CYGPKG_IO_ETH_DRIVERS == current + # --> 1 + # ActiveIf constraint: CYGINT_DEVS_ETH_FEC_REQUIRED + # CYGINT_DEVS_ETH_FEC_REQUIRED == 1 + # --> 1 + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current +}; + +# > +# MXC FEC ethernet driver build options +# +cdl_component CYGPKG_DEVS_ETH_FEC_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the Cirrus Logic ethernet driver package. +# These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-D_KERNEL -D__ECOS" + # value_source default + # Default value: "-D_KERNEL -D__ECOS" +}; + +# < +# MXC FEC MII Gasket for RMII mode +# This option enables the use of the MII Gasket for +# RMII mode found in i.MX25 and i.MX53 processors. +# +cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK { + # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 + # CYGPKG_HAL_ARM_MX25 (unknown) == 0 + # CYGPKG_HAL_ARM_MX53 == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Ethernet transceiver (PHY) support +# API for ethernet PHY devices +# +cdl_package CYGPKG_DEVS_ETH_PHY { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS + # CYGPKG_IO_ETH_DRIVERS == current + # --> 1 + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT + # CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1 + # --> 1 +}; + +# > +# Enable driver debugging +# Enables the diagnostic debug messages on the +# console device. +# +cdl_option CYGDBG_DEVS_ETH_PHY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Time period (seconds) to wait for auto-negotiation +# The length of time to wait for auto-negotiation to complete +# before giving up and declaring the link dead/missing. +# +cdl_option CYGINT_DEVS_ETH_PHY_AUTO_NEGOTIATION_TIME { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 5 + # value_source default + # Default value: 5 +}; + +# NSDP83847 +# Include support for National Semiconductor DP83847 DsPHYTER II +# +cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# AMD 79C874 +# Include support for AMD 79C874 NetPHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_AM79C874 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Intel LXT972 +# Include support for Intel LXT972xxx PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_INLXT972 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# ICS 1890 +# Include support for ICS 1890 PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_ICS1890 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# ICS 1892 +# Include support for ICS 1892 PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_ICS1892 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# ICS 1893 +# Include support for ICS 1893 and 1893AF PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_ICS1893 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Davicom DM9161A +# Include support for the Davicom DM9161A PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_DM9161A { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Micrel KS8721 +# Include support for the Micrel KS8721 PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_KS8721 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# SMSC LAN8700 +# Include support for SMSC LAN8700 NetPHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + + # The following properties are affected by this value + # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 + # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700 +}; + +# < +# < +# ISO C library internationalization functions +# doc: ref/libc.html +# This package provides internationalization functions specified by the +# ISO C standard - ISO/IEC 9899:1990. These include locale-related +# functionality and functionality. +# +cdl_package CYGPKG_LIBC_I18N { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 +}; + +# > +# Supported locales +# These options determine which locales other than the "C" locale +# are supported and hence contribute to the size of the executable. +# +cdl_component CYGPKG_LIBC_I18N_LOCALES { + # There is no associated value. +}; + +# > +# Support for multiple locales required +# +cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED { + # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_SJIS, active, disabled + # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_JIS, active, disabled + # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_EUCJP, active, disabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == "" + # CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == 0 + # --> 0 + + # The following properties are affected by this value +}; + +# C-SJIS locale support +# This option controls if the "C-SJIS" locale will be +# supported by setlocale(). The locale is a hybrid locale +# that is mostly the "C" locale with Japanese SJIS multibyte +# support added. +# +cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # LegalValues: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # DefaultValue: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) +}; + +# C-JIS locale support +# This option controls if the "C-JIS" locale will be +# supported by setlocale(). The locale is a hybrid locale +# that is mostly the "C" locale with Japanese JIS multibyte +# support added. +# +cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # LegalValues: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # DefaultValue: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) +}; + +# C-EUCJP locale support +# This option controls if the "C-EUCJP" locale will be +# supported by setlocale(). The locale is a hybrid locale +# that is mostly the "C" locale with Japanese EUCJP multibyte +# support added. +# +cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # LegalValues: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # DefaultValue: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) +}; + +# < +# Newlib's ctype implementation +# This option enables the implementation of the ctype functions +# that comes with newlib. It is table driven and therefore +# exhibits different performance characteristics. It also offers +# a limited amount of binary compatibility +# with newlib so that programs linked against newlib ctype/locale +# do not need to be recompiled when linked with eCos. +# +cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGBLD_ISO_CTYPE_HEADER == "" + # CYGBLD_ISO_CTYPE_HEADER == + # --> 0 +}; + +# Per-thread multibyte state +# This option controls whether the multibyte character +# handling functions mblen(), mbtowc(), and wctomb(), +# have their state recorded on a per-thread +# basis rather than global. If this option is +# disabled, some per-thread space can be saved. +# Enabling this option will use three slots +# of kernel per-thread data. You should ensure you +# have enough slots configured for all your +# per-thread data. +# +cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGVAR_KERNEL_THREADS_DATA != 0 + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 + # Requires: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 +}; + +# Size of locale name strings +# This option controls the maximum size of +# locale names and is used, among other things +# to instantiate a static string used +# as a return value from the +# setlocale() function. When requesting the +# current locale settings with LC_ALL, a string +# must be constructed to contain this data, rather +# than just returning a constant string. This +# string data is stored in the static string. +# This depends on the length of locale names, +# hence this option. If just the C locale is +# present, this option can be set as low as 2. +# +cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 2 + # value_source default + # Default value: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) + # CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0 + # CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0 + # CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0 + # --> 2 + # Legal values: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff + # CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0 + # CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0 + # CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0 +}; + +# Inline versions of functions +# This option chooses whether the simple character +# classification and conversion functions (e.g. +# isupper(), isalpha(), toupper(), etc.) +# from are available as inline +# functions. This may improve performance and as +# the functions are small, may even improve code +# size. +# +cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_CTYPE_HEADER == "" + # CYGBLD_ISO_CTYPE_HEADER == + # --> 1 +}; + +# C library i18n functions build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_LIBC_I18N_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the C library. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the C library. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# C library i18n function tests +# This option specifies the set of tests for the C library +# i18n functions. +# +cdl_option CYGPKG_LIBC_I18N_TESTS { + # Calculated value: "tests/ctype tests/setlocale tests/i18nmb" + # Flavor: data + # Current_value: tests/ctype tests/setlocale tests/i18nmb +}; + +# < +# < +# ISO C library general utility functions +# doc: ref/libc.html +# This package provides general utility functions in +# as specified by the ISO C standard - ISO/IEC 9899:1990. +# +cdl_package CYGPKG_LIBC_STDLIB { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: CYGINT_ISO_CTYPE + # CYGINT_ISO_CTYPE == 1 + # --> 1 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 +}; + +# > +# Inline versions of functions +# This option chooses whether some of the +# particularly simple standard utility functions +# from are available as inline +# functions. This may improve performance, and as +# the functions are small, may even improve code +# size. +# +cdl_component CYGIMP_LIBC_STDLIB_INLINES { + # There is no associated value. +}; + +# > +# abs() / labs() +# +cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_STDLIB_ABS_HEADER == "" + # CYGBLD_ISO_STDLIB_ABS_HEADER == + # --> 1 +}; + +# div() / ldiv() +# +cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_STDLIB_DIV_HEADER == "" + # CYGBLD_ISO_STDLIB_DIV_HEADER == + # --> 1 +}; + +# atof() / atoi() / atol() +# +cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_STDLIB_STRCONV_HEADER == "" + # CYGBLD_ISO_STDLIB_STRCONV_HEADER == + # --> 1 +}; + +# < +# Random number generation +# These options control the behaviour of the +# functions rand(), srand() and rand_r() +# +cdl_component CYGPKG_LIBC_RAND { + # There is no associated value. +}; + +# > +# Per-thread random seed +# doc: ref/libc-thread-safety.html +# This option controls whether the pseudo-random +# number generation functions rand() and srand() +# have their state recorded on a per-thread +# basis rather than global. If this option is +# disabled, some per-thread space can be saved. +# Note there is also a POSIX-standard rand_r() +# function to achieve a similar effect with user +# support. Enabling this option will use one slot +# of kernel per-thread data. You should ensure you +# have enough slots configured for all your +# per-thread data. +# +cdl_option CYGSEM_LIBC_PER_THREAD_RAND { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 +}; + +# Random number seed +# This selects the initial random number seed for +# rand()'s pseudo-random number generator. For +# strict ISO standard compliance, this should be 1, +# as per section 7.10.2.2 of the standard. +# +cdl_option CYGNUM_LIBC_RAND_SEED { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Legal values: 0 to 0x7fffffff +}; + +# Tracing level +# Trace verbosity level for debugging the rand(), +# srand() and rand_r() functions. Increase this +# value to get additional trace output. +# +cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# Simplest implementation +# This provides a very simple implementation of rand() +# that does not perform well with randomness in the +# lower significant bits. However it is exceptionally +# fast. It uses the sample algorithm from the ISO C +# standard itself. +# +cdl_option CYGIMP_LIBC_RAND_SIMPLEST { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Simple implementation #1 +# This provides a very simple implementation of rand() +# based on the simplest implementation above. However +# it does try to work around the lack of randomness +# in the lower significant bits, at the expense of a +# little speed. +# +cdl_option CYGIMP_LIBC_RAND_SIMPLE1 { + # Flavor: bool + user_value 0 + # value_source user + # Default value: 1 +}; + +# Knuth implementation #1 +# This implements a slightly more complex algorithm +# published in Donald E. Knuth's Art of Computer +# Programming Vol.2 section 3.6 (p.185 in the 3rd ed.). +# This produces better random numbers than the +# simplest approach but is slower. +# +cdl_option CYGIMP_LIBC_RAND_KNUTH1 { + # Flavor: bool + user_value 1 + # value_source user + # Default value: 0 +}; + +# < +# Provides strtod() +# This option allows use of the utility function +# strtod() (and consequently atof()) to convert +# from string to double precision floating point +# numbers. Disabling this option removes the +# dependency on the math library package. +# +cdl_option CYGFUN_LIBC_strtod { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 != CYGPKG_LIBM + # CYGPKG_LIBM (unknown) == 0 + # --> 0 + # Requires: CYGPKG_LIBM + # CYGPKG_LIBM (unknown) == 0 + # --> 0 +}; + +# Provides long long conversion functions +# Enabling this option will provide support for the strtoll(), +# strtoull() and atoll() conversion functions, which are +# the long long variants of the standard versions of these +# functions. Supporting this requires extra code and compile +# time. +# +cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG { + # Flavor: bool + user_value 0 + # value_source user + # Default value: 1 +}; + +# bsearch() tracing level +# Trace verbosity level for debugging the +# binary search function bsearch(). Increase this +# value to get additional trace output. +# +cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# qsort() tracing level +# Trace verbosity level for debugging the +# quicksort function qsort(). Increase this value +# to get additional trace output. +# +cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# C library stdlib build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_LIBC_STDLIB_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# C library stdlib tests +# This option specifies the set of tests for this package. +# +cdl_option CYGPKG_LIBC_STDLIB_TESTS { + # Calculated value: "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" + # Flavor: data + # Current_value: tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul +}; + +# < +# < +# < +# eCos HAL +# doc: ref/the-ecos-hardware-abstraction-layer.html +# 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. +# +cdl_package CYGPKG_HAL { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_INFRA + # CYGPKG_INFRA == current + # --> 1 + + # The following properties are affected by this value +}; + +# > +# Platform-independent HAL options +# 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. +# +cdl_component CYGPKG_HAL_COMMON { + # There is no associated value. +}; + +# > +# Provide eCos kernel support +# The HAL can be configured to either support the full eCos +# kernel, or to support only very simple applications which do +# not require a full kernel. If kernel support is not required +# then some of the startup, exception, and interrupt handling +# code can be eliminated. +# +cdl_option CYGFUN_HAL_COMMON_KERNEL_SUPPORT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + # Requires: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 +}; + +# HAL exception support +# When a processor exception occurs, for example an attempt to +# execute an illegal instruction or to perform a divide by +# zero, this exception may be handled in a number of different +# ways. If the target system has gdb support then typically +# the exception will be handled by gdb code. Otherwise if the +# HAL exception support is enabled then the HAL will invoke a +# routine deliver_exception(). Typically this routine will be +# provided by the eCos kernel, but it is possible for +# application code to provide its own implementation. If the +# HAL exception support is not enabled and a processor +# exception occurs then the behaviour of the system is +# undefined. +# +cdl_option CYGPKG_HAL_EXCEPTIONS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGPKG_KERNEL_EXCEPTIONS + # CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0 + # --> 0 + # Requires: CYGPKG_KERNEL_EXCEPTIONS + # CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0 + # --> 0 +}; + +# Stop calling constructors early +# This option supports environments where some constructors +# must be run in the context of a thread rather than at +# simple system startup time. A boolean flag named +# cyg_hal_stop_constructors is set to 1 when constructors +# should no longer be invoked. It is up to some other +# package to deal with the rest of the constructors. +# In the current version this is only possible with the +# C library. +# +cdl_option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS + # CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS (unknown) == 0 + # --> 0 +}; + +# HAL uses the MMU and allows for CDL manipulation of it's use +# +cdl_interface CYGINT_HAL_SUPPORTS_MMU_TABLES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGSEM_HAL_INSTALL_MMU_TABLES + # ActiveIf: CYGINT_HAL_SUPPORTS_MMU_TABLES +}; + +# Install MMU tables. +# This option controls whether this application installs +# its own Memory Management Unit (MMU) tables, or relies on the +# existing environment to run. +# +cdl_option CYGSEM_HAL_INSTALL_MMU_TABLES { + # This option is not active + # ActiveIf constraint: CYGINT_HAL_SUPPORTS_MMU_TABLES + # CYGINT_HAL_SUPPORTS_MMU_TABLES == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYG_HAL_STARTUP != "RAM" + # CYG_HAL_STARTUP == ROMRAM + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_STATIC_MMU_TABLES + # Requires: CYGSEM_HAL_INSTALL_MMU_TABLES +}; + +# Use static MMU tables. +# This option defines an environment where any Memory +# Management Unit (MMU) tables are constant. Normally used by ROM +# based environments, this provides a way to save RAM usage which +# would otherwise be required for these tables. +# +cdl_option CYGSEM_HAL_STATIC_MMU_TABLES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_HAL_INSTALL_MMU_TABLES + # CYGSEM_HAL_INSTALL_MMU_TABLES == 0 + # --> 0 +}; + +# Route diagnostic output to debug channel +# If not inheriting the console setup from the ROM monitor, +# it is possible to redirect diagnostic output to the debug +# channel by enabling this option. Depending on the debugger +# used it may also be necessary to select a mangler for the +# output to be displayed by the debugger. +# +cdl_component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN { + # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE + # CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE == 0 + # --> 1 + # ActiveIf constraint: CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG + # CYGPKG_HAL_ARM == current + # CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0 + # CYGPKG_HAL_V85X_V850 (unknown) == 0 + # CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS || CYG_HAL_STARTUP == "RAM") ? 1 : 0 + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # CYG_HAL_STARTUP == ROMRAM + # --> 0 + + # The following properties are affected by this value + # option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE + # Calculated: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE && !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN +}; + +# > +# Mangler used on diag output +# It is sometimes necessary to mangle (encode) the +# diag ASCII text output in order for it to show up at the +# other end. In particular, GDB may silently ignore raw +# ASCII text. +# +cdl_option CYGSEM_HAL_DIAG_MANGLER { + # This option is not active + # The parent CYGDBG_HAL_DIAG_TO_DEBUG_CHAN is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value GDB + # value_source default + # Default value: GDB + # Legal values: "GDB" "None" +}; + +# < +# < +# HAL interrupt handling +# 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. +# +cdl_component CYGPKG_HAL_COMMON_INTERRUPTS { + # There is no associated value. +}; + +# > +# Use separate stack for interrupts +# When an interrupt occurs this interrupt can be handled either +# on the current stack or on a separate stack maintained by the +# HAL. Using a separate stack requires a small number of extra +# instructions in the interrupt handling code, but it has the +# advantage that it is no longer necessary to allow extra space +# in every thread stack for the interrupt handlers. The amount +# of extra space required depends on the interrupt handlers +# that are being used. +# +cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + + # The following properties are affected by this value + # package CYGPKG_REDBOOT + # Requires: CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 +}; + +# Interrupt stack size +# This configuration option specifies the stack size in bytes +# for the interrupt stack. Typically this should be a multiple +# of 16, but the exact requirements will vary from architecture +# to architecture. The interrupt stack serves two separate +# purposes. It is used as the stack during system +# initialization. In addition, if the interrupt system is +# configured to use a separate stack then all interrupts will +# be processed on this stack. The exact memory requirements +# will vary from application to application, and will depend +# heavily on whether or not other interrupt-related options, +# for example nested interrupts, are enabled. On most targets, +# in a configuration with no kernel this stack will also be +# the stack used to invoke the application, and must obviously +# be appropriately large in that case. +# +cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 32768 + # value_source default + # Default value: CYGPKG_KERNEL ? 4096 : 32768 + # CYGPKG_KERNEL (unknown) == 0 + # --> 32768 + # Legal values: 128 to 1048576 +}; + +# Allow nested interrupts +# When an interrupt occurs the HAL interrupt handling code can +# either leave interrupts disabled for the duration of the +# interrupt handling code, or by doing some extra work it can +# reenable interrupts before invoking the interrupt handler and +# thus allow nested interrupts to happen. If all the interrupt +# handlers being used are small and do not involve any loops +# then it is usually better to disallow nested interrupts. +# However if any of the interrupt handlers are more complicated +# than nested interrupts will usually be required. +# +cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Save minimum context on interrupt +# The HAL interrupt handling code can exploit the calling conventions +# defined for a given architecture to reduce the amount of state +# that has to be saved. Generally this improves performance and +# reduces code size. However it can make source-level debugging +# more difficult. +# +cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT + # component CYGBLD_BUILD_REDBOOT + # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT +}; + +# Chain all interrupts together +# Interrupts can be attached to vectors either singly, or be +# chained together. The latter is necessary if there is no way +# of discovering which device has interrupted without +# inspecting the device itself. It can also reduce the amount +# of RAM needed for interrupt decoding tables and code. +# +cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Ignore spurious [fleeting] interrupts +# On some hardware, interrupt sources may not be de-bounced or +# de-glitched. Rather than try to handle these interrupts (no +# handling may be possible), this option allows the HAL to simply +# ignore them. In most cases, if the interrupt is real it will +# reoccur in a detectable form. +# +cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# HAL context switch support +# 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_component CYGPKG_HAL_COMMON_CONTEXT { + # There is no associated value. + + # The following properties are affected by this value +}; + +# > +# Use minimum thread context +# 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_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM + # component CYGBLD_BUILD_REDBOOT + # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM +}; + +# < +# Explicit control over cache behaviour +# These options let the default behaviour of the caches +# be easily configurable. +# +cdl_component CYGPKG_HAL_CACHE_CONTROL { + # There is no associated value. +}; + +# > +# Enable DATA cache on startup +# Enabling this option will cause the data cache to be enabled +# as soon as practicable when eCos starts up. One would choose +# to disable this if the data cache cannot safely be turned on, +# such as a case where the cache(s) require additional platform +# specific setup. +# +cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# DATA cache mode on startup +# This option controls the mode the cache will be set to +# when enabled on startup. +# +cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value COPYBACK + # value_source default + # Default value: COPYBACK + # Legal values: "COPYBACK" "WRITETHRU" +}; + +# < +# Enable INSTRUCTION cache on startup +# Enabling this option will cause the instruction cache to be enabled +# as soon as practicable when eCos starts up. One would choose +# to disable this if the instruction cache cannot safely be turned on, +# such as a case where the cache(s) require additional platform +# specific setup. +# +cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Source-level debugging support +# 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. +# +cdl_component CYGPKG_HAL_DEBUG { + # There is no associated value. +}; + +# > +# Support for GDB stubs +# The HAL implements GDB stubs for the target. +# +cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS + # option CYGBLD_BUILD_REDBOOT_WITH_GDB + # ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS +}; + +# Include GDB stubs in HAL +# This option causes a set of GDB stubs to be included into the +# system. On some target systems the GDB support will be +# provided by other means, for example by a ROM monitor. On +# other targets, especially when building a ROM-booting system, +# the necessary support has to go into the target library +# itself. When GDB stubs are include in a configuration, HAL +# serial drivers must also be included. +# +cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS { + # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS + # CYGINT_HAL_DEBUG_GDB_STUBS == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 0 + # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR + # CYGSEM_HAL_USE_ROM_MONITOR == 0 + # --> 1 + # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT + # CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0 + # --> 1 + # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM + # CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0 + # --> 1 + # Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1 + # --> 1 + + # The following properties are affected by this value + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # DefaultValue: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS || CYG_HAL_STARTUP == "RAM") ? 1 : 0 + # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # DefaultValue: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # DefaultValue: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGBLD_BUILD_COMMON_GDB_STUBS + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGPKG_HAL_GDB_FILEIO + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS + # Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGBLD_BUILD_REDBOOT_WITH_GDB + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS +}; + +# Support for external break support in GDB stubs +# The HAL implements external break (or asynchronous interrupt) +# in the GDB stubs for the target. +# +cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS_BREAK { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK +}; + +# Include GDB external break support for stubs +# This option causes the GDB stub to add a serial interrupt handler +# which will listen for GDB break packets. This lets you stop the +# target asynchronously when using GDB, usually by hitting Control+C +# or pressing the STOP button. This option differs from +# CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT in that it is used when +# GDB stubs are present. +# +cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT { + # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK + # CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # Requires: !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT + # ActiveIf: CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # option CYGBLD_BUILD_REDBOOT_WITH_GDB + # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT +}; + +# Platform does not support CTRLC +# +cdl_interface CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # ActiveIf: CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0 +}; + +# Include GDB external break support when no stubs +# This option adds an interrupt handler for the GDB serial line +# which will listen for GDB break packets. This lets you stop the +# target asynchronously when using GDB, usually by hitting Control+C +# or pressing the STOP button. This option differs from +# CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT in that it is used when the GDB +# stubs are NOT present. +# +cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT { + # This option is not active + # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGSEM_HAL_USE_ROM_MONITOR == 0 + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0 + # CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 1 + # Requires: !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT + # ActiveIf: CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # component CYGBLD_BUILD_REDBOOT + # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT +}; + +# Include GDB multi-threading debug support +# This option enables some extra HAL code which is needed +# to support multi-threaded source level debugging. +# +cdl_option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT { + # ActiveIf constraint: CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT + # CYGSEM_HAL_ROM_MONITOR == 1 + # CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT + # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT + # option CYGBLD_BUILD_REDBOOT_WITH_THREADS + # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT +}; + +# Number of times to retry sending a $O packet +# This option controls the number of attempts that eCos programs +# will make to send a $O packet to a host GDB process. If it is +# set non-zero, then the target process will attempt to resend the +# $O packet data up to this number of retries. Caution: use of +# this option is not recommended as it can thoroughly confuse the +# host GDB process. +# +cdl_option CYGNUM_HAL_DEBUG_GDB_PROTOCOL_RETRIES { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Timeout period for GDB packets +# This option controls the time (in milliseconds) that eCos programs +# will wait for a response when sending packets to a host GDB process. +# If this time elapses, then the packet will be resent, up to some +# maximum number of times (CYGNUM_HAL_DEBUG_GDB_PROTOCOL_RETRIES). +# +cdl_option CYGNUM_HAL_DEBUG_GDB_PROTOCOL_TIMEOUT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 500 + # value_source default + # Default value: 500 +}; + +# Location of CRC32 table +# The stubs use a 1 kilobyte CRC table that can either be pregenerated +# and placed in ROM, or generated at runtime in RAM. Depending on +# your memory constraints, one of these options may be better. +# +cdl_option CYGDBG_HAL_CRCTABLE_LOCATION { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value RAM + # value_source default + # Default value: RAM + # Legal values: "ROM" "RAM" +}; + +# < +# ROM monitor support +# 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_component CYGPKG_HAL_ROM_MONITOR { + # There is no associated value. + + # The following properties are affected by this value +}; + +# > +# Target has virtual vector support +# +cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT + # ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT +}; + +# Target supports baud rate control via vectors +# Whether this target supports the __COMMCTL_GETBAUD +# and __COMMCTL_SETBAUD virtual vector comm control operations. +# +cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT { + # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE + # ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT +}; + +# Enable use of virtual vector calling interface +# Virtual vector support allows the HAL to let the ROM +# monitor handle certain operations. The virtual vector table +# defines a calling interface between applications running in +# RAM and the ROM monitor. +# +cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT { + # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT + # CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 + + # The following properties are affected by this value + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT + # package CYGPKG_DEVS_ETH_PHY + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT +}; + +# > +# Inherit console settings from ROM monitor +# When this option is set, the application will inherit +# the console as set up by the ROM monitor. This means +# that the application will use whatever channel and +# mangling style was used by the ROM monitor when +# the application was launched. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE { + # This option is not active + # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR + # CYGSEM_HAL_USE_ROM_MONITOR == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1 + # --> 0 + + # The following properties are affected by this value + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE + # option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE + # Calculated: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE && !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN +}; + +# Debug channel is configurable +# This option is a configuration hint - it is enabled +# when the HAL initialization code will make use +# of the debug channel configuration option. +# +cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE { + # Calculated value: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1 + # Flavor: bool + # Current value: 1 + + # The following properties are affected by this value + # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL + # ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE +}; + +# Console channel is configurable +# This option is a configuration hint - it is enabled +# when the HAL initialization code will make use +# of the console channel configuration option. +# +cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE { + # Calculated value: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE && !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE == 0 + # CYGDBG_HAL_DIAG_TO_DEBUG_CHAN == 0 + # Flavor: bool + # Current value: 1 + + # The following properties are affected by this value + # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL + # ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE +}; + +# Initialize whole of virtual vector table +# This option will cause the whole of the virtual +# vector table to be initialized with dummy values on +# startup. When this option is enabled, all the +# options below must also be enabled - or the +# table would be empty when the application +# launches. +# On targets where older ROM monitors without +# virtual vector support may still be in use, it is +# necessary for RAM applictions to initialize the +# table (since all HAL diagnostics and debug IO +# happens via the table). +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR + # CYG_HAL_STARTUP == ROMRAM + # CYGSEM_HAL_USE_ROM_MONITOR == 0 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 1 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 1 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 1 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 1 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS +}; + +# Claim virtual vector table entries by default +# By default most virtual vectors will be claimed by +# RAM startup configurations, meaning that the RAM +# application will provide the services. The +# exception is COMMS support (HAL +# diagnostics/debugging IO) which is left in the +# control of the ROM monitor. +# The reasoning behind this is to get as much of the +# code exercised during regular development so it +# is known to be working the few times a new ROM +# monitor or a ROM production configuration is used +# - COMMS are excluded only by necessity in order to +# avoid breaking an existing debugger connections +# (there may be ways around this). +# For production RAM configurations this option can +# be switched off, causing the appliction to rely on +# the ROM monitor for these services, thus +# saving some space. +# Individual vectors may also be left unclaimed, +# controlled by the below options (meaning that the +# associated service provided by the ROM monitor +# will be used). +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT { + # This option is not active + # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT +}; + +# Claim reset virtual vectors +# This option will cause the reset and kill_by_reset +# virtual vectors to be claimed. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET +}; + +# Claim version virtual vectors +# This option will cause the version +# virtual vectors to be claimed. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # --> 1 +}; + +# Claim delay_us virtual vector +# This option will cause the delay_us +# virtual vector to be claimed. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US +}; + +# Claim cache virtual vectors +# This option will cause the cache virtual vectors +# to be claimed. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE +}; + +# Claim data virtual vectors +# This option will cause the data virtual vectors +# to be claimed. At present there is only one, used +# by the RedBoot ethernet driver to share diag output. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA +}; + +# Claim comms virtual vectors +# This option will cause the communication tables +# that are part of the virtual vectors mechanism to +# be claimed. Note that doing this may cause an +# existing ROM monitor communication connection to +# be closed. For this reason, the option is disabled +# per default for normal application +# configurations. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE + # DefaultValue: !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE + # Calculated: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS +}; + +# Do diagnostic IO via virtual vector table +# All HAL IO happens via the virtual vector table / comm +# tables when those tables are supported by the HAL. +# If so desired, the low-level IO functions can +# still be provided by the RAM application by +# enabling the CLAIM_COMMS option. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_DIAG { + # Calculated value: 1 + # Flavor: bool + # Current value: 1 + + # The following properties are affected by this value + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # ActiveIf: CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS +}; + +# < +# Behave as a ROM monitor +# Enable this option if this program is to be used as a ROM monitor, +# i.e. applications will be loaded into RAM on the TX53 module, and this +# ROM monitor may process exceptions or interrupts generated from the +# application. This enables features such as utilizing a separate +# interrupt stack when exceptions are generated. +# +cdl_option CYGSEM_HAL_ROM_MONITOR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + # Requires: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # CYG_HAL_STARTUP == ROMRAM + # CYG_HAL_STARTUP == ROMRAM + # --> 1 + + # The following properties are affected by this value + # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK + # DefaultValue: (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) + # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT + # ActiveIf: CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT + # option CYGPRI_REDBOOT_ROM_MONITOR + # Requires: CYGSEM_HAL_ROM_MONITOR +}; + +# Work with a ROM monitor +# Support can be enabled for different varieties of ROM monitor. +# This support changes various eCos semantics such as the encoding +# of diagnostic output, or the overriding of hardware interrupt +# vectors. +# Firstly there is "Generic" support which prevents the HAL +# from overriding the hardware vectors that it does not use, to +# instead allow an installed ROM monitor to handle them. This is +# the most basic support which is likely to be common to most +# implementations of ROM monitor. +# "GDB_stubs" provides support when GDB stubs are included in +# the ROM monitor or boot ROM. +# +cdl_option CYGSEM_HAL_USE_ROM_MONITOR { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 + # CYG_HAL_STARTUP == ROMRAM + # --> 0 0 + # Legal values: "Generic" "GDB_stubs" + # Requires: CYG_HAL_STARTUP == "RAM" + # CYG_HAL_STARTUP == ROMRAM + # --> 0 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE + # ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # DefaultValue: CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR +}; + +# < +# Platform defined I/O channels. +# Platforms which provide additional I/O channels can implement +# this interface, indicating that the function plf_if_init() +# needs to be called. +# +cdl_interface CYGINT_HAL_PLF_IF_INIT { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 +}; + +# Platform IDE I/O support. +# Platforms which provide IDE controllers can implement +# this interface, indicating that IDE I/O macros are +# available. +# +cdl_interface CYGINT_HAL_PLF_IF_IDE { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # component CYGSEM_REDBOOT_DISK_IDE + # ActiveIf: CYGINT_HAL_PLF_IF_IDE != 0 +}; + +# File I/O operations via GDB +# This option enables support for various file I/O +# operations using the GDB remote protocol to communicate +# with GDB. The operations are then performed on the +# debugging host by proxy. These operations are only +# currently available by using a system call interface +# to RedBoot. This may change in the future. +# +cdl_option CYGPKG_HAL_GDB_FILEIO { + # This option is not active + # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS + # CYGSEM_REDBOOT_BSP_SYSCALLS == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 +}; + +# Build Compiler sanity checking tests +# Enabling this option causes compiler tests to be built. +# +cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # component CYGPKG_HAL_TESTS + # Calculated: "tests/context tests/basic" + # . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "") + # . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "") + # . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? " tests/intr" : "") +}; + +# Common HAL tests +# This option specifies the set of tests for the common HAL. +# +cdl_component CYGPKG_HAL_TESTS { + # Calculated value: "tests/context tests/basic" + # . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "") + # . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "") + # . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? " tests/intr" : "") + # CYGINT_HAL_TESTS_NO_CACHES == 0 + # CYGPKG_HAL_BUILD_COMPILER_TESTS == 0 + # CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0 + # Flavor: data + # Current_value: tests/context tests/basic tests/cache tests/intr +}; + +# > +# Interface for cache presence +# Some architectures and/or platforms do not have caches. By +# implementing this interface, these can disable the various +# cache-related tests. +# +cdl_interface CYGINT_HAL_TESTS_NO_CACHES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + + # The following properties are affected by this value + # component CYGPKG_HAL_TESTS + # Calculated: "tests/context tests/basic" + # . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "") + # . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "") + # . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? " tests/intr" : "") +}; + +# < +# ARM architecture +# The ARM architecture HAL package provides generic +# support for this processor architecture. It is also +# necessary to select a specific target platform HAL +# package. +# +cdl_package CYGPKG_HAL_ARM { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # ActiveIf: CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG + # interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED + # ActiveIf: CYGPKG_HAL_ARM +}; + +# > +# The CPU architecture supports THUMB mode +# +cdl_interface CYGINT_HAL_ARM_THUMB_ARCH { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_THUMB + # ActiveIf: CYGINT_HAL_ARM_THUMB_ARCH != 0 + # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK + # ActiveIf: CYGINT_HAL_ARM_THUMB_ARCH != 0 +}; + +# Enable Thumb instruction set +# Enable use of the Thumb instruction set. +# +cdl_option CYGHWR_THUMB { + # This option is not active + # ActiveIf constraint: CYGINT_HAL_ARM_THUMB_ARCH != 0 + # CYGINT_HAL_ARM_THUMB_ARCH == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK + # DefaultValue: (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) +}; + +# Enable Thumb interworking compiler option +# This option controls the use of -mthumb-interwork in the +# compiler flags. It defaults enabled in Thumb or ROM monitor +# configurations, but can be overridden for reduced memory +# footprint where interworking is not a requirement. +# +cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK { + # This option is not active + # ActiveIf constraint: CYGINT_HAL_ARM_THUMB_ARCH != 0 + # CYGINT_HAL_ARM_THUMB_ARCH == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) + # CYGHWR_THUMB == 0 + # CYGSEM_HAL_ROM_MONITOR == 1 + # --> 1 +}; + +# The platform and architecture supports Big Endian operation +# +cdl_interface CYGINT_HAL_ARM_BIGENDIAN { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_BIGENDIAN + # ActiveIf: CYGINT_HAL_ARM_BIGENDIAN != 0 +}; + +# Use big-endian mode +# Use the CPU in big-endian mode. +# +cdl_option CYGHWR_HAL_ARM_BIGENDIAN { + # This option is not active + # ActiveIf constraint: CYGINT_HAL_ARM_BIGENDIAN != 0 + # CYGINT_HAL_ARM_BIGENDIAN == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# The platform uses a processor with an ARM7 core +# +cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_CPU_FAMILY + # LegalValues: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # option CYGHWR_HAL_ARM_CPU_FAMILY + # DefaultValue: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" +}; + +# The platform uses a processor with an ARM9 core +# +cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 { + # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_CPU_FAMILY + # LegalValues: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # option CYGHWR_HAL_ARM_CPU_FAMILY + # DefaultValue: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" +}; + +# The platform uses a processor with a StrongARM core +# +cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_CPU_FAMILY + # LegalValues: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # option CYGHWR_HAL_ARM_CPU_FAMILY + # DefaultValue: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" +}; + +# The platform uses a processor with a XScale core +# +cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_CPU_FAMILY + # LegalValues: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # option CYGHWR_HAL_ARM_CPU_FAMILY + # DefaultValue: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" +}; + +# ARM CPU family +# It is possible to optimize code for different +# ARM CPU families. This option selects which CPU to +# optimize for on boards that support multiple CPU types. +# +cdl_option CYGHWR_HAL_ARM_CPU_FAMILY { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value ARM9 + # value_source default + # Default value: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" + # CYGINT_HAL_ARM_ARCH_ARM7 == 0 + # CYGINT_HAL_ARM_ARCH_ARM9 == 1 + # CYGINT_HAL_ARM_ARCH_STRONGARM == 0 + # CYGINT_HAL_ARM_ARCH_XSCALE == 0 + # --> ARM9 + # Legal values: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # CYGINT_HAL_ARM_ARCH_ARM7 == 0 + # CYGINT_HAL_ARM_ARCH_ARM9 == 1 + # CYGINT_HAL_ARM_ARCH_STRONGARM == 0 + # CYGINT_HAL_ARM_ARCH_XSCALE == 0 +}; + +# Provide diagnostic dump for exceptions +# Print messages about hardware exceptions, including +# raw exception frame dump and register contents. +# +cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 1 +}; + +# Process all exceptions with the eCos application +# Normal RAM-based programs which do not include GDB stubs +# defer processing of the illegal instruction exception to GDB. +# Setting this options allows the program to explicitly handle +# the illegal instruction exception itself. Note: this will +# prevent the use of GDB to debug the application as breakpoints +# will no longer work. +# +cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Support GDB thread operations via ICE/Multi-ICE +# Allow GDB to get thread information via the ICE/Multi-ICE +# connection. +# +cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1 + # --> 1 + # Requires: CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT + # CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0 + # --> 0 +}; + +# Support for 'gprof' callbacks +# The ARM HAL provides the macro for 'gprof' callbacks from RedBoot +# to acquire the interrupt-context PC and SP, when this option is +# active. +# +cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT { + # This option is not active + # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS + # CYGSEM_REDBOOT_BSP_SYSCALLS == 0 + # --> 0 + # ActiveIf constraint: CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0 + # CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0 + # --> 0 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# Accept exceptions and irq's occurring in user mode +# For standalone Redboot based programs running in user mode. +# +cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Preserve svc spsr before returning to svc mode +# This option secures exception and breakpoint processing +# triggered during execution of application specific SWI +# handlers. +# +cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Linker script +# +cdl_option CYGBLD_LINKER_SCRIPT { + # Calculated value: "src/arm.ld" + # Flavor: data + # Current_value: src/arm.ld +}; + +# Implementations of hal_arm_mem_real_region_top() +# +cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 +}; + +# Freescale SoC architecture +# This HAL variant package provides generic +# support for the Freescale SoC. It is also +# necessary to select a specific target platform HAL +# package. +# +cdl_package CYGPKG_HAL_ARM_MX53 { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK + # ActiveIf: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 +}; + +# > +# Processor clock rate +# The processor can run at various frequencies. +# These values are expressed in KHz. Note that there are +# several steppings of the rate to run at different +# maximum frequencies. Check the specs to make sure that your +# particular processor can run at the rate you select here. +# +cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK { + # This option is not active + # ActiveIf constraint: CYG_HAL_STARTUP == "ROM" + # CYG_HAL_STARTUP == ROMRAM + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 150000 + # value_source default + # Default value: CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ? + # CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000 + # CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0 + # CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0 + # --> 150000 + # Legal values: 150000 200000 +}; + +# Real-time clock constants +# +cdl_component CYGNUM_HAL_RTC_CONSTANTS { + # There is no associated value. +}; + +# > +# Real-time clock numerator +# +cdl_option CYGNUM_HAL_RTC_NUMERATOR { + # Calculated value: 1000000000 + # Flavor: data + # Current_value: 1000000000 +}; + +# Real-time clock denominator +# This option selects the heartbeat rate for the real-time clock. +# The rate is specified in ticks per second. Change this value +# with caution - too high and your system will become saturated +# just handling clock interrupts, too low and some operations +# such as thread scheduling may become sluggish. +# +cdl_option CYGNUM_HAL_RTC_DENOMINATOR { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 100 + # value_source default + # Default value: 100 + + # The following properties are affected by this value + # option CYGNUM_HAL_RTC_PERIOD + # Calculated: (3686400/CYGNUM_HAL_RTC_DENOMINATOR) +}; + +# Real-time clock period +# +cdl_option CYGNUM_HAL_RTC_PERIOD { + # Calculated value: (3686400/CYGNUM_HAL_RTC_DENOMINATOR) + # CYGNUM_HAL_RTC_DENOMINATOR == 100 + # Flavor: data + # Current_value: 36864 +}; + +# < +# UART1 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART1 { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# UART2 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART2 { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# UART3 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART3 { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# UART4 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART4 { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# UART5 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART5 { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 +}; + +# Ka-Ro TX53 module +# This HAL platform package provides generic +# support for the Ka-Ro electronics TX53 module. +# +cdl_package CYGPKG_HAL_ARM_TX53KARO { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGINT_ISO_CTYPE + # CYGINT_ISO_CTYPE == 1 + # --> 1 + # Requires: CYGBLD_BUILD_REDBOOT == 1 + # CYGBLD_BUILD_REDBOOT == 1 + # --> 1 +}; + +# > +# Startup type +# The only startup type allowed is ROMRAM, since this will allow +# the program to exist in ROM, but be copied to RAM during startup +# which is required to boot from NAND flash. +# +cdl_component CYG_HAL_STARTUP { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value ROMRAM + # value_source default + # Default value: ROMRAM + # Legal values: "ROMRAM" "RAM" + + # The following properties are affected by this value + # option CYGSEM_HAL_ROM_MONITOR + # Requires: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # option CYGSEM_HAL_ROM_MONITOR + # Requires: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # option CYGSEM_HAL_USE_ROM_MONITOR + # DefaultValue: CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 + # option CYGSEM_HAL_USE_ROM_MONITOR + # Requires: CYG_HAL_STARTUP == "RAM" + # option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK + # ActiveIf: CYG_HAL_STARTUP == "ROM" + # option CYGSEM_HAL_INSTALL_MMU_TABLES + # DefaultValue: CYG_HAL_STARTUP != "RAM" + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # DefaultValue: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS || CYG_HAL_STARTUP == "RAM") ? 1 : 0 + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # DefaultValue: CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR + # option CYGBLD_BUILD_REDBOOT_WITH_THREADS + # ActiveIf: CYG_HAL_STARTUP != "RAM" + # option CYGPRI_REDBOOT_ROM_MONITOR + # ActiveIf: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # option CYGPRI_REDBOOT_ROM_MONITOR + # ActiveIf: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" +}; + +# Diagnostic serial port baud rate +# This option selects the baud rate used for the console port. +# Note: this should match the value chosen for the GDB port if the +# console and GDB port are the same. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 115200 + # value_source default + # Default value: 115200 + # Legal values: 9600 19200 38400 57600 115200 +}; + +# GDB serial port baud rate +# This option selects the baud rate used for the GDB port. +# Note: this should match the value chosen for the console port if the +# console and GDB port are the same. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 115200 + # value_source default + # Default value: 115200 + # Legal values: 9600 19200 38400 57600 115200 +}; + +# Number of communication channels on the TX53 +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS { + # Calculated value: 3 + # Flavor: data + # Current_value: 3 + + # The following properties are affected by this value + # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL + # LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT + # LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL + # LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 +}; + +# Debug serial port +# The TX53 provides access to three serial ports. This option +# chooses which port will be used to connect to a host +# running GDB. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL { + # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE + # CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE == 1 + # --> 1 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 3 +}; + +# Default console channel. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT { + # Calculated value: 0 + # Flavor: data + # Current_value: 0 + # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 3 + + # The following properties are affected by this value + # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL + # DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT +}; + +# Console serial port +# The TX53 provides access to three serial ports. This option +# chooses which port will be used for console output. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL { + # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE + # CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE == 1 + # --> 1 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT + # CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT == 0 + # --> 0 + # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 3 +}; + +# Ka-Ro electronics TX53 module build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_HAL_ARM_TX53_OPTIONS { + # There is no associated value. + # Requires: CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 + # CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 + # --> 1 +}; + +# > +# SDRAM size +# This option specifies the SDRAM size of the TX53 module. +# +cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x20000000 + # value_source default + # Default value: 0x20000000 + # Legal values: 0x40000000 0x20000000 +}; + +# SDRAM clock +# This option specifies the SDRAM clock im MHz of the TX53 module. +# +cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_CLK { + # Flavor: data + user_value 216 + # value_source user + # Default value: 400 + # Legal values: 216 400 +}; + +# Enable low level debugging with LED +# This option enables low level debugging by blink codes +# of the LED on STK5. +# +cdl_option CYGOPT_HAL_ARM_TX53_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: false + # false (unknown) == 0 + # --> 0 +}; + +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the TX53 HAL. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the TX53 HAL. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Show a splash screen from the FIS partition: 'logo' +# When this option is enabled, RedBoot will look for a flash partition +# named 'logo' and display the contents of this partition as initial +# screen on the LCD +# +cdl_option CYGHWR_MX53_LCD_LOGO { + # ActiveIf constraint: CYGPKG_DEVS_IMX_IPU + # CYGPKG_DEVS_IMX_IPU == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Memory layout +# +cdl_component CYGHWR_MEMORY_LAYOUT { + # Calculated value: "arm_tx53_romram" + # Flavor: data + # Current_value: arm_tx53_romram +}; + +# > +# Memory layout linker script fragment +# +cdl_option CYGHWR_MEMORY_LAYOUT_LDI { + # Calculated value: "" + # Flavor: data + # Current_value: +}; + +# Memory layout header file +# +cdl_option CYGHWR_MEMORY_LAYOUT_H { + # Calculated value: "" + # Flavor: data + # Current_value: +}; + +# < +# < +# < +# < +# < +# Infrastructure +# Common types and useful macros. +# Tracing and assertion facilities. +# Package startup options. +# +cdl_package CYGPKG_INFRA { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # package CYGPKG_HAL + # Requires: CYGPKG_INFRA + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGPKG_INFRA +}; + +# > +# Asserts & Tracing +# The eCos source code contains a significant amount of +# internal debugging support, in the form of assertions and +# tracing. +# Assertions check at runtime that various conditions are as +# expected; if not, execution is halted. +# Tracing takes the form of text messages that are output +# whenever certain events occur, or whenever functions are +# called or return. +# The most important property of these checks and messages is +# that they are not required for the program to run. +# It is prudent to develop software with assertions enabled, +# but disable them when making a product release, thus +# removing the overhead of that checking. +# It is possible to enable assertions and tracing +# independently. +# There are also options controlling the exact behaviour of +# the assertion and tracing facilities, thus giving users +# finer control over the code and data size requirements. +# +cdl_component CYGPKG_INFRA_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD + # ActiveIf: CYGPKG_INFRA_DEBUG +}; + +# > +# Use asserts +# If this option is defined, asserts in the code are tested. +# Assert functions (CYG_ASSERT()) are defined in +# 'include/cyg/infra/cyg_ass.h' within the 'install' tree. +# If it is not defined, these result in no additional +# object code and no checking of the asserted conditions. +# +cdl_component CYGDBG_USE_ASSERTS { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL + # CYGINT_INFRA_DEBUG_TRACE_IMPL == 0 + # --> 0 + + # The following properties are affected by this value + # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG + # Requires: CYGDBG_USE_ASSERTS + # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG + # DefaultValue: 0 != CYGDBG_USE_ASSERTS +}; + +# > +# Preconditions +# This option allows individual control of preconditions. +# A precondition is one type of assert, which it is +# useful to control separately from more general asserts. +# The function is CYG_PRECONDITION(condition,msg). +# +cdl_option CYGDBG_INFRA_DEBUG_PRECONDITIONS { + # This option is not active + # The parent CYGDBG_USE_ASSERTS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Postconditions +# This option allows individual control of postconditions. +# A postcondition is one type of assert, which it is +# useful to control separately from more general asserts. +# The function is CYG_POSTCONDITION(condition,msg). +# +cdl_option CYGDBG_INFRA_DEBUG_POSTCONDITIONS { + # This option is not active + # The parent CYGDBG_USE_ASSERTS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Loop invariants +# This option allows individual control of loop invariants. +# A loop invariant is one type of assert, which it is +# useful to control separately from more general asserts, +# particularly since a loop invariant is typically evaluated +# a great many times when used correctly. +# The function is CYG_LOOP_INVARIANT(condition,msg). +# +cdl_option CYGDBG_INFRA_DEBUG_LOOP_INVARIANTS { + # This option is not active + # The parent CYGDBG_USE_ASSERTS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Use assert text +# All assertions within eCos contain a text message +# which should give some information about the condition +# being tested. +# These text messages will end up being embedded in the +# application image and hence there is a significant penalty +# in terms of image size. +# It is possible to suppress the use of these messages by +# disabling this option. +# This results in smaller code size, but there is less +# human-readable information if an assertion actually gets +# triggered. +# +cdl_option CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE { + # This option is not active + # The parent CYGDBG_USE_ASSERTS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Use tracing +# If this option is defined, tracing operations +# result in output or logging, depending on other options. +# This may have adverse effects on performance, if the time +# taken to output message overwhelms the available CPU +# power or output bandwidth. +# Trace functions (CYG_TRACE()) are defined in +# 'include/cyg/infra/cyg_trac.h' within the 'install' tree. +# If it is not defined, these result in no additional +# object code and no trace information. +# +cdl_component CYGDBG_USE_TRACING { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL + # CYGINT_INFRA_DEBUG_TRACE_IMPL == 0 + # --> 0 + + # The following properties are affected by this value + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE + # ActiveIf: CYGDBG_USE_TRACING + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP + # ActiveIf: CYGDBG_USE_TRACING + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT + # ActiveIf: CYGDBG_USE_TRACING + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT + # ActiveIf: CYGDBG_USE_TRACING + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT + # ActiveIf: CYGDBG_USE_TRACING +}; + +# > +# Trace function reports +# This option allows individual control of +# function entry/exit tracing, independent of +# more general tracing output. +# This may be useful to remove clutter from a +# trace log. +# +cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS { + # This option is not active + # The parent CYGDBG_USE_TRACING is not active + # The parent CYGDBG_USE_TRACING is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Use trace text +# All trace calls within eCos contain a text message +# which should give some information about the circumstances. +# These text messages will end up being embedded in the +# application image and hence there is a significant penalty +# in terms of image size. +# It is possible to suppress the use of these messages by +# disabling this option. +# This results in smaller code size, but there is less +# human-readable information available in the trace output, +# possibly only filenames and line numbers. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_MESSAGE { + # This option is not active + # The parent CYGDBG_USE_TRACING is not active + # The parent CYGDBG_USE_TRACING is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Trace output implementations +# +cdl_interface CYGINT_INFRA_DEBUG_TRACE_IMPL { + # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL, inactive, disabled + # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE, inactive, disabled + # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY, inactive, disabled + # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER, inactive, enabled + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # component CYGDBG_USE_ASSERTS + # Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL + # component CYGDBG_USE_TRACING + # Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL +}; + +# Null output +# A null output module which is useful when +# debugging interactively; the output routines +# can be breakpointed rather than have them actually +# 'print' something. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Simple output +# An output module which produces simple output +# from tracing and assertion events. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Fancy output +# An output module which produces fancy output +# from tracing and assertion events. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Buffered tracing +# An output module which buffers output +# from tracing and assertion events. The stored +# messages are output when an assert fires, or +# CYG_TRACE_PRINT() (defined in ) +# is called. +# Of course, there will only be stored messages +# if tracing per se (CYGDBG_USE_TRACING) +# is enabled above. +# +cdl_component CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Trace buffer size +# The size of the trace buffer. This counts the number +# of trace records stored. When the buffer fills it +# either wraps, stops recording, or generates output. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 32 + # value_source default + # Default value: 32 + # Legal values: 5 to 65535 +}; + +# Wrap trace buffer when full +# When the trace buffer has filled with records it +# starts again at the beginning. Hence only the last +# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will +# be recorded. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Halt trace buffer when full +# When the trace buffer has filled with records it +# stops recording. Hence only the first +# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will +# be recorded. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Print trace buffer when full +# When the trace buffer has filled with records it +# prints the contents of the buffer. The buffer is then +# emptied and the system continues. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Print trace buffer on assert fail +# When an assertion fails the trace buffer will be +# printed to the default diagnostic device. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Use function names +# All trace and assert calls within eCos contain a +# reference to the builtin macro '__PRETTY_FUNCTION__', +# which evaluates to a string containing +# the name of the current function. +# This is useful when reading a trace log. +# It is possible to suppress the use of the function name +# by disabling this option. +# This results in smaller code size, but there is less +# human-readable information available in the trace output, +# possibly only filenames and line numbers. +# +cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_PSEUDOMACRO { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Startup options +# Some packages require a startup routine to be called. +# This can be carried out by application code, by supplying +# a routine called cyg_package_start() which calls the +# appropriate package startup routine(s). +# Alternatively, this routine can be constructed automatically +# and configured to call the startup routines of your choice. +# +cdl_component CYGPKG_INFRA_STARTUP { + # There is no associated value. +}; + +# > +# Start uITRON subsystem +# Generate a call to initialize the +# uITRON compatibility subsystem +# within the system version of cyg_package_start(). +# This enables compatibility with uITRON. +# You must configure uITRON with the correct tasks before +# starting the uItron subsystem. +# If this is disabled, and you want to use uITRON, +# you must call cyg_uitron_start() from your own +# cyg_package_start() or cyg_userstart(). +# +cdl_option CYGSEM_START_UITRON_COMPATIBILITY { + # This option is not active + # ActiveIf constraint: CYGPKG_UITRON + # CYGPKG_UITRON (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGPKG_UITRON + # CYGPKG_UITRON (unknown) == 0 + # --> 0 +}; + +# < +# Smaller slower memcpy() +# Enabling this option causes the implementation of +# the standard memcpy() routine to reduce code +# size at the expense of execution speed. This +# option is automatically enabled with the use of +# the -Os option to the compiler. Also note that +# the compiler will try to use its own builtin +# version of memcpy() if possible, ignoring the +# implementation in this package, unless given +# the -fno-builtin compiler option. +# +cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Smaller slower memset() +# Enabling this option causes the implementation of +# the standard memset() routine to reduce code +# size at the expense of execution speed. This +# option is automatically enabled with the use of +# the -Os option to the compiler. Also note that +# the compiler will try to use its own builtin +# version of memset() if possible, ignoring the +# implementation in this package, unless given +# the -fno-builtin compiler option. +# +cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Provide empty C++ delete functions +# To deal with virtual destructors, where the correct delete() +# function must be called for the derived class in question, the +# underlying delete is called when needed, from destructors. This +# is regardless of whether the destructor is called by delete itself. +# So there is a reference to delete() from all destructors. The +# default builtin delete() attempts to call free() if there is +# one defined. So, if you have destructors, and you have free(), +# as in malloc() and free(), any destructor counts as a reference +# to free(). So the dynamic memory allocation code is linked +# in regardless of whether it gets explicitly called. This +# increases code and data size needlessly. +# To defeat this undesirable behaviour, we define empty versions +# of delete and delete. But doing this prevents proper use +# of dynamic memory in C++ programs via C++'s new and delete +# operators. +# Therefore, this option is provided +# for explicitly disabling the provision of these empty functions, +# so that new and delete can be used, if that is what is required. +# +cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Threshold for valid number of delete calls +# Some users don't know about the empty delete function and then +# wonder why their C++ classes are leaking memory. If +# INFRA_DEBUG is enabled we keep a counter for the number of +# times delete is called. If it goes above this threshold we throw +# an assertion failure. This should point heavy users of +# delete in the right direction without upsetting those who want +# an empty delete function. +# +cdl_option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD { + # This option is not active + # ActiveIf constraint: CYGPKG_INFRA_DEBUG + # CYGPKG_INFRA_DEBUG == 0 + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 100 + # value_source default + # Default value: 100 +}; + +# Provide dummy abort() function +# This option controls the inclusion of a dummy abort() function. +# Parts of the C and C++ compiler runtime systems contain references +# to abort(), particulary in the C++ exception handling code. It is +# not possible to eliminate these references, so this dummy function +# in included to satisfy them. It is not expected that this function +# will ever be called, so its current behaviour is to simply loop. +# +cdl_option CYGFUN_INFRA_DUMMY_ABORT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGINT_ISO_EXIT == 0 + # CYGINT_ISO_EXIT == 0 + # --> 1 + # Requires: !CYGINT_ISO_EXIT + # CYGINT_ISO_EXIT == 0 + # --> 1 +}; + +# Reset platform at end of test case execution +# If this option is set then test case programs will reset the platform +# when they terminate, as opposed to the default which is to just hang +# in a loop. +# +cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Provide dummy strlen() function +# This option controls the inclusion of a dummy strlen() function. +# Parts of the C and C++ compiler runtime systems contain references +# to strlen(), particulary in the C++ exception handling code. It is +# not possible to eliminate these references, so this dummy function +# in included to satisfy them. While it is not expected that this function +# will ever be called, it is functional but uses the simplest, smallest +# algorithm. There is a faster version of strlen() in the C library. +# +cdl_option CYGFUN_INFRA_DUMMY_STRLEN { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGINT_ISO_STRING_STRFUNCS == 0 + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 0 + # Requires: !CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 0 +}; + +# Make all compiler warnings show as errors +# Enabling this option will cause all compiler warnings to show +# as errors and bring the library build to a halt. This is used +# to ensure that the code base is warning free, and thus ensure +# that newly introduced warnings stand out and get fixed before +# they show up as weird run-time behavior. +# +cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS { + # Flavor: bool + user_value 1 + # value_source user + # Default value: 0 + # Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") + # CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # --> 1 + + # The following properties are affected by this value + # option CYGBLD_GLOBAL_CFLAGS + # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS +}; + +# Make compiler and assembler communicate by pipe +# Enabling this option will cause the compiler to feed the +# assembly output the the assembler via a pipe instead of +# via a temporary file. This normally reduces the build +# time. +# +cdl_option CYGBLD_INFRA_CFLAGS_PIPE { + # Flavor: bool + user_value 1 + # value_source user + # Default value: 0 + # Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") + # CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # --> 1 +}; + +# Infra build options +# Package specific build options including control over +# compiler flags used only in building this package. +# +cdl_component CYGPKG_INFRA_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the eCos infra package. These flags are used +# in addition to the set of global flags. +# +cdl_option CYGPKG_INFRA_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the eCos infra package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_INFRA_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# Suppressed linker flags +# This option modifies the set of linker flags for +# building the eCos infra package tests. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wl,--gc-sections + # value_source default + # Default value: -Wl,--gc-sections +}; + +# Additional linker flags +# This option modifies the set of linker flags for +# building the eCos infra package tests. These flags are added to +# the set of global flags if present. +# +cdl_option CYGPKG_INFRA_LDFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wl,--fatal-warnings + # value_source default + # Default value: -Wl,--fatal-warnings +}; + +# Infra package tests +# +cdl_component CYGPKG_INFRA_TESTS { + # Calculated value: "tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2" + # Flavor: data + # Current_value: tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2 +}; + +# > +# Number of times a test runs +# This option controls the number of times tests will execute their +# basic function. Not all tests will honor this setting, but those +# that do will execute the test N times before terminating. A value +# less than 0 indicates to run forever. +# +cdl_option CYGNUM_TESTS_RUN_COUNT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# < +# < +# Redboot ROM monitor +# doc: ref/redboot.html +# This package supports the Redboot [stand-alone debug monitor] +# using eCos as the underlying board support mechanism. +# +cdl_package CYGPKG_REDBOOT { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 + # CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 + # --> 1 + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_ARM_OPTIONS + # ActiveIf: CYGPKG_REDBOOT + # component CYGPKG_REDBOOT_HAL_OPTIONS + # ActiveIf: CYGPKG_REDBOOT + # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS + # ActiveIf: CYGPKG_REDBOOT + # option CYGSEM_IO_ETH_DRIVERS_WARN + # ActiveIf: CYGPKG_REDBOOT +}; + +# > +# Include support for ELF file format +# +cdl_component CYGSEM_REDBOOT_ELF { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Use the virtual address in the ELF headers +# The ELF headers contain both a virtual and a physical address +# for where code/data should be loaded. By default the physical +# address is used but sometimes it is necassary to use the +# virtual address because of bugy toolchains +# +cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Methods of loading images using redboot +# +cdl_interface CYGINT_REDBOOT_LOAD_METHOD { + # Implemented by CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM, active, enabled + # Implemented by CYGPKG_REDBOOT_NETWORKING, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 2 + + # The following properties are affected by this value + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGINT_REDBOOT_LOAD_METHOD +}; + +# Build Redboot ROM ELF image +# This option enables the building of the Redboot ELF image. +# The image may require further relocation or symbol +# stripping before being converted to a binary image. +# This is handled by a rule in the target CDL. +# +cdl_component CYGBLD_BUILD_REDBOOT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + # Requires: CYGPKG_INFRA + # CYGPKG_INFRA == current + # --> 1 + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0 + # --> 1 + # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT + # CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0 + # --> 1 + # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM + # CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT + # CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1 + # --> 1 + # Requires: CYGINT_ISO_STRING_MEMFUNCS + # CYGINT_ISO_STRING_MEMFUNCS == 1 + # --> 1 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 + # Requires: CYGINT_REDBOOT_LOAD_METHOD + # CYGINT_REDBOOT_LOAD_METHOD == 2 + # --> 1 + + # The following properties are affected by this value + # package CYGPKG_HAL_ARM_TX53KARO + # Requires: CYGBLD_BUILD_REDBOOT == 1 + # option CYGBLD_BUILD_REDBOOT_BIN + # ActiveIf: CYGBLD_BUILD_REDBOOT +}; + +# > +# Include GDB support in RedBoot +# RedBoot normally includes support for the GDB debugging +# protocols. This option allows this to be disabled which +# may yield a substantial savings in terms of code and memory +# usage by RedBoot. +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB { + # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS + # CYGINT_HAL_DEBUG_GDB_STUBS == 1 + # --> 1 + + # Flavor: bool + user_value 0 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source user + # Default value: 1 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0 + # --> 0 +}; + +# Threads debugging support +# Enabling this option will include special code in the +# GDB stubs to support debugging of threaded programs. In +# the case of eCos programs, this support allows GDB to +# have complete access to the eCos threads in the +# program. +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS { + # ActiveIf constraint: CYG_HAL_STARTUP != "RAM" + # CYG_HAL_STARTUP == ROMRAM + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1 + # --> 1 +}; + +# Customized version string +# Use this option to define a customized version "string" for +# RedBoot. Note: this value is only cosmetic, displayed by the +# "version" command, but is useful for providing site specific +# information about the RedBoot configuration. +# +cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 "Ka-Ro 2010-01-06" + # value_source inferred + # Default value: 0 0 +}; + +# Enable command line editing +# If this option is non-zero, RedBoot will remember the +# last N command lines. These lines may be reused. +# Enabling this history will also enable rudimentary +# editting of the lines themselves. +# +cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 16 + # value_source default + # Default value: 16 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES + # ActiveIf: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 + # option CYGBLD_REDBOOT_CMD_LINE_HISTORY + # Requires: CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 +}; + +# Enable command line editing using ANSI arrows, etc +# If this option is enabled, RedBoot will accept standard ANSI key +# sequences for cursor movement (along with the emacs style keys). +# +cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES { + # ActiveIf constraint: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 + # CYGNUM_REDBOOT_CMD_LINE_EDITING == 16 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Enable history command and expansion +# Enabling this option will allow RedBoot to provide a +# history command to list previous commands. Also enables +# history expansion via '!' character similar to bash +# shell. +# +cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 + # CYGNUM_REDBOOT_CMD_LINE_EDITING == 16 + # --> 1 +}; + +# Number of unique RAM segments on platform +# Change this option to be the number of memory segments which are +# supported by the platform. If the value is greater than 1, then +# a platform specific function must provide information about the +# additional segments. +# +cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include support gzip/zlib decompression +# +cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB { + # ActiveIf constraint: CYGPKG_COMPRESS_ZLIB + # CYGPKG_COMPRESS_ZLIB == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER + # ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_ZLIB && CYGOPT_REDBOOT_FIS +}; + +# > +# Size of zlib decompression buffer +# This is the size of the buffer filled with incoming data +# during load before calls are made to the decompressor +# function. For ethernet downloads this can be made bigger +# (at the cost of memory), but for serial downloads on slow +# processors it may be necessary to reduce the size to +# avoid serial overruns. zlib appears to bail out if less +# than five bytes are available initially so this is the +# minimum. +# +cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 64 + # value_source default + # Default value: 64 + # Legal values: 5 to 256 +}; + +# Support compression of Flash images +# This CDL indicates whether flash images can +# be decompressed from gzip/zlib format into RAM. +# +cdl_option CYGPRI_REDBOOT_ZLIB_FLASH { + # ActiveIf constraint: CYGPKG_REDBOOT_FLASH + # CYGPKG_REDBOOT_FLASH == 1 + # --> 1 + # ActiveIf constraint: (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGPRI_REDBOOT_ZLIB_FLASH_FORCE == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# Include GZIP uncompress command +# Enable this option to include a 'gunzip' command +# to uncompress GZIP compressed data. +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Turn on CYGPRI_REDBOOT_ZLIB_FLASH +# Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen +# +cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + + # The following properties are affected by this value + # option CYGPRI_REDBOOT_ZLIB_FLASH + # ActiveIf: (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE +}; + +# < +# Include support for xyzModem downloads +# doc: ref/download-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGPKG_REDBOOT_CFLAGS_ADD + # ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM +}; + +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the eCos infra package. These flags are used +# in addition to the set of global flags. +# +cdl_option CYGPKG_REDBOOT_CFLAGS_ADD { + # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM + # CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM == 1 + # --> 1 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-inline + # value_source default + # Default value: -Wno-inline +}; + +# Allow the load-command write into Flash. +# Write images direct to Flash via the load command. +# We assume anything which is invalid RAM is flash, hence +# the requires statement +# +cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH { + # ActiveIf constraint: CYGPKG_REDBOOT_FLASH + # CYGPKG_REDBOOT_FLASH == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS + # CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS == 1 + # --> 1 +}; + +# Include MS Windows CE support +# doc: ref/wince.html +# This option enables MS Windows CE EShell support +# and Windows CE .BIN images support +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT { + # Flavor: bool + user_value 1 + # value_source user + # Default value: 0 +}; + +# Include support for MXC USB downloads +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Include support for i.MX USB OTG downloads +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_IMXOTG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Include POSIX checksum command +# doc: ref/cksum-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include memory fill command +# doc: ref/mfill-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include memory compare command +# doc: ref/mcmp-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include memory copy command +# doc: ref/mcopy-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include memory dump command +# doc: ref/dump-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include cache command +# doc: ref/cache-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include exec command +# doc: ref/exec-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_ARM_LINUX_EXEC + # ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_EXEC +}; + +# Include I/O Memory commands 'iopeek' and 'iopoke' +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Granularity of timer/ticks +# This option controls the granularity of the timers. +# Faster CPUs can afford higher granularity (lower values) +# which should give higher network performance since the stack +# is purely polled. +# +cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 250 + # value_source default + # Default value: 250 + # Legal values: 10 25 50 100 250 500 1000 +}; + +# Redboot Networking +# This option includes networking support in RedBoot. +# +cdl_component CYGPKG_REDBOOT_NETWORKING { + # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS + # CYGPKG_IO_ETH_DRIVERS == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS + # DefaultValue: 0 != CYGPKG_REDBOOT_NETWORKING +}; + +# > +# Print net debug information +# This option is overriden by the configuration stored +# in flash. +# +cdl_option CYGDBG_REDBOOT_NET_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Support TFTP for download +# This option enables the use of the TFTP protocol for +# download +# +cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Support HTTP for download +# This option enables the use of the HTTP protocol for +# download +# +cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD { + # Flavor: bool + user_value 0 + # value_source user + # Default value: 1 +}; + +# Default IP address +# This IP address is the default used by RedBoot if +# a BOOTP/DHCP server does not respond. The numbers +# should be separated by *commas*, and not dots. If +# an IP address is configured into the Flash +# configuration, that will be used in preference. +# +cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 0 +}; + +# > +# Do not try to use BOOTP +# By default Redboot tries to use BOOTP to get an IP +# address. If there's no BOOTP server on your network +# use this option to avoid to wait until the +# timeout. This option is overriden by the +# configuration stored in flash. +# +cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP { + # This option is not active + # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Default bootp server +# This IP address is the default server +# address used by RedBoot if a BOOTP/DHCP +# server does not respond. The numbers should +# be separated by *commas*, and not dots. If +# an IP address is configured into the Flash +# configuration, that will be used in +# preference. +# +cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR { + # This option is not active + # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 0 +}; + +# < +# Use DHCP to get IP information +# Use DHCP protocol to obtain pertinent IP addresses, such +# as the client, server, gateway, etc. +# +cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY + # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP +}; + +# Use a gateway for non-local IP traffic +# Enabling this option will allow the RedBoot networking +# stack to use a [single] gateway to reach a non-local +# IP address. If disabled, RedBoot will only be able to +# reach nodes on the same subnet. +# +cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP + # CYGSEM_REDBOOT_NETWORKING_DHCP == 1 + # --> 1 +}; + +# > +# Default gateway IP address +# This IP address is the default used by RedBoot +# if a BOOTP/DHCP server does not respond. The +# numbers should be separated by *commas*, and +# not dots. If an IP address is configured into +# the Flash configuration, that will be used in +# preference. +# +cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 0 +}; + +# Default IP address mask +# This IP address mask is the default used by +# RedBoot if a BOOTP/DHCP server does not +# respond. The numbers should be separated by +# *commas*, and not dots. If an IP address is +# configured into the Flash configuration, that +# will be used in preference. +# +cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "255, 255, 255, 0" + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 0 +}; + +# < +# TCP port to listen for incoming connections +# RedBoot will 'listen' on this port for incoming TCP +# connections. This allows outside connections to be made +# to the platform, either for GDB or RedBoot commands. +# +cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 9000 + # value_source default + # Default value: 9000 +}; + +# Number of [network] packet buffers +# RedBoot may need to buffer network data to support +# various connections. This option allows control +# over the number of such buffered packets, and in +# turn, controls the amount of memory used by RedBoot +# (which is not available to user applications). +# Each packet buffer takes up about 1514 bytes. +# Note: there is little need to make this larger than +# the default. +# +cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4 + # value_source default + # Default value: 4 + # Legal values: 3 to 8 +}; + +# DNS support +# When this option is enabled, RedBoot will be built with +# support for DNS, allowing use of hostnames on the command +# line. +# +cdl_component CYGPKG_REDBOOT_NETWORKING_DNS { + # This option is not active + # ActiveIf constraint: CYGPKG_NS_DNS + # CYGPKG_NS_DNS (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: !CYGPKG_NS_DNS_BUILD + # CYGPKG_NS_DNS_BUILD (unknown) == 0 + # --> 1 +}; + +# > +# Default DNS IP +# This option sets the IP of the default DNS. The IP can be +# changed at runtime as well. +# +cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active + # ActiveIf constraint: !CYGSEM_REDBOOT_FLASH_CONFIG + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0.0.0.0 + # value_source default + # Default value: 0.0.0.0 +}; + +# Timeout in DNS lookup +# This option sets the timeout used when looking up an +# address via the DNS. Default is 10 seconds. +# +cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 10 + # value_source default + # Default value: 10 +}; + +# Support the use of a domain name +# This option controls if Redboot supports domain +# names when performing DNS lookups +# +cdl_component CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Default DNS domain +# This option sets the default DNS domain name. +# This value will be overwritten by the value in +# flash or a domain returned by DHCP +# +cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DEFAULT_DOMAIN { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Get DNS domain from Flash +# This option enables getting the domain name +# from the flash configuration. This can later be +# overwritten by a value learnt from DHCP +# +cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled + # ActiveIf constraint: CYGSEM_REDBOOT_FLASH_CONFIG + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Use DNS domain from DHCP +# This option enables the use of the domain name +# returned by DHCP. +# +cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# BOOTP/DHCP DNS domain buffer size +# This options sets the size of the static +# buffer used by BOOTP/DHCP to store the DNS +# domain name. The domain name will not be +# set if the buffer is too small to hold it. +# +cdl_option CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 32 + # value_source default + # Default value: 32 +}; + +# < +# < +# Default network device driver +# This is the name of the default network device to use. +# +cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE { + # This option is not active + # ActiveIf constraint: CYGHWR_NET_DRIVERS > 1 + # CYGHWR_NET_DRIVERS == 1 + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "\"\"" + # value_source default + # Default value: "\"\"" +}; + +# Initialize only one net device +# This option tells RedBoot to stop initializing network +# devices when it finds the first device which is +# successfully initialized. The default behavior causes +# all network devices to be initialized. +# +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + # This option is not active + # ActiveIf constraint: CYGHWR_NET_DRIVERS > 1 + # CYGHWR_NET_DRIVERS == 1 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Let RedBoot use any I/O channel for its console. +# If this option is enabled then RedBoot will attempt to use all +# defined serial I/O channels for its console device. Once input +# arrives at one of these channels then the console will use only +# that port. +# +cdl_option CYGPKG_REDBOOT_ANY_CONSOLE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 +}; + +# Let RedBoot adjust the baud rate of the serial console. +# If this option is enabled then RedBoot will support commands +# to set and query the baud rate on the selected console. +# +cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE { + # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT + # CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Run a platform specific startup function. +# If this option is enabled then RedBoot will execute a platform +# specific startup function before entering into its command line +# processing. This allows the platform to perform any special +# setups before RedBoot actually starts running. Note: the entire +# RedBoot environment will already be initialized at this point. +# +cdl_option CYGSEM_REDBOOT_PLF_STARTUP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Run a platform specific ESA validation function. +# If this option is enabled then RedBoot will execute a platform +# specific function to validate an ethernet ESA. This would be +# useful if the address must conform to standards set by the +# hardware manufacturer, etc. +# +cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + + # The following properties are affected by this value + # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 + # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE + # option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI + # ActiveIf: CYGSEM_REDBOOT_PLF_ESA_VALIDATE +}; + +# Maximum command line length +# This option allows control over how long the CLI command line +# should be. This space will be allocated statically +# rather than from RedBoot's stack. +# +cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 256 + # The inferred value should not be edited directly. + inferred_value 1024 + # value_source inferred + # Default value: 256 +}; + +# Command processing idle timeout (ms) +# This option controls the timeout period before the +# command processing is considered 'idle'. Making this +# number smaller will cause idle processing to take place +# more often, etc. The default value of 10ms is a reasonable +# tradeoff between responsiveness and overhead. +# +cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 10 + # value_source default + # Default value: 10 +}; + +# Validate RAM addresses during load +# This option controls whether or not RedBoot will make +# sure that memory being used by the "load" command is +# in fact in user RAM. Leaving the option enabled makes +# for a safer environment, but this check may not be valid +# on all platforms, thus the ability to disable it. +# ** Disable this only with great care ** +# +cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGBLD_REDBOOT_LOAD_INTO_FLASH + # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS +}; + +# Allow RedBoot to support FLASH programming +# If this option is enabled then RedBoot will provide commands +# to manage images in FLASH memory. These images can be loaded +# into memory for execution or executed in place. +# +cdl_component CYGPKG_REDBOOT_FLASH { + # ActiveIf constraint: CYGHWR_IO_FLASH_DEVICE + # CYGHWR_IO_FLASH_DEVICE == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGPRI_REDBOOT_ZLIB_FLASH + # ActiveIf: CYGPKG_REDBOOT_FLASH + # option CYGBLD_REDBOOT_LOAD_INTO_FLASH + # ActiveIf: CYGPKG_REDBOOT_FLASH +}; + +# > +# Byte order used to store info in flash. +# This option controls the byte ordering used to store +# the FIS directory info and flash config info. +# +cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value NATURAL + # value_source default + # Default value: NATURAL + # Legal values: "NATURAL" "MSBFIRST" "LSBFIRST" +}; + +# RedBoot Flash Image System support +# doc: ref/flash-image-system.html +# This option enables the Flash Image System commands +# and support within RedBoot. If disabled, simple Flash +# access commands such as "fis write" will still exist. +# This option would be disabled for targets that need simple +# FLASH manipulation, but do not have the need or space for +# complete image management. +# +cdl_option CYGOPT_REDBOOT_FIS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_FIS_CONTENTS + # ActiveIf: CYGOPT_REDBOOT_FIS + # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG + # ActiveIf: CYGOPT_REDBOOT_FIS && (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") + # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER + # ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_ZLIB && CYGOPT_REDBOOT_FIS +}; + +# Max number of chunks of free space to manage +# If this option is defined then "fis free" will +# rely on the FIS directory to determine what space is +# free within the FLASH. This option controls the +# maximum number of free segment which can be handled +# (typically this number is small). If this option is +# not enabled, the the archaic behaviour of actually +# scanning the FLASH for erased sectors (unreliable) +# will be used to determine what's free and what's +# not. +# +cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 32 + # value_source default + # Default value: 1 32 +}; + +# Flash Image System default directory contents +# +cdl_component CYGPKG_REDBOOT_FIS_CONTENTS { + # ActiveIf constraint: CYGOPT_REDBOOT_FIS + # CYGOPT_REDBOOT_FIS == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# > +# Flash block containing the Directory +# Which block of flash should hold the directory +# information. Positive numbers are absolute block +# numbers. Negative block numbers count backwards +# from the last block. eg 2 means block 2, -2 +# means the last but one block. +# +cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -1 + # value_source default + # Default value: -1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK + # Requires: CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK != + # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK +}; + +# Redundant Flash Image System Directory Support +# This option enables the use of a redundant FIS +# directory within RedBoot. If enabled a flash block +# will be reserved for a second copy of the fis +# directory. Doing this allow for power failure safe +# updates of the directory by the application. +# +cdl_component CYGOPT_REDBOOT_REDUNDANT_FIS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: 0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG + # CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG == 1 + # --> 0 +}; + +# > +# Flash block containing the backup Directory +# Which block of flash should hold the redundant +# directory information. Positive numbers are +# absolute block numbers. Negative block numbers +# count backwards from the last block. eg 2 means +# block 2, -2 means the last but one block. +# +cdl_option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK { + # This option is not active + # The parent CYGOPT_REDBOOT_REDUNDANT_FIS is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -3 + # value_source default + # Default value: -3 + # Requires: CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK != + # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK + # CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK == 0 + # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK == -1 + # --> 1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK + # Requires: CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK != + # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK +}; + +# < +# Pseudo-file to describe reserved area +# If an area of FLASH is reserved, it is informative to +# have a fis entry describing it. This option controls +# creation of such an entry by default in the fis init +# command. +# +cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE { + # This option is not active + # ActiveIf constraint: 0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE + # CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# File to describe RedBoot boot image +# Normally a ROM-startup RedBoot image is first in the +# FLASH, and the system boots using that image. This +# option controls creation of an entry describing it in +# the fis init command. It might be disabled if a +# platform has an immutable boot image of its own, where +# we use a POST-startup RedBoot instead, which performs +# less board initialization. +# +cdl_option CYGOPT_REDBOOT_FIS_REDBOOT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGOPT_REDBOOT_FIS_REDBOOT_POST + # DefaultValue: !CYGOPT_REDBOOT_FIS_REDBOOT + # option CYGBLD_REDBOOT_MIN_IMAGE_SIZE + # DefaultValue: CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 +}; + +# File to describe RedBoot POST-compatible image +# This option controls creation of an entry describing a +# POST-startup RedBoot image in the fis init command. +# Not all platforms support POST-startup. A platform +# might have both for testing purposes, where the +# eventual user would substitute their own POST code for +# the initial ROM-startup RedBoot, and then jump to the +# POST-compatible RedBoot immediately following. +# +cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: !CYGOPT_REDBOOT_FIS_REDBOOT + # CYGOPT_REDBOOT_FIS_REDBOOT == 1 + # --> 0 +}; + +# > +# Offset of POST image from FLASH start +# This option specifies the offset for a POST image from +# the start of FLASH. If unset, then the fis entry +# describing the POST image will be placed where +# convenient. +# +cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET { + # This option is not active + # The parent CYGOPT_REDBOOT_FIS_REDBOOT_POST is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 + # Requires: CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET == 0 + # CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET + # Requires: CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET +}; + +# < +# File to describe RedBoot backup image +# This option controls creation of an entry describing a +# backup RedBoot image in the fis init command. +# Conventionally a RAM-startup RedBoot image is kept +# under this name for use in updating the ROM-based +# RedBoot that boots the board. +# +cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Include ARM SIB ID in FIS +# If set, this option will cause the last 5 words of +# the FIS to include the special ID needed for the +# flash to be recognized as a reserved area for RedBoot +# by an ARM BootRom monitor. +# +cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Size of FIS directory entry +# The FIS directory is limited to one single flash +# sector. If your flash has tiny sectors, you may wish +# to reduce this value in order to get more slots in +# the FIS directory. +# +cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 256 + # value_source default + # Default value: 256 +}; + +# Number of FIS directory entries +# The FIS directory normally occupies a single flash +# sector. Adjusting this value can allow for more than +# one flash sector to be used, which is useful if your +# sectors are very small. +# +cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 8 + # value_source default + # Default value: 8 +}; + +# Maximum RedBoot image size +# This option controls the maximum length reserved +# for the RedBoot boot image in the FIS table. +# This should be a multiple of the flash's erase +# block size. +# +cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00020000 + # The inferred value should not be edited directly. + inferred_value 0x00040000 + # value_source inferred + # Default value: CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 + # CYGOPT_REDBOOT_FIS_REDBOOT == 1 + # --> 0x00020000 +}; + +# Offset from start of FLASH to RedBoot boot image +# This option controls where the RedBoot boot image is +# located relative to the start of FLASH. +# +cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGNUM_REDBOOT_FLASH_RESERVED_BASE + # CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0 + # --> 0 + # Requires: CYGNUM_REDBOOT_FLASH_RESERVED_BASE <= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0 + # CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET + # Requires: CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # Requires: CYGNUM_REDBOOT_FLASH_RESERVED_BASE <= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # component CYGPKG_HAL_ARM_TX53_OPTIONS + # Requires: CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 +}; + +# Size of reserved area at start of FLASH +# This option reserves an area at the start of +# FLASH where RedBoot will never interfere; it is +# expected that this area contains +# (non-RedBoot-based) POST code or some other boot +# monitor that executes before RedBoot. +# +cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGOPT_REDBOOT_FIS_RESERVED_BASE + # ActiveIf: 0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE + # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # DefaultValue: CYGNUM_REDBOOT_FLASH_RESERVED_BASE + # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # Requires: CYGNUM_REDBOOT_FLASH_RESERVED_BASE <= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET +}; + +# < +# Keep all RedBoot FLASH data blocks locked. +# When this option is enabled, RedBoot will keep configuration +# data and the FIS directory blocks implicitly locked. While +# this is somewhat safer, it does add overhead during updates. +# +cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL { + # This option is not active + # ActiveIf constraint: CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 + # CYGHWR_IO_FLASH_BLOCK_LOCKING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Use CRC checksums on FIS images. +# When this option is enabled, RedBoot will use CRC checksums +# when reading and writing flash images. +# +cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 +}; + +# ARM FLASH drivers support SIB flash block structure +# This interface is implemented by a flash driver +# to indicate that it supports the ARM SIB flash +# block structure +# +cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED { + # No options implement this inferface + # ActiveIf constraint: CYGPKG_HAL_ARM + # CYGPKG_HAL_ARM == current + # --> 1 + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_REDBOOT_ARM_FLASH_SIB + # ActiveIf: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED +}; + +# Use ARM SIB flash block structure +# This option is used to interpret ARM Flash System +# information blocks. +# +cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB { + # This option is not active + # ActiveIf constraint: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED + # CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Keep RedBoot configuration data in FLASH +# When this option is enabled, RedBoot will keep configuration +# data in a separate block of FLASH memory. This data will +# include such items as the node IP address or startup scripts. +# +cdl_component CYGSEM_REDBOOT_FLASH_CONFIG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGPKG_IO_FLASH != 0 + # CYGPKG_IO_FLASH == current + # --> 1 + + # The following properties are affected by this value + # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR + # DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR + # DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR + # DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK + # DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "255, 255, 255, 0" + # option CYGPKG_REDBOOT_NETWORKING_DNS_IP + # ActiveIf: !CYGSEM_REDBOOT_FLASH_CONFIG + # option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN + # ActiveIf: CYGSEM_REDBOOT_FLASH_CONFIG + # option CYGFUN_REDBOOT_BOOT_SCRIPT + # ActiveIf: CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT || CYGSEM_REDBOOT_FLASH_CONFIG +}; + +# > +# Length of configuration data in FLASH +# This option is used to control the amount of memory and FLASH +# to be used for configuration options (persistent storage). +# +cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4096 + # value_source default + # Default value: 4096 +}; + +# Style of media used for persistent data storage +# Persistent data storage can either be held in 'norma' FLASH +# or some other device (represented by the 'EEPROM' choice). +# The different styles utilize different access methods. +# +cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value FLASH + # value_source default + # Default value: FLASH + # Legal values: "FLASH" "EEPROM" + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG + # ActiveIf: CYGOPT_REDBOOT_FIS && (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") + # option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK + # DefaultValue: (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") +}; + +# Merged config data and FIS directory +# If this option is set, then the FIS directory and FLASH +# configuration database will be stored in the same physical +# FLASH block. +# +cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG { + # ActiveIf constraint: CYGOPT_REDBOOT_FIS && (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") + # CYGOPT_REDBOOT_FIS == 1 + # CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGOPT_REDBOOT_REDUNDANT_FIS + # Requires: 0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG +}; + +# Which block of flash to use +# Which block of flash should hold the configuration +# information. Positive numbers are absolute block numbers. +# Negative block numbers count backwards from the last block. +# eg 2 means block 2, -2 means the last but one block. +# +cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -2 + # value_source default + # Default value: -2 +}; + +# Support simple macros/aliases in FLASH +# This option is used to allow support for simple text-based +# macros (aliases). These aliases are kept in the FLASH +# configuration data (persistent storage). +# +cdl_option CYGSEM_REDBOOT_FLASH_ALIASES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Length of strings in FLASH configuration data +# This option is used to control the amount of memory +# and FLASH to be used for string configuration +# options (persistent storage). +# +cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 128 + # value_source default + # Default value: 128 +}; + +# Length of configuration script(s) in FLASH +# This option is used to control the amount of memory and +# FLASH to be used for configuration options (persistent +# storage). +# +cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 512 + # The inferred value should not be edited directly. + inferred_value 2048 + # value_source inferred + # Default value: 512 +}; + +# Fallback to read-only FLASH configuration +# This option will cause the configuration information to +# revert to the readonly information stored in the FLASH. +# The option only takes effect after +# 1) the config_ok flag has been set to be true, +# indicating that at one time the copy in RAM was valid; +# and +# 2) the information in RAM has been verified to be invalid +# +cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") + # CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH + # --> 1 +}; + +# < +# Allow RedBoot to support fileio +# If this option is enabled then RedBoot will provide commands +# to load files from fileio file systems such as JFFS2. +# +cdl_component CYGPKG_REDBOOT_FILEIO { + # This option is not active + # ActiveIf constraint: CYGPKG_IO_FILEIO + # CYGPKG_IO_FILEIO (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_GETC_BUFFER + # DefaultValue: CYGPKG_REDBOOT_FILEIO ? 4096 : 256 +}; + +# > +# Include an ls command +# If this option is enabled a simple ls command will be +# included in redboot so the contents of a directory +# can be listed +# +cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS { + # This option is not active + # The parent CYGPKG_REDBOOT_FILEIO is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Allow RedBoot to support disks +# If this option is enabled then RedBoot will provide commands +# to load disk files. +# +cdl_component CYGPKG_REDBOOT_DISK { + # Flavor: bool + user_value 0 + # value_source user + # Default value: 1 +}; + +# > +# Include Redboot commands for disk access +# +cdl_option CYGSEM_REDBOOT_DISK { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGINT_REDBOOT_DISK_DRIVERS != 0 + # CYGINT_REDBOOT_DISK_DRIVERS == 0 + # --> 0 +}; + +# Hardware drivers for disk-type devices +# +cdl_interface CYGINT_REDBOOT_DISK_DRIVERS { + # Implemented by CYGSEM_REDBOOT_DISK_IDE, inactive, enabled + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_DISK + # DefaultValue: CYGINT_REDBOOT_DISK_DRIVERS != 0 +}; + +# Maximum number of supported disks +# This option controls the number of disks supported by +# RedBoot. +# +cdl_option CYGNUM_REDBOOT_MAX_DISKS { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4 + # value_source default + # Default value: 4 +}; + +# Maximum number of partitions per disk +# This option controls the maximum number of supported +# partitions per disk. +# +cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 8 + # value_source default + # Default value: 8 +}; + +# Support IDE disks. +# When this option is enabled, RedBoot will support IDE disks. +# +cdl_component CYGSEM_REDBOOT_DISK_IDE { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + # ActiveIf constraint: CYGINT_HAL_PLF_IF_IDE != 0 + # CYGINT_HAL_PLF_IF_IDE == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Work with VMware virtual disks +# This option controls the disk driver behavior at +# ide-init +# +cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE { + # This option is not active + # The parent CYGSEM_REDBOOT_DISK_IDE is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Support Linux second extended filesystems. +# When this option is enabled, RedBoot will support EXT2 +# filesystems. +# +cdl_component CYGSEM_REDBOOT_DISK_EXT2FS { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Support ISO9660 filesystems. +# When this option is enabled, RedBoot will support ISO9660 +# filesystems. +# +cdl_component CYGSEM_REDBOOT_DISK_ISO9660 { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Calculated value: 0 + # Flavor: bool + # Current value: 0 +}; + +# < +# Boot scripting +# doc: ref/persistent-state-flash.html +# This contains options related to RedBoot's boot script +# functionality. +# +cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT { + # There is no associated value. +}; + +# > +# Boot scripting enabled +# This option controls whether RedBoot boot script +# functionality is enabled. +# +cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT { + # ActiveIf constraint: CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT || CYGSEM_REDBOOT_FLASH_CONFIG + # CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT == 0 + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# Use default RedBoot boot script +# If enabled, this option will tell RedBoot to use the +# value of this option as a default boot script. +# +cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 0 0 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGFUN_REDBOOT_BOOT_SCRIPT + # ActiveIf: CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT || CYGSEM_REDBOOT_FLASH_CONFIG +}; + +# Resolution (in ms) for script timeout value. +# This option controls the resolution of the script +# timeout. The value is specified in milliseconds +# (ms), thus to have the script timeout be defined in +# terms of tenths of seconds, use 100. +# +cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 1000 + # The inferred value should not be edited directly. + inferred_value 10 + # value_source inferred + # Default value: 1000 +}; + +# Script default timeout value +# This option is used to set the default timeout for startup +# scripts, when they are enabled. +# +cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 10 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 10 +}; + +# < +# Support RTC for time & date functions +# When this option is enabled, RedBoot will support commands to +# query and set the real time clock (time and date) +# +cdl_option CYGSEM_REDBOOT_RTC { + # This option is not active + # ActiveIf constraint: CYGPKG_IO_WALLCLOCK + # CYGPKG_IO_WALLCLOCK (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Behave like a ROM monitor +# Enabling this option will allow RedBoot to provide ROM +# monitor-style services to programs which it executes. +# +cdl_option CYGPRI_REDBOOT_ROM_MONITOR { + # ActiveIf constraint: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # CYG_HAL_STARTUP == ROMRAM + # CYG_HAL_STARTUP == ROMRAM + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 + # Requires: CYGSEM_HAL_ROM_MONITOR + # CYGSEM_HAL_ROM_MONITOR == 1 + # --> 1 +}; + +# Allow RedBoot to handle GNUPro application 'syscalls'. +# If this option is enabled then RedBoot will install a +# syscall handler to support debugging of applications +# based on GNUPro newlib/bsp. +# +cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT + # ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS + # option CYGPKG_HAL_GDB_FILEIO + # ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS +}; + +# > +# Support additional syscalls for 'gprof' profiling +# Support additional syscalls to support a periodic callback +# function for histogram-style profiling, and an enquire/set +# of the tick rate. +# The application must use the GNUPro newlib facilities +# to set this up. +# +cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF { + # This option is not active + # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled + # ActiveIf constraint: 0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT + # CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Does the HAL support 'gprof' profiling? +# +cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT { + # Implemented by CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT, inactive, enabled + # This option is not active + # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF + # ActiveIf: 0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT +}; + +# Do not raise SIGTRAP when program exits +# For some (single shot) newlib based programs, +# exiting and returning a termination status may be +# the normal expected behavior. +# +cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP { + # This option is not active + # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Use a common buffer for Zlib and FIS +# Use a common memory buffer for both the zlib workspace +# and FIS directory operations. This can save a substantial +# amount of RAM, especially when flash sectors are large. +# +cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER { + # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_ZLIB && CYGOPT_REDBOOT_FIS + # CYGBLD_BUILD_REDBOOT_WITH_ZLIB == 1 + # CYGOPT_REDBOOT_FIS == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Size of Zlib/FIS common buffer +# Size of common buffer to allocate. Must be at least the +# size of one flash sector. +# +cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE { + # This option is not active + # The parent CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x0000C000 + # value_source default + # Default value: 0x0000C000 + # Legal values: 0x4000 to 0x80000000 +}; + +# < +# Buffer size in getc when loading images +# When loading images a buffer is used between redboot and the +# underlying storage medium, eg a filesystem, or a socket etc. +# The size of this buffer can have a big impart on load speed. +# +cdl_option CYGNUM_REDBOOT_GETC_BUFFER { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 256 + # value_source default + # Default value: CYGPKG_REDBOOT_FILEIO ? 4096 : 256 + # CYGPKG_REDBOOT_FILEIO == 0 + # --> 256 +}; + +# < +# Redboot for ARM options +# This option lists the target's requirements for a valid Redboot +# configuration. +# +cdl_component CYGPKG_REDBOOT_ARM_OPTIONS { + # ActiveIf constraint: CYGPKG_REDBOOT + # CYGPKG_REDBOOT == current + # --> 1 + + # There is no associated value. + + # The following properties are affected by this value +}; + +# > +# Provide the exec command in RedBoot +# This option contains requirements for booting linux +# from RedBoot. The component is enabled/disabled from +# RedBoots CDL. +# +cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC { + # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC + # CYGBLD_BUILD_REDBOOT_WITH_EXEC == 1 + # --> 1 + + # There is no associated value. +}; + +# > +# Enable -x switch for exec command. +# This option allows bi-endian platforms to launch kernels +# built for an endianess different than the RedBoot endianess +# +cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Physical base address of linux kernel +# This is the physical address of the base of the +# Linux kernel image. +# +cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x70108000 + # value_source default + # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT + # CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 + # --> 0x70108000 +}; + +# Default physical base address of linux kernel +# This is the physical address of the base of the +# Linux kernel image. This option gets set by the +# platform CDL. +# +cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00008000 + # The inferred value should not be edited directly. + inferred_value 0x70108000 + # value_source inferred + # Default value: 0x00008000 + + # The following properties are affected by this value + # option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS + # DefaultValue: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT + # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS + # Requires: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 +}; + +# Base address of linux kernel parameter tags +# This is the base address of the area of memory used to +# pass parameters to the Linux kernel. This should be chosen +# to avoid overlap with the kernel and any ramdisk image. +# +cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00000100 + # value_source default + # Default value: 0x00000100 +}; + +# < +# < +# Redboot HAL options +# This option lists the target's requirements for a valid Redboot +# configuration. +# +cdl_component CYGPKG_REDBOOT_HAL_OPTIONS { + # ActiveIf constraint: CYGPKG_REDBOOT + # CYGPKG_REDBOOT == current + # --> 1 + + # There is no associated value. +}; + +# > +# Build Redboot ROM binary image +# This option enables the conversion of the Redboot ELF +# image to a binary image suitable for ROM programming. +# +cdl_option CYGBLD_BUILD_REDBOOT_BIN { + # ActiveIf constraint: CYGBLD_BUILD_REDBOOT + # CYGBLD_BUILD_REDBOOT == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Redboot HAL variant options +# +cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS { + # ActiveIf constraint: CYGPKG_REDBOOT + # CYGPKG_REDBOOT == current + # --> 1 + + # There is no associated value. + # Requires: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 + # CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 + # --> 1 +}; + +# < +# ISO C and POSIX infrastructure +# eCos supports implementations of ISO C libraries and POSIX +# implementations. This package provides infrastructure used by +# all such implementations. +# +cdl_package CYGPKG_ISOINFRA { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGPKG_ISOINFRA + # package CYGPKG_LIBC_STRING + # Requires: CYGPKG_ISOINFRA + # package CYGPKG_COMPRESS_ZLIB + # Requires: CYGPKG_ISOINFRA + # package CYGPKG_IO_FLASH + # Requires: CYGPKG_ISOINFRA + # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY + # Requires: CYGPKG_ISOINFRA + # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY + # DefaultValue: 0 != CYGPKG_ISOINFRA + # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS + # ActiveIf: CYGPKG_ISOINFRA + # package CYGPKG_LIBC_I18N + # Requires: CYGPKG_ISOINFRA + # package CYGPKG_LIBC_STDLIB + # Requires: CYGPKG_ISOINFRA +}; + +# > +# Startup and termination +# +cdl_component CYGPKG_ISO_STARTUP { + # There is no associated value. +}; + +# > +# main() startup implementations +# Implementations of this interface arrange for a user-supplied +# main() to be called in an ISO compatible environment. +# +cdl_interface CYGINT_ISO_MAIN_STARTUP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_MAIN_STARTUP + # CYGINT_ISO_MAIN_STARTUP == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_MAIN_STARTUP + # Requires: 1 >= CYGINT_ISO_MAIN_STARTUP +}; + +# environ implementations +# Implementations of this interface provide the environ +# variable required by POSIX. +# +cdl_interface CYGINT_ISO_ENVIRON { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_ENVIRON + # CYGINT_ISO_ENVIRON == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_ENVIRON + # Requires: 1 >= CYGINT_ISO_ENVIRON +}; + +# < +# ctype.h functions +# +cdl_component CYGPKG_ISO_CTYPE_H { + # There is no associated value. +}; + +# > +# Number of implementations of ctype functions +# +cdl_interface CYGINT_ISO_CTYPE { + # Implemented by CYGPKG_LIBC_I18N, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_CTYPE + # CYGINT_ISO_CTYPE == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_CTYPE + # Requires: 1 >= CYGINT_ISO_CTYPE + # package CYGPKG_HAL_ARM_TX53KARO + # Requires: CYGINT_ISO_CTYPE + # option CYGFUN_LIBC_STRING_BSD_FUNCS + # Requires: CYGINT_ISO_CTYPE + # package CYGPKG_LIBC_STDLIB + # Requires: CYGINT_ISO_CTYPE +}; + +# Ctype implementation header +# +cdl_option CYGBLD_ISO_CTYPE_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGPKG_LIBC_I18N_NEWLIB_CTYPE + # Requires: CYGBLD_ISO_CTYPE_HEADER == "" + # option CYGIMP_LIBC_I18N_CTYPE_INLINES + # Requires: CYGBLD_ISO_CTYPE_HEADER == "" +}; + +# < +# Error handling +# +cdl_component CYGPKG_ISO_ERRNO { + # There is no associated value. +}; + +# > +# Number of implementations of error codes +# +cdl_interface CYGINT_ISO_ERRNO_CODES { + # Implemented by CYGPKG_ERROR, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_ERRNO_CODES + # CYGINT_ISO_ERRNO_CODES == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_ERRNO_CODES + # Requires: 1 >= CYGINT_ISO_ERRNO_CODES +}; + +# Error codes implementation header +# +cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_ERROR + # Requires: CYGBLD_ISO_ERRNO_CODES_HEADER == "" +}; + +# Number of implementations of errno variable +# +cdl_interface CYGINT_ISO_ERRNO { + # Implemented by CYGPKG_ERROR_ERRNO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_ERRNO + # CYGINT_ISO_ERRNO == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_ERRNO + # Requires: 1 >= CYGINT_ISO_ERRNO +}; + +# errno variable implementation header +# +cdl_option CYGBLD_ISO_ERRNO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # component CYGPKG_ERROR_ERRNO + # Requires: CYGBLD_ISO_ERRNO_HEADER == "" +}; + +# < +# Locale-related functions +# +cdl_component CYGPKG_ISO_LOCALE { + # There is no associated value. +}; + +# > +# Number of implementations of locale functions +# +cdl_interface CYGINT_ISO_LOCALE { + # Implemented by CYGPKG_LIBC_I18N, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_LOCALE + # CYGINT_ISO_LOCALE == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_LOCALE + # Requires: 1 >= CYGINT_ISO_LOCALE +}; + +# Locale implementation header +# +cdl_option CYGBLD_ISO_LOCALE_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Standard I/O-related functionality +# +cdl_component CYGPKG_ISO_STDIO { + # There is no associated value. +}; + +# > +# Number of implementations of stdio file types +# +cdl_interface CYGINT_ISO_STDIO_FILETYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FILETYPES + # CYGINT_ISO_STDIO_FILETYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FILETYPES + # Requires: 1 >= CYGINT_ISO_STDIO_FILETYPES +}; + +# Stdio file types implementation header +# +cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Stdio standard streams implementations +# +cdl_interface CYGINT_ISO_STDIO_STREAMS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_STREAMS + # CYGINT_ISO_STDIO_STREAMS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_STREAMS + # Requires: 1 >= CYGINT_ISO_STDIO_STREAMS +}; + +# Stdio standard streams implementation header +# This header file must define stdin, stdout +# and stderr. +# +cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio file operations +# +cdl_interface CYGINT_ISO_STDIO_FILEOPS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FILEOPS + # CYGINT_ISO_STDIO_FILEOPS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FILEOPS + # Requires: 1 >= CYGINT_ISO_STDIO_FILEOPS +}; + +# Stdio file operations implementation header +# This header controls the file system operations on a file +# such as remove(), rename(), tmpfile(), tmpnam() and associated +# constants. +# +cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio file access functionals +# +cdl_interface CYGINT_ISO_STDIO_FILEACCESS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FILEACCESS + # CYGINT_ISO_STDIO_FILEACCESS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FILEACCESS + # Requires: 1 >= CYGINT_ISO_STDIO_FILEACCESS + # option CYGFUN_COMPRESS_ZLIB_GZIO + # Requires: CYGINT_ISO_STDIO_FILEACCESS +}; + +# Stdio file access implementation header +# This header controls the file access operations +# such as fclose(), fflush(), fopen(), freopen(), setbuf(), +# setvbuf(), and associated constants. +# +cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio formatted I/O +# +cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FORMATTED_IO + # CYGINT_ISO_STDIO_FORMATTED_IO == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FORMATTED_IO + # Requires: 1 >= CYGINT_ISO_STDIO_FORMATTED_IO + # option CYGFUN_COMPRESS_ZLIB_GZIO + # Requires: CYGINT_ISO_STDIO_FORMATTED_IO +}; + +# Stdio formatted I/O implementation header +# +cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio character I/O +# +cdl_interface CYGINT_ISO_STDIO_CHAR_IO { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_CHAR_IO + # CYGINT_ISO_STDIO_CHAR_IO == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_CHAR_IO + # Requires: 1 >= CYGINT_ISO_STDIO_CHAR_IO +}; + +# Stdio character I/O implementation header +# +cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio direct I/O +# +cdl_interface CYGINT_ISO_STDIO_DIRECT_IO { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_DIRECT_IO + # CYGINT_ISO_STDIO_DIRECT_IO == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_DIRECT_IO + # Requires: 1 >= CYGINT_ISO_STDIO_DIRECT_IO +}; + +# Stdio direct I/O implementation header +# +cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio file positioning +# +cdl_interface CYGINT_ISO_STDIO_FILEPOS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FILEPOS + # CYGINT_ISO_STDIO_FILEPOS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FILEPOS + # Requires: 1 >= CYGINT_ISO_STDIO_FILEPOS + # option CYGFUN_COMPRESS_ZLIB_GZIO + # Requires: CYGINT_ISO_STDIO_FILEPOS +}; + +# Stdio file positioning implementation header +# +cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio error handling +# +cdl_interface CYGINT_ISO_STDIO_ERROR { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_ERROR + # CYGINT_ISO_STDIO_ERROR == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_ERROR + # Requires: 1 >= CYGINT_ISO_STDIO_ERROR +}; + +# Stdio error handling implementation header +# +cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX fd-related function implementations +# +cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_POSIX_FDFUNCS + # CYGINT_ISO_STDIO_POSIX_FDFUNCS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_POSIX_FDFUNCS + # Requires: 1 >= CYGINT_ISO_STDIO_POSIX_FDFUNCS +}; + +# POSIX fd-related function implementation header +# +cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Standard general utility functions +# +cdl_component CYGPKG_ISO_STDLIB { + # There is no associated value. +}; + +# > +# String conversion function implementations +# +cdl_interface CYGINT_ISO_STDLIB_STRCONV { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_STRCONV + # CYGINT_ISO_STDLIB_STRCONV == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_STRCONV + # Requires: 1 >= CYGINT_ISO_STDLIB_STRCONV +}; + +# String conversion function implementation header +# +cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGIMP_LIBC_STDLIB_INLINE_ATOX + # Requires: CYGBLD_ISO_STDLIB_STRCONV_HEADER == "" +}; + +# String to FP conversion function implementations +# +cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT { + # Implemented by CYGFUN_LIBC_strtod, active, disabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT + # CYGINT_ISO_STDLIB_STRCONV_FLOAT == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT + # Requires: 1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT +}; + +# String to FP conversion function implementation header +# +cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Random number generator implementations +# +cdl_interface CYGINT_ISO_RAND { + # Implemented by CYGIMP_LIBC_RAND_SIMPLEST, active, disabled + # Implemented by CYGIMP_LIBC_RAND_SIMPLE1, active, disabled + # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_RAND + # CYGINT_ISO_RAND == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_RAND + # Requires: 1 >= CYGINT_ISO_RAND +}; + +# Random number generator implementation header +# +cdl_option CYGBLD_ISO_RAND_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Malloc implementations +# +cdl_interface CYGINT_ISO_MALLOC { + # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_MALLOC + # CYGINT_ISO_MALLOC == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_MALLOC + # Requires: 1 >= CYGINT_ISO_MALLOC + # option CYGFUN_LIBC_STRING_STRDUP + # ActiveIf: CYGINT_ISO_MALLOC +}; + +# Malloc implementation header +# +cdl_option CYGBLD_ISO_MALLOC_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Mallinfo() implementations +# +cdl_interface CYGINT_ISO_MALLINFO { + # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_MALLINFO + # CYGINT_ISO_MALLINFO == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_MALLINFO + # Requires: 1 >= CYGINT_ISO_MALLINFO +}; + +# Mallinfo() implementation header +# +cdl_option CYGBLD_ISO_MALLINFO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Program exit functionality implementations +# +cdl_interface CYGINT_ISO_EXIT { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_EXIT + # CYGINT_ISO_EXIT == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_EXIT + # Requires: 1 >= CYGINT_ISO_EXIT + # option CYGFUN_INFRA_DUMMY_ABORT + # Requires: !CYGINT_ISO_EXIT + # option CYGFUN_INFRA_DUMMY_ABORT + # DefaultValue: CYGINT_ISO_EXIT == 0 +}; + +# Program exit functionality implementation header +# +cdl_option CYGBLD_ISO_EXIT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Program environment implementations +# +cdl_interface CYGINT_ISO_STDLIB_ENVIRON { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_ENVIRON + # CYGINT_ISO_STDLIB_ENVIRON == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_ENVIRON + # Requires: 1 >= CYGINT_ISO_STDLIB_ENVIRON +}; + +# Program environment implementation header +# +cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# system() implementations +# +cdl_interface CYGINT_ISO_STDLIB_SYSTEM { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_SYSTEM + # CYGINT_ISO_STDLIB_SYSTEM == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_SYSTEM + # Requires: 1 >= CYGINT_ISO_STDLIB_SYSTEM +}; + +# system() implementation header +# +cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# bsearch() implementations +# +cdl_interface CYGINT_ISO_BSEARCH { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_BSEARCH + # CYGINT_ISO_BSEARCH == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_BSEARCH + # Requires: 1 >= CYGINT_ISO_BSEARCH +}; + +# bsearch() implementation header +# +cdl_option CYGBLD_ISO_BSEARCH_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# qsort() implementations +# +cdl_interface CYGINT_ISO_QSORT { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_QSORT + # CYGINT_ISO_STDLIB_QSORT (unknown) == 0 + # --> 1 + + # The following properties are affected by this value +}; + +# qsort() implementation header +# +cdl_option CYGBLD_ISO_QSORT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# abs()/labs() implementations +# +cdl_interface CYGINT_ISO_ABS { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_ABS + # CYGINT_ISO_STDLIB_ABS (unknown) == 0 + # --> 1 + + # The following properties are affected by this value +}; + +# abs()/labs() implementation header +# +cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGIMP_LIBC_STDLIB_INLINE_ABS + # Requires: CYGBLD_ISO_STDLIB_ABS_HEADER == "" +}; + +# div()/ldiv() implementations +# +cdl_interface CYGINT_ISO_DIV { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_DIV + # CYGINT_ISO_STDLIB_DIV (unknown) == 0 + # --> 1 + + # The following properties are affected by this value +}; + +# div()/ldiv() implementation header +# +cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGIMP_LIBC_STDLIB_INLINE_DIV + # Requires: CYGBLD_ISO_STDLIB_DIV_HEADER == "" +}; + +# Header defining the implementation's MB_CUR_MAX +# +cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 + + # The following properties are affected by this value + # interface CYGINT_LIBC_I18N_MB_REQUIRED + # Requires: CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == "" +}; + +# Multibyte character implementations +# +cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE { + # Implemented by CYGPKG_LIBC_I18N, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_MULTIBYTE + # CYGINT_ISO_STDLIB_MULTIBYTE == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_MULTIBYTE + # Requires: 1 >= CYGINT_ISO_STDLIB_MULTIBYTE +}; + +# Multibyte character implementation header +# +cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# String functions +# +cdl_component CYGPKG_ISO_STRING { + # There is no associated value. +}; + +# > +# Number of implementations of strerror() function +# +cdl_interface CYGINT_ISO_STRERROR { + # Implemented by CYGPKG_ERROR_STRERROR, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRERROR + # CYGINT_ISO_STRERROR == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRERROR + # Requires: 1 >= CYGINT_ISO_STRERROR +}; + +# strerror() implementation header +# +cdl_option CYGBLD_ISO_STRERROR_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGPKG_ERROR_STRERROR + # Requires: CYGBLD_ISO_STRERROR_HEADER == "" +}; + +# memcpy() implementation header +# +cdl_option CYGBLD_ISO_MEMCPY_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# memset() implementation header +# +cdl_option CYGBLD_ISO_MEMSET_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of strtok_r() function +# +cdl_interface CYGINT_ISO_STRTOK_R { + # Implemented by CYGPKG_LIBC_STRING, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRTOK_R + # CYGINT_ISO_STRTOK_R == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRTOK_R + # Requires: 1 >= CYGINT_ISO_STRTOK_R +}; + +# strtok_r() implementation header +# +cdl_option CYGBLD_ISO_STRTOK_R_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_LIBC_STRING + # Requires: CYGBLD_ISO_STRTOK_R_HEADER == "" +}; + +# Number of implementations of locale-specific string functions +# This covers locale-dependent string functions such as strcoll() +# and strxfrm(). +# +cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS { + # Implemented by CYGPKG_LIBC_STRING, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRING_LOCALE_FUNCS + # CYGINT_ISO_STRING_LOCALE_FUNCS == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRING_LOCALE_FUNCS + # Requires: 1 >= CYGINT_ISO_STRING_LOCALE_FUNCS +}; + +# Locale-specific string functions' implementation header +# This covers locale-dependent string functions such as strcoll() +# and strxfrm(). +# +cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_LIBC_STRING + # Requires: CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == "" +}; + +# Number of implementations of BSD string functions +# +cdl_interface CYGINT_ISO_STRING_BSD_FUNCS { + # Implemented by CYGFUN_LIBC_STRING_BSD_FUNCS, active, disabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STRING_BSD_FUNCS + # CYGINT_ISO_STRING_BSD_FUNCS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRING_BSD_FUNCS + # Requires: 1 >= CYGINT_ISO_STRING_BSD_FUNCS +}; + +# BSD string functions' implementation header +# +cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGFUN_LIBC_STRING_BSD_FUNCS + # Requires: CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == "" +}; + +# Number of implementations of other mem*() functions +# +cdl_interface CYGINT_ISO_STRING_MEMFUNCS { + # Implemented by CYGPKG_LIBC_STRING, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRING_MEMFUNCS + # CYGINT_ISO_STRING_MEMFUNCS == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRING_MEMFUNCS + # Requires: 1 >= CYGINT_ISO_STRING_MEMFUNCS + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGINT_ISO_STRING_MEMFUNCS + # component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE + # Requires: CYGINT_ISO_STRING_MEMFUNCS +}; + +# Other mem*() functions' implementation header +# +cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_LIBC_STRING + # Requires: CYGBLD_ISO_STRING_MEMFUNCS_HEADER == "" +}; + +# Number of implementations of other ISO C str*() functions +# This covers the other str*() functions defined by ISO C. +# +cdl_interface CYGINT_ISO_STRING_STRFUNCS { + # Implemented by CYGPKG_LIBC_STRING, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRING_STRFUNCS + # Requires: 1 >= CYGINT_ISO_STRING_STRFUNCS + # option CYGFUN_INFRA_DUMMY_STRLEN + # Requires: !CYGINT_ISO_STRING_STRFUNCS + # option CYGFUN_INFRA_DUMMY_STRLEN + # DefaultValue: CYGINT_ISO_STRING_STRFUNCS == 0 + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGINT_ISO_STRING_STRFUNCS + # component CYGPKG_IO_ETH_DRIVERS_NET + # Requires: CYGINT_ISO_STRING_STRFUNCS + # option CYGFUN_COMPRESS_ZLIB_GZIO + # Requires: CYGINT_ISO_STRING_STRFUNCS + # package CYGPKG_IO_FLASH + # Requires: CYGINT_ISO_STRING_STRFUNCS + # package CYGPKG_LIBC_STDLIB + # Requires: CYGINT_ISO_STRING_STRFUNCS +}; + +# Other ISO C str*() functions' implementation header +# This covers the other str*() functions defined by ISO C. +# +cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_LIBC_STRING + # Requires: CYGBLD_ISO_STRING_STRFUNCS_HEADER == "" +}; + +# < +# Clock and time functionality +# +cdl_component CYGPKG_ISO_TIME { + # There is no associated value. +}; + +# > +# time_t implementation header +# +cdl_option CYGBLD_ISO_TIME_T_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# clock_t implementation header +# +cdl_option CYGBLD_ISO_CLOCK_T_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# struct timeval implementation header +# +cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# fnmatch implementation header +# +cdl_option CYGBLD_ISO_FNMATCH_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of POSIX timer types +# +cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_TIMER_TYPES + # CYGINT_ISO_POSIX_TIMER_TYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_TIMER_TYPES + # Requires: 1 >= CYGINT_ISO_POSIX_TIMER_TYPES +}; + +# POSIX timer types implementation header +# +cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of POSIX clock types +# +cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_CLOCK_TYPES + # CYGINT_ISO_POSIX_CLOCK_TYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_CLOCK_TYPES + # Requires: 1 >= CYGINT_ISO_POSIX_CLOCK_TYPES +}; + +# POSIX clock types implementation header +# +cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of ISO C types +# +cdl_interface CYGINT_ISO_C_TIME_TYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_C_TIME_TYPES + # CYGINT_ISO_C_TIME_TYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_C_TIME_TYPES + # Requires: 1 >= CYGINT_ISO_C_TIME_TYPES +}; + +# ISO C time types implementation header +# +cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of POSIX timers +# +cdl_interface CYGINT_ISO_POSIX_TIMERS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_TIMERS + # CYGINT_ISO_POSIX_TIMERS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_TIMERS + # Requires: 1 >= CYGINT_ISO_POSIX_TIMERS +}; + +# POSIX timer implementation header +# +cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of POSIX clocks +# +cdl_interface CYGINT_ISO_POSIX_CLOCKS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_CLOCKS + # CYGINT_ISO_POSIX_CLOCKS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_CLOCKS + # Requires: 1 >= CYGINT_ISO_POSIX_CLOCKS +}; + +# POSIX clocks implementation header +# +cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of ISO C clock functions +# +cdl_interface CYGINT_ISO_C_CLOCK_FUNCS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_C_CLOCK_FUNCS + # CYGINT_ISO_C_CLOCK_FUNCS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_C_CLOCK_FUNCS + # Requires: 1 >= CYGINT_ISO_C_CLOCK_FUNCS +}; + +# ISO C clock functions' implementation header +# +cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of tzset() function +# +cdl_interface CYGINT_ISO_TZSET { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_TZSET + # CYGINT_ISO_TZSET == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_TZSET + # Requires: 1 >= CYGINT_ISO_TZSET +}; + +# tzset() implementation header +# +cdl_option CYGBLD_ISO_TZSET_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Signal functionality +# +cdl_component CYGPKG_ISO_SIGNAL { + # There is no associated value. +}; + +# > +# Number of implementations of signal numbers +# +cdl_interface CYGINT_ISO_SIGNAL_NUMBERS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SIGNAL_NUMBERS + # CYGINT_ISO_SIGNAL_NUMBERS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SIGNAL_NUMBERS + # Requires: 1 >= CYGINT_ISO_SIGNAL_NUMBERS +}; + +# Signal numbering implementation header +# This header provides the mapping of signal +# names (e.g. SIGBUS) to numbers. +# +cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of signal implementations +# +cdl_interface CYGINT_ISO_SIGNAL_IMPL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SIGNAL_IMPL + # CYGINT_ISO_SIGNAL_IMPL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SIGNAL_IMPL + # Requires: 1 >= CYGINT_ISO_SIGNAL_IMPL +}; + +# Signals implementation header +# +cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX real time signals feature test macro +# This defines the POSIX feature test macro +# that indicates that the POSIX real time signals +# are present. +# +cdl_interface CYGINT_POSIX_REALTIME_SIGNALS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_POSIX_REALTIME_SIGNALS + # CYGINT_POSIX_REALTIME_SIGNALS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_POSIX_REALTIME_SIGNALS + # Requires: 1 >= CYGINT_POSIX_REALTIME_SIGNALS +}; + +# < +# Non-local jumps functionality +# +cdl_component CYGPKG_ISO_SETJMP { + # There is no associated value. +}; + +# > +# setjmp() / longjmp() implementations +# +cdl_interface CYGINT_ISO_SETJMP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SETJMP + # CYGINT_ISO_SETJMP == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SETJMP + # Requires: 1 >= CYGINT_ISO_SETJMP +}; + +# setjmp() / longjmp() implementation header +# +cdl_option CYGBLD_ISO_SETJMP_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# sigsetjmp() / siglongjmp() implementations +# +cdl_interface CYGINT_ISO_SIGSETJMP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SIGSETJMP + # CYGINT_ISO_SIGSETJMP == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SIGSETJMP + # Requires: 1 >= CYGINT_ISO_SIGSETJMP +}; + +# sigsetjmp() / siglongjmp() implementation header +# +cdl_option CYGBLD_ISO_SIGSETJMP_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Assertions implementation header +# +cdl_option CYGBLD_ISO_ASSERT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX file control +# This covers the POSIX file control definitions, +# normally found in +# +cdl_component CYGPKG_ISO_POSIX_FCNTL { + # There is no associated value. +}; + +# > +# POSIX open flags implementation header +# +cdl_option CYGBLD_ISO_OFLAG_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX fcntl() implementations +# +cdl_interface CYGINT_ISO_FCNTL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_FCNTL + # CYGINT_ISO_FCNTL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_FCNTL + # Requires: 1 >= CYGINT_ISO_FCNTL +}; + +# POSIX fcntl() implementation header +# +cdl_option CYGBLD_ISO_FCNTL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX file open implementations +# +cdl_interface CYGINT_ISO_OPEN { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_OPEN + # CYGINT_ISO_OPEN == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_OPEN + # Requires: 1 >= CYGINT_ISO_OPEN +}; + +# POSIX file open implementation header +# +cdl_option CYGBLD_ISO_OPEN_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# definitions implementation header +# +cdl_option CYGBLD_ISO_STAT_DEFS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX directory reading implementation +# +cdl_interface CYGINT_ISO_DIRENT { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_DIRENT + # CYGINT_ISO_DIRENT == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_DIRENT + # Requires: 1 >= CYGINT_ISO_DIRENT +}; + +# definitions implementation header +# +cdl_option CYGBLD_ISO_DIRENT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX contents +# This covers the types required by POSIX to be in +# +# +cdl_component CYGPKG_ISO_POSIX_TYPES { + # There is no associated value. +}; + +# > +# POSIX thread types implementations +# +cdl_interface CYGINT_ISO_PTHREADTYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_PTHREADTYPES + # CYGINT_ISO_PTHREADTYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_PTHREADTYPES + # Requires: 1 >= CYGINT_ISO_PTHREADTYPES + # interface CYGINT_ISO_PMUTEXTYPES + # Requires: 1 >= CYGINT_ISO_PTHREADTYPES +}; + +# POSIX thread types implementation header +# +cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX mutex types implementations +# +cdl_interface CYGINT_ISO_PMUTEXTYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_PTHREADTYPES + # CYGINT_ISO_PTHREADTYPES == 0 + # --> 1 +}; + +# POSIX mutex types implementation header +# +cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# ssize_t implementation header +# +cdl_option CYGBLD_ISO_SSIZE_T_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Filesystem types implementation header +# +cdl_option CYGBLD_ISO_FSTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# gid_t, pid_t, uid_t implementation header +# +cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Non-POSIX contents +# This covers the extra types required by non-POSIX +# packages to be in . These would normally +# only be visible if _POSIX_SOURCE is not defined. +# +cdl_component CYGPKG_ISO_EXTRA_TYPES { + # There is no associated value. +}; + +# > +# BSD compatible types +# +cdl_interface CYGINT_ISO_BSDTYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_BSDTYPES + # CYGINT_ISO_BSDTYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_BSDTYPES + # Requires: 1 >= CYGINT_ISO_BSDTYPES +}; + +# BSD types header +# +cdl_option CYGBLD_ISO_BSDTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Utsname structure +# +cdl_component CYGPKG_ISO_UTSNAME { + # There is no associated value. +}; + +# > +# Utsname header +# +cdl_option CYGBLD_ISO_UTSNAME_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# POSIX scheduler +# +cdl_component CYGPKG_ISO_SCHED { + # There is no associated value. +}; + +# > +# POSIX scheduler implementations +# +cdl_interface CYGINT_ISO_SCHED_IMPL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SCHED_IMPL + # CYGINT_ISO_SCHED_IMPL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SCHED_IMPL + # Requires: 1 >= CYGINT_ISO_SCHED_IMPL +}; + +# POSIX scheduler implementation header +# +cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# POSIX semaphores +# +cdl_component CYGPKG_ISO_SEMAPHORES { + # There is no associated value. +}; + +# > +# POSIX semaphore implementations +# +cdl_interface CYGINT_ISO_SEMAPHORES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SEMAPHORES + # CYGINT_ISO_SEMAPHORES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SEMAPHORES + # Requires: 1 >= CYGINT_ISO_SEMAPHORES +}; + +# POSIX semaphore implementation header +# +cdl_option CYGBLD_ISO_SEMAPHORES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# POSIX message queues +# +cdl_component CYGPKG_ISO_MQUEUE { + # There is no associated value. +}; + +# > +# Implementations +# +cdl_interface CYGINT_ISO_MQUEUE { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_MQUEUE + # CYGINT_ISO_MQUEUE == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_MQUEUE + # Requires: 1 >= CYGINT_ISO_MQUEUE + # option CYGNUM_ISO_MQUEUE_OPEN_MAX + # ActiveIf: CYGINT_ISO_MQUEUE + # option CYGNUM_ISO_MQUEUE_PRIO_MAX + # ActiveIf: CYGINT_ISO_MQUEUE +}; + +# Implementation header +# +cdl_option CYGBLD_ISO_MQUEUE_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Maximum number of open message queues +# +cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX { + # This option is not active + # ActiveIf constraint: CYGINT_ISO_MQUEUE + # CYGINT_ISO_MQUEUE == 0 + # --> 0 + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 + # CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0 + # CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0 + # --> 0 0 +}; + +# Maximum number of message priorities +# +cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX { + # This option is not active + # ActiveIf constraint: CYGINT_ISO_MQUEUE + # CYGINT_ISO_MQUEUE == 0 + # --> 0 + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 65535 + # value_source default + # Default value: 1 65535 +}; + +# < +# POSIX threads +# +cdl_component CYGPKG_ISO_PTHREAD { + # There is no associated value. +}; + +# > +# POSIX pthread implementations +# +cdl_interface CYGINT_ISO_PTHREAD_IMPL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_PTHREAD_IMPL + # CYGINT_ISO_PTHREAD_IMPL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_PTHREAD_IMPL + # Requires: 1 >= CYGINT_ISO_PTHREAD_IMPL +}; + +# POSIX pthread implementation header +# +cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX mutex/cond var implementations +# +cdl_interface CYGINT_ISO_PTHREAD_MUTEX { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_PTHREAD_MUTEX + # CYGINT_ISO_PTHREAD_MUTEX == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_PTHREAD_MUTEX + # Requires: 1 >= CYGINT_ISO_PTHREAD_MUTEX +}; + +# POSIX mutex/cond var implementation header +# +cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Limits +# +cdl_component CYGPKG_ISO_LIMITS { + # There is no associated value. +}; + +# > +# POSIX pthread limits implementations +# +cdl_interface CYGINT_ISO_POSIX_LIMITS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_POSIX_LIMITS + # CYGINT_ISO_POSIX_LIMITS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_LIMITS + # Requires: 1 >= CYGINT_ISO_POSIX_LIMITS +}; + +# POSIX pthread limits implementation header +# +cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# OPEN_MAX implementation header +# +cdl_option CYGBLD_ISO_OPEN_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# LINK_MAX implementation header +# +cdl_option CYGBLD_ISO_LINK_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# NAME_MAX implementation header +# +cdl_option CYGBLD_ISO_NAME_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# PATH_MAX implementation header +# +cdl_option CYGBLD_ISO_PATH_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# POSIX termios +# +cdl_component CYGPKG_ISO_TERMIOS { + # There is no associated value. +}; + +# > +# POSIX termios implementations +# +cdl_interface CYGINT_ISO_TERMIOS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_TERMIOS + # CYGINT_ISO_TERMIOS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_TERMIOS + # Requires: 1 >= CYGINT_ISO_TERMIOS +}; + +# POSIX termios implementation header +# +cdl_option CYGBLD_ISO_TERMIOS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Dynamic load API +# +cdl_component CYGPKG_ISO_DLFCN { + # There is no associated value. +}; + +# > +# Dynamic load implementations +# +cdl_interface CYGINT_ISO_DLFCN { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_DLFCN + # CYGINT_ISO_DLFCN == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_DLFCN + # Requires: 1 >= CYGINT_ISO_DLFCN +}; + +# Dynamic load implementation header +# +cdl_option CYGBLD_ISO_DLFCN_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# UNIX standard functions +# +cdl_component CYGPKG_ISO_UNISTD { + # There is no associated value. +}; + +# > +# POSIX timer operations implementations +# +cdl_interface CYGINT_ISO_POSIX_TIMER_OPS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_TIMER_OPS + # CYGINT_ISO_POSIX_TIMER_OPS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_TIMER_OPS + # Requires: 1 >= CYGINT_ISO_POSIX_TIMER_OPS +}; + +# POSIX timer operations implementation header +# +cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX sleep() implementations +# +cdl_interface CYGINT_ISO_POSIX_SLEEP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_SLEEP + # CYGINT_ISO_POSIX_SLEEP == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_SLEEP + # Requires: 1 >= CYGINT_ISO_POSIX_SLEEP +}; + +# POSIX sleep() implementation header +# +cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# select()/poll() functions +# +cdl_component CYGPKG_ISO_SELECT { + # There is no associated value. +}; + +# > +# select() implementations +# +cdl_interface CYGINT_ISO_SELECT { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_SELECT + # CYGINT_ISO_SELECT == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SELECT + # Requires: 1 >= CYGINT_ISO_SELECT +}; + +# select() implementation header +# +cdl_option CYGBLD_ISO_SELECT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# poll() implementations +# +cdl_interface CYGINT_ISO_POLL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POLL + # CYGINT_ISO_POLL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POLL + # Requires: 1 >= CYGINT_ISO_POLL +}; + +# poll() implementation header +# +cdl_option CYGBLD_ISO_POLL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# NetDB utility functions +# +cdl_component CYGPKG_ISO_NETDB { + # There is no associated value. +}; + +# > +# DNS implementations +# +cdl_interface CYGINT_ISO_DNS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: bool + # Current value: 0 + # Requires: 1 >= CYGINT_ISO_DNS + # CYGINT_ISO_DNS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_DNS + # Requires: 1 >= CYGINT_ISO_DNS +}; + +# DNS implementation header +# +cdl_option CYGBLD_ISO_DNS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Protocol network database implementations +# +cdl_interface CYGINT_ISO_NETDB_PROTO { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: bool + # Current value: 0 + # Requires: 1 >= CYGINT_ISO_NETDB_PROTO + # CYGINT_ISO_NETDB_PROTO == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_NETDB_PROTO + # Requires: 1 >= CYGINT_ISO_NETDB_PROTO +}; + +# Protocol network database implementation header +# +cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Services network database implementations +# +cdl_interface CYGINT_ISO_NETDB_SERV { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: bool + # Current value: 0 + # Requires: 1 >= CYGINT_ISO_NETDB_SERV + # CYGINT_ISO_NETDB_SERV == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_NETDB_SERV + # Requires: 1 >= CYGINT_ISO_NETDB_SERV +}; + +# Services network database implementation header +# +cdl_option CYGBLD_ISO_NETDB_SERV_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_ISOINFRA_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the ISO C and POSIX infrastructure package. +# These flags are used in addition to the set of global flags. +# +cdl_option CYGPKG_ISOINFRA_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the ISO C and POSIX infrastructure package. +# These flags are removed from the set of global flags +# if present. +# +cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# < +# < +# Compute CRCs +# doc: ref/services-crc.html +# This package provides support for CRC calculation. Currently +# this is the POSIX 1003 defined CRC algorithm, a 32 CRC by +# Gary S. Brown, and a 16 bit CRC. +# +cdl_package CYGPKG_CRC { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # package CYGPKG_COMPRESS_ZLIB + # Requires: CYGPKG_CRC +}; + +# > +# POSIX CRC tests +# +cdl_option CYGPKG_CRC_TESTS { + # Calculated value: "tests/crc_test" + # Flavor: data + # Current_value: tests/crc_test +}; + +# < +# Zlib compress and decompress package +# This package provides support for compression and +# decompression. +# +cdl_package CYGPKG_COMPRESS_ZLIB { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: CYGPKG_CRC + # CYGPKG_CRC == current + # --> 1 + + # The following properties are affected by this value + # component CYGBLD_BUILD_REDBOOT_WITH_ZLIB + # ActiveIf: CYGPKG_COMPRESS_ZLIB +}; + +# > +# Override memory allocation routines. +# +cdl_interface CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC { + # Implemented by CYGBLD_BUILD_REDBOOT_WITH_ZLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC + # ActiveIf: CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 +}; + +# Should deflate() produce 'gzip' compatible output? +# If this option is set then the output of calling deflate() +# will be wrapped up as a 'gzip' compatible file. +# +cdl_option CYGSEM_COMPRESS_ZLIB_DEFLATE_MAKES_GZIP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Does this library need malloc? +# This pseudo-option will force the memalloc library to be +# required iff the application does not provide it's own +# infrastructure. +# +cdl_option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC { + # This option is not active + # ActiveIf constraint: CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 + # CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 1 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGPKG_MEMALLOC + # CYGPKG_MEMALLOC == current + # --> 1 +}; + +# Include stdio-like utility functions +# This option enables the stdio-like zlib utility functions +# (gzread/gzwrite and friends) provided in gzio.c. +# +cdl_option CYGFUN_COMPRESS_ZLIB_GZIO { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGPKG_LIBC_STDIO_OPEN ? 1 : 0 + # CYGPKG_LIBC_STDIO_OPEN (unknown) == 0 + # --> 0 + # Requires: CYGINT_ISO_STDIO_FILEPOS + # CYGINT_ISO_STDIO_FILEPOS == 0 + # --> 0 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 + # Requires: CYGINT_ISO_STDIO_FORMATTED_IO + # CYGINT_ISO_STDIO_FORMATTED_IO == 0 + # --> 0 + # Requires: CYGINT_ISO_STDIO_FILEACCESS + # CYGINT_ISO_STDIO_FILEACCESS == 0 + # --> 0 +}; + +# Zlib compress and decompress package build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_COMPRESS_ZLIB_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_COMPRESS_ZLIB_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-D__ECOS__ -DNO_ERRNO_H" + # value_source default + # Default value: "-D__ECOS__ -DNO_ERRNO_H" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_COMPRESS_ZLIB_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wstrict-prototypes + # value_source default + # Default value: -Wstrict-prototypes +}; + +# Additional compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# < +# zlib tests +# +cdl_option CYGPKG_COMPRESS_ZLIB_TESTS { + # Calculated value: "tests/zlib1.c tests/zlib2.c" + # Flavor: data + # Current_value: tests/zlib1.c tests/zlib2.c +}; + +# < +# FLASH device drivers +# doc: ref/flash.html +# This option enables drivers for basic I/O services on +# flash devices. +# +cdl_package CYGPKG_IO_FLASH { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 + + # The following properties are affected by this value + # component CYGSEM_REDBOOT_FLASH_CONFIG + # DefaultValue: CYGPKG_IO_FLASH != 0 + # package CYGPKG_DEVS_FLASH_ONMXC + # ActiveIf: CYGPKG_IO_FLASH +}; + +# > +# Hardware FLASH device drivers +# This option enables the hardware device drivers +# for the current platform. +# +cdl_interface CYGHWR_IO_FLASH_DEVICE { + # Implemented by CYGPKG_DEVS_FLASH_ONMXC, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_FLASH + # ActiveIf: CYGHWR_IO_FLASH_DEVICE +}; + +# Hardware FLASH device drivers are not in RAM +# Use of this interface is deprecated. +# Drivers should make sure that the functions are +# linked to RAM by putting them in .2ram sections. +# +cdl_interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM + # CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM + # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM +}; + +# Hardware can support block locking +# This option will be enabled by devices which can support +# locking (write-protection) of individual blocks. +# +cdl_interface CYGHWR_IO_FLASH_BLOCK_LOCKING { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL + # ActiveIf: CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 +}; + +# Hardware cannot support direct access to FLASH memory +# This option will be asserted by devices which cannot support +# direct access to the FLASH memory contents (e.g. EEPROM or NAND +# devices). In these cases, the driver must provide an appropriate +# hardware access function. +# +cdl_option CYGSEM_IO_FLASH_READ_INDIRECT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + # Requires: !CYGSEM_IO_FLASH_VERIFY_PROGRAM + # CYGSEM_IO_FLASH_VERIFY_PROGRAM == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGPRI_REDBOOT_ZLIB_FLASH + # ActiveIf: (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE + # component CYGHWR_DEVS_FLASH_MMC + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # option CYGHWR_DEVS_FLASH_MMC_ESDHC + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # option CYGHWR_DEVS_FLASH_MMC_SD + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # option CYGHWR_DEVS_FLASH_MXC_NAND + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 +}; + +# Display status messages during flash operations +# Selecting this option will cause the drivers to print status +# messages as various flash operations are undertaken. +# +cdl_option CYGSEM_IO_FLASH_CHATTER { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Verify data programmed to flash +# Selecting this option will cause verification of data +# programmed to flash. +# +cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + + # The following properties are affected by this value + # option CYGSEM_IO_FLASH_READ_INDIRECT + # Requires: !CYGSEM_IO_FLASH_VERIFY_PROGRAM +}; + +# Platform has flash soft DIP switch write-protect +# Selecting this option will cause the state of a hardware jumper or +# dipswitch to be read by software to determine whether the flash is +# write-protected or not. +# +cdl_option CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Instantiate in I/O block device API +# Provides a block device accessible using the standard I/O +# API ( cyg_io_read() etc. ) +# +cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE { + # This option is not active + # ActiveIf constraint: CYGPKG_IO + # CYGPKG_IO (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Name of flash device 1 block device +# +cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 { + # This option is not active + # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is not active + # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "\"/dev/flash1\"" + # value_source default + # Default value: "\"/dev/flash1\"" +}; + +# > +# +cdl_interface CYGINT_IO_FLASH_BLOCK_CFG_1 { + # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1, inactive, enabled + # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1, inactive, disabled + # This option is not active + # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1 + # CYGINT_IO_FLASH_BLOCK_CFG_1 == 0 + # --> 0 + + # The following properties are affected by this value + # interface CYGINT_IO_FLASH_BLOCK_CFG_1 + # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1 +}; + +# Static configuration +# This configures the flash device 1 block device +# with static base and length +# +cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 { + # This option is not active + # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Start offset from flash base +# This gives the offset from the base of flash which this +# block device corresponds to. +# +cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 { + # This option is not active + # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00100000 + # value_source default + # Default value: 0x00100000 +}; + +# Length +# This gives the length of the region of flash given over +# to this block device. +# +cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 { + # This option is not active + # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00100000 + # value_source default + # Default value: 0x00100000 +}; + +# < +# Configuration from FIS +# This configures the flash device 1 block device +# from Redboot FIS +# +cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 { + # This option is not active + # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Name of FIS entry +# +cdl_component CYGDAT_IO_FLASH_BLOCK_FIS_NAME_1 { + # This option is not active + # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is not active + # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "\"jffs2\"" + # value_source default + # Default value: "\"jffs2\"" +}; + +# < +# < +# < +# Flash device driver build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_IO_FLASH_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the flash device drivers. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_IO_FLASH_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the flash device drivers. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_IO_FLASH_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Flash device driver tests +# This option specifies the set of tests for the flash device drivers. +# +cdl_component CYGPKG_IO_FLASH_TESTS { + # Calculated value: "tests/flash1" + # Flavor: data + # Current_value: tests/flash1 +}; + +# > +# Start offset from flash base +# This gives the offset from the base of flash where tests +# can be run. It is important to set this correctly, as an +# incorrect value could allow the tests to write over critical +# portions of the FLASH device and possibly render the target +# board totally non-functional. +# +cdl_option CYGNUM_IO_FLASH_TEST_OFFSET { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00100000 + # value_source default + # Default value: 0x00100000 +}; + +# Length +# This gives the length of the region of flash used for testing. +# +cdl_option CYGNUM_IO_FLASH_TEST_LENGTH { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00100000 + # value_source default + # Default value: 0x00100000 +}; + +# < +# < +# Support FLASH memory on Freescale MXC platforms +# +cdl_package CYGPKG_DEVS_FLASH_ONMXC { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # ActiveIf constraint: CYGPKG_IO_FLASH + # CYGPKG_IO_FLASH == current + # --> 1 + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current +}; + +# > +# MXC platform MMC card support +# When this option is enabled, it indicates MMC card is +# supported on the MXC platforms +# +cdl_component CYGHWR_DEVS_FLASH_MMC { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # --> 1 + + # The following properties are affected by this value + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) +}; + +# > +# MXC platform MMC card for newer SDHC controllers +# +cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC { + # This option is not active + # The parent CYGHWR_DEVS_FLASH_MMC is disabled + # ActiveIf constraint: CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || + # CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX51 + # CYGPKG_HAL_ARM_MX37 (unknown) == 0 + # CYGPKG_HAL_ARM_MX35 (unknown) == 0 + # CYGPKG_HAL_ARM_MX25 (unknown) == 0 + # CYGPKG_HAL_ARM_MX51 (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # --> 1 +}; + +# MXC platform MMC card for older MMC/SD controllers +# +cdl_option CYGHWR_DEVS_FLASH_MMC_SD { + # This option is not active + # The parent CYGHWR_DEVS_FLASH_MMC is disabled + # ActiveIf constraint: CYGPKG_HAL_ARM_MX31_3STACK || CYGPKG_HAL_ARM_MX31ADS + # CYGPKG_HAL_ARM_MX31_3STACK (unknown) == 0 + # CYGPKG_HAL_ARM_MX31ADS (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # --> 1 +}; + +# < +# MXC platform NOR flash memory support +# When this option is enabled, it indicates NOR flash is +# supported on the MXC platforms +# +cdl_option CYGHWR_DEVS_FLASH_MXC_NOR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 0 + + # The following properties are affected by this value + # option CYGHWR_DEVS_FLASH_IMX_SPI_NOR + # Requires: CYGHWR_DEVS_FLASH_MXC_NOR == 1 + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) +}; + +# MXC platform NAND flash memory support +# When this option is enabled, it indicates NAND flash is +# supported on the MXC platforms +# +cdl_option CYGHWR_DEVS_FLASH_MXC_NAND { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # --> 1 + + # The following properties are affected by this value + # component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH + # ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND + # ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND +}; + +# i.MX platform SPI NOR flash memory support +# When this option is enabled, it indicates SPI NOR flash is +# supported on the i.MX platforms +# +cdl_option CYGHWR_DEVS_FLASH_IMX_SPI_NOR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGHWR_DEVS_FLASH_MXC_NOR == 1 + # CYGHWR_DEVS_FLASH_MXC_NOR == 0 + # --> 0 +}; + +# MXC platform ATA support +# When this option is enabled, it indicates ATA is +# supported on the MXC platforms +# +cdl_option CYGHWR_DEVS_FLASH_MXC_ATA { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Use a flash based Bad Block Table +# +cdl_component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH { + # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND + # CYGHWR_DEVS_FLASH_MXC_NAND == 1 + # --> 1 + + # There is no associated value. +}; + +# > +# When this option is enabled, the driver will search for a flash +# based bad block table +# +cdl_option CYGHWR_DEVS_FLASH_MXC_BBT_IN_FLASH { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# header file defining the NAND BBT descriptor +# defines the name of the header file that describes the BBT layout +# +cdl_component CYGHWR_FLASH_NAND_BBT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 +}; + +# Number of blocks to reserve for BBT +# Number of blocks to reserve for BBT +# +cdl_option CYGNUM_FLASH_NAND_BBT_BLOCKS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4 + # value_source default + # Default value: 4 +}; + +# < +# MXC platform multi flash memory support +# When this option is enabled, it indicates multi flashes are +# supported on the MXC platforms (like NAND and NOR) +# +cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI { + # This option is not active + # ActiveIf constraint: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # CYGHWR_DEVS_FLASH_MXC_NAND == 1 + # CYGHWR_DEVS_FLASH_MXC_NOR == 0 + # CYGHWR_DEVS_FLASH_MXC_NAND == 1 + # CYGHWR_DEVS_FLASH_MMC == 0 + # CYGHWR_DEVS_FLASH_MXC_NOR == 0 + # CYGHWR_DEVS_FLASH_MMC == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 +}; + +# MXC platform NAND flash reset workaround support +# When this option is enabled, it indicates 0xFFFF is used for +# the NAND reset command instead of 0xFF. +# +cdl_interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND { + # No options implement this inferface + # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND + # CYGHWR_DEVS_FLASH_MXC_NAND == 1 + # --> 1 + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 +}; + +# < +# < +# Dynamic memory allocation +# doc: ref/memalloc.html +# This package provides memory allocator infrastructure required for +# dynamic memory allocators, including the ISO standard malloc +# interface. It also contains some sample implementations. +# +cdl_package CYGPKG_MEMALLOC { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC + # Requires: CYGPKG_MEMALLOC +}; + +# > +# Memory allocator implementations +# This component contains configuration options related to the +# various memory allocators available. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATORS { + # There is no associated value. +}; + +# > +# Fixed block allocator +# This component contains configuration options related to the +# fixed block memory allocator. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATOR_FIXED { + # There is no associated value. +}; + +# > +# Make thread safe +# With this option enabled, this allocator will be +# made thread-safe. Additionally allocation functions +# are made available that allow a thread to wait +# until memory is available. +# +cdl_option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Simple variable block allocator +# This component contains configuration options related to the +# simple variable block memory allocator. This allocator is not +# very fast, and in particular does not scale well with large +# numbers of allocations. It is however very compact in terms of +# code size and does not have very much overhead per allocation. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATOR_VARIABLE { + # There is no associated value. +}; + +# > +# Make thread safe +# With this option enabled, this allocator will be +# made thread-safe. Additionally allocation functions +# are added that allow a thread to wait until memory +# are made available that allow a thread to wait +# until memory is available. +# +cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Coalesce memory +# The variable-block memory allocator can perform coalescing +# of memory whenever the application code releases memory back +# to the pool. This coalescing reduces the possibility of +# memory fragmentation problems, but involves extra code and +# processor cycles. +# +cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE + # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE +}; + +# < +# Doug Lea's malloc +# This component contains configuration options related to the +# port of Doug Lea's memory allocator, normally known as +# dlmalloc. dlmalloc has a reputation for being both fast +# and space-conserving, as well as resisting fragmentation well. +# It is a common choice for a general purpose allocator and +# has been used in both newlib and Linux glibc. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATOR_DLMALLOC { + # There is no associated value. +}; + +# > +# Debug build +# Doug Lea's malloc implementation has substantial amounts +# of internal checking in order to verify the operation +# and consistency of the allocator. However this imposes +# substantial overhead on each operation. Therefore this +# checking may be individually disabled. +# +cdl_option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 != CYGDBG_USE_ASSERTS + # CYGDBG_USE_ASSERTS == 0 + # --> 0 + # Requires: CYGDBG_USE_ASSERTS + # CYGDBG_USE_ASSERTS == 0 + # --> 0 +}; + +# Make thread safe +# With this option enabled, this allocator will be +# made thread-safe. Additionally allocation functions +# are made available that allow a thread to wait +# until memory is available. +# +cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 +}; + +# Support more than one instance +# Having this option disabled allows important +# implementation structures to be declared as a single +# static instance, allowing faster access. However this +# would fail if there is more than one instance of +# the dlmalloc allocator class. Therefore this option can +# be enabled if multiple instances are required. Note: as +# a special case, if this allocator is used as the +# implementation of malloc, and it can be determined there +# is more than one malloc pool, then this option will be +# silently enabled. +# +cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Use system memmove() and memset() +# This may be used to control whether memset() and memmove() +# are used within the implementation. The alternative is +# to use some macro equivalents, which some people report +# are faster in some circumstances. +# +cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 0 != CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 +}; + +# Minimum alignment of allocated blocks +# This option controls the minimum alignment that the +# allocated memory blocks are aligned on, specified as +# 2^N. Note that using large mininum alignments can lead +# to excessive memory wastage. +# +cdl_option CYGNUM_MEMALLOC_ALLOCATOR_DLMALLOC_ALIGNMENT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 3 + # value_source default + # Default value: 3 + # Legal values: 3 to 10 +}; + +# < +# Variable block allocator with separate metadata +# This component contains configuration options related to the +# variable block memory allocator with separate metadata. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATOR_SEPMETA { + # There is no associated value. +}; + +# > +# Make thread safe +# With this option enabled, this allocator will be +# made thread-safe. Additionally allocation functions +# are made available that allow a thread to wait +# until memory is available. +# +cdl_option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# < +# Kernel C API support for memory allocation +# This option must be enabled to provide the extensions required +# to support integration into the kernel C API. +# +cdl_option CYGFUN_MEMALLOC_KAPI { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGFUN_KERNEL_API_C + # CYGFUN_KERNEL_API_C (unknown) == 0 + # --> 0 +}; + +# malloc(0) returns NULL +# This option controls the behavior of malloc(0) ( or calloc with +# either argument 0 ). It is permitted by the standard to return +# either a NULL pointer or a unique pointer. Enabling this option +# forces a NULL pointer to be returned. +# +cdl_option CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Breakpoint site when running out of memory +# Whenever the system runs out of memory, it invokes this function +# before either going to sleep waiting for memory to become +# available or returning failure. +# +cdl_option CYGSEM_MEMALLOC_INVOKE_OUT_OF_MEMORY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# malloc() and supporting allocators +# This component enables support for dynamic memory +# allocation as supplied by the functions malloc(), +# free(), calloc() and realloc(). As these +# functions are often used, but can have quite an +# overhead, disabling them here can ensure they +# cannot even be used accidentally when static +# allocation is preferred. Within this component are +# various allocators that can be selected for use +# as the underlying implementation of the dynamic +# allocation functions. +# +cdl_component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS { + # ActiveIf constraint: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Use external heap definition +# This option allows other components in the +# system to override the default system +# provision of heap memory pools. This should +# be set to a header which provides the equivalent +# definitions to . +# +cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Use external implementation of joining multiple heaps +# The default implementation of joining multiple heaps +# is fine for the case where there are multiple disjoint +# memory regions of the same type. However, in a system +# there might be e.g. a small amount of internal SRAM and +# a large amount of external DRAM. The SRAM is faster and +# the DRAM is slower. An application can implement some +# heuristic to choose which pool to allocate from. This +# heuristic can be highly application specific. +# +cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_JOIN_H { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# malloc() allocator implementations +# +cdl_interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS { + # Implemented by CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE, active, disabled + # Implemented by CYGIMP_MEMALLOC_MALLOC_DLMALLOC, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 + # CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS + # Requires: CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 +}; + +# malloc() implementation instantiation data +# Memory allocator implementations that are capable of being +# used underneath malloc() must be instantiated. The code +# to do this is set in this option. It is only intended to +# be set by the implementation, not the user. +# +cdl_option CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value + # value_source default + # Default value: + + # The following properties are affected by this value + # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE + # Requires: CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == "" + # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC + # Requires: CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == "" +}; + +# Simple variable block implementation +# This causes malloc() to use the simple +# variable block allocator. +# +cdl_option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == "" + # CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == + # --> 0 + # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE + # CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE == 1 + # --> 1 +}; + +# Doug Lea's malloc implementation +# This causes malloc() to use a version of Doug Lea's +# malloc (dlmalloc) as the underlying implementation. +# +cdl_option CYGIMP_MEMALLOC_MALLOC_DLMALLOC { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == "" + # CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == + # --> 1 +}; + +# < +# Size of the fallback dynamic memory pool in bytes +# If *no* heaps are configured in your memory layout, +# dynamic memory allocation by +# malloc() and calloc() must be from a fixed-size, +# contiguous memory pool (note here that it is the +# pool that is of a fixed size, but malloc() is still +# able to allocate variable sized chunks of memory +# from it). This option is the size +# of that pool, in bytes. Note that not all of +# this is available for programs to +# use - some is needed for internal information +# about memory regions, and some may be lost to +# ensure that memory allocation only returns +# memory aligned on word (or double word) +# boundaries - a very common architecture +# constraint. +# +cdl_option CYGNUM_MEMALLOC_FALLBACK_MALLOC_POOL_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 16384 + # value_source default + # Default value: 16384 + # Legal values: 32 to 0x7fffffff +}; + +# Common memory allocator package build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_MEMALLOC_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_MEMALLOC_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_MEMALLOC_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# Tests +# This option specifies the set of tests for this package. +# +cdl_option CYGPKG_MEMALLOC_TESTS { + # Calculated value: "tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2" + # Flavor: data + # Current_value: tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2 +}; + +# < +# < +# Common error code support +# This package contains the common list of error and +# status codes. It is held centrally to allow +# packages to interchange error codes and status +# codes in a common way, rather than each package +# having its own conventions for error/status +# reporting. The error codes are modelled on the +# POSIX style naming e.g. EINVAL etc. This package +# also provides the standard strerror() function to +# convert error codes to textual representation, as +# well as an implementation of the errno idiom. +# +cdl_package CYGPKG_ERROR { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGBLD_ISO_ERRNO_CODES_HEADER == "" + # CYGBLD_ISO_ERRNO_CODES_HEADER == + # --> 1 +}; + +# > +# errno variable +# This package controls the behaviour of the +# errno variable (or more strictly, expression) +# from . +# +cdl_component CYGPKG_ERROR_ERRNO { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_ERRNO_HEADER == "" + # CYGBLD_ISO_ERRNO_HEADER == + # --> 1 +}; + +# > +# Per-thread errno +# This option controls whether the standard error +# code reporting variable errno is a per-thread +# variable, rather than global. +# +cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + # Requires: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 +}; + +# Tracing level +# Trace verbosity level for debugging the errno +# retrieval mechanism in errno.cxx. Increase this +# value to get additional trace output. +# +cdl_option CYGNUM_ERROR_ERRNO_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# < +# strerror function +# This package controls the presence and behaviour of the +# strerror() function from +# +cdl_option CYGPKG_ERROR_STRERROR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_STRERROR_HEADER == "" + # CYGBLD_ISO_STRERROR_HEADER == + # --> 1 +}; + +# Error package build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_ERROR_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the error package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_ERROR_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the error package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_ERROR_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# < +# < +# I2C driver for FSL MXC-based platforms +# +cdl_package CYGPKG_DEVS_MXC_I2C { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current +}; + +# ipu driver for mxc +# +cdl_package CYGPKG_DEVS_IMX_IPU { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # option CYGHWR_MX53_LCD_LOGO + # ActiveIf: CYGPKG_DEVS_IMX_IPU +}; + +# > +# IPU version 3EX support +# When this option is enabled, it indicates the IPU version +# is 3EX +# +cdl_option CYGHWR_DEVS_IPU_3_EX { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 +}; + +# IPU version 3D support +# When this option is enabled, it indicates the IPU version +# is 3D +# +cdl_option CYGHWR_DEVS_IPU_3_D { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# < + diff --git a/config/TX53-1xx2.ecc b/config/TX53-1xx2.ecc new file mode 100644 index 00000000..b708a332 --- /dev/null +++ b/config/TX53-1xx2.ecc @@ -0,0 +1,10352 @@ +# eCos saved configuration + +# ---- commands -------------------------------------------------------- +# This section contains information about the savefile format. +# It should not be edited. Any modifications made to this section +# may make it impossible for the configuration tools to read +# the savefile. + +cdl_savefile_version 1; +cdl_savefile_command cdl_savefile_version {}; +cdl_savefile_command cdl_savefile_command {}; +cdl_savefile_command cdl_configuration { description hardware template package }; +cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value }; +cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value }; + +# ---- toplevel -------------------------------------------------------- +# This section defines the toplevel configuration object. The only +# values that can be changed are the name of the configuration and +# the description field. It is not possible to modify the target, +# the template or the set of packages simply by editing the lines +# below because these changes have wide-ranging effects. Instead +# the appropriate tools should be used to make such modifications. + +cdl_configuration eCos { + description "" ; + + # These fields should not be modified. + hardware tx53karo ; + template redboot ; + package -hardware CYGPKG_HAL_ARM current ; + package -hardware CYGPKG_HAL_ARM_MX53 current ; + package -hardware CYGPKG_HAL_ARM_TX53KARO current ; + package -template CYGPKG_HAL current ; + package -template CYGPKG_INFRA current ; + package -template CYGPKG_REDBOOT current ; + package -template CYGPKG_ISOINFRA current ; + package -template CYGPKG_LIBC_STRING current ; + package -template CYGPKG_CRC current ; + package -hardware CYGPKG_IO_ETH_DRIVERS current ; + package -hardware CYGPKG_DEVS_ETH_ARM_TX53 current ; + package -hardware CYGPKG_DEVS_ETH_FEC current ; + package -hardware CYGPKG_COMPRESS_ZLIB current ; + package -hardware CYGPKG_IO_FLASH current ; + package -hardware CYGPKG_DEVS_FLASH_ONMXC current ; + package -template CYGPKG_MEMALLOC current ; + package -template CYGPKG_DEVS_ETH_PHY current ; + package -template CYGPKG_LIBC_I18N current ; + package -template CYGPKG_LIBC_STDLIB current ; + package -template CYGPKG_ERROR current ; + package -hardware CYGPKG_DEVS_MXC_I2C current ; + package -hardware CYGPKG_DEVS_IMX_IPU current ; +}; + +# ---- conflicts ------------------------------------------------------- +# There are no conflicts. + +# ---- contents -------------------------------------------------------- +# > +# > +# Global build options +# Global build options including control over +# compiler flags, linker flags and choice of toolchain. +# +cdl_component CYGBLD_GLOBAL_OPTIONS { + # There is no associated value. + + # The following properties are affected by this value +}; + +# > +# Global command prefix +# This option specifies the command prefix used when +# invoking the build tools. +# +cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX { + # Flavor: data + user_value arm-cortexa8-linux-gnu + # value_source user + # Default value: arm-926ejs-linux-gnu +}; + +# Global compiler flags +# This option controls the global compiler flags which are used to +# compile all packages by default. Individual packages may define +# options which override these global flags. +# +cdl_option CYGBLD_GLOBAL_CFLAGS { + # Flavor: data + user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # The inferred value should not be edited directly. + inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # value_source user + # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS + # CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1 + # --> 1 + + # The following properties are affected by this value + # option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS + # Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") + # option CYGBLD_INFRA_CFLAGS_PIPE + # Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") +}; + +# Global linker flags +# This option controls the global linker flags. Individual +# packages may define options which override these global flags. +# +cdl_option CYGBLD_GLOBAL_LDFLAGS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-Wl,--gc-sections -Wl,-static -O2 -nostdlib" + # value_source default + # Default value: "-Wl,--gc-sections -Wl,-static -O2 -nostdlib" +}; + +# Build common GDB stub ROM image +# 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. +# +cdl_option CYGBLD_BUILD_COMMON_GDB_STUBS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 +}; + +# < +# ISO C library string functions +# doc: ref/libc.html +# This package provides string functions specified by the +# ISO C standard - ISO/IEC 9899:1990. +# +cdl_package CYGPKG_LIBC_STRING { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == "" + # CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == + # --> 1 + # Requires: CYGBLD_ISO_STRING_MEMFUNCS_HEADER == "" + # CYGBLD_ISO_STRING_MEMFUNCS_HEADER == + # --> 1 + # Requires: CYGBLD_ISO_STRING_STRFUNCS_HEADER == "" + # CYGBLD_ISO_STRING_STRFUNCS_HEADER == + # --> 1 + # Requires: CYGBLD_ISO_STRTOK_R_HEADER == "" + # CYGBLD_ISO_STRTOK_R_HEADER == + # --> 1 + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 +}; + +# > +# Inline versions of functions +# This option chooses whether some of the +# particularly simple string functions from +# are available as inline +# functions. This may improve performance, and as +# the functions are small, may even improve code +# size. +# +cdl_option CYGIMP_LIBC_STRING_INLINES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Optimize string functions for code size +# This option tries to reduce string function +# code size at the expense of execution speed. The +# same effect can be produced if the code is +# compiled with the -Os option to the compiler. +# +cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Provide BSD compatibility functions +# Enabling this option causes various compatibility functions +# commonly found in the BSD UNIX operating system to be included. +# These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp, +# strncasecmp, index, rindex and swab. +# +cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + # Requires: CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == "" + # CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == + # --> 1 + # Requires: CYGINT_ISO_CTYPE + # CYGINT_ISO_CTYPE == 1 + # --> 1 +}; + +# strtok +# These options control the behaviour of the +# strtok() and strtok_r() string tokenization +# functions. +# +cdl_component CYGPKG_LIBC_STRING_STRTOK { + # There is no associated value. +}; + +# > +# Per-thread strtok() +# This option controls whether the string function +# strtok() has its state recorded on a per-thread +# basis rather than global. If this option is +# disabled, some per-thread space can be saved. +# Note there is also a POSIX-standard strtok_r() +# function to achieve a similar effect with user +# support. Enabling this option will use one slot +# of kernel per-thread data. You should ensure you +# have enough slots configured for all your +# per-thread data. +# +cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 + # Requires: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 +}; + +# Tracing level +# Trace verbosity level for debugging the +# functions strtok() and strtok_r(). Increase this +# value to get additional trace output. +# +cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# < +# strdup +# This option indicates whether strdup() is to be supported. +# +cdl_option CYGFUN_LIBC_STRING_STRDUP { + # ActiveIf constraint: CYGINT_ISO_MALLOC + # CYGINT_ISO_MALLOC == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# C library string functions build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_LIBC_STRING_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the C library. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the C library. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# C library string function tests +# This option specifies the set of tests for the C library +# string functions. +# +cdl_option CYGPKG_LIBC_STRING_TESTS { + # Calculated value: "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2" + # Flavor: data + # Current_value: tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2 +}; + +# < +# < +# Common ethernet support +# doc: ref/io-eth-drv-generic.html +# Platform independent ethernet drivers +# +cdl_package CYGPKG_IO_ETH_DRIVERS { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_NETWORKING + # ActiveIf: CYGPKG_IO_ETH_DRIVERS + # package CYGPKG_DEVS_ETH_ARM_TX53 + # ActiveIf: CYGPKG_IO_ETH_DRIVERS + # package CYGPKG_DEVS_ETH_FEC + # ActiveIf: CYGPKG_IO_ETH_DRIVERS + # package CYGPKG_DEVS_ETH_PHY + # ActiveIf: CYGPKG_IO_ETH_DRIVERS +}; + +# > +# Network drivers +# +cdl_interface CYGHWR_NET_DRIVERS { + # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE + # ActiveIf: CYGHWR_NET_DRIVERS > 1 + # option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE + # ActiveIf: CYGHWR_NET_DRIVERS > 1 +}; + +# Driver supports multicast addressing +# This interface defines whether or not a driver can handle +# requests for multicast addressing. +# +cdl_interface CYGINT_IO_ETH_MULTICAST { + # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# Support printing driver debug information +# Selecting this option will include code to allow the driver to +# print lots of information on diagnostic output such as full +# packet dumps. +# +cdl_component CYGDBG_IO_ETH_DRIVERS_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Driver debug output verbosity +# The value of this option indicates the default verbosity +# level of debugging output. 0 means no debugging output +# is made by default. Higher values indicate higher verbosity. +# The verbosity level may also be changed at run time by +# changing the variable cyg_io_eth_net_debug. +# +cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Size of scatter-gather I/O lists +# A scatter-gather list is used to pass requests to/from +# the physical device driver. This list can typically be +# small, as the data is normally already packed into reasonable +# chunks. +# +cdl_option CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 32 + # value_source default + # Default value: 32 +}; + +# Support for standard eCos TCP/IP stack. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_NET { + # This option is not active + # ActiveIf constraint: CYGPKG_NET + # CYGPKG_NET (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 +}; + +# > +# Warn when there are no more mbufs +# Warnings about running out of mbufs are printed to the +# diagnostic output channel via diag_printf() if this option +# is enabled. Mbufs are the network stack's basic dynamic +# memory objects that hold all packets in transit; running +# out is bad for performance but not fatal, not a crash. +# You might want to turn off the warnings to preserve realtime +# properties of the system even in extremis. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_WARN_NO_MBUFS { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Simulate network failures for testing +# This package contains a suite of simulated failure modes +# for the ethernet device layer, including dropping and/or +# corrupting received packets, dropping packets queued for +# transmission, and simulating a complete network break. +# It requires the kernel as a source of time information. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Drop incoming packets (percentage) +# +cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_RX { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 10 + # value_source default + # Default value: 1 10 + # Legal values: 10 50 80 +}; + +# Corrupt incoming packets (percentage) +# +cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_CORRUPT_RX { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 10 + # value_source default + # Default value: 1 10 + # Legal values: 10 50 80 +}; + +# Drop outgoing packets (percentage) +# +cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_TX { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 10 + # value_source default + # Default value: 1 10 + # Legal values: 10 50 80 +}; + +# Simulate a line cut from time to time +# This option causes the system to drop all packets for a +# short random period (10s of seconds), and then act +# normally for up to 4 times that long. This simulates your +# sysadmin fiddling with plugs in the network switch +# cupboard. +# +cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_LINE_CUT { + # This option is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active + # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# < +# Support for stand-alone network stack. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE { + # ActiveIf constraint: !CYGPKG_NET + # CYGPKG_NET (unknown) == 0 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGINT_ISO_STRING_MEMFUNCS + # CYGINT_ISO_STRING_MEMFUNCS == 1 + # --> 1 +}; + +# > +# Pass packets to an alternate stack +# Define this to allow packets seen by this layer to be +# passed on to the previous logical layer, i.e. when +# stand-alone processing replaces system (eCos) processing. +# +cdl_option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 0 != CYGPKG_REDBOOT_NETWORKING + # CYGPKG_REDBOOT_NETWORKING == 1 + # --> 1 +}; + +# Number of [network] buffers +# This option is used to allocate space to buffer incoming network +# packets. These buffers are used to hold data until they can be +# logically processed by higher layers. +# +cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4 + # value_source default + # Default value: 4 + # Legal values: 2 to 32 +}; + +# Show driver warnings +# Selecting this option will allows the stand-alone ethernet driver +# to display warnings on the system console when incoming network +# packets are being discarded due to lack of buffer space. +# +cdl_option CYGSEM_IO_ETH_DRIVERS_WARN { + # ActiveIf constraint: CYGPKG_REDBOOT + # CYGPKG_REDBOOT == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Support for lwIP network stack. +# +cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP { + # This option is not active + # ActiveIf constraint: CYGPKG_NET_LWIP + # CYGPKG_NET_LWIP (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: !CYGPKG_NET + # CYGPKG_NET (unknown) == 0 + # --> 1 +}; + +# Interrupt support required +# This interface is used to indicate to the low +# level device drivers that interrupt driven operation +# is required by higher layers. +# +cdl_interface CYGINT_IO_ETH_INT_SUPPORT_REQUIRED { + # Implemented by CYGPKG_IO_ETH_DRIVERS_NET, inactive, enabled + # Implemented by CYGPKG_IO_ETH_DRIVERS_LWIP, inactive, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + + # The following properties are affected by this value +}; + +# Common ethernet support build options +# +cdl_component CYGPKG_IO_ETH_DRIVERS_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the common ethernet support package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_IO_ETH_DRIVERS_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-D_KERNEL -D__ECOS" + # value_source default + # Default value: "-D_KERNEL -D__ECOS" +}; + +# < +# Ethernet driver for Ka-Ro electronics TX53 processor module +# +cdl_package CYGPKG_DEVS_ETH_ARM_TX53 { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS + # CYGPKG_IO_ETH_DRIVERS == current + # --> 1 + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current +}; + +# > +# FEC ethernet driver required +# +cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED { + # Implemented by CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # package CYGPKG_DEVS_ETH_FEC + # ActiveIf: CYGINT_DEVS_ETH_FEC_REQUIRED +}; + +# Ka-Ro TX53 ethernet port driver +# This option includes the ethernet device driver for the +# MXC Board port. +# +cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE + # CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1 + # --> 1 + # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700 + # CYGHWR_DEVS_ETH_PHY_LAN8700 == 1 + # --> 1 +}; + +# > +# Device name for the ETH0 ethernet driver +# This option sets the name of the ethernet device. +# +cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "\"eth0\"" + # value_source default + # Default value: "\"eth0\"" +}; + +# OUI part of MAC address +# This option sets OUI part (manufacturer ID) of the MAC address +# for validation. +# +cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI { + # ActiveIf constraint: CYGSEM_REDBOOT_PLF_ESA_VALIDATE + # CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1 + # --> 1 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "{ 0x00, 0x0c, 0xc6 }" + # value_source default + # Default value: "{ 0x00, 0x0c, 0xc6 }" +}; + +# < +# < +# Driver for fast ethernet controller. +# Driver for fast ethernet controller. +# +cdl_package CYGPKG_DEVS_ETH_FEC { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS + # CYGPKG_IO_ETH_DRIVERS == current + # --> 1 + # ActiveIf constraint: CYGINT_DEVS_ETH_FEC_REQUIRED + # CYGINT_DEVS_ETH_FEC_REQUIRED == 1 + # --> 1 + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current +}; + +# > +# MXC FEC ethernet driver build options +# +cdl_component CYGPKG_DEVS_ETH_FEC_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the Cirrus Logic ethernet driver package. +# These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-D_KERNEL -D__ECOS" + # value_source default + # Default value: "-D_KERNEL -D__ECOS" +}; + +# < +# MXC FEC MII Gasket for RMII mode +# This option enables the use of the MII Gasket for +# RMII mode found in i.MX25 and i.MX53 processors. +# +cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK { + # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 + # CYGPKG_HAL_ARM_MX25 (unknown) == 0 + # CYGPKG_HAL_ARM_MX53 == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Ethernet transceiver (PHY) support +# API for ethernet PHY devices +# +cdl_package CYGPKG_DEVS_ETH_PHY { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS + # CYGPKG_IO_ETH_DRIVERS == current + # --> 1 + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT + # CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1 + # --> 1 +}; + +# > +# Enable driver debugging +# Enables the diagnostic debug messages on the +# console device. +# +cdl_option CYGDBG_DEVS_ETH_PHY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Time period (seconds) to wait for auto-negotiation +# The length of time to wait for auto-negotiation to complete +# before giving up and declaring the link dead/missing. +# +cdl_option CYGINT_DEVS_ETH_PHY_AUTO_NEGOTIATION_TIME { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 5 + # value_source default + # Default value: 5 +}; + +# NSDP83847 +# Include support for National Semiconductor DP83847 DsPHYTER II +# +cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# AMD 79C874 +# Include support for AMD 79C874 NetPHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_AM79C874 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Intel LXT972 +# Include support for Intel LXT972xxx PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_INLXT972 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# ICS 1890 +# Include support for ICS 1890 PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_ICS1890 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# ICS 1892 +# Include support for ICS 1892 PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_ICS1892 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# ICS 1893 +# Include support for ICS 1893 and 1893AF PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_ICS1893 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Davicom DM9161A +# Include support for the Davicom DM9161A PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_DM9161A { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Micrel KS8721 +# Include support for the Micrel KS8721 PHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_KS8721 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# SMSC LAN8700 +# Include support for SMSC LAN8700 NetPHY +# +cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + + # The following properties are affected by this value + # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 + # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700 +}; + +# < +# < +# ISO C library internationalization functions +# doc: ref/libc.html +# This package provides internationalization functions specified by the +# ISO C standard - ISO/IEC 9899:1990. These include locale-related +# functionality and functionality. +# +cdl_package CYGPKG_LIBC_I18N { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 +}; + +# > +# Supported locales +# These options determine which locales other than the "C" locale +# are supported and hence contribute to the size of the executable. +# +cdl_component CYGPKG_LIBC_I18N_LOCALES { + # There is no associated value. +}; + +# > +# Support for multiple locales required +# +cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED { + # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_SJIS, active, disabled + # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_JIS, active, disabled + # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_EUCJP, active, disabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == "" + # CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == 0 + # --> 0 + + # The following properties are affected by this value +}; + +# C-SJIS locale support +# This option controls if the "C-SJIS" locale will be +# supported by setlocale(). The locale is a hybrid locale +# that is mostly the "C" locale with Japanese SJIS multibyte +# support added. +# +cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # LegalValues: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # DefaultValue: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) +}; + +# C-JIS locale support +# This option controls if the "C-JIS" locale will be +# supported by setlocale(). The locale is a hybrid locale +# that is mostly the "C" locale with Japanese JIS multibyte +# support added. +# +cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # LegalValues: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # DefaultValue: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) +}; + +# C-EUCJP locale support +# This option controls if the "C-EUCJP" locale will be +# supported by setlocale(). The locale is a hybrid locale +# that is mostly the "C" locale with Japanese EUCJP multibyte +# support added. +# +cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # LegalValues: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff + # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE + # DefaultValue: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) +}; + +# < +# Newlib's ctype implementation +# This option enables the implementation of the ctype functions +# that comes with newlib. It is table driven and therefore +# exhibits different performance characteristics. It also offers +# a limited amount of binary compatibility +# with newlib so that programs linked against newlib ctype/locale +# do not need to be recompiled when linked with eCos. +# +cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGBLD_ISO_CTYPE_HEADER == "" + # CYGBLD_ISO_CTYPE_HEADER == + # --> 0 +}; + +# Per-thread multibyte state +# This option controls whether the multibyte character +# handling functions mblen(), mbtowc(), and wctomb(), +# have their state recorded on a per-thread +# basis rather than global. If this option is +# disabled, some per-thread space can be saved. +# Enabling this option will use three slots +# of kernel per-thread data. You should ensure you +# have enough slots configured for all your +# per-thread data. +# +cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGVAR_KERNEL_THREADS_DATA != 0 + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 + # Requires: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 +}; + +# Size of locale name strings +# This option controls the maximum size of +# locale names and is used, among other things +# to instantiate a static string used +# as a return value from the +# setlocale() function. When requesting the +# current locale settings with LC_ALL, a string +# must be constructed to contain this data, rather +# than just returning a constant string. This +# string data is stored in the static string. +# This depends on the length of locale names, +# hence this option. If just the C locale is +# present, this option can be set as low as 2. +# +cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 2 + # value_source default + # Default value: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) + # CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0 + # CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0 + # CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0 + # --> 2 + # Legal values: (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff + # CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0 + # CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0 + # CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0 +}; + +# Inline versions of functions +# This option chooses whether the simple character +# classification and conversion functions (e.g. +# isupper(), isalpha(), toupper(), etc.) +# from are available as inline +# functions. This may improve performance and as +# the functions are small, may even improve code +# size. +# +cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_CTYPE_HEADER == "" + # CYGBLD_ISO_CTYPE_HEADER == + # --> 1 +}; + +# C library i18n functions build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_LIBC_I18N_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the C library. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the C library. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# C library i18n function tests +# This option specifies the set of tests for the C library +# i18n functions. +# +cdl_option CYGPKG_LIBC_I18N_TESTS { + # Calculated value: "tests/ctype tests/setlocale tests/i18nmb" + # Flavor: data + # Current_value: tests/ctype tests/setlocale tests/i18nmb +}; + +# < +# < +# ISO C library general utility functions +# doc: ref/libc.html +# This package provides general utility functions in +# as specified by the ISO C standard - ISO/IEC 9899:1990. +# +cdl_package CYGPKG_LIBC_STDLIB { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: CYGINT_ISO_CTYPE + # CYGINT_ISO_CTYPE == 1 + # --> 1 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 +}; + +# > +# Inline versions of functions +# This option chooses whether some of the +# particularly simple standard utility functions +# from are available as inline +# functions. This may improve performance, and as +# the functions are small, may even improve code +# size. +# +cdl_component CYGIMP_LIBC_STDLIB_INLINES { + # There is no associated value. +}; + +# > +# abs() / labs() +# +cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_STDLIB_ABS_HEADER == "" + # CYGBLD_ISO_STDLIB_ABS_HEADER == + # --> 1 +}; + +# div() / ldiv() +# +cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_STDLIB_DIV_HEADER == "" + # CYGBLD_ISO_STDLIB_DIV_HEADER == + # --> 1 +}; + +# atof() / atoi() / atol() +# +cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_STDLIB_STRCONV_HEADER == "" + # CYGBLD_ISO_STDLIB_STRCONV_HEADER == + # --> 1 +}; + +# < +# Random number generation +# These options control the behaviour of the +# functions rand(), srand() and rand_r() +# +cdl_component CYGPKG_LIBC_RAND { + # There is no associated value. +}; + +# > +# Per-thread random seed +# doc: ref/libc-thread-safety.html +# This option controls whether the pseudo-random +# number generation functions rand() and srand() +# have their state recorded on a per-thread +# basis rather than global. If this option is +# disabled, some per-thread space can be saved. +# Note there is also a POSIX-standard rand_r() +# function to achieve a similar effect with user +# support. Enabling this option will use one slot +# of kernel per-thread data. You should ensure you +# have enough slots configured for all your +# per-thread data. +# +cdl_option CYGSEM_LIBC_PER_THREAD_RAND { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 +}; + +# Random number seed +# This selects the initial random number seed for +# rand()'s pseudo-random number generator. For +# strict ISO standard compliance, this should be 1, +# as per section 7.10.2.2 of the standard. +# +cdl_option CYGNUM_LIBC_RAND_SEED { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Legal values: 0 to 0x7fffffff +}; + +# Tracing level +# Trace verbosity level for debugging the rand(), +# srand() and rand_r() functions. Increase this +# value to get additional trace output. +# +cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# Simplest implementation +# This provides a very simple implementation of rand() +# that does not perform well with randomness in the +# lower significant bits. However it is exceptionally +# fast. It uses the sample algorithm from the ISO C +# standard itself. +# +cdl_option CYGIMP_LIBC_RAND_SIMPLEST { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Simple implementation #1 +# This provides a very simple implementation of rand() +# based on the simplest implementation above. However +# it does try to work around the lack of randomness +# in the lower significant bits, at the expense of a +# little speed. +# +cdl_option CYGIMP_LIBC_RAND_SIMPLE1 { + # Flavor: bool + user_value 0 + # value_source user + # Default value: 1 +}; + +# Knuth implementation #1 +# This implements a slightly more complex algorithm +# published in Donald E. Knuth's Art of Computer +# Programming Vol.2 section 3.6 (p.185 in the 3rd ed.). +# This produces better random numbers than the +# simplest approach but is slower. +# +cdl_option CYGIMP_LIBC_RAND_KNUTH1 { + # Flavor: bool + user_value 1 + # value_source user + # Default value: 0 +}; + +# < +# Provides strtod() +# This option allows use of the utility function +# strtod() (and consequently atof()) to convert +# from string to double precision floating point +# numbers. Disabling this option removes the +# dependency on the math library package. +# +cdl_option CYGFUN_LIBC_strtod { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 != CYGPKG_LIBM + # CYGPKG_LIBM (unknown) == 0 + # --> 0 + # Requires: CYGPKG_LIBM + # CYGPKG_LIBM (unknown) == 0 + # --> 0 +}; + +# Provides long long conversion functions +# Enabling this option will provide support for the strtoll(), +# strtoull() and atoll() conversion functions, which are +# the long long variants of the standard versions of these +# functions. Supporting this requires extra code and compile +# time. +# +cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG { + # Flavor: bool + user_value 0 + # value_source user + # Default value: 1 +}; + +# bsearch() tracing level +# Trace verbosity level for debugging the +# binary search function bsearch(). Increase this +# value to get additional trace output. +# +cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# qsort() tracing level +# Trace verbosity level for debugging the +# quicksort function qsort(). Increase this value +# to get additional trace output. +# +cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# C library stdlib build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_LIBC_STDLIB_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# C library stdlib tests +# This option specifies the set of tests for this package. +# +cdl_option CYGPKG_LIBC_STDLIB_TESTS { + # Calculated value: "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" + # Flavor: data + # Current_value: tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul +}; + +# < +# < +# < +# eCos HAL +# doc: ref/the-ecos-hardware-abstraction-layer.html +# 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. +# +cdl_package CYGPKG_HAL { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_INFRA + # CYGPKG_INFRA == current + # --> 1 + + # The following properties are affected by this value +}; + +# > +# Platform-independent HAL options +# 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. +# +cdl_component CYGPKG_HAL_COMMON { + # There is no associated value. +}; + +# > +# Provide eCos kernel support +# The HAL can be configured to either support the full eCos +# kernel, or to support only very simple applications which do +# not require a full kernel. If kernel support is not required +# then some of the startup, exception, and interrupt handling +# code can be eliminated. +# +cdl_option CYGFUN_HAL_COMMON_KERNEL_SUPPORT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + # Requires: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 +}; + +# HAL exception support +# When a processor exception occurs, for example an attempt to +# execute an illegal instruction or to perform a divide by +# zero, this exception may be handled in a number of different +# ways. If the target system has gdb support then typically +# the exception will be handled by gdb code. Otherwise if the +# HAL exception support is enabled then the HAL will invoke a +# routine deliver_exception(). Typically this routine will be +# provided by the eCos kernel, but it is possible for +# application code to provide its own implementation. If the +# HAL exception support is not enabled and a processor +# exception occurs then the behaviour of the system is +# undefined. +# +cdl_option CYGPKG_HAL_EXCEPTIONS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGPKG_KERNEL_EXCEPTIONS + # CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0 + # --> 0 + # Requires: CYGPKG_KERNEL_EXCEPTIONS + # CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0 + # --> 0 +}; + +# Stop calling constructors early +# This option supports environments where some constructors +# must be run in the context of a thread rather than at +# simple system startup time. A boolean flag named +# cyg_hal_stop_constructors is set to 1 when constructors +# should no longer be invoked. It is up to some other +# package to deal with the rest of the constructors. +# In the current version this is only possible with the +# C library. +# +cdl_option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS + # CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS (unknown) == 0 + # --> 0 +}; + +# HAL uses the MMU and allows for CDL manipulation of it's use +# +cdl_interface CYGINT_HAL_SUPPORTS_MMU_TABLES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGSEM_HAL_INSTALL_MMU_TABLES + # ActiveIf: CYGINT_HAL_SUPPORTS_MMU_TABLES +}; + +# Install MMU tables. +# This option controls whether this application installs +# its own Memory Management Unit (MMU) tables, or relies on the +# existing environment to run. +# +cdl_option CYGSEM_HAL_INSTALL_MMU_TABLES { + # This option is not active + # ActiveIf constraint: CYGINT_HAL_SUPPORTS_MMU_TABLES + # CYGINT_HAL_SUPPORTS_MMU_TABLES == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYG_HAL_STARTUP != "RAM" + # CYG_HAL_STARTUP == ROMRAM + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_STATIC_MMU_TABLES + # Requires: CYGSEM_HAL_INSTALL_MMU_TABLES +}; + +# Use static MMU tables. +# This option defines an environment where any Memory +# Management Unit (MMU) tables are constant. Normally used by ROM +# based environments, this provides a way to save RAM usage which +# would otherwise be required for these tables. +# +cdl_option CYGSEM_HAL_STATIC_MMU_TABLES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_HAL_INSTALL_MMU_TABLES + # CYGSEM_HAL_INSTALL_MMU_TABLES == 0 + # --> 0 +}; + +# Route diagnostic output to debug channel +# If not inheriting the console setup from the ROM monitor, +# it is possible to redirect diagnostic output to the debug +# channel by enabling this option. Depending on the debugger +# used it may also be necessary to select a mangler for the +# output to be displayed by the debugger. +# +cdl_component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN { + # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE + # CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE == 0 + # --> 1 + # ActiveIf constraint: CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG + # CYGPKG_HAL_ARM == current + # CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0 + # CYGPKG_HAL_V85X_V850 (unknown) == 0 + # CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS || CYG_HAL_STARTUP == "RAM") ? 1 : 0 + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # CYG_HAL_STARTUP == ROMRAM + # --> 0 + + # The following properties are affected by this value + # option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE + # Calculated: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE && !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN +}; + +# > +# Mangler used on diag output +# It is sometimes necessary to mangle (encode) the +# diag ASCII text output in order for it to show up at the +# other end. In particular, GDB may silently ignore raw +# ASCII text. +# +cdl_option CYGSEM_HAL_DIAG_MANGLER { + # This option is not active + # The parent CYGDBG_HAL_DIAG_TO_DEBUG_CHAN is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value GDB + # value_source default + # Default value: GDB + # Legal values: "GDB" "None" +}; + +# < +# < +# HAL interrupt handling +# 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. +# +cdl_component CYGPKG_HAL_COMMON_INTERRUPTS { + # There is no associated value. +}; + +# > +# Use separate stack for interrupts +# When an interrupt occurs this interrupt can be handled either +# on the current stack or on a separate stack maintained by the +# HAL. Using a separate stack requires a small number of extra +# instructions in the interrupt handling code, but it has the +# advantage that it is no longer necessary to allow extra space +# in every thread stack for the interrupt handlers. The amount +# of extra space required depends on the interrupt handlers +# that are being used. +# +cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + + # The following properties are affected by this value + # package CYGPKG_REDBOOT + # Requires: CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 +}; + +# Interrupt stack size +# This configuration option specifies the stack size in bytes +# for the interrupt stack. Typically this should be a multiple +# of 16, but the exact requirements will vary from architecture +# to architecture. The interrupt stack serves two separate +# purposes. It is used as the stack during system +# initialization. In addition, if the interrupt system is +# configured to use a separate stack then all interrupts will +# be processed on this stack. The exact memory requirements +# will vary from application to application, and will depend +# heavily on whether or not other interrupt-related options, +# for example nested interrupts, are enabled. On most targets, +# in a configuration with no kernel this stack will also be +# the stack used to invoke the application, and must obviously +# be appropriately large in that case. +# +cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 32768 + # value_source default + # Default value: CYGPKG_KERNEL ? 4096 : 32768 + # CYGPKG_KERNEL (unknown) == 0 + # --> 32768 + # Legal values: 128 to 1048576 +}; + +# Allow nested interrupts +# When an interrupt occurs the HAL interrupt handling code can +# either leave interrupts disabled for the duration of the +# interrupt handling code, or by doing some extra work it can +# reenable interrupts before invoking the interrupt handler and +# thus allow nested interrupts to happen. If all the interrupt +# handlers being used are small and do not involve any loops +# then it is usually better to disallow nested interrupts. +# However if any of the interrupt handlers are more complicated +# than nested interrupts will usually be required. +# +cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Save minimum context on interrupt +# The HAL interrupt handling code can exploit the calling conventions +# defined for a given architecture to reduce the amount of state +# that has to be saved. Generally this improves performance and +# reduces code size. However it can make source-level debugging +# more difficult. +# +cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT + # component CYGBLD_BUILD_REDBOOT + # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT +}; + +# Chain all interrupts together +# Interrupts can be attached to vectors either singly, or be +# chained together. The latter is necessary if there is no way +# of discovering which device has interrupted without +# inspecting the device itself. It can also reduce the amount +# of RAM needed for interrupt decoding tables and code. +# +cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Ignore spurious [fleeting] interrupts +# On some hardware, interrupt sources may not be de-bounced or +# de-glitched. Rather than try to handle these interrupts (no +# handling may be possible), this option allows the HAL to simply +# ignore them. In most cases, if the interrupt is real it will +# reoccur in a detectable form. +# +cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# HAL context switch support +# 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_component CYGPKG_HAL_COMMON_CONTEXT { + # There is no associated value. + + # The following properties are affected by this value +}; + +# > +# Use minimum thread context +# 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_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM + # component CYGBLD_BUILD_REDBOOT + # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM +}; + +# < +# Explicit control over cache behaviour +# These options let the default behaviour of the caches +# be easily configurable. +# +cdl_component CYGPKG_HAL_CACHE_CONTROL { + # There is no associated value. +}; + +# > +# Enable DATA cache on startup +# Enabling this option will cause the data cache to be enabled +# as soon as practicable when eCos starts up. One would choose +# to disable this if the data cache cannot safely be turned on, +# such as a case where the cache(s) require additional platform +# specific setup. +# +cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# DATA cache mode on startup +# This option controls the mode the cache will be set to +# when enabled on startup. +# +cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value COPYBACK + # value_source default + # Default value: COPYBACK + # Legal values: "COPYBACK" "WRITETHRU" +}; + +# < +# Enable INSTRUCTION cache on startup +# Enabling this option will cause the instruction cache to be enabled +# as soon as practicable when eCos starts up. One would choose +# to disable this if the instruction cache cannot safely be turned on, +# such as a case where the cache(s) require additional platform +# specific setup. +# +cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Source-level debugging support +# 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. +# +cdl_component CYGPKG_HAL_DEBUG { + # There is no associated value. +}; + +# > +# Support for GDB stubs +# The HAL implements GDB stubs for the target. +# +cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS + # option CYGBLD_BUILD_REDBOOT_WITH_GDB + # ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS +}; + +# Include GDB stubs in HAL +# This option causes a set of GDB stubs to be included into the +# system. On some target systems the GDB support will be +# provided by other means, for example by a ROM monitor. On +# other targets, especially when building a ROM-booting system, +# the necessary support has to go into the target library +# itself. When GDB stubs are include in a configuration, HAL +# serial drivers must also be included. +# +cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS { + # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS + # CYGINT_HAL_DEBUG_GDB_STUBS == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 0 + # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR + # CYGSEM_HAL_USE_ROM_MONITOR == 0 + # --> 1 + # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT + # CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0 + # --> 1 + # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM + # CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0 + # --> 1 + # Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1 + # --> 1 + + # The following properties are affected by this value + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # DefaultValue: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS || CYG_HAL_STARTUP == "RAM") ? 1 : 0 + # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # DefaultValue: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # DefaultValue: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGBLD_BUILD_COMMON_GDB_STUBS + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGPKG_HAL_GDB_FILEIO + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS + # Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGBLD_BUILD_REDBOOT_WITH_GDB + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS +}; + +# Support for external break support in GDB stubs +# The HAL implements external break (or asynchronous interrupt) +# in the GDB stubs for the target. +# +cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS_BREAK { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK +}; + +# Include GDB external break support for stubs +# This option causes the GDB stub to add a serial interrupt handler +# which will listen for GDB break packets. This lets you stop the +# target asynchronously when using GDB, usually by hitting Control+C +# or pressing the STOP button. This option differs from +# CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT in that it is used when +# GDB stubs are present. +# +cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT { + # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK + # CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # Requires: !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT + # ActiveIf: CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # option CYGBLD_BUILD_REDBOOT_WITH_GDB + # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT +}; + +# Platform does not support CTRLC +# +cdl_interface CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # ActiveIf: CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0 +}; + +# Include GDB external break support when no stubs +# This option adds an interrupt handler for the GDB serial line +# which will listen for GDB break packets. This lets you stop the +# target asynchronously when using GDB, usually by hitting Control+C +# or pressing the STOP button. This option differs from +# CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT in that it is used when the GDB +# stubs are NOT present. +# +cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT { + # This option is not active + # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGSEM_HAL_USE_ROM_MONITOR == 0 + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0 + # CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 1 + # Requires: !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT + # ActiveIf: CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # component CYGBLD_BUILD_REDBOOT + # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT +}; + +# Include GDB multi-threading debug support +# This option enables some extra HAL code which is needed +# to support multi-threaded source level debugging. +# +cdl_option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT { + # ActiveIf constraint: CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT + # CYGSEM_HAL_ROM_MONITOR == 1 + # CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT + # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT + # option CYGBLD_BUILD_REDBOOT_WITH_THREADS + # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT +}; + +# Number of times to retry sending a $O packet +# This option controls the number of attempts that eCos programs +# will make to send a $O packet to a host GDB process. If it is +# set non-zero, then the target process will attempt to resend the +# $O packet data up to this number of retries. Caution: use of +# this option is not recommended as it can thoroughly confuse the +# host GDB process. +# +cdl_option CYGNUM_HAL_DEBUG_GDB_PROTOCOL_RETRIES { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Timeout period for GDB packets +# This option controls the time (in milliseconds) that eCos programs +# will wait for a response when sending packets to a host GDB process. +# If this time elapses, then the packet will be resent, up to some +# maximum number of times (CYGNUM_HAL_DEBUG_GDB_PROTOCOL_RETRIES). +# +cdl_option CYGNUM_HAL_DEBUG_GDB_PROTOCOL_TIMEOUT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 500 + # value_source default + # Default value: 500 +}; + +# Location of CRC32 table +# The stubs use a 1 kilobyte CRC table that can either be pregenerated +# and placed in ROM, or generated at runtime in RAM. Depending on +# your memory constraints, one of these options may be better. +# +cdl_option CYGDBG_HAL_CRCTABLE_LOCATION { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value RAM + # value_source default + # Default value: RAM + # Legal values: "ROM" "RAM" +}; + +# < +# ROM monitor support +# 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_component CYGPKG_HAL_ROM_MONITOR { + # There is no associated value. + + # The following properties are affected by this value +}; + +# > +# Target has virtual vector support +# +cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT + # ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT +}; + +# Target supports baud rate control via vectors +# Whether this target supports the __COMMCTL_GETBAUD +# and __COMMCTL_SETBAUD virtual vector comm control operations. +# +cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT { + # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE + # ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT +}; + +# Enable use of virtual vector calling interface +# Virtual vector support allows the HAL to let the ROM +# monitor handle certain operations. The virtual vector table +# defines a calling interface between applications running in +# RAM and the ROM monitor. +# +cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT { + # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT + # CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 + + # The following properties are affected by this value + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT + # package CYGPKG_DEVS_ETH_PHY + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT +}; + +# > +# Inherit console settings from ROM monitor +# When this option is set, the application will inherit +# the console as set up by the ROM monitor. This means +# that the application will use whatever channel and +# mangling style was used by the ROM monitor when +# the application was launched. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE { + # This option is not active + # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR + # CYGSEM_HAL_USE_ROM_MONITOR == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1 + # --> 0 + + # The following properties are affected by this value + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE + # option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE + # Calculated: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE && !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN +}; + +# Debug channel is configurable +# This option is a configuration hint - it is enabled +# when the HAL initialization code will make use +# of the debug channel configuration option. +# +cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE { + # Calculated value: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1 + # Flavor: bool + # Current value: 1 + + # The following properties are affected by this value + # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL + # ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE +}; + +# Console channel is configurable +# This option is a configuration hint - it is enabled +# when the HAL initialization code will make use +# of the console channel configuration option. +# +cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE { + # Calculated value: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE && !CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE == 0 + # CYGDBG_HAL_DIAG_TO_DEBUG_CHAN == 0 + # Flavor: bool + # Current value: 1 + + # The following properties are affected by this value + # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL + # ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE +}; + +# Initialize whole of virtual vector table +# This option will cause the whole of the virtual +# vector table to be initialized with dummy values on +# startup. When this option is enabled, all the +# options below must also be enabled - or the +# table would be empty when the application +# launches. +# On targets where older ROM monitors without +# virtual vector support may still be in use, it is +# necessary for RAM applictions to initialize the +# table (since all HAL diagnostics and debug IO +# happens via the table). +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR + # CYG_HAL_STARTUP == ROMRAM + # CYGSEM_HAL_USE_ROM_MONITOR == 0 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 1 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 1 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 1 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 1 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS +}; + +# Claim virtual vector table entries by default +# By default most virtual vectors will be claimed by +# RAM startup configurations, meaning that the RAM +# application will provide the services. The +# exception is COMMS support (HAL +# diagnostics/debugging IO) which is left in the +# control of the ROM monitor. +# The reasoning behind this is to get as much of the +# code exercised during regular development so it +# is known to be working the few times a new ROM +# monitor or a ROM production configuration is used +# - COMMS are excluded only by necessity in order to +# avoid breaking an existing debugger connections +# (there may be ways around this). +# For production RAM configurations this option can +# be switched off, causing the appliction to rely on +# the ROM monitor for these services, thus +# saving some space. +# Individual vectors may also be left unclaimed, +# controlled by the below options (meaning that the +# associated service provided by the ROM monitor +# will be used). +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT { + # This option is not active + # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA + # DefaultValue: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT +}; + +# Claim reset virtual vectors +# This option will cause the reset and kill_by_reset +# virtual vectors to be claimed. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET +}; + +# Claim version virtual vectors +# This option will cause the version +# virtual vectors to be claimed. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # --> 1 +}; + +# Claim delay_us virtual vector +# This option will cause the delay_us +# virtual vector to be claimed. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US +}; + +# Claim cache virtual vectors +# This option will cause the cache virtual vectors +# to be claimed. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE +}; + +# Claim data virtual vectors +# This option will cause the data virtual vectors +# to be claimed. At present there is only one, used +# by the RedBoot ethernet driver to share diag output. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA +}; + +# Claim comms virtual vectors +# This option will cause the communication tables +# that are part of the virtual vectors mechanism to +# be claimed. Note that doing this may cause an +# existing ROM monitor communication connection to +# be closed. For this reason, the option is disabled +# per default for normal application +# configurations. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1 + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE + # DefaultValue: !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE + # Calculated: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS +}; + +# Do diagnostic IO via virtual vector table +# All HAL IO happens via the virtual vector table / comm +# tables when those tables are supported by the HAL. +# If so desired, the low-level IO functions can +# still be provided by the RAM application by +# enabling the CLAIM_COMMS option. +# +cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_DIAG { + # Calculated value: 1 + # Flavor: bool + # Current value: 1 + + # The following properties are affected by this value + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # ActiveIf: CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS +}; + +# < +# Behave as a ROM monitor +# Enable this option if this program is to be used as a ROM monitor, +# i.e. applications will be loaded into RAM on the TX53 module, and this +# ROM monitor may process exceptions or interrupts generated from the +# application. This enables features such as utilizing a separate +# interrupt stack when exceptions are generated. +# +cdl_option CYGSEM_HAL_ROM_MONITOR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + # Requires: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # CYG_HAL_STARTUP == ROMRAM + # CYG_HAL_STARTUP == ROMRAM + # --> 1 + + # The following properties are affected by this value + # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK + # DefaultValue: (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) + # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT + # ActiveIf: CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT + # option CYGPRI_REDBOOT_ROM_MONITOR + # Requires: CYGSEM_HAL_ROM_MONITOR +}; + +# Work with a ROM monitor +# Support can be enabled for different varieties of ROM monitor. +# This support changes various eCos semantics such as the encoding +# of diagnostic output, or the overriding of hardware interrupt +# vectors. +# Firstly there is "Generic" support which prevents the HAL +# from overriding the hardware vectors that it does not use, to +# instead allow an installed ROM monitor to handle them. This is +# the most basic support which is likely to be common to most +# implementations of ROM monitor. +# "GDB_stubs" provides support when GDB stubs are included in +# the ROM monitor or boot ROM. +# +cdl_option CYGSEM_HAL_USE_ROM_MONITOR { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 + # CYG_HAL_STARTUP == ROMRAM + # --> 0 0 + # Legal values: "Generic" "GDB_stubs" + # Requires: CYG_HAL_STARTUP == "RAM" + # CYG_HAL_STARTUP == ROMRAM + # --> 0 + + # The following properties are affected by this value + # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR + # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE + # ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # DefaultValue: CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR +}; + +# < +# Platform defined I/O channels. +# Platforms which provide additional I/O channels can implement +# this interface, indicating that the function plf_if_init() +# needs to be called. +# +cdl_interface CYGINT_HAL_PLF_IF_INIT { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 +}; + +# Platform IDE I/O support. +# Platforms which provide IDE controllers can implement +# this interface, indicating that IDE I/O macros are +# available. +# +cdl_interface CYGINT_HAL_PLF_IF_IDE { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # component CYGSEM_REDBOOT_DISK_IDE + # ActiveIf: CYGINT_HAL_PLF_IF_IDE != 0 +}; + +# File I/O operations via GDB +# This option enables support for various file I/O +# operations using the GDB remote protocol to communicate +# with GDB. The operations are then performed on the +# debugging host by proxy. These operations are only +# currently available by using a system call interface +# to RedBoot. This may change in the future. +# +cdl_option CYGPKG_HAL_GDB_FILEIO { + # This option is not active + # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS + # CYGSEM_REDBOOT_BSP_SYSCALLS == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 +}; + +# Build Compiler sanity checking tests +# Enabling this option causes compiler tests to be built. +# +cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # component CYGPKG_HAL_TESTS + # Calculated: "tests/context tests/basic" + # . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "") + # . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "") + # . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? " tests/intr" : "") +}; + +# Common HAL tests +# This option specifies the set of tests for the common HAL. +# +cdl_component CYGPKG_HAL_TESTS { + # Calculated value: "tests/context tests/basic" + # . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "") + # . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "") + # . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? " tests/intr" : "") + # CYGINT_HAL_TESTS_NO_CACHES == 0 + # CYGPKG_HAL_BUILD_COMPILER_TESTS == 0 + # CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0 + # Flavor: data + # Current_value: tests/context tests/basic tests/cache tests/intr +}; + +# > +# Interface for cache presence +# Some architectures and/or platforms do not have caches. By +# implementing this interface, these can disable the various +# cache-related tests. +# +cdl_interface CYGINT_HAL_TESTS_NO_CACHES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + + # The following properties are affected by this value + # component CYGPKG_HAL_TESTS + # Calculated: "tests/context tests/basic" + # . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "") + # . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "") + # . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ? " tests/intr" : "") +}; + +# < +# ARM architecture +# The ARM architecture HAL package provides generic +# support for this processor architecture. It is also +# necessary to select a specific target platform HAL +# package. +# +cdl_package CYGPKG_HAL_ARM { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # ActiveIf: CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG + # interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED + # ActiveIf: CYGPKG_HAL_ARM +}; + +# > +# The CPU architecture supports THUMB mode +# +cdl_interface CYGINT_HAL_ARM_THUMB_ARCH { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_THUMB + # ActiveIf: CYGINT_HAL_ARM_THUMB_ARCH != 0 + # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK + # ActiveIf: CYGINT_HAL_ARM_THUMB_ARCH != 0 +}; + +# Enable Thumb instruction set +# Enable use of the Thumb instruction set. +# +cdl_option CYGHWR_THUMB { + # This option is not active + # ActiveIf constraint: CYGINT_HAL_ARM_THUMB_ARCH != 0 + # CYGINT_HAL_ARM_THUMB_ARCH == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK + # DefaultValue: (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) +}; + +# Enable Thumb interworking compiler option +# This option controls the use of -mthumb-interwork in the +# compiler flags. It defaults enabled in Thumb or ROM monitor +# configurations, but can be overridden for reduced memory +# footprint where interworking is not a requirement. +# +cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK { + # This option is not active + # ActiveIf constraint: CYGINT_HAL_ARM_THUMB_ARCH != 0 + # CYGINT_HAL_ARM_THUMB_ARCH == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) + # CYGHWR_THUMB == 0 + # CYGSEM_HAL_ROM_MONITOR == 1 + # --> 1 +}; + +# The platform and architecture supports Big Endian operation +# +cdl_interface CYGINT_HAL_ARM_BIGENDIAN { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_BIGENDIAN + # ActiveIf: CYGINT_HAL_ARM_BIGENDIAN != 0 +}; + +# Use big-endian mode +# Use the CPU in big-endian mode. +# +cdl_option CYGHWR_HAL_ARM_BIGENDIAN { + # This option is not active + # ActiveIf constraint: CYGINT_HAL_ARM_BIGENDIAN != 0 + # CYGINT_HAL_ARM_BIGENDIAN == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# The platform uses a processor with an ARM7 core +# +cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_CPU_FAMILY + # LegalValues: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # option CYGHWR_HAL_ARM_CPU_FAMILY + # DefaultValue: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" +}; + +# The platform uses a processor with an ARM9 core +# +cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 { + # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_CPU_FAMILY + # LegalValues: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # option CYGHWR_HAL_ARM_CPU_FAMILY + # DefaultValue: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" +}; + +# The platform uses a processor with a StrongARM core +# +cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_CPU_FAMILY + # LegalValues: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # option CYGHWR_HAL_ARM_CPU_FAMILY + # DefaultValue: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" +}; + +# The platform uses a processor with a XScale core +# +cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_HAL_ARM_CPU_FAMILY + # LegalValues: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # option CYGHWR_HAL_ARM_CPU_FAMILY + # DefaultValue: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" +}; + +# ARM CPU family +# It is possible to optimize code for different +# ARM CPU families. This option selects which CPU to +# optimize for on boards that support multiple CPU types. +# +cdl_option CYGHWR_HAL_ARM_CPU_FAMILY { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value ARM9 + # value_source default + # Default value: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : + # "unknown" + # CYGINT_HAL_ARM_ARCH_ARM7 == 0 + # CYGINT_HAL_ARM_ARCH_ARM9 == 1 + # CYGINT_HAL_ARM_ARCH_STRONGARM == 0 + # CYGINT_HAL_ARM_ARCH_XSCALE == 0 + # --> ARM9 + # Legal values: (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : "" + # (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : "" + # (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : "" + # (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : "" + # "" + # CYGINT_HAL_ARM_ARCH_ARM7 == 0 + # CYGINT_HAL_ARM_ARCH_ARM9 == 1 + # CYGINT_HAL_ARM_ARCH_STRONGARM == 0 + # CYGINT_HAL_ARM_ARCH_XSCALE == 0 +}; + +# Provide diagnostic dump for exceptions +# Print messages about hardware exceptions, including +# raw exception frame dump and register contents. +# +cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 1 +}; + +# Process all exceptions with the eCos application +# Normal RAM-based programs which do not include GDB stubs +# defer processing of the illegal instruction exception to GDB. +# Setting this options allows the program to explicitly handle +# the illegal instruction exception itself. Note: this will +# prevent the use of GDB to debug the application as breakpoints +# will no longer work. +# +cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Support GDB thread operations via ICE/Multi-ICE +# Allow GDB to get thread information via the ICE/Multi-ICE +# connection. +# +cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1 + # --> 1 + # Requires: CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT + # CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0 + # --> 0 +}; + +# Support for 'gprof' callbacks +# The ARM HAL provides the macro for 'gprof' callbacks from RedBoot +# to acquire the interrupt-context PC and SP, when this option is +# active. +# +cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT { + # This option is not active + # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS + # CYGSEM_REDBOOT_BSP_SYSCALLS == 0 + # --> 0 + # ActiveIf constraint: CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0 + # CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0 + # --> 0 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# Accept exceptions and irq's occurring in user mode +# For standalone Redboot based programs running in user mode. +# +cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Preserve svc spsr before returning to svc mode +# This option secures exception and breakpoint processing +# triggered during execution of application specific SWI +# handlers. +# +cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Linker script +# +cdl_option CYGBLD_LINKER_SCRIPT { + # Calculated value: "src/arm.ld" + # Flavor: data + # Current_value: src/arm.ld +}; + +# Implementations of hal_arm_mem_real_region_top() +# +cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 +}; + +# Freescale SoC architecture +# This HAL variant package provides generic +# support for the Freescale SoC. It is also +# necessary to select a specific target platform HAL +# package. +# +cdl_package CYGPKG_HAL_ARM_MX53 { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK + # ActiveIf: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 +}; + +# > +# Processor clock rate +# The processor can run at various frequencies. +# These values are expressed in KHz. Note that there are +# several steppings of the rate to run at different +# maximum frequencies. Check the specs to make sure that your +# particular processor can run at the rate you select here. +# +cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK { + # This option is not active + # ActiveIf constraint: CYG_HAL_STARTUP == "ROM" + # CYG_HAL_STARTUP == ROMRAM + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 150000 + # value_source default + # Default value: CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ? + # CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000 + # CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0 + # CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0 + # --> 150000 + # Legal values: 150000 200000 +}; + +# Real-time clock constants +# +cdl_component CYGNUM_HAL_RTC_CONSTANTS { + # There is no associated value. +}; + +# > +# Real-time clock numerator +# +cdl_option CYGNUM_HAL_RTC_NUMERATOR { + # Calculated value: 1000000000 + # Flavor: data + # Current_value: 1000000000 +}; + +# Real-time clock denominator +# This option selects the heartbeat rate for the real-time clock. +# The rate is specified in ticks per second. Change this value +# with caution - too high and your system will become saturated +# just handling clock interrupts, too low and some operations +# such as thread scheduling may become sluggish. +# +cdl_option CYGNUM_HAL_RTC_DENOMINATOR { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 100 + # value_source default + # Default value: 100 + + # The following properties are affected by this value + # option CYGNUM_HAL_RTC_PERIOD + # Calculated: (3686400/CYGNUM_HAL_RTC_DENOMINATOR) +}; + +# Real-time clock period +# +cdl_option CYGNUM_HAL_RTC_PERIOD { + # Calculated value: (3686400/CYGNUM_HAL_RTC_DENOMINATOR) + # CYGNUM_HAL_RTC_DENOMINATOR == 100 + # Flavor: data + # Current_value: 36864 +}; + +# < +# UART1 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART1 { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# UART2 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART2 { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# UART3 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART3 { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# UART4 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART4 { + # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value +}; + +# UART5 available as diagnostic/debug channel +# The chip has multiple serial channels which may be +# used for different things on different platforms. This +# interface allows a platform to indicate that the specified +# serial port can be used as a diagnostic and/or debug channel. +# +cdl_interface CYGHWR_HAL_ARM_SOC_UART5 { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 +}; + +# Ka-Ro TX53 module +# This HAL platform package provides generic +# support for the Ka-Ro electronics TX53 module. +# +cdl_package CYGPKG_HAL_ARM_TX53KARO { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGINT_ISO_CTYPE + # CYGINT_ISO_CTYPE == 1 + # --> 1 + # Requires: CYGBLD_BUILD_REDBOOT == 1 + # CYGBLD_BUILD_REDBOOT == 1 + # --> 1 +}; + +# > +# Startup type +# The only startup type allowed is ROMRAM, since this will allow +# the program to exist in ROM, but be copied to RAM during startup +# which is required to boot from NAND flash. +# +cdl_component CYG_HAL_STARTUP { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value ROMRAM + # value_source default + # Default value: ROMRAM + # Legal values: "ROMRAM" "RAM" + + # The following properties are affected by this value + # option CYGSEM_HAL_ROM_MONITOR + # Requires: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # option CYGSEM_HAL_ROM_MONITOR + # Requires: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # option CYGSEM_HAL_USE_ROM_MONITOR + # DefaultValue: CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 + # option CYGSEM_HAL_USE_ROM_MONITOR + # Requires: CYG_HAL_STARTUP == "RAM" + # option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK + # ActiveIf: CYG_HAL_STARTUP == "ROM" + # option CYGSEM_HAL_INSTALL_MMU_TABLES + # DefaultValue: CYG_HAL_STARTUP != "RAM" + # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN + # DefaultValue: (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS || CYG_HAL_STARTUP == "RAM") ? 1 : 0 + # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE + # DefaultValue: CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR + # option CYGBLD_BUILD_REDBOOT_WITH_THREADS + # ActiveIf: CYG_HAL_STARTUP != "RAM" + # option CYGPRI_REDBOOT_ROM_MONITOR + # ActiveIf: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # option CYGPRI_REDBOOT_ROM_MONITOR + # ActiveIf: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" +}; + +# Diagnostic serial port baud rate +# This option selects the baud rate used for the console port. +# Note: this should match the value chosen for the GDB port if the +# console and GDB port are the same. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 115200 + # value_source default + # Default value: 115200 + # Legal values: 9600 19200 38400 57600 115200 +}; + +# GDB serial port baud rate +# This option selects the baud rate used for the GDB port. +# Note: this should match the value chosen for the console port if the +# console and GDB port are the same. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 115200 + # value_source default + # Default value: 115200 + # Legal values: 9600 19200 38400 57600 115200 +}; + +# Number of communication channels on the TX53 +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS { + # Calculated value: 3 + # Flavor: data + # Current_value: 3 + + # The following properties are affected by this value + # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL + # LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT + # LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL + # LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 +}; + +# Debug serial port +# The TX53 provides access to three serial ports. This option +# chooses which port will be used to connect to a host +# running GDB. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL { + # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE + # CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE == 1 + # --> 1 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 3 +}; + +# Default console channel. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT { + # Calculated value: 0 + # Flavor: data + # Current_value: 0 + # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 3 + + # The following properties are affected by this value + # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL + # DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT +}; + +# Console serial port +# The TX53 provides access to three serial ports. This option +# chooses which port will be used for console output. +# +cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL { + # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE + # CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE == 1 + # --> 1 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT + # CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT == 0 + # --> 0 + # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1 + # CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 3 +}; + +# Ka-Ro electronics TX53 module build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_HAL_ARM_TX53_OPTIONS { + # There is no associated value. + # Requires: CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 + # CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 + # --> 1 +}; + +# > +# SDRAM size +# This option specifies the SDRAM size of the TX53 module. +# +cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE { + # Flavor: data + user_value 0x40000000 + # value_source user + # Default value: 0x20000000 + # Legal values: 0x40000000 0x20000000 +}; + +# SDRAM clock +# This option specifies the SDRAM clock im MHz of the TX53 module. +# +cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_CLK { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 400 + # value_source default + # Default value: 400 + # Legal values: 216 400 +}; + +# Enable low level debugging with LED +# This option enables low level debugging by blink codes +# of the LED on STK5. +# +cdl_option CYGOPT_HAL_ARM_TX53_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: false + # false (unknown) == 0 + # --> 0 +}; + +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the TX53 HAL. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the TX53 HAL. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Show a splash screen from the FIS partition: 'logo' +# When this option is enabled, RedBoot will look for a flash partition +# named 'logo' and display the contents of this partition as initial +# screen on the LCD +# +cdl_option CYGHWR_MX53_LCD_LOGO { + # ActiveIf constraint: CYGPKG_DEVS_IMX_IPU + # CYGPKG_DEVS_IMX_IPU == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Memory layout +# +cdl_component CYGHWR_MEMORY_LAYOUT { + # Calculated value: "arm_tx53_romram" + # Flavor: data + # Current_value: arm_tx53_romram +}; + +# > +# Memory layout linker script fragment +# +cdl_option CYGHWR_MEMORY_LAYOUT_LDI { + # Calculated value: "" + # Flavor: data + # Current_value: +}; + +# Memory layout header file +# +cdl_option CYGHWR_MEMORY_LAYOUT_H { + # Calculated value: "" + # Flavor: data + # Current_value: +}; + +# < +# < +# < +# < +# < +# Infrastructure +# Common types and useful macros. +# Tracing and assertion facilities. +# Package startup options. +# +cdl_package CYGPKG_INFRA { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # package CYGPKG_HAL + # Requires: CYGPKG_INFRA + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGPKG_INFRA +}; + +# > +# Asserts & Tracing +# The eCos source code contains a significant amount of +# internal debugging support, in the form of assertions and +# tracing. +# Assertions check at runtime that various conditions are as +# expected; if not, execution is halted. +# Tracing takes the form of text messages that are output +# whenever certain events occur, or whenever functions are +# called or return. +# The most important property of these checks and messages is +# that they are not required for the program to run. +# It is prudent to develop software with assertions enabled, +# but disable them when making a product release, thus +# removing the overhead of that checking. +# It is possible to enable assertions and tracing +# independently. +# There are also options controlling the exact behaviour of +# the assertion and tracing facilities, thus giving users +# finer control over the code and data size requirements. +# +cdl_component CYGPKG_INFRA_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD + # ActiveIf: CYGPKG_INFRA_DEBUG +}; + +# > +# Use asserts +# If this option is defined, asserts in the code are tested. +# Assert functions (CYG_ASSERT()) are defined in +# 'include/cyg/infra/cyg_ass.h' within the 'install' tree. +# If it is not defined, these result in no additional +# object code and no checking of the asserted conditions. +# +cdl_component CYGDBG_USE_ASSERTS { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL + # CYGINT_INFRA_DEBUG_TRACE_IMPL == 0 + # --> 0 + + # The following properties are affected by this value + # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG + # Requires: CYGDBG_USE_ASSERTS + # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG + # DefaultValue: 0 != CYGDBG_USE_ASSERTS +}; + +# > +# Preconditions +# This option allows individual control of preconditions. +# A precondition is one type of assert, which it is +# useful to control separately from more general asserts. +# The function is CYG_PRECONDITION(condition,msg). +# +cdl_option CYGDBG_INFRA_DEBUG_PRECONDITIONS { + # This option is not active + # The parent CYGDBG_USE_ASSERTS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Postconditions +# This option allows individual control of postconditions. +# A postcondition is one type of assert, which it is +# useful to control separately from more general asserts. +# The function is CYG_POSTCONDITION(condition,msg). +# +cdl_option CYGDBG_INFRA_DEBUG_POSTCONDITIONS { + # This option is not active + # The parent CYGDBG_USE_ASSERTS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Loop invariants +# This option allows individual control of loop invariants. +# A loop invariant is one type of assert, which it is +# useful to control separately from more general asserts, +# particularly since a loop invariant is typically evaluated +# a great many times when used correctly. +# The function is CYG_LOOP_INVARIANT(condition,msg). +# +cdl_option CYGDBG_INFRA_DEBUG_LOOP_INVARIANTS { + # This option is not active + # The parent CYGDBG_USE_ASSERTS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Use assert text +# All assertions within eCos contain a text message +# which should give some information about the condition +# being tested. +# These text messages will end up being embedded in the +# application image and hence there is a significant penalty +# in terms of image size. +# It is possible to suppress the use of these messages by +# disabling this option. +# This results in smaller code size, but there is less +# human-readable information if an assertion actually gets +# triggered. +# +cdl_option CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE { + # This option is not active + # The parent CYGDBG_USE_ASSERTS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Use tracing +# If this option is defined, tracing operations +# result in output or logging, depending on other options. +# This may have adverse effects on performance, if the time +# taken to output message overwhelms the available CPU +# power or output bandwidth. +# Trace functions (CYG_TRACE()) are defined in +# 'include/cyg/infra/cyg_trac.h' within the 'install' tree. +# If it is not defined, these result in no additional +# object code and no trace information. +# +cdl_component CYGDBG_USE_TRACING { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL + # CYGINT_INFRA_DEBUG_TRACE_IMPL == 0 + # --> 0 + + # The following properties are affected by this value + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE + # ActiveIf: CYGDBG_USE_TRACING + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP + # ActiveIf: CYGDBG_USE_TRACING + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT + # ActiveIf: CYGDBG_USE_TRACING + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT + # ActiveIf: CYGDBG_USE_TRACING + # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT + # ActiveIf: CYGDBG_USE_TRACING +}; + +# > +# Trace function reports +# This option allows individual control of +# function entry/exit tracing, independent of +# more general tracing output. +# This may be useful to remove clutter from a +# trace log. +# +cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS { + # This option is not active + # The parent CYGDBG_USE_TRACING is not active + # The parent CYGDBG_USE_TRACING is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Use trace text +# All trace calls within eCos contain a text message +# which should give some information about the circumstances. +# These text messages will end up being embedded in the +# application image and hence there is a significant penalty +# in terms of image size. +# It is possible to suppress the use of these messages by +# disabling this option. +# This results in smaller code size, but there is less +# human-readable information available in the trace output, +# possibly only filenames and line numbers. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_MESSAGE { + # This option is not active + # The parent CYGDBG_USE_TRACING is not active + # The parent CYGDBG_USE_TRACING is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Trace output implementations +# +cdl_interface CYGINT_INFRA_DEBUG_TRACE_IMPL { + # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL, inactive, disabled + # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE, inactive, disabled + # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY, inactive, disabled + # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER, inactive, enabled + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # component CYGDBG_USE_ASSERTS + # Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL + # component CYGDBG_USE_TRACING + # Requires: 1 == CYGINT_INFRA_DEBUG_TRACE_IMPL +}; + +# Null output +# A null output module which is useful when +# debugging interactively; the output routines +# can be breakpointed rather than have them actually +# 'print' something. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Simple output +# An output module which produces simple output +# from tracing and assertion events. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Fancy output +# An output module which produces fancy output +# from tracing and assertion events. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Buffered tracing +# An output module which buffers output +# from tracing and assertion events. The stored +# messages are output when an assert fires, or +# CYG_TRACE_PRINT() (defined in ) +# is called. +# Of course, there will only be stored messages +# if tracing per se (CYGDBG_USE_TRACING) +# is enabled above. +# +cdl_component CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Trace buffer size +# The size of the trace buffer. This counts the number +# of trace records stored. When the buffer fills it +# either wraps, stops recording, or generates output. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 32 + # value_source default + # Default value: 32 + # Legal values: 5 to 65535 +}; + +# Wrap trace buffer when full +# When the trace buffer has filled with records it +# starts again at the beginning. Hence only the last +# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will +# be recorded. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Halt trace buffer when full +# When the trace buffer has filled with records it +# stops recording. Hence only the first +# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will +# be recorded. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Print trace buffer when full +# When the trace buffer has filled with records it +# prints the contents of the buffer. The buffer is then +# emptied and the system continues. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Print trace buffer on assert fail +# When an assertion fails the trace buffer will be +# printed to the default diagnostic device. +# +cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT { + # This option is not active + # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active + # ActiveIf constraint: CYGDBG_USE_TRACING + # CYGDBG_USE_TRACING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Use function names +# All trace and assert calls within eCos contain a +# reference to the builtin macro '__PRETTY_FUNCTION__', +# which evaluates to a string containing +# the name of the current function. +# This is useful when reading a trace log. +# It is possible to suppress the use of the function name +# by disabling this option. +# This results in smaller code size, but there is less +# human-readable information available in the trace output, +# possibly only filenames and line numbers. +# +cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_PSEUDOMACRO { + # This option is not active + # The parent CYGPKG_INFRA_DEBUG is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Startup options +# Some packages require a startup routine to be called. +# This can be carried out by application code, by supplying +# a routine called cyg_package_start() which calls the +# appropriate package startup routine(s). +# Alternatively, this routine can be constructed automatically +# and configured to call the startup routines of your choice. +# +cdl_component CYGPKG_INFRA_STARTUP { + # There is no associated value. +}; + +# > +# Start uITRON subsystem +# Generate a call to initialize the +# uITRON compatibility subsystem +# within the system version of cyg_package_start(). +# This enables compatibility with uITRON. +# You must configure uITRON with the correct tasks before +# starting the uItron subsystem. +# If this is disabled, and you want to use uITRON, +# you must call cyg_uitron_start() from your own +# cyg_package_start() or cyg_userstart(). +# +cdl_option CYGSEM_START_UITRON_COMPATIBILITY { + # This option is not active + # ActiveIf constraint: CYGPKG_UITRON + # CYGPKG_UITRON (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGPKG_UITRON + # CYGPKG_UITRON (unknown) == 0 + # --> 0 +}; + +# < +# Smaller slower memcpy() +# Enabling this option causes the implementation of +# the standard memcpy() routine to reduce code +# size at the expense of execution speed. This +# option is automatically enabled with the use of +# the -Os option to the compiler. Also note that +# the compiler will try to use its own builtin +# version of memcpy() if possible, ignoring the +# implementation in this package, unless given +# the -fno-builtin compiler option. +# +cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Smaller slower memset() +# Enabling this option causes the implementation of +# the standard memset() routine to reduce code +# size at the expense of execution speed. This +# option is automatically enabled with the use of +# the -Os option to the compiler. Also note that +# the compiler will try to use its own builtin +# version of memset() if possible, ignoring the +# implementation in this package, unless given +# the -fno-builtin compiler option. +# +cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Provide empty C++ delete functions +# To deal with virtual destructors, where the correct delete() +# function must be called for the derived class in question, the +# underlying delete is called when needed, from destructors. This +# is regardless of whether the destructor is called by delete itself. +# So there is a reference to delete() from all destructors. The +# default builtin delete() attempts to call free() if there is +# one defined. So, if you have destructors, and you have free(), +# as in malloc() and free(), any destructor counts as a reference +# to free(). So the dynamic memory allocation code is linked +# in regardless of whether it gets explicitly called. This +# increases code and data size needlessly. +# To defeat this undesirable behaviour, we define empty versions +# of delete and delete. But doing this prevents proper use +# of dynamic memory in C++ programs via C++'s new and delete +# operators. +# Therefore, this option is provided +# for explicitly disabling the provision of these empty functions, +# so that new and delete can be used, if that is what is required. +# +cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Threshold for valid number of delete calls +# Some users don't know about the empty delete function and then +# wonder why their C++ classes are leaking memory. If +# INFRA_DEBUG is enabled we keep a counter for the number of +# times delete is called. If it goes above this threshold we throw +# an assertion failure. This should point heavy users of +# delete in the right direction without upsetting those who want +# an empty delete function. +# +cdl_option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD { + # This option is not active + # ActiveIf constraint: CYGPKG_INFRA_DEBUG + # CYGPKG_INFRA_DEBUG == 0 + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 100 + # value_source default + # Default value: 100 +}; + +# Provide dummy abort() function +# This option controls the inclusion of a dummy abort() function. +# Parts of the C and C++ compiler runtime systems contain references +# to abort(), particulary in the C++ exception handling code. It is +# not possible to eliminate these references, so this dummy function +# in included to satisfy them. It is not expected that this function +# will ever be called, so its current behaviour is to simply loop. +# +cdl_option CYGFUN_INFRA_DUMMY_ABORT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGINT_ISO_EXIT == 0 + # CYGINT_ISO_EXIT == 0 + # --> 1 + # Requires: !CYGINT_ISO_EXIT + # CYGINT_ISO_EXIT == 0 + # --> 1 +}; + +# Reset platform at end of test case execution +# If this option is set then test case programs will reset the platform +# when they terminate, as opposed to the default which is to just hang +# in a loop. +# +cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Provide dummy strlen() function +# This option controls the inclusion of a dummy strlen() function. +# Parts of the C and C++ compiler runtime systems contain references +# to strlen(), particulary in the C++ exception handling code. It is +# not possible to eliminate these references, so this dummy function +# in included to satisfy them. While it is not expected that this function +# will ever be called, it is functional but uses the simplest, smallest +# algorithm. There is a faster version of strlen() in the C library. +# +cdl_option CYGFUN_INFRA_DUMMY_STRLEN { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGINT_ISO_STRING_STRFUNCS == 0 + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 0 + # Requires: !CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 0 +}; + +# Make all compiler warnings show as errors +# Enabling this option will cause all compiler warnings to show +# as errors and bring the library build to a halt. This is used +# to ensure that the code base is warning free, and thus ensure +# that newly introduced warnings stand out and get fixed before +# they show up as weird run-time behavior. +# +cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS { + # Flavor: bool + user_value 1 + # value_source user + # Default value: 0 + # Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") + # CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # --> 1 + + # The following properties are affected by this value + # option CYGBLD_GLOBAL_CFLAGS + # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS +}; + +# Make compiler and assembler communicate by pipe +# Enabling this option will cause the compiler to feed the +# assembly output the the assembler via a pipe instead of +# via a temporary file. This normally reduces the build +# time. +# +cdl_option CYGBLD_INFRA_CFLAGS_PIPE { + # Flavor: bool + user_value 1 + # value_source user + # Default value: 0 + # Requires: is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") + # CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" + # --> 1 +}; + +# Infra build options +# Package specific build options including control over +# compiler flags used only in building this package. +# +cdl_component CYGPKG_INFRA_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the eCos infra package. These flags are used +# in addition to the set of global flags. +# +cdl_option CYGPKG_INFRA_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the eCos infra package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_INFRA_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# Suppressed linker flags +# This option modifies the set of linker flags for +# building the eCos infra package tests. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wl,--gc-sections + # value_source default + # Default value: -Wl,--gc-sections +}; + +# Additional linker flags +# This option modifies the set of linker flags for +# building the eCos infra package tests. These flags are added to +# the set of global flags if present. +# +cdl_option CYGPKG_INFRA_LDFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wl,--fatal-warnings + # value_source default + # Default value: -Wl,--fatal-warnings +}; + +# Infra package tests +# +cdl_component CYGPKG_INFRA_TESTS { + # Calculated value: "tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2" + # Flavor: data + # Current_value: tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2 +}; + +# > +# Number of times a test runs +# This option controls the number of times tests will execute their +# basic function. Not all tests will honor this setting, but those +# that do will execute the test N times before terminating. A value +# less than 0 indicates to run forever. +# +cdl_option CYGNUM_TESTS_RUN_COUNT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# < +# < +# Redboot ROM monitor +# doc: ref/redboot.html +# This package supports the Redboot [stand-alone debug monitor] +# using eCos as the underlying board support mechanism. +# +cdl_package CYGPKG_REDBOOT { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 + # CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 + # --> 1 + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_ARM_OPTIONS + # ActiveIf: CYGPKG_REDBOOT + # component CYGPKG_REDBOOT_HAL_OPTIONS + # ActiveIf: CYGPKG_REDBOOT + # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS + # ActiveIf: CYGPKG_REDBOOT + # option CYGSEM_IO_ETH_DRIVERS_WARN + # ActiveIf: CYGPKG_REDBOOT +}; + +# > +# Include support for ELF file format +# +cdl_component CYGSEM_REDBOOT_ELF { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Use the virtual address in the ELF headers +# The ELF headers contain both a virtual and a physical address +# for where code/data should be loaded. By default the physical +# address is used but sometimes it is necassary to use the +# virtual address because of bugy toolchains +# +cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Methods of loading images using redboot +# +cdl_interface CYGINT_REDBOOT_LOAD_METHOD { + # Implemented by CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM, active, enabled + # Implemented by CYGPKG_REDBOOT_NETWORKING, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 2 + + # The following properties are affected by this value + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGINT_REDBOOT_LOAD_METHOD +}; + +# Build Redboot ROM ELF image +# This option enables the building of the Redboot ELF image. +# The image may require further relocation or symbol +# stripping before being converted to a binary image. +# This is handled by a rule in the target CDL. +# +cdl_component CYGBLD_BUILD_REDBOOT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + # Requires: CYGPKG_INFRA + # CYGPKG_INFRA == current + # --> 1 + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0 + # --> 1 + # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT + # CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0 + # --> 1 + # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM + # CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0 + # --> 1 + # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT + # CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1 + # --> 1 + # Requires: CYGINT_ISO_STRING_MEMFUNCS + # CYGINT_ISO_STRING_MEMFUNCS == 1 + # --> 1 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 + # Requires: CYGINT_REDBOOT_LOAD_METHOD + # CYGINT_REDBOOT_LOAD_METHOD == 2 + # --> 1 + + # The following properties are affected by this value + # package CYGPKG_HAL_ARM_TX53KARO + # Requires: CYGBLD_BUILD_REDBOOT == 1 + # option CYGBLD_BUILD_REDBOOT_BIN + # ActiveIf: CYGBLD_BUILD_REDBOOT +}; + +# > +# Include GDB support in RedBoot +# RedBoot normally includes support for the GDB debugging +# protocols. This option allows this to be disabled which +# may yield a substantial savings in terms of code and memory +# usage by RedBoot. +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB { + # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS + # CYGINT_HAL_DEBUG_GDB_STUBS == 1 + # --> 1 + + # Flavor: bool + user_value 0 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source user + # Default value: 1 + # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS + # CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0 + # --> 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0 + # --> 0 +}; + +# Threads debugging support +# Enabling this option will include special code in the +# GDB stubs to support debugging of threaded programs. In +# the case of eCos programs, this support allows GDB to +# have complete access to the eCos threads in the +# program. +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS { + # ActiveIf constraint: CYG_HAL_STARTUP != "RAM" + # CYG_HAL_STARTUP == ROMRAM + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT + # CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1 + # --> 1 +}; + +# Customized version string +# Use this option to define a customized version "string" for +# RedBoot. Note: this value is only cosmetic, displayed by the +# "version" command, but is useful for providing site specific +# information about the RedBoot configuration. +# +cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 "Ka-Ro 2010-01-06" + # value_source inferred + # Default value: 0 0 +}; + +# Enable command line editing +# If this option is non-zero, RedBoot will remember the +# last N command lines. These lines may be reused. +# Enabling this history will also enable rudimentary +# editting of the lines themselves. +# +cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 16 + # value_source default + # Default value: 16 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES + # ActiveIf: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 + # option CYGBLD_REDBOOT_CMD_LINE_HISTORY + # Requires: CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 +}; + +# Enable command line editing using ANSI arrows, etc +# If this option is enabled, RedBoot will accept standard ANSI key +# sequences for cursor movement (along with the emacs style keys). +# +cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES { + # ActiveIf constraint: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 + # CYGNUM_REDBOOT_CMD_LINE_EDITING == 16 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Enable history command and expansion +# Enabling this option will allow RedBoot to provide a +# history command to list previous commands. Also enables +# history expansion via '!' character similar to bash +# shell. +# +cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 + # CYGNUM_REDBOOT_CMD_LINE_EDITING == 16 + # --> 1 +}; + +# Number of unique RAM segments on platform +# Change this option to be the number of memory segments which are +# supported by the platform. If the value is greater than 1, then +# a platform specific function must provide information about the +# additional segments. +# +cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include support gzip/zlib decompression +# +cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB { + # ActiveIf constraint: CYGPKG_COMPRESS_ZLIB + # CYGPKG_COMPRESS_ZLIB == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER + # ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_ZLIB && CYGOPT_REDBOOT_FIS +}; + +# > +# Size of zlib decompression buffer +# This is the size of the buffer filled with incoming data +# during load before calls are made to the decompressor +# function. For ethernet downloads this can be made bigger +# (at the cost of memory), but for serial downloads on slow +# processors it may be necessary to reduce the size to +# avoid serial overruns. zlib appears to bail out if less +# than five bytes are available initially so this is the +# minimum. +# +cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 64 + # value_source default + # Default value: 64 + # Legal values: 5 to 256 +}; + +# Support compression of Flash images +# This CDL indicates whether flash images can +# be decompressed from gzip/zlib format into RAM. +# +cdl_option CYGPRI_REDBOOT_ZLIB_FLASH { + # ActiveIf constraint: CYGPKG_REDBOOT_FLASH + # CYGPKG_REDBOOT_FLASH == 1 + # --> 1 + # ActiveIf constraint: (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGPRI_REDBOOT_ZLIB_FLASH_FORCE == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# Include GZIP uncompress command +# Enable this option to include a 'gunzip' command +# to uncompress GZIP compressed data. +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Turn on CYGPRI_REDBOOT_ZLIB_FLASH +# Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen +# +cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + + # The following properties are affected by this value + # option CYGPRI_REDBOOT_ZLIB_FLASH + # ActiveIf: (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE +}; + +# < +# Include support for xyzModem downloads +# doc: ref/download-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGPKG_REDBOOT_CFLAGS_ADD + # ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM +}; + +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the eCos infra package. These flags are used +# in addition to the set of global flags. +# +cdl_option CYGPKG_REDBOOT_CFLAGS_ADD { + # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM + # CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM == 1 + # --> 1 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-inline + # value_source default + # Default value: -Wno-inline +}; + +# Allow the load-command write into Flash. +# Write images direct to Flash via the load command. +# We assume anything which is invalid RAM is flash, hence +# the requires statement +# +cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH { + # ActiveIf constraint: CYGPKG_REDBOOT_FLASH + # CYGPKG_REDBOOT_FLASH == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS + # CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS == 1 + # --> 1 +}; + +# Include MS Windows CE support +# doc: ref/wince.html +# This option enables MS Windows CE EShell support +# and Windows CE .BIN images support +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT { + # Flavor: bool + user_value 1 + # value_source user + # Default value: 0 +}; + +# Include support for MXC USB downloads +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Include support for i.MX USB OTG downloads +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_IMXOTG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Include POSIX checksum command +# doc: ref/cksum-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include memory fill command +# doc: ref/mfill-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include memory compare command +# doc: ref/mcmp-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include memory copy command +# doc: ref/mcopy-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include memory dump command +# doc: ref/dump-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include cache command +# doc: ref/cache-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Include exec command +# doc: ref/exec-command.html +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_ARM_LINUX_EXEC + # ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_EXEC +}; + +# Include I/O Memory commands 'iopeek' and 'iopoke' +# +cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Granularity of timer/ticks +# This option controls the granularity of the timers. +# Faster CPUs can afford higher granularity (lower values) +# which should give higher network performance since the stack +# is purely polled. +# +cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 250 + # value_source default + # Default value: 250 + # Legal values: 10 25 50 100 250 500 1000 +}; + +# Redboot Networking +# This option includes networking support in RedBoot. +# +cdl_component CYGPKG_REDBOOT_NETWORKING { + # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS + # CYGPKG_IO_ETH_DRIVERS == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS + # DefaultValue: 0 != CYGPKG_REDBOOT_NETWORKING +}; + +# > +# Print net debug information +# This option is overriden by the configuration stored +# in flash. +# +cdl_option CYGDBG_REDBOOT_NET_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Support TFTP for download +# This option enables the use of the TFTP protocol for +# download +# +cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Support HTTP for download +# This option enables the use of the HTTP protocol for +# download +# +cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD { + # Flavor: bool + user_value 0 + # value_source user + # Default value: 1 +}; + +# Default IP address +# This IP address is the default used by RedBoot if +# a BOOTP/DHCP server does not respond. The numbers +# should be separated by *commas*, and not dots. If +# an IP address is configured into the Flash +# configuration, that will be used in preference. +# +cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 0 +}; + +# > +# Do not try to use BOOTP +# By default Redboot tries to use BOOTP to get an IP +# address. If there's no BOOTP server on your network +# use this option to avoid to wait until the +# timeout. This option is overriden by the +# configuration stored in flash. +# +cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP { + # This option is not active + # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Default bootp server +# This IP address is the default server +# address used by RedBoot if a BOOTP/DHCP +# server does not respond. The numbers should +# be separated by *commas*, and not dots. If +# an IP address is configured into the Flash +# configuration, that will be used in +# preference. +# +cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR { + # This option is not active + # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 0 +}; + +# < +# Use DHCP to get IP information +# Use DHCP protocol to obtain pertinent IP addresses, such +# as the client, server, gateway, etc. +# +cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY + # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP +}; + +# Use a gateway for non-local IP traffic +# Enabling this option will allow the RedBoot networking +# stack to use a [single] gateway to reach a non-local +# IP address. If disabled, RedBoot will only be able to +# reach nodes on the same subnet. +# +cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP + # CYGSEM_REDBOOT_NETWORKING_DHCP == 1 + # --> 1 +}; + +# > +# Default gateway IP address +# This IP address is the default used by RedBoot +# if a BOOTP/DHCP server does not respond. The +# numbers should be separated by *commas*, and +# not dots. If an IP address is configured into +# the Flash configuration, that will be used in +# preference. +# +cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 0 +}; + +# Default IP address mask +# This IP address mask is the default used by +# RedBoot if a BOOTP/DHCP server does not +# respond. The numbers should be separated by +# *commas*, and not dots. If an IP address is +# configured into the Flash configuration, that +# will be used in preference. +# +cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "255, 255, 255, 0" + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 0 +}; + +# < +# TCP port to listen for incoming connections +# RedBoot will 'listen' on this port for incoming TCP +# connections. This allows outside connections to be made +# to the platform, either for GDB or RedBoot commands. +# +cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 9000 + # value_source default + # Default value: 9000 +}; + +# Number of [network] packet buffers +# RedBoot may need to buffer network data to support +# various connections. This option allows control +# over the number of such buffered packets, and in +# turn, controls the amount of memory used by RedBoot +# (which is not available to user applications). +# Each packet buffer takes up about 1514 bytes. +# Note: there is little need to make this larger than +# the default. +# +cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4 + # value_source default + # Default value: 4 + # Legal values: 3 to 8 +}; + +# DNS support +# When this option is enabled, RedBoot will be built with +# support for DNS, allowing use of hostnames on the command +# line. +# +cdl_component CYGPKG_REDBOOT_NETWORKING_DNS { + # This option is not active + # ActiveIf constraint: CYGPKG_NS_DNS + # CYGPKG_NS_DNS (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: !CYGPKG_NS_DNS_BUILD + # CYGPKG_NS_DNS_BUILD (unknown) == 0 + # --> 1 +}; + +# > +# Default DNS IP +# This option sets the IP of the default DNS. The IP can be +# changed at runtime as well. +# +cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active + # ActiveIf constraint: !CYGSEM_REDBOOT_FLASH_CONFIG + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0.0.0.0 + # value_source default + # Default value: 0.0.0.0 +}; + +# Timeout in DNS lookup +# This option sets the timeout used when looking up an +# address via the DNS. Default is 10 seconds. +# +cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 10 + # value_source default + # Default value: 10 +}; + +# Support the use of a domain name +# This option controls if Redboot supports domain +# names when performing DNS lookups +# +cdl_component CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Default DNS domain +# This option sets the default DNS domain name. +# This value will be overwritten by the value in +# flash or a domain returned by DHCP +# +cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DEFAULT_DOMAIN { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Get DNS domain from Flash +# This option enables getting the domain name +# from the flash configuration. This can later be +# overwritten by a value learnt from DHCP +# +cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled + # ActiveIf constraint: CYGSEM_REDBOOT_FLASH_CONFIG + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Use DNS domain from DHCP +# This option enables the use of the domain name +# returned by DHCP. +# +cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# BOOTP/DHCP DNS domain buffer size +# This options sets the size of the static +# buffer used by BOOTP/DHCP to store the DNS +# domain name. The domain name will not be +# set if the buffer is too small to hold it. +# +cdl_option CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE { + # This option is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active + # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 32 + # value_source default + # Default value: 32 +}; + +# < +# < +# Default network device driver +# This is the name of the default network device to use. +# +cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE { + # This option is not active + # ActiveIf constraint: CYGHWR_NET_DRIVERS > 1 + # CYGHWR_NET_DRIVERS == 1 + # --> 0 + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "\"\"" + # value_source default + # Default value: "\"\"" +}; + +# Initialize only one net device +# This option tells RedBoot to stop initializing network +# devices when it finds the first device which is +# successfully initialized. The default behavior causes +# all network devices to be initialized. +# +cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE { + # This option is not active + # ActiveIf constraint: CYGHWR_NET_DRIVERS > 1 + # CYGHWR_NET_DRIVERS == 1 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Let RedBoot use any I/O channel for its console. +# If this option is enabled then RedBoot will attempt to use all +# defined serial I/O channels for its console device. Once input +# arrives at one of these channels then the console will use only +# that port. +# +cdl_option CYGPKG_REDBOOT_ANY_CONSOLE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 +}; + +# Let RedBoot adjust the baud rate of the serial console. +# If this option is enabled then RedBoot will support commands +# to set and query the baud rate on the selected console. +# +cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE { + # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT + # CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Run a platform specific startup function. +# If this option is enabled then RedBoot will execute a platform +# specific startup function before entering into its command line +# processing. This allows the platform to perform any special +# setups before RedBoot actually starts running. Note: the entire +# RedBoot environment will already be initialized at this point. +# +cdl_option CYGSEM_REDBOOT_PLF_STARTUP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Run a platform specific ESA validation function. +# If this option is enabled then RedBoot will execute a platform +# specific function to validate an ethernet ESA. This would be +# useful if the address must conform to standards set by the +# hardware manufacturer, etc. +# +cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + + # The following properties are affected by this value + # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 + # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE + # option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI + # ActiveIf: CYGSEM_REDBOOT_PLF_ESA_VALIDATE +}; + +# Maximum command line length +# This option allows control over how long the CLI command line +# should be. This space will be allocated statically +# rather than from RedBoot's stack. +# +cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 256 + # The inferred value should not be edited directly. + inferred_value 1024 + # value_source inferred + # Default value: 256 +}; + +# Command processing idle timeout (ms) +# This option controls the timeout period before the +# command processing is considered 'idle'. Making this +# number smaller will cause idle processing to take place +# more often, etc. The default value of 10ms is a reasonable +# tradeoff between responsiveness and overhead. +# +cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 10 + # value_source default + # Default value: 10 +}; + +# Validate RAM addresses during load +# This option controls whether or not RedBoot will make +# sure that memory being used by the "load" command is +# in fact in user RAM. Leaving the option enabled makes +# for a safer environment, but this check may not be valid +# on all platforms, thus the ability to disable it. +# ** Disable this only with great care ** +# +cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGBLD_REDBOOT_LOAD_INTO_FLASH + # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS +}; + +# Allow RedBoot to support FLASH programming +# If this option is enabled then RedBoot will provide commands +# to manage images in FLASH memory. These images can be loaded +# into memory for execution or executed in place. +# +cdl_component CYGPKG_REDBOOT_FLASH { + # ActiveIf constraint: CYGHWR_IO_FLASH_DEVICE + # CYGHWR_IO_FLASH_DEVICE == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGPRI_REDBOOT_ZLIB_FLASH + # ActiveIf: CYGPKG_REDBOOT_FLASH + # option CYGBLD_REDBOOT_LOAD_INTO_FLASH + # ActiveIf: CYGPKG_REDBOOT_FLASH +}; + +# > +# Byte order used to store info in flash. +# This option controls the byte ordering used to store +# the FIS directory info and flash config info. +# +cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value NATURAL + # value_source default + # Default value: NATURAL + # Legal values: "NATURAL" "MSBFIRST" "LSBFIRST" +}; + +# RedBoot Flash Image System support +# doc: ref/flash-image-system.html +# This option enables the Flash Image System commands +# and support within RedBoot. If disabled, simple Flash +# access commands such as "fis write" will still exist. +# This option would be disabled for targets that need simple +# FLASH manipulation, but do not have the need or space for +# complete image management. +# +cdl_option CYGOPT_REDBOOT_FIS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_FIS_CONTENTS + # ActiveIf: CYGOPT_REDBOOT_FIS + # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG + # ActiveIf: CYGOPT_REDBOOT_FIS && (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") + # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER + # ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_ZLIB && CYGOPT_REDBOOT_FIS +}; + +# Max number of chunks of free space to manage +# If this option is defined then "fis free" will +# rely on the FIS directory to determine what space is +# free within the FLASH. This option controls the +# maximum number of free segment which can be handled +# (typically this number is small). If this option is +# not enabled, the the archaic behaviour of actually +# scanning the FLASH for erased sectors (unreliable) +# will be used to determine what's free and what's +# not. +# +cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 32 + # value_source default + # Default value: 1 32 +}; + +# Flash Image System default directory contents +# +cdl_component CYGPKG_REDBOOT_FIS_CONTENTS { + # ActiveIf constraint: CYGOPT_REDBOOT_FIS + # CYGOPT_REDBOOT_FIS == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# > +# Flash block containing the Directory +# Which block of flash should hold the directory +# information. Positive numbers are absolute block +# numbers. Negative block numbers count backwards +# from the last block. eg 2 means block 2, -2 +# means the last but one block. +# +cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -1 + # value_source default + # Default value: -1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK + # Requires: CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK != + # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK +}; + +# Redundant Flash Image System Directory Support +# This option enables the use of a redundant FIS +# directory within RedBoot. If enabled a flash block +# will be reserved for a second copy of the fis +# directory. Doing this allow for power failure safe +# updates of the directory by the application. +# +cdl_component CYGOPT_REDBOOT_REDUNDANT_FIS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: 0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG + # CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG == 1 + # --> 0 +}; + +# > +# Flash block containing the backup Directory +# Which block of flash should hold the redundant +# directory information. Positive numbers are +# absolute block numbers. Negative block numbers +# count backwards from the last block. eg 2 means +# block 2, -2 means the last but one block. +# +cdl_option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK { + # This option is not active + # The parent CYGOPT_REDBOOT_REDUNDANT_FIS is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -3 + # value_source default + # Default value: -3 + # Requires: CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK != + # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK + # CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK == 0 + # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK == -1 + # --> 1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK + # Requires: CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK != + # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK +}; + +# < +# Pseudo-file to describe reserved area +# If an area of FLASH is reserved, it is informative to +# have a fis entry describing it. This option controls +# creation of such an entry by default in the fis init +# command. +# +cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE { + # This option is not active + # ActiveIf constraint: 0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE + # CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# File to describe RedBoot boot image +# Normally a ROM-startup RedBoot image is first in the +# FLASH, and the system boots using that image. This +# option controls creation of an entry describing it in +# the fis init command. It might be disabled if a +# platform has an immutable boot image of its own, where +# we use a POST-startup RedBoot instead, which performs +# less board initialization. +# +cdl_option CYGOPT_REDBOOT_FIS_REDBOOT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGOPT_REDBOOT_FIS_REDBOOT_POST + # DefaultValue: !CYGOPT_REDBOOT_FIS_REDBOOT + # option CYGBLD_REDBOOT_MIN_IMAGE_SIZE + # DefaultValue: CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 +}; + +# File to describe RedBoot POST-compatible image +# This option controls creation of an entry describing a +# POST-startup RedBoot image in the fis init command. +# Not all platforms support POST-startup. A platform +# might have both for testing purposes, where the +# eventual user would substitute their own POST code for +# the initial ROM-startup RedBoot, and then jump to the +# POST-compatible RedBoot immediately following. +# +cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: !CYGOPT_REDBOOT_FIS_REDBOOT + # CYGOPT_REDBOOT_FIS_REDBOOT == 1 + # --> 0 +}; + +# > +# Offset of POST image from FLASH start +# This option specifies the offset for a POST image from +# the start of FLASH. If unset, then the fis entry +# describing the POST image will be placed where +# convenient. +# +cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET { + # This option is not active + # The parent CYGOPT_REDBOOT_FIS_REDBOOT_POST is disabled + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 + # Requires: CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET == 0 + # CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET + # Requires: CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET +}; + +# < +# File to describe RedBoot backup image +# This option controls creation of an entry describing a +# backup RedBoot image in the fis init command. +# Conventionally a RAM-startup RedBoot image is kept +# under this name for use in updating the ROM-based +# RedBoot that boots the board. +# +cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Include ARM SIB ID in FIS +# If set, this option will cause the last 5 words of +# the FIS to include the special ID needed for the +# flash to be recognized as a reserved area for RedBoot +# by an ARM BootRom monitor. +# +cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Size of FIS directory entry +# The FIS directory is limited to one single flash +# sector. If your flash has tiny sectors, you may wish +# to reduce this value in order to get more slots in +# the FIS directory. +# +cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 256 + # value_source default + # Default value: 256 +}; + +# Number of FIS directory entries +# The FIS directory normally occupies a single flash +# sector. Adjusting this value can allow for more than +# one flash sector to be used, which is useful if your +# sectors are very small. +# +cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 8 + # value_source default + # Default value: 8 +}; + +# Maximum RedBoot image size +# This option controls the maximum length reserved +# for the RedBoot boot image in the FIS table. +# This should be a multiple of the flash's erase +# block size. +# +cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00020000 + # The inferred value should not be edited directly. + inferred_value 0x00040000 + # value_source inferred + # Default value: CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 + # CYGOPT_REDBOOT_FIS_REDBOOT == 1 + # --> 0x00020000 +}; + +# Offset from start of FLASH to RedBoot boot image +# This option controls where the RedBoot boot image is +# located relative to the start of FLASH. +# +cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGNUM_REDBOOT_FLASH_RESERVED_BASE + # CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0 + # --> 0 + # Requires: CYGNUM_REDBOOT_FLASH_RESERVED_BASE <= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0 + # CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET + # Requires: CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # Requires: CYGNUM_REDBOOT_FLASH_RESERVED_BASE <= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # component CYGPKG_HAL_ARM_TX53_OPTIONS + # Requires: CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 +}; + +# Size of reserved area at start of FLASH +# This option reserves an area at the start of +# FLASH where RedBoot will never interfere; it is +# expected that this area contains +# (non-RedBoot-based) POST code or some other boot +# monitor that executes before RedBoot. +# +cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGOPT_REDBOOT_FIS_RESERVED_BASE + # ActiveIf: 0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE + # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # DefaultValue: CYGNUM_REDBOOT_FLASH_RESERVED_BASE + # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET + # Requires: CYGNUM_REDBOOT_FLASH_RESERVED_BASE <= CYGBLD_REDBOOT_FLASH_BOOT_OFFSET +}; + +# < +# Keep all RedBoot FLASH data blocks locked. +# When this option is enabled, RedBoot will keep configuration +# data and the FIS directory blocks implicitly locked. While +# this is somewhat safer, it does add overhead during updates. +# +cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL { + # This option is not active + # ActiveIf constraint: CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 + # CYGHWR_IO_FLASH_BLOCK_LOCKING == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Use CRC checksums on FIS images. +# When this option is enabled, RedBoot will use CRC checksums +# when reading and writing flash images. +# +cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 +}; + +# ARM FLASH drivers support SIB flash block structure +# This interface is implemented by a flash driver +# to indicate that it supports the ARM SIB flash +# block structure +# +cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED { + # No options implement this inferface + # ActiveIf constraint: CYGPKG_HAL_ARM + # CYGPKG_HAL_ARM == current + # --> 1 + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGHWR_REDBOOT_ARM_FLASH_SIB + # ActiveIf: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED +}; + +# Use ARM SIB flash block structure +# This option is used to interpret ARM Flash System +# information blocks. +# +cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB { + # This option is not active + # ActiveIf constraint: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED + # CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Keep RedBoot configuration data in FLASH +# When this option is enabled, RedBoot will keep configuration +# data in a separate block of FLASH memory. This data will +# include such items as the node IP address or startup scripts. +# +cdl_component CYGSEM_REDBOOT_FLASH_CONFIG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: CYGPKG_IO_FLASH != 0 + # CYGPKG_IO_FLASH == current + # --> 1 + + # The following properties are affected by this value + # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR + # DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR + # DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR + # DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "0, 0, 0, 0" + # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK + # DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : "255, 255, 255, 0" + # option CYGPKG_REDBOOT_NETWORKING_DNS_IP + # ActiveIf: !CYGSEM_REDBOOT_FLASH_CONFIG + # option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN + # ActiveIf: CYGSEM_REDBOOT_FLASH_CONFIG + # option CYGFUN_REDBOOT_BOOT_SCRIPT + # ActiveIf: CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT || CYGSEM_REDBOOT_FLASH_CONFIG +}; + +# > +# Length of configuration data in FLASH +# This option is used to control the amount of memory and FLASH +# to be used for configuration options (persistent storage). +# +cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4096 + # value_source default + # Default value: 4096 +}; + +# Style of media used for persistent data storage +# Persistent data storage can either be held in 'norma' FLASH +# or some other device (represented by the 'EEPROM' choice). +# The different styles utilize different access methods. +# +cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value FLASH + # value_source default + # Default value: FLASH + # Legal values: "FLASH" "EEPROM" + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG + # ActiveIf: CYGOPT_REDBOOT_FIS && (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") + # option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK + # DefaultValue: (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") +}; + +# Merged config data and FIS directory +# If this option is set, then the FIS directory and FLASH +# configuration database will be stored in the same physical +# FLASH block. +# +cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG { + # ActiveIf constraint: CYGOPT_REDBOOT_FIS && (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") + # CYGOPT_REDBOOT_FIS == 1 + # CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # component CYGOPT_REDBOOT_REDUNDANT_FIS + # Requires: 0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG +}; + +# Which block of flash to use +# Which block of flash should hold the configuration +# information. Positive numbers are absolute block numbers. +# Negative block numbers count backwards from the last block. +# eg 2 means block 2, -2 means the last but one block. +# +cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -2 + # value_source default + # Default value: -2 +}; + +# Support simple macros/aliases in FLASH +# This option is used to allow support for simple text-based +# macros (aliases). These aliases are kept in the FLASH +# configuration data (persistent storage). +# +cdl_option CYGSEM_REDBOOT_FLASH_ALIASES { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Length of strings in FLASH configuration data +# This option is used to control the amount of memory +# and FLASH to be used for string configuration +# options (persistent storage). +# +cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 128 + # value_source default + # Default value: 128 +}; + +# Length of configuration script(s) in FLASH +# This option is used to control the amount of memory and +# FLASH to be used for configuration options (persistent +# storage). +# +cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 512 + # The inferred value should not be edited directly. + inferred_value 2048 + # value_source inferred + # Default value: 512 +}; + +# Fallback to read-only FLASH configuration +# This option will cause the configuration information to +# revert to the readonly information stored in the FLASH. +# The option only takes effect after +# 1) the config_ok flag has been set to be true, +# indicating that at one time the copy in RAM was valid; +# and +# 2) the information in RAM has been verified to be invalid +# +cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") + # CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH + # --> 1 +}; + +# < +# Allow RedBoot to support fileio +# If this option is enabled then RedBoot will provide commands +# to load files from fileio file systems such as JFFS2. +# +cdl_component CYGPKG_REDBOOT_FILEIO { + # This option is not active + # ActiveIf constraint: CYGPKG_IO_FILEIO + # CYGPKG_IO_FILEIO (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGNUM_REDBOOT_GETC_BUFFER + # DefaultValue: CYGPKG_REDBOOT_FILEIO ? 4096 : 256 +}; + +# > +# Include an ls command +# If this option is enabled a simple ls command will be +# included in redboot so the contents of a directory +# can be listed +# +cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS { + # This option is not active + # The parent CYGPKG_REDBOOT_FILEIO is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Allow RedBoot to support disks +# If this option is enabled then RedBoot will provide commands +# to load disk files. +# +cdl_component CYGPKG_REDBOOT_DISK { + # Flavor: bool + user_value 0 + # value_source user + # Default value: 1 +}; + +# > +# Include Redboot commands for disk access +# +cdl_option CYGSEM_REDBOOT_DISK { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGINT_REDBOOT_DISK_DRIVERS != 0 + # CYGINT_REDBOOT_DISK_DRIVERS == 0 + # --> 0 +}; + +# Hardware drivers for disk-type devices +# +cdl_interface CYGINT_REDBOOT_DISK_DRIVERS { + # Implemented by CYGSEM_REDBOOT_DISK_IDE, inactive, enabled + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_DISK + # DefaultValue: CYGINT_REDBOOT_DISK_DRIVERS != 0 +}; + +# Maximum number of supported disks +# This option controls the number of disks supported by +# RedBoot. +# +cdl_option CYGNUM_REDBOOT_MAX_DISKS { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4 + # value_source default + # Default value: 4 +}; + +# Maximum number of partitions per disk +# This option controls the maximum number of supported +# partitions per disk. +# +cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 8 + # value_source default + # Default value: 8 +}; + +# Support IDE disks. +# When this option is enabled, RedBoot will support IDE disks. +# +cdl_component CYGSEM_REDBOOT_DISK_IDE { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + # ActiveIf constraint: CYGINT_HAL_PLF_IF_IDE != 0 + # CYGINT_HAL_PLF_IF_IDE == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Work with VMware virtual disks +# This option controls the disk driver behavior at +# ide-init +# +cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE { + # This option is not active + # The parent CYGSEM_REDBOOT_DISK_IDE is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Support Linux second extended filesystems. +# When this option is enabled, RedBoot will support EXT2 +# filesystems. +# +cdl_component CYGSEM_REDBOOT_DISK_EXT2FS { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Support ISO9660 filesystems. +# When this option is enabled, RedBoot will support ISO9660 +# filesystems. +# +cdl_component CYGSEM_REDBOOT_DISK_ISO9660 { + # This option is not active + # The parent CYGPKG_REDBOOT_DISK is disabled + + # Calculated value: 0 + # Flavor: bool + # Current value: 0 +}; + +# < +# Boot scripting +# doc: ref/persistent-state-flash.html +# This contains options related to RedBoot's boot script +# functionality. +# +cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT { + # There is no associated value. +}; + +# > +# Boot scripting enabled +# This option controls whether RedBoot boot script +# functionality is enabled. +# +cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT { + # ActiveIf constraint: CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT || CYGSEM_REDBOOT_FLASH_CONFIG + # CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT == 0 + # CYGSEM_REDBOOT_FLASH_CONFIG == 1 + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 +}; + +# Use default RedBoot boot script +# If enabled, this option will tell RedBoot to use the +# value of this option as a default boot script. +# +cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 0 0 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGFUN_REDBOOT_BOOT_SCRIPT + # ActiveIf: CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT || CYGSEM_REDBOOT_FLASH_CONFIG +}; + +# Resolution (in ms) for script timeout value. +# This option controls the resolution of the script +# timeout. The value is specified in milliseconds +# (ms), thus to have the script timeout be defined in +# terms of tenths of seconds, use 100. +# +cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 1000 + # The inferred value should not be edited directly. + inferred_value 10 + # value_source inferred + # Default value: 1000 +}; + +# Script default timeout value +# This option is used to set the default timeout for startup +# scripts, when they are enabled. +# +cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 10 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 10 +}; + +# < +# Support RTC for time & date functions +# When this option is enabled, RedBoot will support commands to +# query and set the real time clock (time and date) +# +cdl_option CYGSEM_REDBOOT_RTC { + # This option is not active + # ActiveIf constraint: CYGPKG_IO_WALLCLOCK + # CYGPKG_IO_WALLCLOCK (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Behave like a ROM monitor +# Enabling this option will allow RedBoot to provide ROM +# monitor-style services to programs which it executes. +# +cdl_option CYGPRI_REDBOOT_ROM_MONITOR { + # ActiveIf constraint: CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" + # CYG_HAL_STARTUP == ROMRAM + # CYG_HAL_STARTUP == ROMRAM + # --> 1 + + # Calculated value: 1 + # Flavor: bool + # Current value: 1 + # Requires: CYGSEM_HAL_ROM_MONITOR + # CYGSEM_HAL_ROM_MONITOR == 1 + # --> 1 +}; + +# Allow RedBoot to handle GNUPro application 'syscalls'. +# If this option is enabled then RedBoot will install a +# syscall handler to support debugging of applications +# based on GNUPro newlib/bsp. +# +cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + + # The following properties are affected by this value + # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT + # ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS + # option CYGPKG_HAL_GDB_FILEIO + # ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS +}; + +# > +# Support additional syscalls for 'gprof' profiling +# Support additional syscalls to support a periodic callback +# function for histogram-style profiling, and an enquire/set +# of the tick rate. +# The application must use the GNUPro newlib facilities +# to set this up. +# +cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF { + # This option is not active + # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled + # ActiveIf constraint: 0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT + # CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Does the HAL support 'gprof' profiling? +# +cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT { + # Implemented by CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT, inactive, enabled + # This option is not active + # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF + # ActiveIf: 0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT +}; + +# Do not raise SIGTRAP when program exits +# For some (single shot) newlib based programs, +# exiting and returning a termination status may be +# the normal expected behavior. +# +cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP { + # This option is not active + # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# Use a common buffer for Zlib and FIS +# Use a common memory buffer for both the zlib workspace +# and FIS directory operations. This can save a substantial +# amount of RAM, especially when flash sectors are large. +# +cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER { + # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_ZLIB && CYGOPT_REDBOOT_FIS + # CYGBLD_BUILD_REDBOOT_WITH_ZLIB == 1 + # CYGOPT_REDBOOT_FIS == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Size of Zlib/FIS common buffer +# Size of common buffer to allocate. Must be at least the +# size of one flash sector. +# +cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE { + # This option is not active + # The parent CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x0000C000 + # value_source default + # Default value: 0x0000C000 + # Legal values: 0x4000 to 0x80000000 +}; + +# < +# Buffer size in getc when loading images +# When loading images a buffer is used between redboot and the +# underlying storage medium, eg a filesystem, or a socket etc. +# The size of this buffer can have a big impart on load speed. +# +cdl_option CYGNUM_REDBOOT_GETC_BUFFER { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 256 + # value_source default + # Default value: CYGPKG_REDBOOT_FILEIO ? 4096 : 256 + # CYGPKG_REDBOOT_FILEIO == 0 + # --> 256 +}; + +# < +# Redboot for ARM options +# This option lists the target's requirements for a valid Redboot +# configuration. +# +cdl_component CYGPKG_REDBOOT_ARM_OPTIONS { + # ActiveIf constraint: CYGPKG_REDBOOT + # CYGPKG_REDBOOT == current + # --> 1 + + # There is no associated value. + + # The following properties are affected by this value +}; + +# > +# Provide the exec command in RedBoot +# This option contains requirements for booting linux +# from RedBoot. The component is enabled/disabled from +# RedBoots CDL. +# +cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC { + # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC + # CYGBLD_BUILD_REDBOOT_WITH_EXEC == 1 + # --> 1 + + # There is no associated value. +}; + +# > +# Enable -x switch for exec command. +# This option allows bi-endian platforms to launch kernels +# built for an endianess different than the RedBoot endianess +# +cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Physical base address of linux kernel +# This is the physical address of the base of the +# Linux kernel image. +# +cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x70108000 + # value_source default + # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT + # CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 + # --> 0x70108000 +}; + +# Default physical base address of linux kernel +# This is the physical address of the base of the +# Linux kernel image. This option gets set by the +# platform CDL. +# +cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00008000 + # The inferred value should not be edited directly. + inferred_value 0x70108000 + # value_source inferred + # Default value: 0x00008000 + + # The following properties are affected by this value + # option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS + # DefaultValue: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT + # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS + # Requires: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 +}; + +# Base address of linux kernel parameter tags +# This is the base address of the area of memory used to +# pass parameters to the Linux kernel. This should be chosen +# to avoid overlap with the kernel and any ramdisk image. +# +cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00000100 + # value_source default + # Default value: 0x00000100 +}; + +# < +# < +# Redboot HAL options +# This option lists the target's requirements for a valid Redboot +# configuration. +# +cdl_component CYGPKG_REDBOOT_HAL_OPTIONS { + # ActiveIf constraint: CYGPKG_REDBOOT + # CYGPKG_REDBOOT == current + # --> 1 + + # There is no associated value. +}; + +# > +# Build Redboot ROM binary image +# This option enables the conversion of the Redboot ELF +# image to a binary image suitable for ROM programming. +# +cdl_option CYGBLD_BUILD_REDBOOT_BIN { + # ActiveIf constraint: CYGBLD_BUILD_REDBOOT + # CYGBLD_BUILD_REDBOOT == 1 + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Redboot HAL variant options +# +cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS { + # ActiveIf constraint: CYGPKG_REDBOOT + # CYGPKG_REDBOOT == current + # --> 1 + + # There is no associated value. + # Requires: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 + # CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 + # --> 1 +}; + +# < +# ISO C and POSIX infrastructure +# eCos supports implementations of ISO C libraries and POSIX +# implementations. This package provides infrastructure used by +# all such implementations. +# +cdl_package CYGPKG_ISOINFRA { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGPKG_ISOINFRA + # package CYGPKG_LIBC_STRING + # Requires: CYGPKG_ISOINFRA + # package CYGPKG_COMPRESS_ZLIB + # Requires: CYGPKG_ISOINFRA + # package CYGPKG_IO_FLASH + # Requires: CYGPKG_ISOINFRA + # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY + # Requires: CYGPKG_ISOINFRA + # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY + # DefaultValue: 0 != CYGPKG_ISOINFRA + # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS + # ActiveIf: CYGPKG_ISOINFRA + # package CYGPKG_LIBC_I18N + # Requires: CYGPKG_ISOINFRA + # package CYGPKG_LIBC_STDLIB + # Requires: CYGPKG_ISOINFRA +}; + +# > +# Startup and termination +# +cdl_component CYGPKG_ISO_STARTUP { + # There is no associated value. +}; + +# > +# main() startup implementations +# Implementations of this interface arrange for a user-supplied +# main() to be called in an ISO compatible environment. +# +cdl_interface CYGINT_ISO_MAIN_STARTUP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_MAIN_STARTUP + # CYGINT_ISO_MAIN_STARTUP == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_MAIN_STARTUP + # Requires: 1 >= CYGINT_ISO_MAIN_STARTUP +}; + +# environ implementations +# Implementations of this interface provide the environ +# variable required by POSIX. +# +cdl_interface CYGINT_ISO_ENVIRON { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_ENVIRON + # CYGINT_ISO_ENVIRON == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_ENVIRON + # Requires: 1 >= CYGINT_ISO_ENVIRON +}; + +# < +# ctype.h functions +# +cdl_component CYGPKG_ISO_CTYPE_H { + # There is no associated value. +}; + +# > +# Number of implementations of ctype functions +# +cdl_interface CYGINT_ISO_CTYPE { + # Implemented by CYGPKG_LIBC_I18N, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_CTYPE + # CYGINT_ISO_CTYPE == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_CTYPE + # Requires: 1 >= CYGINT_ISO_CTYPE + # package CYGPKG_HAL_ARM_TX53KARO + # Requires: CYGINT_ISO_CTYPE + # option CYGFUN_LIBC_STRING_BSD_FUNCS + # Requires: CYGINT_ISO_CTYPE + # package CYGPKG_LIBC_STDLIB + # Requires: CYGINT_ISO_CTYPE +}; + +# Ctype implementation header +# +cdl_option CYGBLD_ISO_CTYPE_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGPKG_LIBC_I18N_NEWLIB_CTYPE + # Requires: CYGBLD_ISO_CTYPE_HEADER == "" + # option CYGIMP_LIBC_I18N_CTYPE_INLINES + # Requires: CYGBLD_ISO_CTYPE_HEADER == "" +}; + +# < +# Error handling +# +cdl_component CYGPKG_ISO_ERRNO { + # There is no associated value. +}; + +# > +# Number of implementations of error codes +# +cdl_interface CYGINT_ISO_ERRNO_CODES { + # Implemented by CYGPKG_ERROR, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_ERRNO_CODES + # CYGINT_ISO_ERRNO_CODES == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_ERRNO_CODES + # Requires: 1 >= CYGINT_ISO_ERRNO_CODES +}; + +# Error codes implementation header +# +cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_ERROR + # Requires: CYGBLD_ISO_ERRNO_CODES_HEADER == "" +}; + +# Number of implementations of errno variable +# +cdl_interface CYGINT_ISO_ERRNO { + # Implemented by CYGPKG_ERROR_ERRNO, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_ERRNO + # CYGINT_ISO_ERRNO == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_ERRNO + # Requires: 1 >= CYGINT_ISO_ERRNO +}; + +# errno variable implementation header +# +cdl_option CYGBLD_ISO_ERRNO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # component CYGPKG_ERROR_ERRNO + # Requires: CYGBLD_ISO_ERRNO_HEADER == "" +}; + +# < +# Locale-related functions +# +cdl_component CYGPKG_ISO_LOCALE { + # There is no associated value. +}; + +# > +# Number of implementations of locale functions +# +cdl_interface CYGINT_ISO_LOCALE { + # Implemented by CYGPKG_LIBC_I18N, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_LOCALE + # CYGINT_ISO_LOCALE == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_LOCALE + # Requires: 1 >= CYGINT_ISO_LOCALE +}; + +# Locale implementation header +# +cdl_option CYGBLD_ISO_LOCALE_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Standard I/O-related functionality +# +cdl_component CYGPKG_ISO_STDIO { + # There is no associated value. +}; + +# > +# Number of implementations of stdio file types +# +cdl_interface CYGINT_ISO_STDIO_FILETYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FILETYPES + # CYGINT_ISO_STDIO_FILETYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FILETYPES + # Requires: 1 >= CYGINT_ISO_STDIO_FILETYPES +}; + +# Stdio file types implementation header +# +cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Stdio standard streams implementations +# +cdl_interface CYGINT_ISO_STDIO_STREAMS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_STREAMS + # CYGINT_ISO_STDIO_STREAMS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_STREAMS + # Requires: 1 >= CYGINT_ISO_STDIO_STREAMS +}; + +# Stdio standard streams implementation header +# This header file must define stdin, stdout +# and stderr. +# +cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio file operations +# +cdl_interface CYGINT_ISO_STDIO_FILEOPS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FILEOPS + # CYGINT_ISO_STDIO_FILEOPS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FILEOPS + # Requires: 1 >= CYGINT_ISO_STDIO_FILEOPS +}; + +# Stdio file operations implementation header +# This header controls the file system operations on a file +# such as remove(), rename(), tmpfile(), tmpnam() and associated +# constants. +# +cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio file access functionals +# +cdl_interface CYGINT_ISO_STDIO_FILEACCESS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FILEACCESS + # CYGINT_ISO_STDIO_FILEACCESS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FILEACCESS + # Requires: 1 >= CYGINT_ISO_STDIO_FILEACCESS + # option CYGFUN_COMPRESS_ZLIB_GZIO + # Requires: CYGINT_ISO_STDIO_FILEACCESS +}; + +# Stdio file access implementation header +# This header controls the file access operations +# such as fclose(), fflush(), fopen(), freopen(), setbuf(), +# setvbuf(), and associated constants. +# +cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio formatted I/O +# +cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FORMATTED_IO + # CYGINT_ISO_STDIO_FORMATTED_IO == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FORMATTED_IO + # Requires: 1 >= CYGINT_ISO_STDIO_FORMATTED_IO + # option CYGFUN_COMPRESS_ZLIB_GZIO + # Requires: CYGINT_ISO_STDIO_FORMATTED_IO +}; + +# Stdio formatted I/O implementation header +# +cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio character I/O +# +cdl_interface CYGINT_ISO_STDIO_CHAR_IO { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_CHAR_IO + # CYGINT_ISO_STDIO_CHAR_IO == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_CHAR_IO + # Requires: 1 >= CYGINT_ISO_STDIO_CHAR_IO +}; + +# Stdio character I/O implementation header +# +cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio direct I/O +# +cdl_interface CYGINT_ISO_STDIO_DIRECT_IO { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_DIRECT_IO + # CYGINT_ISO_STDIO_DIRECT_IO == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_DIRECT_IO + # Requires: 1 >= CYGINT_ISO_STDIO_DIRECT_IO +}; + +# Stdio direct I/O implementation header +# +cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio file positioning +# +cdl_interface CYGINT_ISO_STDIO_FILEPOS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_FILEPOS + # CYGINT_ISO_STDIO_FILEPOS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_FILEPOS + # Requires: 1 >= CYGINT_ISO_STDIO_FILEPOS + # option CYGFUN_COMPRESS_ZLIB_GZIO + # Requires: CYGINT_ISO_STDIO_FILEPOS +}; + +# Stdio file positioning implementation header +# +cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of stdio error handling +# +cdl_interface CYGINT_ISO_STDIO_ERROR { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_ERROR + # CYGINT_ISO_STDIO_ERROR == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_ERROR + # Requires: 1 >= CYGINT_ISO_STDIO_ERROR +}; + +# Stdio error handling implementation header +# +cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX fd-related function implementations +# +cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STDIO_POSIX_FDFUNCS + # CYGINT_ISO_STDIO_POSIX_FDFUNCS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDIO_POSIX_FDFUNCS + # Requires: 1 >= CYGINT_ISO_STDIO_POSIX_FDFUNCS +}; + +# POSIX fd-related function implementation header +# +cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Standard general utility functions +# +cdl_component CYGPKG_ISO_STDLIB { + # There is no associated value. +}; + +# > +# String conversion function implementations +# +cdl_interface CYGINT_ISO_STDLIB_STRCONV { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_STRCONV + # CYGINT_ISO_STDLIB_STRCONV == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_STRCONV + # Requires: 1 >= CYGINT_ISO_STDLIB_STRCONV +}; + +# String conversion function implementation header +# +cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGIMP_LIBC_STDLIB_INLINE_ATOX + # Requires: CYGBLD_ISO_STDLIB_STRCONV_HEADER == "" +}; + +# String to FP conversion function implementations +# +cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT { + # Implemented by CYGFUN_LIBC_strtod, active, disabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT + # CYGINT_ISO_STDLIB_STRCONV_FLOAT == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT + # Requires: 1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT +}; + +# String to FP conversion function implementation header +# +cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Random number generator implementations +# +cdl_interface CYGINT_ISO_RAND { + # Implemented by CYGIMP_LIBC_RAND_SIMPLEST, active, disabled + # Implemented by CYGIMP_LIBC_RAND_SIMPLE1, active, disabled + # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_RAND + # CYGINT_ISO_RAND == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_RAND + # Requires: 1 >= CYGINT_ISO_RAND +}; + +# Random number generator implementation header +# +cdl_option CYGBLD_ISO_RAND_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Malloc implementations +# +cdl_interface CYGINT_ISO_MALLOC { + # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_MALLOC + # CYGINT_ISO_MALLOC == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_MALLOC + # Requires: 1 >= CYGINT_ISO_MALLOC + # option CYGFUN_LIBC_STRING_STRDUP + # ActiveIf: CYGINT_ISO_MALLOC +}; + +# Malloc implementation header +# +cdl_option CYGBLD_ISO_MALLOC_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Mallinfo() implementations +# +cdl_interface CYGINT_ISO_MALLINFO { + # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_MALLINFO + # CYGINT_ISO_MALLINFO == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_MALLINFO + # Requires: 1 >= CYGINT_ISO_MALLINFO +}; + +# Mallinfo() implementation header +# +cdl_option CYGBLD_ISO_MALLINFO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Program exit functionality implementations +# +cdl_interface CYGINT_ISO_EXIT { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_EXIT + # CYGINT_ISO_EXIT == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_EXIT + # Requires: 1 >= CYGINT_ISO_EXIT + # option CYGFUN_INFRA_DUMMY_ABORT + # Requires: !CYGINT_ISO_EXIT + # option CYGFUN_INFRA_DUMMY_ABORT + # DefaultValue: CYGINT_ISO_EXIT == 0 +}; + +# Program exit functionality implementation header +# +cdl_option CYGBLD_ISO_EXIT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Program environment implementations +# +cdl_interface CYGINT_ISO_STDLIB_ENVIRON { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_ENVIRON + # CYGINT_ISO_STDLIB_ENVIRON == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_ENVIRON + # Requires: 1 >= CYGINT_ISO_STDLIB_ENVIRON +}; + +# Program environment implementation header +# +cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# system() implementations +# +cdl_interface CYGINT_ISO_STDLIB_SYSTEM { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_SYSTEM + # CYGINT_ISO_STDLIB_SYSTEM == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_SYSTEM + # Requires: 1 >= CYGINT_ISO_STDLIB_SYSTEM +}; + +# system() implementation header +# +cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# bsearch() implementations +# +cdl_interface CYGINT_ISO_BSEARCH { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_BSEARCH + # CYGINT_ISO_BSEARCH == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_BSEARCH + # Requires: 1 >= CYGINT_ISO_BSEARCH +}; + +# bsearch() implementation header +# +cdl_option CYGBLD_ISO_BSEARCH_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# qsort() implementations +# +cdl_interface CYGINT_ISO_QSORT { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_QSORT + # CYGINT_ISO_STDLIB_QSORT (unknown) == 0 + # --> 1 + + # The following properties are affected by this value +}; + +# qsort() implementation header +# +cdl_option CYGBLD_ISO_QSORT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# abs()/labs() implementations +# +cdl_interface CYGINT_ISO_ABS { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_ABS + # CYGINT_ISO_STDLIB_ABS (unknown) == 0 + # --> 1 + + # The following properties are affected by this value +}; + +# abs()/labs() implementation header +# +cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGIMP_LIBC_STDLIB_INLINE_ABS + # Requires: CYGBLD_ISO_STDLIB_ABS_HEADER == "" +}; + +# div()/ldiv() implementations +# +cdl_interface CYGINT_ISO_DIV { + # Implemented by CYGPKG_LIBC_STDLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_DIV + # CYGINT_ISO_STDLIB_DIV (unknown) == 0 + # --> 1 + + # The following properties are affected by this value +}; + +# div()/ldiv() implementation header +# +cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGIMP_LIBC_STDLIB_INLINE_DIV + # Requires: CYGBLD_ISO_STDLIB_DIV_HEADER == "" +}; + +# Header defining the implementation's MB_CUR_MAX +# +cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 + + # The following properties are affected by this value + # interface CYGINT_LIBC_I18N_MB_REQUIRED + # Requires: CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == "" +}; + +# Multibyte character implementations +# +cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE { + # Implemented by CYGPKG_LIBC_I18N, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: 1 >= CYGINT_ISO_STDLIB_MULTIBYTE + # CYGINT_ISO_STDLIB_MULTIBYTE == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STDLIB_MULTIBYTE + # Requires: 1 >= CYGINT_ISO_STDLIB_MULTIBYTE +}; + +# Multibyte character implementation header +# +cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# String functions +# +cdl_component CYGPKG_ISO_STRING { + # There is no associated value. +}; + +# > +# Number of implementations of strerror() function +# +cdl_interface CYGINT_ISO_STRERROR { + # Implemented by CYGPKG_ERROR_STRERROR, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRERROR + # CYGINT_ISO_STRERROR == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRERROR + # Requires: 1 >= CYGINT_ISO_STRERROR +}; + +# strerror() implementation header +# +cdl_option CYGBLD_ISO_STRERROR_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGPKG_ERROR_STRERROR + # Requires: CYGBLD_ISO_STRERROR_HEADER == "" +}; + +# memcpy() implementation header +# +cdl_option CYGBLD_ISO_MEMCPY_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# memset() implementation header +# +cdl_option CYGBLD_ISO_MEMSET_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of strtok_r() function +# +cdl_interface CYGINT_ISO_STRTOK_R { + # Implemented by CYGPKG_LIBC_STRING, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRTOK_R + # CYGINT_ISO_STRTOK_R == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRTOK_R + # Requires: 1 >= CYGINT_ISO_STRTOK_R +}; + +# strtok_r() implementation header +# +cdl_option CYGBLD_ISO_STRTOK_R_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_LIBC_STRING + # Requires: CYGBLD_ISO_STRTOK_R_HEADER == "" +}; + +# Number of implementations of locale-specific string functions +# This covers locale-dependent string functions such as strcoll() +# and strxfrm(). +# +cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS { + # Implemented by CYGPKG_LIBC_STRING, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRING_LOCALE_FUNCS + # CYGINT_ISO_STRING_LOCALE_FUNCS == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRING_LOCALE_FUNCS + # Requires: 1 >= CYGINT_ISO_STRING_LOCALE_FUNCS +}; + +# Locale-specific string functions' implementation header +# This covers locale-dependent string functions such as strcoll() +# and strxfrm(). +# +cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_LIBC_STRING + # Requires: CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == "" +}; + +# Number of implementations of BSD string functions +# +cdl_interface CYGINT_ISO_STRING_BSD_FUNCS { + # Implemented by CYGFUN_LIBC_STRING_BSD_FUNCS, active, disabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_STRING_BSD_FUNCS + # CYGINT_ISO_STRING_BSD_FUNCS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRING_BSD_FUNCS + # Requires: 1 >= CYGINT_ISO_STRING_BSD_FUNCS +}; + +# BSD string functions' implementation header +# +cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # option CYGFUN_LIBC_STRING_BSD_FUNCS + # Requires: CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == "" +}; + +# Number of implementations of other mem*() functions +# +cdl_interface CYGINT_ISO_STRING_MEMFUNCS { + # Implemented by CYGPKG_LIBC_STRING, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRING_MEMFUNCS + # CYGINT_ISO_STRING_MEMFUNCS == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRING_MEMFUNCS + # Requires: 1 >= CYGINT_ISO_STRING_MEMFUNCS + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGINT_ISO_STRING_MEMFUNCS + # component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE + # Requires: CYGINT_ISO_STRING_MEMFUNCS +}; + +# Other mem*() functions' implementation header +# +cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_LIBC_STRING + # Requires: CYGBLD_ISO_STRING_MEMFUNCS_HEADER == "" +}; + +# Number of implementations of other ISO C str*() functions +# This covers the other str*() functions defined by ISO C. +# +cdl_interface CYGINT_ISO_STRING_STRFUNCS { + # Implemented by CYGPKG_LIBC_STRING, active, enabled + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 1 + # Requires: 1 >= CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_STRING_STRFUNCS + # Requires: 1 >= CYGINT_ISO_STRING_STRFUNCS + # option CYGFUN_INFRA_DUMMY_STRLEN + # Requires: !CYGINT_ISO_STRING_STRFUNCS + # option CYGFUN_INFRA_DUMMY_STRLEN + # DefaultValue: CYGINT_ISO_STRING_STRFUNCS == 0 + # component CYGBLD_BUILD_REDBOOT + # Requires: CYGINT_ISO_STRING_STRFUNCS + # component CYGPKG_IO_ETH_DRIVERS_NET + # Requires: CYGINT_ISO_STRING_STRFUNCS + # option CYGFUN_COMPRESS_ZLIB_GZIO + # Requires: CYGINT_ISO_STRING_STRFUNCS + # package CYGPKG_IO_FLASH + # Requires: CYGINT_ISO_STRING_STRFUNCS + # package CYGPKG_LIBC_STDLIB + # Requires: CYGINT_ISO_STRING_STRFUNCS +}; + +# Other ISO C str*() functions' implementation header +# This covers the other str*() functions defined by ISO C. +# +cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 + + # The following properties are affected by this value + # package CYGPKG_LIBC_STRING + # Requires: CYGBLD_ISO_STRING_STRFUNCS_HEADER == "" +}; + +# < +# Clock and time functionality +# +cdl_component CYGPKG_ISO_TIME { + # There is no associated value. +}; + +# > +# time_t implementation header +# +cdl_option CYGBLD_ISO_TIME_T_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# clock_t implementation header +# +cdl_option CYGBLD_ISO_CLOCK_T_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# struct timeval implementation header +# +cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# fnmatch implementation header +# +cdl_option CYGBLD_ISO_FNMATCH_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of POSIX timer types +# +cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_TIMER_TYPES + # CYGINT_ISO_POSIX_TIMER_TYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_TIMER_TYPES + # Requires: 1 >= CYGINT_ISO_POSIX_TIMER_TYPES +}; + +# POSIX timer types implementation header +# +cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of POSIX clock types +# +cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_CLOCK_TYPES + # CYGINT_ISO_POSIX_CLOCK_TYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_CLOCK_TYPES + # Requires: 1 >= CYGINT_ISO_POSIX_CLOCK_TYPES +}; + +# POSIX clock types implementation header +# +cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of ISO C types +# +cdl_interface CYGINT_ISO_C_TIME_TYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_C_TIME_TYPES + # CYGINT_ISO_C_TIME_TYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_C_TIME_TYPES + # Requires: 1 >= CYGINT_ISO_C_TIME_TYPES +}; + +# ISO C time types implementation header +# +cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of POSIX timers +# +cdl_interface CYGINT_ISO_POSIX_TIMERS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_TIMERS + # CYGINT_ISO_POSIX_TIMERS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_TIMERS + # Requires: 1 >= CYGINT_ISO_POSIX_TIMERS +}; + +# POSIX timer implementation header +# +cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of POSIX clocks +# +cdl_interface CYGINT_ISO_POSIX_CLOCKS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_CLOCKS + # CYGINT_ISO_POSIX_CLOCKS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_CLOCKS + # Requires: 1 >= CYGINT_ISO_POSIX_CLOCKS +}; + +# POSIX clocks implementation header +# +cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of ISO C clock functions +# +cdl_interface CYGINT_ISO_C_CLOCK_FUNCS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_C_CLOCK_FUNCS + # CYGINT_ISO_C_CLOCK_FUNCS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_C_CLOCK_FUNCS + # Requires: 1 >= CYGINT_ISO_C_CLOCK_FUNCS +}; + +# ISO C clock functions' implementation header +# +cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of implementations of tzset() function +# +cdl_interface CYGINT_ISO_TZSET { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_TZSET + # CYGINT_ISO_TZSET == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_TZSET + # Requires: 1 >= CYGINT_ISO_TZSET +}; + +# tzset() implementation header +# +cdl_option CYGBLD_ISO_TZSET_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Signal functionality +# +cdl_component CYGPKG_ISO_SIGNAL { + # There is no associated value. +}; + +# > +# Number of implementations of signal numbers +# +cdl_interface CYGINT_ISO_SIGNAL_NUMBERS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SIGNAL_NUMBERS + # CYGINT_ISO_SIGNAL_NUMBERS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SIGNAL_NUMBERS + # Requires: 1 >= CYGINT_ISO_SIGNAL_NUMBERS +}; + +# Signal numbering implementation header +# This header provides the mapping of signal +# names (e.g. SIGBUS) to numbers. +# +cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Number of signal implementations +# +cdl_interface CYGINT_ISO_SIGNAL_IMPL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SIGNAL_IMPL + # CYGINT_ISO_SIGNAL_IMPL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SIGNAL_IMPL + # Requires: 1 >= CYGINT_ISO_SIGNAL_IMPL +}; + +# Signals implementation header +# +cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX real time signals feature test macro +# This defines the POSIX feature test macro +# that indicates that the POSIX real time signals +# are present. +# +cdl_interface CYGINT_POSIX_REALTIME_SIGNALS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_POSIX_REALTIME_SIGNALS + # CYGINT_POSIX_REALTIME_SIGNALS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_POSIX_REALTIME_SIGNALS + # Requires: 1 >= CYGINT_POSIX_REALTIME_SIGNALS +}; + +# < +# Non-local jumps functionality +# +cdl_component CYGPKG_ISO_SETJMP { + # There is no associated value. +}; + +# > +# setjmp() / longjmp() implementations +# +cdl_interface CYGINT_ISO_SETJMP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SETJMP + # CYGINT_ISO_SETJMP == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SETJMP + # Requires: 1 >= CYGINT_ISO_SETJMP +}; + +# setjmp() / longjmp() implementation header +# +cdl_option CYGBLD_ISO_SETJMP_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# sigsetjmp() / siglongjmp() implementations +# +cdl_interface CYGINT_ISO_SIGSETJMP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SIGSETJMP + # CYGINT_ISO_SIGSETJMP == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SIGSETJMP + # Requires: 1 >= CYGINT_ISO_SIGSETJMP +}; + +# sigsetjmp() / siglongjmp() implementation header +# +cdl_option CYGBLD_ISO_SIGSETJMP_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Assertions implementation header +# +cdl_option CYGBLD_ISO_ASSERT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX file control +# This covers the POSIX file control definitions, +# normally found in +# +cdl_component CYGPKG_ISO_POSIX_FCNTL { + # There is no associated value. +}; + +# > +# POSIX open flags implementation header +# +cdl_option CYGBLD_ISO_OFLAG_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX fcntl() implementations +# +cdl_interface CYGINT_ISO_FCNTL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_FCNTL + # CYGINT_ISO_FCNTL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_FCNTL + # Requires: 1 >= CYGINT_ISO_FCNTL +}; + +# POSIX fcntl() implementation header +# +cdl_option CYGBLD_ISO_FCNTL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX file open implementations +# +cdl_interface CYGINT_ISO_OPEN { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_OPEN + # CYGINT_ISO_OPEN == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_OPEN + # Requires: 1 >= CYGINT_ISO_OPEN +}; + +# POSIX file open implementation header +# +cdl_option CYGBLD_ISO_OPEN_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# definitions implementation header +# +cdl_option CYGBLD_ISO_STAT_DEFS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX directory reading implementation +# +cdl_interface CYGINT_ISO_DIRENT { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_DIRENT + # CYGINT_ISO_DIRENT == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_DIRENT + # Requires: 1 >= CYGINT_ISO_DIRENT +}; + +# definitions implementation header +# +cdl_option CYGBLD_ISO_DIRENT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX contents +# This covers the types required by POSIX to be in +# +# +cdl_component CYGPKG_ISO_POSIX_TYPES { + # There is no associated value. +}; + +# > +# POSIX thread types implementations +# +cdl_interface CYGINT_ISO_PTHREADTYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_PTHREADTYPES + # CYGINT_ISO_PTHREADTYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_PTHREADTYPES + # Requires: 1 >= CYGINT_ISO_PTHREADTYPES + # interface CYGINT_ISO_PMUTEXTYPES + # Requires: 1 >= CYGINT_ISO_PTHREADTYPES +}; + +# POSIX thread types implementation header +# +cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX mutex types implementations +# +cdl_interface CYGINT_ISO_PMUTEXTYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_PTHREADTYPES + # CYGINT_ISO_PTHREADTYPES == 0 + # --> 1 +}; + +# POSIX mutex types implementation header +# +cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# ssize_t implementation header +# +cdl_option CYGBLD_ISO_SSIZE_T_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Filesystem types implementation header +# +cdl_option CYGBLD_ISO_FSTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# gid_t, pid_t, uid_t implementation header +# +cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Non-POSIX contents +# This covers the extra types required by non-POSIX +# packages to be in . These would normally +# only be visible if _POSIX_SOURCE is not defined. +# +cdl_component CYGPKG_ISO_EXTRA_TYPES { + # There is no associated value. +}; + +# > +# BSD compatible types +# +cdl_interface CYGINT_ISO_BSDTYPES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_BSDTYPES + # CYGINT_ISO_BSDTYPES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_BSDTYPES + # Requires: 1 >= CYGINT_ISO_BSDTYPES +}; + +# BSD types header +# +cdl_option CYGBLD_ISO_BSDTYPES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Utsname structure +# +cdl_component CYGPKG_ISO_UTSNAME { + # There is no associated value. +}; + +# > +# Utsname header +# +cdl_option CYGBLD_ISO_UTSNAME_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# POSIX scheduler +# +cdl_component CYGPKG_ISO_SCHED { + # There is no associated value. +}; + +# > +# POSIX scheduler implementations +# +cdl_interface CYGINT_ISO_SCHED_IMPL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SCHED_IMPL + # CYGINT_ISO_SCHED_IMPL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SCHED_IMPL + # Requires: 1 >= CYGINT_ISO_SCHED_IMPL +}; + +# POSIX scheduler implementation header +# +cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# POSIX semaphores +# +cdl_component CYGPKG_ISO_SEMAPHORES { + # There is no associated value. +}; + +# > +# POSIX semaphore implementations +# +cdl_interface CYGINT_ISO_SEMAPHORES { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_SEMAPHORES + # CYGINT_ISO_SEMAPHORES == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SEMAPHORES + # Requires: 1 >= CYGINT_ISO_SEMAPHORES +}; + +# POSIX semaphore implementation header +# +cdl_option CYGBLD_ISO_SEMAPHORES_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# POSIX message queues +# +cdl_component CYGPKG_ISO_MQUEUE { + # There is no associated value. +}; + +# > +# Implementations +# +cdl_interface CYGINT_ISO_MQUEUE { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_MQUEUE + # CYGINT_ISO_MQUEUE == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_MQUEUE + # Requires: 1 >= CYGINT_ISO_MQUEUE + # option CYGNUM_ISO_MQUEUE_OPEN_MAX + # ActiveIf: CYGINT_ISO_MQUEUE + # option CYGNUM_ISO_MQUEUE_PRIO_MAX + # ActiveIf: CYGINT_ISO_MQUEUE +}; + +# Implementation header +# +cdl_option CYGBLD_ISO_MQUEUE_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Maximum number of open message queues +# +cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX { + # This option is not active + # ActiveIf constraint: CYGINT_ISO_MQUEUE + # CYGINT_ISO_MQUEUE == 0 + # --> 0 + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 + # CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0 + # CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0 + # --> 0 0 +}; + +# Maximum number of message priorities +# +cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX { + # This option is not active + # ActiveIf constraint: CYGINT_ISO_MQUEUE + # CYGINT_ISO_MQUEUE == 0 + # --> 0 + + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 1 65535 + # value_source default + # Default value: 1 65535 +}; + +# < +# POSIX threads +# +cdl_component CYGPKG_ISO_PTHREAD { + # There is no associated value. +}; + +# > +# POSIX pthread implementations +# +cdl_interface CYGINT_ISO_PTHREAD_IMPL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_PTHREAD_IMPL + # CYGINT_ISO_PTHREAD_IMPL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_PTHREAD_IMPL + # Requires: 1 >= CYGINT_ISO_PTHREAD_IMPL +}; + +# POSIX pthread implementation header +# +cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX mutex/cond var implementations +# +cdl_interface CYGINT_ISO_PTHREAD_MUTEX { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_PTHREAD_MUTEX + # CYGINT_ISO_PTHREAD_MUTEX == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_PTHREAD_MUTEX + # Requires: 1 >= CYGINT_ISO_PTHREAD_MUTEX +}; + +# POSIX mutex/cond var implementation header +# +cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Limits +# +cdl_component CYGPKG_ISO_LIMITS { + # There is no associated value. +}; + +# > +# POSIX pthread limits implementations +# +cdl_interface CYGINT_ISO_POSIX_LIMITS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_POSIX_LIMITS + # CYGINT_ISO_POSIX_LIMITS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_LIMITS + # Requires: 1 >= CYGINT_ISO_POSIX_LIMITS +}; + +# POSIX pthread limits implementation header +# +cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# OPEN_MAX implementation header +# +cdl_option CYGBLD_ISO_OPEN_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# LINK_MAX implementation header +# +cdl_option CYGBLD_ISO_LINK_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# NAME_MAX implementation header +# +cdl_option CYGBLD_ISO_NAME_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# PATH_MAX implementation header +# +cdl_option CYGBLD_ISO_PATH_MAX_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# POSIX termios +# +cdl_component CYGPKG_ISO_TERMIOS { + # There is no associated value. +}; + +# > +# POSIX termios implementations +# +cdl_interface CYGINT_ISO_TERMIOS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_TERMIOS + # CYGINT_ISO_TERMIOS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_TERMIOS + # Requires: 1 >= CYGINT_ISO_TERMIOS +}; + +# POSIX termios implementation header +# +cdl_option CYGBLD_ISO_TERMIOS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Dynamic load API +# +cdl_component CYGPKG_ISO_DLFCN { + # There is no associated value. +}; + +# > +# Dynamic load implementations +# +cdl_interface CYGINT_ISO_DLFCN { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 >= CYGINT_ISO_DLFCN + # CYGINT_ISO_DLFCN == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_DLFCN + # Requires: 1 >= CYGINT_ISO_DLFCN +}; + +# Dynamic load implementation header +# +cdl_option CYGBLD_ISO_DLFCN_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# UNIX standard functions +# +cdl_component CYGPKG_ISO_UNISTD { + # There is no associated value. +}; + +# > +# POSIX timer operations implementations +# +cdl_interface CYGINT_ISO_POSIX_TIMER_OPS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_TIMER_OPS + # CYGINT_ISO_POSIX_TIMER_OPS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_TIMER_OPS + # Requires: 1 >= CYGINT_ISO_POSIX_TIMER_OPS +}; + +# POSIX timer operations implementation header +# +cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# POSIX sleep() implementations +# +cdl_interface CYGINT_ISO_POSIX_SLEEP { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POSIX_SLEEP + # CYGINT_ISO_POSIX_SLEEP == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POSIX_SLEEP + # Requires: 1 >= CYGINT_ISO_POSIX_SLEEP +}; + +# POSIX sleep() implementation header +# +cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# select()/poll() functions +# +cdl_component CYGPKG_ISO_SELECT { + # There is no associated value. +}; + +# > +# select() implementations +# +cdl_interface CYGINT_ISO_SELECT { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_SELECT + # CYGINT_ISO_SELECT == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_SELECT + # Requires: 1 >= CYGINT_ISO_SELECT +}; + +# select() implementation header +# +cdl_option CYGBLD_ISO_SELECT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# poll() implementations +# +cdl_interface CYGINT_ISO_POLL { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: 1 >= CYGINT_ISO_POLL + # CYGINT_ISO_POLL == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_POLL + # Requires: 1 >= CYGINT_ISO_POLL +}; + +# poll() implementation header +# +cdl_option CYGBLD_ISO_POLL_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# NetDB utility functions +# +cdl_component CYGPKG_ISO_NETDB { + # There is no associated value. +}; + +# > +# DNS implementations +# +cdl_interface CYGINT_ISO_DNS { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: bool + # Current value: 0 + # Requires: 1 >= CYGINT_ISO_DNS + # CYGINT_ISO_DNS == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_DNS + # Requires: 1 >= CYGINT_ISO_DNS +}; + +# DNS implementation header +# +cdl_option CYGBLD_ISO_DNS_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Protocol network database implementations +# +cdl_interface CYGINT_ISO_NETDB_PROTO { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: bool + # Current value: 0 + # Requires: 1 >= CYGINT_ISO_NETDB_PROTO + # CYGINT_ISO_NETDB_PROTO == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_NETDB_PROTO + # Requires: 1 >= CYGINT_ISO_NETDB_PROTO +}; + +# Protocol network database implementation header +# +cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Services network database implementations +# +cdl_interface CYGINT_ISO_NETDB_SERV { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: bool + # Current value: 0 + # Requires: 1 >= CYGINT_ISO_NETDB_SERV + # CYGINT_ISO_NETDB_SERV == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_ISO_NETDB_SERV + # Requires: 1 >= CYGINT_ISO_NETDB_SERV +}; + +# Services network database implementation header +# +cdl_option CYGBLD_ISO_NETDB_SERV_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# < +# Build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_ISOINFRA_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the ISO C and POSIX infrastructure package. +# These flags are used in addition to the set of global flags. +# +cdl_option CYGPKG_ISOINFRA_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the ISO C and POSIX infrastructure package. +# These flags are removed from the set of global flags +# if present. +# +cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# < +# < +# Compute CRCs +# doc: ref/services-crc.html +# This package provides support for CRC calculation. Currently +# this is the POSIX 1003 defined CRC algorithm, a 32 CRC by +# Gary S. Brown, and a 16 bit CRC. +# +cdl_package CYGPKG_CRC { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # package CYGPKG_COMPRESS_ZLIB + # Requires: CYGPKG_CRC +}; + +# > +# POSIX CRC tests +# +cdl_option CYGPKG_CRC_TESTS { + # Calculated value: "tests/crc_test" + # Flavor: data + # Current_value: tests/crc_test +}; + +# < +# Zlib compress and decompress package +# This package provides support for compression and +# decompression. +# +cdl_package CYGPKG_COMPRESS_ZLIB { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: CYGPKG_CRC + # CYGPKG_CRC == current + # --> 1 + + # The following properties are affected by this value + # component CYGBLD_BUILD_REDBOOT_WITH_ZLIB + # ActiveIf: CYGPKG_COMPRESS_ZLIB +}; + +# > +# Override memory allocation routines. +# +cdl_interface CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC { + # Implemented by CYGBLD_BUILD_REDBOOT_WITH_ZLIB, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC + # ActiveIf: CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 +}; + +# Should deflate() produce 'gzip' compatible output? +# If this option is set then the output of calling deflate() +# will be wrapped up as a 'gzip' compatible file. +# +cdl_option CYGSEM_COMPRESS_ZLIB_DEFLATE_MAKES_GZIP { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Does this library need malloc? +# This pseudo-option will force the memalloc library to be +# required iff the application does not provide it's own +# infrastructure. +# +cdl_option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC { + # This option is not active + # ActiveIf constraint: CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 + # CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 1 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGPKG_MEMALLOC + # CYGPKG_MEMALLOC == current + # --> 1 +}; + +# Include stdio-like utility functions +# This option enables the stdio-like zlib utility functions +# (gzread/gzwrite and friends) provided in gzio.c. +# +cdl_option CYGFUN_COMPRESS_ZLIB_GZIO { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGPKG_LIBC_STDIO_OPEN ? 1 : 0 + # CYGPKG_LIBC_STDIO_OPEN (unknown) == 0 + # --> 0 + # Requires: CYGINT_ISO_STDIO_FILEPOS + # CYGINT_ISO_STDIO_FILEPOS == 0 + # --> 0 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 + # Requires: CYGINT_ISO_STDIO_FORMATTED_IO + # CYGINT_ISO_STDIO_FORMATTED_IO == 0 + # --> 0 + # Requires: CYGINT_ISO_STDIO_FILEACCESS + # CYGINT_ISO_STDIO_FILEACCESS == 0 + # --> 0 +}; + +# Zlib compress and decompress package build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_COMPRESS_ZLIB_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_COMPRESS_ZLIB_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-D__ECOS__ -DNO_ERRNO_H" + # value_source default + # Default value: "-D__ECOS__ -DNO_ERRNO_H" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_COMPRESS_ZLIB_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wstrict-prototypes + # value_source default + # Default value: -Wstrict-prototypes +}; + +# Additional compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# < +# zlib tests +# +cdl_option CYGPKG_COMPRESS_ZLIB_TESTS { + # Calculated value: "tests/zlib1.c tests/zlib2.c" + # Flavor: data + # Current_value: tests/zlib1.c tests/zlib2.c +}; + +# < +# FLASH device drivers +# doc: ref/flash.html +# This option enables drivers for basic I/O services on +# flash devices. +# +cdl_package CYGPKG_IO_FLASH { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: CYGINT_ISO_STRING_STRFUNCS + # CYGINT_ISO_STRING_STRFUNCS == 1 + # --> 1 + + # The following properties are affected by this value + # component CYGSEM_REDBOOT_FLASH_CONFIG + # DefaultValue: CYGPKG_IO_FLASH != 0 + # package CYGPKG_DEVS_FLASH_ONMXC + # ActiveIf: CYGPKG_IO_FLASH +}; + +# > +# Hardware FLASH device drivers +# This option enables the hardware device drivers +# for the current platform. +# +cdl_interface CYGHWR_IO_FLASH_DEVICE { + # Implemented by CYGPKG_DEVS_FLASH_ONMXC, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + + # The following properties are affected by this value + # component CYGPKG_REDBOOT_FLASH + # ActiveIf: CYGHWR_IO_FLASH_DEVICE +}; + +# Hardware FLASH device drivers are not in RAM +# Use of this interface is deprecated. +# Drivers should make sure that the functions are +# linked to RAM by putting them in .2ram sections. +# +cdl_interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM + # CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0 + # --> 1 + + # The following properties are affected by this value + # interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM + # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM +}; + +# Hardware can support block locking +# This option will be enabled by devices which can support +# locking (write-protection) of individual blocks. +# +cdl_interface CYGHWR_IO_FLASH_BLOCK_LOCKING { + # No options implement this inferface + # This value cannot be modified here. + # Flavor: booldata + # Current value: 0 0 + + # The following properties are affected by this value + # option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL + # ActiveIf: CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 +}; + +# Hardware cannot support direct access to FLASH memory +# This option will be asserted by devices which cannot support +# direct access to the FLASH memory contents (e.g. EEPROM or NAND +# devices). In these cases, the driver must provide an appropriate +# hardware access function. +# +cdl_option CYGSEM_IO_FLASH_READ_INDIRECT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + # Requires: !CYGSEM_IO_FLASH_VERIFY_PROGRAM + # CYGSEM_IO_FLASH_VERIFY_PROGRAM == 0 + # --> 1 + + # The following properties are affected by this value + # option CYGPRI_REDBOOT_ZLIB_FLASH + # ActiveIf: (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE + # component CYGHWR_DEVS_FLASH_MMC + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # option CYGHWR_DEVS_FLASH_MMC_ESDHC + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # option CYGHWR_DEVS_FLASH_MMC_SD + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # option CYGHWR_DEVS_FLASH_MXC_NAND + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 +}; + +# Display status messages during flash operations +# Selecting this option will cause the drivers to print status +# messages as various flash operations are undertaken. +# +cdl_option CYGSEM_IO_FLASH_CHATTER { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Verify data programmed to flash +# Selecting this option will cause verification of data +# programmed to flash. +# +cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + + # The following properties are affected by this value + # option CYGSEM_IO_FLASH_READ_INDIRECT + # Requires: !CYGSEM_IO_FLASH_VERIFY_PROGRAM +}; + +# Platform has flash soft DIP switch write-protect +# Selecting this option will cause the state of a hardware jumper or +# dipswitch to be read by software to determine whether the flash is +# write-protected or not. +# +cdl_option CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Instantiate in I/O block device API +# Provides a block device accessible using the standard I/O +# API ( cyg_io_read() etc. ) +# +cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE { + # This option is not active + # ActiveIf constraint: CYGPKG_IO + # CYGPKG_IO (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Name of flash device 1 block device +# +cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 { + # This option is not active + # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is not active + # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "\"/dev/flash1\"" + # value_source default + # Default value: "\"/dev/flash1\"" +}; + +# > +# +cdl_interface CYGINT_IO_FLASH_BLOCK_CFG_1 { + # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1, inactive, enabled + # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1, inactive, disabled + # This option is not active + # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 + # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1 + # CYGINT_IO_FLASH_BLOCK_CFG_1 == 0 + # --> 0 + + # The following properties are affected by this value + # interface CYGINT_IO_FLASH_BLOCK_CFG_1 + # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1 +}; + +# Static configuration +# This configures the flash device 1 block device +# with static base and length +# +cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 { + # This option is not active + # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Start offset from flash base +# This gives the offset from the base of flash which this +# block device corresponds to. +# +cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 { + # This option is not active + # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00100000 + # value_source default + # Default value: 0x00100000 +}; + +# Length +# This gives the length of the region of flash given over +# to this block device. +# +cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 { + # This option is not active + # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00100000 + # value_source default + # Default value: 0x00100000 +}; + +# < +# Configuration from FIS +# This configures the flash device 1 block device +# from Redboot FIS +# +cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 { + # This option is not active + # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# > +# Name of FIS entry +# +cdl_component CYGDAT_IO_FLASH_BLOCK_FIS_NAME_1 { + # This option is not active + # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is not active + # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is disabled + + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "\"jffs2\"" + # value_source default + # Default value: "\"jffs2\"" +}; + +# < +# < +# < +# Flash device driver build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_IO_FLASH_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the flash device drivers. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_IO_FLASH_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the flash device drivers. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_IO_FLASH_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Flash device driver tests +# This option specifies the set of tests for the flash device drivers. +# +cdl_component CYGPKG_IO_FLASH_TESTS { + # Calculated value: "tests/flash1" + # Flavor: data + # Current_value: tests/flash1 +}; + +# > +# Start offset from flash base +# This gives the offset from the base of flash where tests +# can be run. It is important to set this correctly, as an +# incorrect value could allow the tests to write over critical +# portions of the FLASH device and possibly render the target +# board totally non-functional. +# +cdl_option CYGNUM_IO_FLASH_TEST_OFFSET { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00100000 + # value_source default + # Default value: 0x00100000 +}; + +# Length +# This gives the length of the region of flash used for testing. +# +cdl_option CYGNUM_IO_FLASH_TEST_LENGTH { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0x00100000 + # value_source default + # Default value: 0x00100000 +}; + +# < +# < +# Support FLASH memory on Freescale MXC platforms +# +cdl_package CYGPKG_DEVS_FLASH_ONMXC { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # ActiveIf constraint: CYGPKG_IO_FLASH + # CYGPKG_IO_FLASH == current + # --> 1 + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current +}; + +# > +# MXC platform MMC card support +# When this option is enabled, it indicates MMC card is +# supported on the MXC platforms +# +cdl_component CYGHWR_DEVS_FLASH_MMC { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # --> 1 + + # The following properties are affected by this value + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) +}; + +# > +# MXC platform MMC card for newer SDHC controllers +# +cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC { + # This option is not active + # The parent CYGHWR_DEVS_FLASH_MMC is disabled + # ActiveIf constraint: CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || + # CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX51 + # CYGPKG_HAL_ARM_MX37 (unknown) == 0 + # CYGPKG_HAL_ARM_MX35 (unknown) == 0 + # CYGPKG_HAL_ARM_MX25 (unknown) == 0 + # CYGPKG_HAL_ARM_MX51 (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # --> 1 +}; + +# MXC platform MMC card for older MMC/SD controllers +# +cdl_option CYGHWR_DEVS_FLASH_MMC_SD { + # This option is not active + # The parent CYGHWR_DEVS_FLASH_MMC is disabled + # ActiveIf constraint: CYGPKG_HAL_ARM_MX31_3STACK || CYGPKG_HAL_ARM_MX31ADS + # CYGPKG_HAL_ARM_MX31_3STACK (unknown) == 0 + # CYGPKG_HAL_ARM_MX31ADS (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # --> 1 +}; + +# < +# MXC platform NOR flash memory support +# When this option is enabled, it indicates NOR flash is +# supported on the MXC platforms +# +cdl_option CYGHWR_DEVS_FLASH_MXC_NOR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 0 + + # The following properties are affected by this value + # option CYGHWR_DEVS_FLASH_IMX_SPI_NOR + # Requires: CYGHWR_DEVS_FLASH_MXC_NOR == 1 + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) +}; + +# MXC platform NAND flash memory support +# When this option is enabled, it indicates NAND flash is +# supported on the MXC platforms +# +cdl_option CYGHWR_DEVS_FLASH_MXC_NAND { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 + # Requires: CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # CYGSEM_IO_FLASH_READ_INDIRECT == 1 + # --> 1 + + # The following properties are affected by this value + # component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH + # ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # option CYGHWR_DEVS_FLASH_MXC_MULTI + # ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND + # ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND +}; + +# i.MX platform SPI NOR flash memory support +# When this option is enabled, it indicates SPI NOR flash is +# supported on the i.MX platforms +# +cdl_option CYGHWR_DEVS_FLASH_IMX_SPI_NOR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGHWR_DEVS_FLASH_MXC_NOR == 1 + # CYGHWR_DEVS_FLASH_MXC_NOR == 0 + # --> 0 +}; + +# MXC platform ATA support +# When this option is enabled, it indicates ATA is +# supported on the MXC platforms +# +cdl_option CYGHWR_DEVS_FLASH_MXC_ATA { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Use a flash based Bad Block Table +# +cdl_component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH { + # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND + # CYGHWR_DEVS_FLASH_MXC_NAND == 1 + # --> 1 + + # There is no associated value. +}; + +# > +# When this option is enabled, the driver will search for a flash +# based bad block table +# +cdl_option CYGHWR_DEVS_FLASH_MXC_BBT_IN_FLASH { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# header file defining the NAND BBT descriptor +# defines the name of the header file that describes the BBT layout +# +cdl_component CYGHWR_FLASH_NAND_BBT_HEADER { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 0 +}; + +# Number of blocks to reserve for BBT +# Number of blocks to reserve for BBT +# +cdl_option CYGNUM_FLASH_NAND_BBT_BLOCKS { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 4 + # value_source default + # Default value: 4 +}; + +# < +# MXC platform multi flash memory support +# When this option is enabled, it indicates multi flashes are +# supported on the MXC platforms (like NAND and NOR) +# +cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI { + # This option is not active + # ActiveIf constraint: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) || + # (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) || + # (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC) + # CYGHWR_DEVS_FLASH_MXC_NAND == 1 + # CYGHWR_DEVS_FLASH_MXC_NOR == 0 + # CYGHWR_DEVS_FLASH_MXC_NAND == 1 + # CYGHWR_DEVS_FLASH_MMC == 0 + # CYGHWR_DEVS_FLASH_MXC_NOR == 0 + # CYGHWR_DEVS_FLASH_MMC == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 +}; + +# MXC platform NAND flash reset workaround support +# When this option is enabled, it indicates 0xFFFF is used for +# the NAND reset command instead of 0xFF. +# +cdl_interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND { + # No options implement this inferface + # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND + # CYGHWR_DEVS_FLASH_MXC_NAND == 1 + # --> 1 + + # This value cannot be modified here. + # Flavor: data + # Current_value: 0 +}; + +# < +# < +# Dynamic memory allocation +# doc: ref/memalloc.html +# This package provides memory allocator infrastructure required for +# dynamic memory allocators, including the ISO standard malloc +# interface. It also contains some sample implementations. +# +cdl_package CYGPKG_MEMALLOC { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC + # Requires: CYGPKG_MEMALLOC +}; + +# > +# Memory allocator implementations +# This component contains configuration options related to the +# various memory allocators available. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATORS { + # There is no associated value. +}; + +# > +# Fixed block allocator +# This component contains configuration options related to the +# fixed block memory allocator. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATOR_FIXED { + # There is no associated value. +}; + +# > +# Make thread safe +# With this option enabled, this allocator will be +# made thread-safe. Additionally allocation functions +# are made available that allow a thread to wait +# until memory is available. +# +cdl_option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# Simple variable block allocator +# This component contains configuration options related to the +# simple variable block memory allocator. This allocator is not +# very fast, and in particular does not scale well with large +# numbers of allocations. It is however very compact in terms of +# code size and does not have very much overhead per allocation. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATOR_VARIABLE { + # There is no associated value. +}; + +# > +# Make thread safe +# With this option enabled, this allocator will be +# made thread-safe. Additionally allocation functions +# are added that allow a thread to wait until memory +# are made available that allow a thread to wait +# until memory is available. +# +cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Coalesce memory +# The variable-block memory allocator can perform coalescing +# of memory whenever the application code releases memory back +# to the pool. This coalescing reduces the possibility of +# memory fragmentation problems, but involves extra code and +# processor cycles. +# +cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + + # The following properties are affected by this value + # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE + # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE +}; + +# < +# Doug Lea's malloc +# This component contains configuration options related to the +# port of Doug Lea's memory allocator, normally known as +# dlmalloc. dlmalloc has a reputation for being both fast +# and space-conserving, as well as resisting fragmentation well. +# It is a common choice for a general purpose allocator and +# has been used in both newlib and Linux glibc. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATOR_DLMALLOC { + # There is no associated value. +}; + +# > +# Debug build +# Doug Lea's malloc implementation has substantial amounts +# of internal checking in order to verify the operation +# and consistency of the allocator. However this imposes +# substantial overhead on each operation. Therefore this +# checking may be individually disabled. +# +cdl_option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 != CYGDBG_USE_ASSERTS + # CYGDBG_USE_ASSERTS == 0 + # --> 0 + # Requires: CYGDBG_USE_ASSERTS + # CYGDBG_USE_ASSERTS == 0 + # --> 0 +}; + +# Make thread safe +# With this option enabled, this allocator will be +# made thread-safe. Additionally allocation functions +# are made available that allow a thread to wait +# until memory is available. +# +cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 +}; + +# Support more than one instance +# Having this option disabled allows important +# implementation structures to be declared as a single +# static instance, allowing faster access. However this +# would fail if there is more than one instance of +# the dlmalloc allocator class. Therefore this option can +# be enabled if multiple instances are required. Note: as +# a special case, if this allocator is used as the +# implementation of malloc, and it can be determined there +# is more than one malloc pool, then this option will be +# silently enabled. +# +cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# Use system memmove() and memset() +# This may be used to control whether memset() and memmove() +# are used within the implementation. The alternative is +# to use some macro equivalents, which some people report +# are faster in some circumstances. +# +cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 0 != CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + # Requires: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 +}; + +# Minimum alignment of allocated blocks +# This option controls the minimum alignment that the +# allocated memory blocks are aligned on, specified as +# 2^N. Note that using large mininum alignments can lead +# to excessive memory wastage. +# +cdl_option CYGNUM_MEMALLOC_ALLOCATOR_DLMALLOC_ALIGNMENT { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 3 + # value_source default + # Default value: 3 + # Legal values: 3 to 10 +}; + +# < +# Variable block allocator with separate metadata +# This component contains configuration options related to the +# variable block memory allocator with separate metadata. +# +cdl_component CYGPKG_MEMALLOC_ALLOCATOR_SEPMETA { + # There is no associated value. +}; + +# > +# Make thread safe +# With this option enabled, this allocator will be +# made thread-safe. Additionally allocation functions +# are made available that allow a thread to wait +# until memory is available. +# +cdl_option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# < +# < +# Kernel C API support for memory allocation +# This option must be enabled to provide the extensions required +# to support integration into the kernel C API. +# +cdl_option CYGFUN_MEMALLOC_KAPI { + # This option is not active + # ActiveIf constraint: CYGPKG_KERNEL + # CYGPKG_KERNEL (unknown) == 0 + # --> 0 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: CYGFUN_KERNEL_API_C + # CYGFUN_KERNEL_API_C (unknown) == 0 + # --> 0 +}; + +# malloc(0) returns NULL +# This option controls the behavior of malloc(0) ( or calloc with +# either argument 0 ). It is permitted by the standard to return +# either a NULL pointer or a unique pointer. Enabling this option +# forces a NULL pointer to be returned. +# +cdl_option CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# Breakpoint site when running out of memory +# Whenever the system runs out of memory, it invokes this function +# before either going to sleep waiting for memory to become +# available or returning failure. +# +cdl_option CYGSEM_MEMALLOC_INVOKE_OUT_OF_MEMORY { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# malloc() and supporting allocators +# This component enables support for dynamic memory +# allocation as supplied by the functions malloc(), +# free(), calloc() and realloc(). As these +# functions are often used, but can have quite an +# overhead, disabling them here can ensure they +# cannot even be used accidentally when static +# allocation is preferred. Within this component are +# various allocators that can be selected for use +# as the underlying implementation of the dynamic +# allocation functions. +# +cdl_component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS { + # ActiveIf constraint: CYGPKG_ISOINFRA + # CYGPKG_ISOINFRA == current + # --> 1 + + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 +}; + +# > +# Use external heap definition +# This option allows other components in the +# system to override the default system +# provision of heap memory pools. This should +# be set to a header which provides the equivalent +# definitions to . +# +cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# Use external implementation of joining multiple heaps +# The default implementation of joining multiple heaps +# is fine for the case where there are multiple disjoint +# memory regions of the same type. However, in a system +# there might be e.g. a small amount of internal SRAM and +# a large amount of external DRAM. The SRAM is faster and +# the DRAM is slower. An application can implement some +# heuristic to choose which pool to allocate from. This +# heuristic can be highly application specific. +# +cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_JOIN_H { + # Flavor: booldata + # No user value, uncomment the following line to provide one. + # user_value 0 0 + # value_source default + # Default value: 0 0 +}; + +# malloc() allocator implementations +# +cdl_interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS { + # Implemented by CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE, active, disabled + # Implemented by CYGIMP_MEMALLOC_MALLOC_DLMALLOC, active, enabled + # This value cannot be modified here. + # Flavor: data + # Current_value: 1 + # Requires: CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 + # CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 + # --> 1 + + # The following properties are affected by this value + # interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS + # Requires: CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 +}; + +# malloc() implementation instantiation data +# Memory allocator implementations that are capable of being +# used underneath malloc() must be instantiated. The code +# to do this is set in this option. It is only intended to +# be set by the implementation, not the user. +# +cdl_option CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value + # value_source default + # Default value: + + # The following properties are affected by this value + # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE + # Requires: CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == "" + # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC + # Requires: CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == "" +}; + +# Simple variable block implementation +# This causes malloc() to use the simple +# variable block allocator. +# +cdl_option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Requires: CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == "" + # CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == + # --> 0 + # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE + # CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE == 1 + # --> 1 +}; + +# Doug Lea's malloc implementation +# This causes malloc() to use a version of Doug Lea's +# malloc (dlmalloc) as the underlying implementation. +# +cdl_option CYGIMP_MEMALLOC_MALLOC_DLMALLOC { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == "" + # CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == + # --> 1 +}; + +# < +# Size of the fallback dynamic memory pool in bytes +# If *no* heaps are configured in your memory layout, +# dynamic memory allocation by +# malloc() and calloc() must be from a fixed-size, +# contiguous memory pool (note here that it is the +# pool that is of a fixed size, but malloc() is still +# able to allocate variable sized chunks of memory +# from it). This option is the size +# of that pool, in bytes. Note that not all of +# this is available for programs to +# use - some is needed for internal information +# about memory regions, and some may be lost to +# ensure that memory allocation only returns +# memory aligned on word (or double word) +# boundaries - a very common architecture +# constraint. +# +cdl_option CYGNUM_MEMALLOC_FALLBACK_MALLOC_POOL_SIZE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 16384 + # value_source default + # Default value: 16384 + # Legal values: 32 to 0x7fffffff +}; + +# Common memory allocator package build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_MEMALLOC_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_MEMALLOC_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "-fno-rtti -Woverloaded-virtual" + # value_source default + # Default value: "-fno-rtti -Woverloaded-virtual" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building this package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_MEMALLOC_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value -Wno-pointer-sign + # value_source default + # Default value: -Wno-pointer-sign +}; + +# Tests +# This option specifies the set of tests for this package. +# +cdl_option CYGPKG_MEMALLOC_TESTS { + # Calculated value: "tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2" + # Flavor: data + # Current_value: tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2 +}; + +# < +# < +# Common error code support +# This package contains the common list of error and +# status codes. It is held centrally to allow +# packages to interchange error codes and status +# codes in a common way, rather than each package +# having its own conventions for error/status +# reporting. The error codes are modelled on the +# POSIX style naming e.g. EINVAL etc. This package +# also provides the standard strerror() function to +# convert error codes to textual representation, as +# well as an implementation of the errno idiom. +# +cdl_package CYGPKG_ERROR { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + # Requires: CYGBLD_ISO_ERRNO_CODES_HEADER == "" + # CYGBLD_ISO_ERRNO_CODES_HEADER == + # --> 1 +}; + +# > +# errno variable +# This package controls the behaviour of the +# errno variable (or more strictly, expression) +# from . +# +cdl_component CYGPKG_ERROR_ERRNO { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_ERRNO_HEADER == "" + # CYGBLD_ISO_ERRNO_HEADER == + # --> 1 +}; + +# > +# Per-thread errno +# This option controls whether the standard error +# code reporting variable errno is a per-thread +# variable, rather than global. +# +cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # The inferred value should not be edited directly. + inferred_value 0 + # value_source inferred + # Default value: 1 + # Requires: CYGVAR_KERNEL_THREADS_DATA + # CYGVAR_KERNEL_THREADS_DATA (unknown) == 0 + # --> 0 +}; + +# Tracing level +# Trace verbosity level for debugging the errno +# retrieval mechanism in errno.cxx. Increase this +# value to get additional trace output. +# +cdl_option CYGNUM_ERROR_ERRNO_TRACE_LEVEL { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 + # Legal values: 0 to 1 +}; + +# < +# strerror function +# This package controls the presence and behaviour of the +# strerror() function from +# +cdl_option CYGPKG_ERROR_STRERROR { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 1 + # value_source default + # Default value: 1 + # Requires: CYGBLD_ISO_STRERROR_HEADER == "" + # CYGBLD_ISO_STRERROR_HEADER == + # --> 1 +}; + +# Error package build options +# Package specific build options including control over +# compiler flags used only in building this package, +# and details of which tests are built. +# +cdl_component CYGPKG_ERROR_OPTIONS { + # There is no associated value. +}; + +# > +# Additional compiler flags +# This option modifies the set of compiler flags for +# building the error package. These flags are used in addition +# to the set of global flags. +# +cdl_option CYGPKG_ERROR_CFLAGS_ADD { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# Suppressed compiler flags +# This option modifies the set of compiler flags for +# building the error package. These flags are removed from +# the set of global flags if present. +# +cdl_option CYGPKG_ERROR_CFLAGS_REMOVE { + # Flavor: data + # No user value, uncomment the following line to provide one. + # user_value "" + # value_source default + # Default value: "" +}; + +# < +# < +# I2C driver for FSL MXC-based platforms +# +cdl_package CYGPKG_DEVS_MXC_I2C { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current +}; + +# ipu driver for mxc +# +cdl_package CYGPKG_DEVS_IMX_IPU { + # Packages cannot be added or removed, nor can their version be changed, + # simply by editing their value. Instead the appropriate configuration + # should be used to perform these actions. + + # This value cannot be modified here. + # Flavor: booldata + # Current value: 1 current + + # The following properties are affected by this value + # option CYGHWR_MX53_LCD_LOGO + # ActiveIf: CYGPKG_DEVS_IMX_IPU +}; + +# > +# IPU version 3EX support +# When this option is enabled, it indicates the IPU version +# is 3EX +# +cdl_option CYGHWR_DEVS_IPU_3_EX { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # The inferred value should not be edited directly. + inferred_value 1 + # value_source inferred + # Default value: 0 +}; + +# IPU version 3D support +# When this option is enabled, it indicates the IPU version +# is 3D +# +cdl_option CYGHWR_DEVS_IPU_3_D { + # Flavor: bool + # No user value, uncomment the following line to provide one. + # user_value 0 + # value_source default + # Default value: 0 +}; + +# < +# < + diff --git a/packages/devs/eth/arm/tx51karo/v1_0/include/devs_eth_arm_tx51.inl b/packages/devs/eth/arm/tx51karo/v1_0/include/devs_eth_arm_tx51.inl index 60a44ff5..230921fd 100644 --- a/packages/devs/eth/arm/tx51karo/v1_0/include/devs_eth_arm_tx51.inl +++ b/packages/devs/eth/arm/tx51karo/v1_0/include/devs_eth_arm_tx51.inl @@ -118,24 +118,24 @@ static struct tx51_gpio_setup { } tx51_fec_gpio_data[] = { /* iomux reg offset, func, gpgrp, */ /* gpiofn, gpshift, */ - { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS3, 0x12, 0x13, 3, 19, }, - { IOMUXC_SW_MUX_CTL_PAD_EIM_EB2, 0x13, 0x11, 2, 22, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_RB3, 0x11, 0x13, 3, 11, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_D11, 0x12, 0x13, 3, 29, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_D9, 0x12, 0x13, 3, 31, }, - { IOMUXC_SW_MUX_CTL_PAD_EIM_EB3, 0x13, 0x11, 2, 23, }, - { IOMUXC_SW_MUX_CTL_PAD_EIM_CS2, 0x13, 0x11, 2, 27, }, - { IOMUXC_SW_MUX_CTL_PAD_EIM_CS3, 0x13, 0x11, 2, 28, }, - { IOMUXC_SW_MUX_CTL_PAD_EIM_CS4, 0x13, 0x11, 2, 29, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_RDY_INT, 0x11, 0x13, 3, 24, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS7, 0x11, 0x13, 3, 23, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_D8, 0x12, 0x13, 4, 0, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS4, 0x12, 0x13, 3, 20, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS5, 0x12, 0x13, 3, 21, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS6, 0x12, 0x13, 3, 22, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_RB2, 0x11, 0x13, 3, 10, }, - { IOMUXC_SW_MUX_CTL_PAD_EIM_CS5, 0x13, 0x11, 2, 30, }, - { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS2, 0x13, 0x13, 3, 18, }, + { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS3, 0x12, 0x13, 3, 19, }, /* MDC */ + { IOMUXC_SW_MUX_CTL_PAD_EIM_EB2, 0x13, 0x11, 2, 22, }, /* MDIO */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_RB3, 0x11, 0x13, 3, 11, }, /* RXC */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_D11, 0x12, 0x13, 3, 29, }, /* RDV */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_D9, 0x12, 0x13, 3, 31, }, /* RXD0 */ + { IOMUXC_SW_MUX_CTL_PAD_EIM_EB3, 0x13, 0x11, 2, 23, }, /* RXD1 */ + { IOMUXC_SW_MUX_CTL_PAD_EIM_CS2, 0x13, 0x11, 2, 27, }, /* RXD2 */ + { IOMUXC_SW_MUX_CTL_PAD_EIM_CS3, 0x13, 0x11, 2, 28, }, /* RXD3 */ + { IOMUXC_SW_MUX_CTL_PAD_EIM_CS4, 0x13, 0x11, 2, 29, }, /* RX_ER */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_RDY_INT, 0x11, 0x13, 3, 24, }, /* TXC */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS7, 0x11, 0x13, 3, 23, }, /* TXE */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_D8, 0x12, 0x13, 4, 0, }, /* TXD0 */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS4, 0x12, 0x13, 3, 20, }, /* TXD1 */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS5, 0x12, 0x13, 3, 21, }, /* TXD2 */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS6, 0x12, 0x13, 3, 22, }, /* TXD3 */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_RB2, 0x11, 0x13, 3, 10, }, /* COL */ + { IOMUXC_SW_MUX_CTL_PAD_EIM_CS5, 0x13, 0x11, 2, 30, }, /* CRS */ + { IOMUXC_SW_MUX_CTL_PAD_NANDF_CS2, 0x13, 0x13, 3, 18, }, /* TX_ER */ }; static struct tx51_gpio_setup tx51_fec_pwr_pins[] = { diff --git a/packages/devs/eth/fec/v2_0/cdl/fec_eth_drivers.cdl b/packages/devs/eth/fec/v2_0/cdl/fec_eth_drivers.cdl index 683509f3..101d8eb2 100644 --- a/packages/devs/eth/fec/v2_0/cdl/fec_eth_drivers.cdl +++ b/packages/devs/eth/fec/v2_0/cdl/fec_eth_drivers.cdl @@ -85,5 +85,15 @@ cdl_package CYGPKG_DEVS_ETH_FEC { to the set of global flags." } } + + cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK { + display "MXC FEC MII Gasket for RMII mode" + active_if CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53 + flavor bool + default_value 1 + description " + This option enables the use of the MII Gasket for + RMII mode found in i.MX25 and i.MX53 processors." + } } diff --git a/packages/devs/eth/fec/v2_0/include/fec.h b/packages/devs/eth/fec/v2_0/include/fec.h index 2f3f2a93..87a5a565 100644 --- a/packages/devs/eth/fec/v2_0/include/fec.h +++ b/packages/devs/eth/fec/v2_0/include/fec.h @@ -147,7 +147,7 @@ void mxc_fec_phy_write(int reg, int unit, unsigned short data); #define FEC_BD_RX_NUM 256 #define FEC_BD_TX_NUM 2 -#ifdef CYGPKG_HAL_ARM_MX25 +#ifdef CYGOPT_HAL_ARM_MXC_FEC_MIIGSK /* the defines for MIIGSK */ /* RMII frequency control: 0=50MHz, 1=5MHz */ @@ -199,7 +199,7 @@ typedef volatile void mxc_fec_reg_t; #define erdsr 0x180 /*Pointer to Receive Descriptor Ring*/ #define etdsr 0x184 /*Pointer to Transmit Descriptor Ring*/ #define emrbr 0x188 /*Maximum Receive Buffer size*/ -#ifdef CYGPKG_HAL_ARM_MX25 +#ifdef CYGOPT_HAL_ARM_MXC_FEC_MIIGSK #define miigsk_cfgr 0x300 /* MIIGSK Configuration Register */ #define miigsk_enr 0x308 /* MIIGSK Enable Register */ #endif diff --git a/packages/devs/eth/fec/v2_0/src/if_fec.c b/packages/devs/eth/fec/v2_0/src/if_fec.c index 172588f4..8708e63d 100644 --- a/packages/devs/eth/fec/v2_0/src/if_fec.c +++ b/packages/devs/eth/fec/v2_0/src/if_fec.c @@ -299,7 +299,7 @@ mxc_fec_set_mac_address(volatile mxc_fec_reg_t *hw_reg, unsigned char *enaddr) mxc_fec_reg_write(hw_reg, paur, value << 16); } -#ifdef CYGPKG_HAL_ARM_MX25 +#ifdef CYGOPT_HAL_ARM_MXC_FEC_MIIGSK static int mxc_fec_mii_setup(mxc_fec_priv_t *priv) { volatile mxc_fec_reg_t *hw_reg = priv->hw_reg; diff --git a/packages/devs/eth/phy/v2_0/src/LAN8700.c b/packages/devs/eth/phy/v2_0/src/LAN8700.c index 85da4d03..f0dffd6e 100644 --- a/packages/devs/eth/phy/v2_0/src/LAN8700.c +++ b/packages/devs/eth/phy/v2_0/src/LAN8700.c @@ -2,7 +2,7 @@ // // dev/AM79C874.c // -// Ethernet transceiver (PHY) support +// Ethernet transceiver (PHY) support // //========================================================================== //####ECOSGPLCOPYRIGHTBEGIN#### @@ -41,11 +41,11 @@ //#####DESCRIPTIONBEGIN#### // // Author(s): LW@KARO-electronics.de -// Contributors: +// Contributors: // Date: 2008-01-28 -// Purpose: +// Purpose: // Description: Support for ethernet SMSC LAN8700 PHY -// +// // //####DESCRIPTIONEND#### // @@ -105,8 +105,9 @@ static bool lan8700_stat(eth_phy_access_t *f, int *state) return true; } } - return false; + return false; } _eth_phy_dev("SMSC LAN8700 Rev. 3", 0x0007c0c3, lan8700_stat) _eth_phy_dev("SMSC LAN8700 Rev. 4", 0x0007c0c4, lan8700_stat) +_eth_phy_dev("SMSC LAN8710 Rev. 1", 0x0007c0f1, lan8700_stat) diff --git a/packages/devs/flash/arm/mxc/v2_0/cdl/mxc_flash_select.cdl b/packages/devs/flash/arm/mxc/v2_0/cdl/mxc_flash_select.cdl index 530e810a..2e284c32 100644 --- a/packages/devs/flash/arm/mxc/v2_0/cdl/mxc_flash_select.cdl +++ b/packages/devs/flash/arm/mxc/v2_0/cdl/mxc_flash_select.cdl @@ -66,7 +66,8 @@ cdl_package CYGPKG_DEVS_FLASH_ONMXC { cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC { display "MXC platform MMC card for newer SDHC controllers" - active_if { CYGPKG_HAL_ARM_MX37_3STACK || CYGPKG_HAL_ARM_MX35_3STACK || CYGPKG_HAL_ARM_MX25_3STACK || CYGPKG_HAL_ARM_MX51} + active_if { CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || + CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX51 } default_value 1 requires { CYGSEM_IO_FLASH_READ_INDIRECT == 1 } compile mxcmci_core.c mxcmci_host.c mxcmci_mmc.c mxcmci_sd.c mxcmci_sd.c diff --git a/packages/devs/flash/arm/mxc/v2_0/include/mxc_nfc_v3.h b/packages/devs/flash/arm/mxc/v2_0/include/mxc_nfc_v3.h index 89b31ffd..347e8133 100644 --- a/packages/devs/flash/arm/mxc/v2_0/include/mxc_nfc_v3.h +++ b/packages/devs/flash/arm/mxc/v2_0/include/mxc_nfc_v3.h @@ -109,17 +109,19 @@ enum nfc_output_mode { CYG_MACRO_START \ int loops = MAX_LOOPS; \ static int max_loops = MAX_LOOPS; \ + \ while ((nfc_reg_read(NFC_IPC_REG) & NFC_IPC_AUTO_DONE) == 0) { \ HAL_DELAY_US(10); \ if (loops-- < 0) { \ - diag_printf("%s: Timeout waiting for prog done\n", __FUNCTION__); \ + diag_printf("%s: Timeout waiting for prog done\n", \ + __func__); \ break; \ } \ } \ - if (loops < max_loops) { \ + if (MAX_LOOPS - loops < max_loops) { \ diag_printf1("%s: auto_prog done after %u loops\n", \ __FUNCTION__, MAX_LOOPS - loops); \ - max_loops = loops; \ + max_loops = MAX_LOOPS - loops; \ } \ nfc_reg_write((nfc_reg_read(NFC_IPC_REG) & ~NFC_IPC_AUTO_DONE), \ NFC_IPC_REG); \ @@ -130,23 +132,49 @@ enum nfc_output_mode { CYG_MACRO_START \ int loops = MAX_LOOPS; \ static int max_loops = MAX_LOOPS; \ + \ while ((nfc_reg_read(NFC_IPC_REG) & NFC_IPC_INT) == 0) { \ HAL_DELAY_US(10); \ if (loops-- < 0) { \ - diag_printf("%s: Timeout waiting for NFC ready\n", __FUNCTION__); \ + diag_printf("%s: Timeout waiting for NFC ready\n", \ + __func__); \ break; \ } \ } \ - if (loops < max_loops) { \ + if (MAX_LOOPS - loops < max_loops) { \ diag_printf1("%s: NFC ready after %u loops\n", \ __FUNCTION__, MAX_LOOPS - loops); \ - max_loops = loops; \ + max_loops = MAX_LOOPS - loops; \ } \ nfc_reg_write(0, NFC_IPC_REG); \ CYG_MACRO_END +#if 0 #define nfc_reg_read(r) readl(r) #define nfc_reg_write(v, r) writel(v, r) +#else +#define nfc_reg_read(r) __nfc_reg_read(r, #r, __func__, __LINE__) +#define nfc_reg_write(v, r) __nfc_reg_write(v, r, #r, __func__, __LINE__) + +static inline u32 __nfc_reg_read(unsigned long reg, const char *reg_name, + const char *fn, int ln) +{ + u32 val; + + val = readl(reg); + if (g_nfc_debug_level >= NFC_DEBUG_MAX) + diag_printf("%s@%d: Read %08x from %s[%08lx]\n", fn, ln, val, reg_name, reg); + return val; +} + +static inline void __nfc_reg_write(u32 val, unsigned long reg, + const char *reg_name, const char *fn, int ln) +{ + if (g_nfc_debug_level >= NFC_DEBUG_MAX) + diag_printf("%s@%d: Writing %08x to %s[%08lx]\n", fn, ln, val, reg_name, reg); + writel(val, reg); +} +#endif static void write_nfc_ip_reg(u32 val, u32 reg) { @@ -167,10 +195,10 @@ static void write_nfc_ip_reg(u32 val, u32 reg) return; } } - if (loops < max_loops) { - diag_printf("%s: NFC ready after %u loops\n", + if (MAX_LOOPS - loops < max_loops) { + diag_printf1("%s: NFC ready after %u loops\n", __FUNCTION__, MAX_LOOPS - loops); - max_loops = loops; + max_loops = MAX_LOOPS - loops; } nfc_reg_write(val, reg); nfc_reg_write((nfc_reg_read(NFC_IPC_REG) & ~NFC_IPC_CREQ), NFC_IPC_REG); @@ -225,7 +253,6 @@ static void NFC_SET_NFC_ACTIVE_CS(u32 cs_line) nfc_reg_write(v, NAND_CONFIGURATION1_REG); } -#ifdef IMX51_TO_2 static inline u16 NFC_STATUS_READ(void) { u16 val = nfc_reg_read(NAND_STATUS_SUM_REG); @@ -235,28 +262,6 @@ static inline u16 NFC_STATUS_READ(void) } return val; } -#else -static inline u16 NFC_STATUS_READ(void) -{ - u32 status; - int i; - u16 status_sum = 0; - - /* Cannot rely on STATUS_SUM register due to errata */ - for (i = 0; i < num_of_nand_chips; i++) { - NFC_SET_NFC_ACTIVE_CS(i); - do { - nfc_reg_write(NAND_LAUNCH_AUTO_STAT, NAND_LAUNCH_REG); - status = (nfc_reg_read(NAND_CONFIGURATION1_REG) & 0x00FF0000) >> 16; - } while ((status & 0x40) == 0); // make sure I/O 6 == 1 - /* Get Pass/Fail status */ - status = (nfc_reg_read(NAND_CONFIGURATION1_REG) >> 16) & 0x1; - status_sum |= (status << i); - } - diag_printf("NFC TO2 STATUS: %04x\n", status_sum); - return status_sum; -} -#endif /* This function uses a global variable for the page size. It shouldn't be a big * problem since we don't expect mixed page size nand flash parts on the same IC. diff --git a/packages/devs/flash/arm/mxc/v2_0/include/mxcmci_core.h b/packages/devs/flash/arm/mxc/v2_0/include/mxcmci_core.h index 04774da3..9042f085 100644 --- a/packages/devs/flash/arm/mxc/v2_0/include/mxcmci_core.h +++ b/packages/devs/flash/arm/mxc/v2_0/include/mxcmci_core.h @@ -30,25 +30,21 @@ Portability: Portable to other compilers or platforms. #include "mxcmci_mmc.h" #include "mxcmci_host.h" -#define SUCCESS 0 -#define FAIL 1 -#define NO_ARG 0 -#define RCA_SHIFT 16 -#define ONE 1 -#define FOUR 4 -#define EIGHT 8 -#define TWO_K_SIZE 2048 -#define MMCSD_READY_TIMEOUT 3000 /* ~(3s / (2 * 48 * 10us)) */ -#define ESDHC_ACMD41_TIMEOUT 48000 /* 1.5 sec =1500 msec delay for ACMD41 cmd */ +#define SUCCESS 0 +#define FAIL 1 +#define NO_ARG 0 +#define RCA_SHIFT 16 +#define MMCSD_READY_TIMEOUT 3000 /* ~(3s / (2 * 48 * 10us)) */ +#define ESDHC_ACMD41_TIMEOUT 48000 /* 1.5 sec =1500 msec delay for ACMD41 cmd */ #define MMCSD_SUPPORT #define CURR_CARD_STATE(r) ((cyg_uint32) ((r) & 0x1E00) >> 9) -/*Defines of CSD data*/ -#define CSD_STRUCT_MSK 0x00C00000 -#define CSD_STRUCT_SHIFT 22 -#define MMC_CSD_SPEC_VERS_MASK 0x003C0000 -#define MMC_CSD_SPEC_VERS_SHIFT 18 +/* Defines of CSD data*/ +#define CSD_STRUCT_MSK 0x00C00000 +#define CSD_STRUCT_SHIFT 22 +#define MMC_CSD_SPEC_VERS_MASK 0x003C0000 +#define MMC_CSD_SPEC_VERS_SHIFT 18 extern cyg_uint32 Card_rca; extern cyg_uint32 address_mode; @@ -56,6 +52,7 @@ extern cyg_uint32 MMC_Spec_vers; extern card_specific_data csd; /* Global variable for Card Specific Data */ extern cyg_uint32 Card_capacity_size; /* Capacity size (C_SIZE) for card*/ extern cyg_uint32 CCC; /* Card Command Class */ +extern int HighCapacityCard; /* Defines the id for each command */ @@ -119,7 +116,7 @@ typedef enum MMC_CSD_1_1, MMC_CSD_1_2, MMC_UNKNOWN -}card_type; +} card_type; typedef struct { @@ -127,12 +124,12 @@ typedef struct cyg_uint32 cid1; cyg_uint32 cid2; cyg_uint32 cid3; -}card_ident; +} card_ident; /* CARD Flash Configuration Parameters Structure */ typedef struct { - cyg_uint32 length; /* Length of Card data to read */ + cyg_uint32 length; /* Length of Card data to read */ } CARD_FLASH_CFG_PARMS_T; /*================================================================================================== @@ -149,6 +146,8 @@ extern cyg_uint32 mxcmci_get_cid (void); extern cyg_uint32 mxcmci_trans_prepare(void); extern void mxcmci_cmd_config (command_t *cmd_config,cyg_uint32 index,cyg_uint32 argument,xfer_type_t transfer,response_format_t format, data_present_select data,crc_check_enable crc,cmdindex_check_enable cmdindex); +extern cyg_uint32 mxcmci_trans_status(void); +extern cyg_uint32 card_get_csd(void); #endif //_MXCMCI_CORE_H_ diff --git a/packages/devs/flash/arm/mxc/v2_0/include/mxcmci_mmc.h b/packages/devs/flash/arm/mxc/v2_0/include/mxcmci_mmc.h index 697aa3d6..681bdc20 100644 --- a/packages/devs/flash/arm/mxc/v2_0/include/mxcmci_mmc.h +++ b/packages/devs/flash/arm/mxc/v2_0/include/mxcmci_mmc.h @@ -1,14 +1,14 @@ #ifndef _MXCMCI_MMC_H_ #define _MXCMCI_MMC_H_ -// ========================================================================== -// +// ========================================================================== +// // Module Name: mxcmci_mmc.h // // General Description: Limited Bootloader eSDHC Driver. -// -// -// ========================================================================== +// +// +// ========================================================================== //####ECOSGPLCOPYRIGHTBEGIN#### // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. @@ -49,7 +49,7 @@ // Date: 2008-05-13 Initial version // Purpose: // Description: -// +// // //####DESCRIPTIONEND#### //==================================================================================================== @@ -65,7 +65,7 @@ #define CARD_BUSY_BIT 0x80000000 #define CURR_STATE_SHIFT 9 #define MMC_SPEC_VER 0x003C0000 -#define MMC_SPEC_VER_SHIFT 18 +#define MMC_SPEC_VER_SHIFT 18 #define MMC_R1_SWITCH_ERROR_MASK 0x80 #define SWITCH_ERROR_SHIFT 7 #define BUS_SIZE_SHIFT 2 @@ -81,14 +81,15 @@ extern cyg_uint32 mmc_get_spec_ver (void); extern cyg_uint32 sd_voltage_validation (void); extern cyg_uint32 sd_init(cyg_uint32); extern cyg_uint32 card_flash_query(void* data); +extern int sdmmc_set_blklen(int len); -typedef struct +typedef struct { cyg_uint32 csd0; cyg_uint32 csd1; cyg_uint32 csd2; cyg_uint32 csd3; -}card_specific_data; +} card_specific_data; #endif /* _MXCMCI_MMC_H_ */ diff --git a/packages/devs/flash/arm/mxc/v2_0/src/mxc_mmc.c b/packages/devs/flash/arm/mxc/v2_0/src/mxc_mmc.c index 118f6f92..86a79913 100644 --- a/packages/devs/flash/arm/mxc/v2_0/src/mxc_mmc.c +++ b/packages/devs/flash/arm/mxc/v2_0/src/mxc_mmc.c @@ -66,11 +66,12 @@ #include #include -#if defined(CYGPKG_HAL_ARM_MX31ADS) || defined(CYGPKG_HAL_ARM_MX31_3STACK) +#ifdef CYGPKG_HAL_ARM_MX31 #include #endif -#if defined(CYGPKG_HAL_ARM_MX25_3STACK) || defined(CYGPKG_HAL_ARM_MX35_3STACK) || defined(CYGPKG_HAL_ARM_MX37_3STACK) || defined(CYGPKG_HAL_ARM_MX51) +#if defined(CYGPKG_HAL_ARM_MX25) || defined(CYGPKG_HAL_ARM_MX35) || \ + defined(CYGPKG_HAL_ARM_MX37) || defined(CYGPKG_HAL_ARM_MX51) #include #endif diff --git a/packages/devs/flash/arm/mxc/v2_0/src/mxc_nfc.c b/packages/devs/flash/arm/mxc/v2_0/src/mxc_nfc.c index 683b954e..7b19ff0e 100644 --- a/packages/devs/flash/arm/mxc/v2_0/src/mxc_nfc.c +++ b/packages/devs/flash/arm/mxc/v2_0/src/mxc_nfc.c @@ -167,7 +167,7 @@ CYG_MACRO_END #define NAND_CONFIGURATION1_REG 0xDEADEEEE #define NFC_FLASH_CONFIG2_REG 0xDEADEEEE #define NFC_FLASH_CONFIG2_ECC_EN 0xDEADEEEE -#define write_nfc_ip_reg(a, b) +#define write_nfc_ip_reg(a, b) CYG_EMPTY_STATEMENT #endif #ifndef MXCFLASH_SELECT_MULTI @@ -188,7 +188,7 @@ void nandflash_query(void *data) __FUNCTION__, __LINE__, &id[0], data); memcpy(data, id, sizeof(id)); } - nfc_printf(NFC_DEBUG_MAX, "%s@%d %p\n", __FUNCTION__, __LINE__, + nfc_printf(NFC_DEBUG_MAX, "%s@%d called from %p\n", __FUNCTION__, __LINE__, __builtin_return_address(0)); } @@ -290,21 +290,21 @@ static const flash_dev_info_t *flash_dev_info; static const flash_dev_info_t supported_devices[] = { #include }; -#define NUM_DEVICES NUM_ELEMS(supported_devices) - -#define COL_CYCLE flash_dev_info->col_cycle -#define ROW_CYCLE flash_dev_info->row_cycle -#define NF_PG_SZ ((flash_dev_info->page_size) * num_of_nand_chips) -#define NF_SPARE_SZ ((flash_dev_info->spare_size) * num_of_nand_chips) -#define NF_PG_PER_BLK flash_dev_info->pages_per_block -#define NF_DEV_SZ ((flash_dev_info->device_size) * num_of_nand_chips_for_nandsize) -#define NF_BLK_SZ ((flash_dev_info->block_size) * num_of_nand_chips) -#define NF_BLK_CNT ((flash_dev_info->block_count) / scale_block_cnt) -#define NF_VEND_INFO flash_dev_info->vendor_info -#define NF_OPTIONS flash_dev_info->options -#define NF_BBT_MAX_NR flash_dev_info->bbt_blk_max_nr -#define NF_OPTIONS flash_dev_info->options -#define NF_BI_OFF flash_dev_info->bi_off +#define NUM_DEVICES NUM_ELEMS(supported_devices) + +#define COL_CYCLE flash_dev_info->col_cycle +#define ROW_CYCLE flash_dev_info->row_cycle +#define NF_PG_SZ (flash_dev_info->page_size * num_of_nand_chips) +#define NF_SPARE_SZ (flash_dev_info->spare_size * num_of_nand_chips) +#define NF_PG_PER_BLK flash_dev_info->pages_per_block +#define NF_DEV_SZ (flash_dev_info->device_size * num_of_nand_chips_for_nandsize) +#define NF_BLK_SZ (flash_dev_info->block_size * num_of_nand_chips) +#define NF_BLK_CNT (flash_dev_info->block_count / scale_block_cnt) +#define NF_VEND_INFO flash_dev_info->vendor_info +#define NF_OPTIONS flash_dev_info->options +#define NF_BBT_MAX_NR flash_dev_info->bbt_blk_max_nr +#define NF_OPTIONS flash_dev_info->options +#define NF_BI_OFF flash_dev_info->bi_off #define MXC_NAND_ADDR_MASK (NF_DEV_SZ - 1) #define BLOCK_TO_OFFSET(blk) ((blk) * NF_PG_PER_BLK * NF_PG_SZ) @@ -315,7 +315,7 @@ static const flash_dev_info_t supported_devices[] = { static u8 *g_bbt, *g_page_buf; static u32 g_bbt_sz; -static bool mxcnfc_init_ok = false; +static bool mxcnfc_init_ok; static bool mxc_nfc_scan_done; // this callback allows the platform specific function to be called right @@ -369,6 +369,8 @@ void mxc_flash_enable(void *start, void *end) flash_addr_t s = (unsigned long)start & MXC_NAND_ADDR_MASK; flash_addr_t e = ((unsigned long)end - 1) & MXC_NAND_ADDR_MASK; + if (start == end) + return; if (flash_enable++ == 0) { flash_region_start = s; flash_region_end = e; @@ -389,6 +391,8 @@ void mxc_flash_disable(void *start, void *end) flash_addr_t s = (unsigned long)start & MXC_NAND_ADDR_MASK; flash_addr_t e = ((unsigned long)end - 1) & MXC_NAND_ADDR_MASK; + if (start == end) + return; if (flash_enable) { if (--flash_enable == 0) { diag_printf1("Disabling flash region 0x%08llx..0x%08llx\n", @@ -423,9 +427,7 @@ nandflash_hwr_init(void) NFC_CMD_INPUT(FLASH_Reset); // Look through table for device data - nfc_printf(NFC_DEBUG_MAX, "%s@%d %p\n", __FUNCTION__, __LINE__, &id[0]); flash_dev_query(&id[0]); - nfc_printf(NFC_DEBUG_MAX, "%s@%d\n", __FUNCTION__, __LINE__); flash_dev_info = supported_devices; for (i = 0; i < NUM_DEVICES; i++) { @@ -435,7 +437,6 @@ nandflash_hwr_init(void) break; flash_dev_info++; } - nfc_printf(NFC_DEBUG_MAX, "%s@%d\n", __FUNCTION__, __LINE__); // Did we find the device? If not, return error. if (NUM_DEVICES == i) { @@ -458,12 +459,10 @@ nandflash_hwr_init(void) nfc_printf(NFC_DEBUG_MED, "%s(): %d out of NUM_DEVICES=%d, id=0x%02x\n", __FUNCTION__, i, NUM_DEVICES, flash_dev_info->device_id); - if (nfc_setup) { - nfc_printf(NFC_DEBUG_MAX, "%s@%d\n", __FUNCTION__, __LINE__); + if (nfc_setup) g_nfc_version = nfc_setup(NF_PG_SZ / num_of_nand_chips, flash_dev_info->port_size, - flash_dev_info->type, num_of_nand_chips); - } - nfc_printf(NFC_DEBUG_MAX, "%s@%d\n", __FUNCTION__, __LINE__); + flash_dev_info->type, num_of_nand_chips); + diag_printf1("NFC version: %02x\n", g_nfc_version); if (g_nfc_version >= MXC_NFC_V3) { for (i = 2; i <= NUM_OF_CS_LINES; i++) { diff --git a/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_core.c b/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_core.c index 43d1fb62..474e363e 100644 --- a/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_core.c +++ b/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_core.c @@ -63,13 +63,13 @@ static cyg_uint32 csd_get_value(void *csd, cyg_uint32 start_bit, #define MMCSD_INIT_DELAY 64 -cyg_uint32 Card_rca = 0x1; /* Relative Card Address */ -card_ident Card_identification; /* Card Identification Data */ -card_type Card_type; /* Card Type */ -cyg_uint32 MMC_Spec_vers = 0x1; /* Spec vers used for MMC */ -card_specific_data csd; /* Global variable for Card Specific Data */ -cyg_uint32 Card_capacity_size = 0; /*Card capacity size */ -cyg_uint32 CCC = 0; /* Card Command Class */ +cyg_uint32 Card_rca = 0x1; /* Relative Card Address */ +card_ident Card_identification; /* Card Identification Data */ +card_type Card_type; /* Card Type */ +cyg_uint32 MMC_Spec_vers = 0x1; /* Spec vers used for MMC */ +card_specific_data csd; /* Global variable for Card Specific Data */ +cyg_uint32 Card_capacity_size = 0; /* Card capacity size */ +cyg_uint32 CCC = 0; /* Card Command Class */ int Card_Mode = 2; int HighCapacityCard = 0; @@ -162,39 +162,37 @@ Detailed Description: ==============================================================================*/ cyg_uint32 card_get_csd(void) { + command_t cmd; + command_response_t response; + cyg_uint32 status = FAIL; + cyg_uint32 card_address = (Card_rca << RCA_SHIFT); + + /* Configure CMD9 for MMC/SD card */ + /* 16bit card address is expected as Argument */ + mxcmci_cmd_config(&cmd, CMD9, card_address, READ, RESPONSE_136, + DATA_PRESENT_NONE, ENABLE, DISABLE); + + /* Issue Command CMD9 to Extrace CSD register contents */ + + if (host_send_cmd(&cmd) != FAIL) { + /* Read Command response */ + response.format = RESPONSE_136; + host_read_response(&response); + + /* Assign Response to CSD Strcuture */ + csd.csd0 = response.cmd_rsp0; + csd.csd1 = response.cmd_rsp1; + csd.csd2 = response.cmd_rsp2; + csd.csd3 = response.cmd_rsp3; + + flash_dprintf(FLASH_DEBUG_MAX, "CSD:%x:%x:%x:%x\n", csd.csd0, + csd.csd1, csd.csd2, csd.csd3); + status = SUCCESS; + } else { + diag_printf("Get CSD Failed.\n"); + } - command_t cmd; - command_response_t response; - cyg_uint32 status = FAIL; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); - - /* Configure CMD9 for MMC/SD card */ - /* 16bit card address is expected as Argument */ - mxcmci_cmd_config(&cmd, CMD9, card_address, READ, RESPONSE_136, - DATA_PRESENT_NONE, ENABLE, DISABLE); - - /* Issue Command CMD9 to Extrace CSD register contents */ - - if (host_send_cmd(&cmd) != FAIL) { - /* Read Command response */ - response.format = RESPONSE_136; - host_read_response(&response); - - /* Assign Response to CSD Strcuture */ - csd.csd0 = response.cmd_rsp0; - csd.csd1 = response.cmd_rsp1; - csd.csd2 = response.cmd_rsp2; - csd.csd3 = response.cmd_rsp3; - - flash_dprintf(FLASH_DEBUG_MAX, "CSD:%x:%x:%x:%x\n", csd.csd0, - csd.csd1, csd.csd2, csd.csd3); - status = SUCCESS; - } else { - diag_printf("Get CSD Failed.\n"); - } - - return status; - + return status; } static cyg_uint32 csd_get_value(void *csd, cyg_uint32 start_bit, @@ -236,248 +234,242 @@ static cyg_uint32 csd_get_value(void *csd, cyg_uint32 start_bit, __FUNCTION__, value, *pcsd, *(pcsd + 1), *(pcsd + 2), *(pcsd + 3)); return value; - } cyg_uint32 card_get_capacity_size(void) { - cyg_uint32 capacity = 0; - cyg_uint32 c_size, c_size_mult, blk_len; - - if (!csd.csd0 && !csd.csd1 && !csd.csd2 && !csd.csd3) - flash_dprintf(FLASH_DEBUG_MAX, - "WARNINGS:mxcmci_init should be done first!\n"); - - switch (Card_type) { - case SD_CSD_1_0: - case MMC_CSD_1_0: - case MMC_CSD_1_1: - case MMC_CSD_1_2: + cyg_uint32 capacity = 0; + cyg_uint32 c_size, c_size_mult, blk_len; + + if (!csd.csd0 && !csd.csd1 && !csd.csd2 && !csd.csd3) + flash_dprintf(FLASH_DEBUG_MAX, + "WARNINGS:mxcmci_init should be done first!\n"); + + switch (Card_type) { + case SD_CSD_1_0: + case MMC_CSD_1_0: + case MMC_CSD_1_1: + case MMC_CSD_1_2: c_size = csd_get_value((void*)&csd, 62, 73); - c_size_mult = csd_get_value(&csd, 47, 49); - blk_len = csd_get_value(&csd, 80, 83); - capacity = (c_size + 1) << (c_size_mult + 2 + blk_len - 10); - break; - case SD_CSD_2_0: - //blk_len = csd_get_value(&csd, 80, 83); - c_size = csd_get_value(&csd, 48, 69); - capacity = (c_size + 1) * 512; /* block length is fixed to 512B */ - break; - default: - capacity = 1; - break; - } - - /* check whether the card is high capacity card */ - if(capacity>2*1024*1024) - HighCapacityCard = 1; - else - HighCapacityCard = 0; - - return capacity; + c_size_mult = csd_get_value(&csd, 47, 49); + blk_len = csd_get_value(&csd, 80, 83); + capacity = (c_size + 1) << (c_size_mult + 2 + blk_len - 10); + break; + case SD_CSD_2_0: + //blk_len = csd_get_value(&csd, 80, 83); + c_size = csd_get_value(&csd, 48, 69); + capacity = (c_size + 1) * 512; /* block length is fixed to 512B */ + break; + default: + capacity = 1; + break; + } + /* check whether the card is high capacity card */ + if(capacity>2*1024*1024) + HighCapacityCard = 1; + else + HighCapacityCard = 0; + + return capacity; } -cyg_uint32 mxcmci_data_read(cyg_uint32 * dest_ptr, cyg_uint32 len, - cyg_uint32 offset) +cyg_uint32 mxcmci_data_read(cyg_uint32 *dest_ptr, cyg_uint32 len, + cyg_uint32 offset) { - cyg_uint32 read_status = FAIL; - - read_status = mmc_data_read(dest_ptr, len, offset); + cyg_uint32 read_status = FAIL; - if (read_status) { - len = 0; - } - return len; + read_status = mmc_data_read(dest_ptr, len, offset); + if (read_status) { + len = 0; + } + return len; } cyg_uint32 mxcmci_software_reset(void) { - command_t cmd; - cyg_uint32 response = FAIL; - - /*Configure CMD0 for MMC/SD card */ - /*CMD0 doesnt expect any response */ - mxcmci_cmd_config(&cmd, CMD0, NO_ARG, READ, RESPONSE_NONE, - DATA_PRESENT_NONE, DISABLE, DISABLE); - - /*Issue CMD0 to MMC/SD card to put in active state */ - if (host_send_cmd(&cmd) != FAIL) { - response = SUCCESS; - } else { - diag_printf("Card SW Reset Failed.\n"); - } - - return response; + command_t cmd; + cyg_uint32 response = FAIL; + + /*Configure CMD0 for MMC/SD card */ + /*CMD0 doesnt expect any response */ + mxcmci_cmd_config(&cmd, CMD0, NO_ARG, READ, RESPONSE_NONE, + DATA_PRESENT_NONE, DISABLE, DISABLE); + + /*Issue CMD0 to MMC/SD card to put in active state */ + if (host_send_cmd(&cmd) != FAIL) { + response = SUCCESS; + } else { + diag_printf("Card SW Reset Failed.\n"); + } + + return response; } cyg_uint32 mxcmci_get_cid(void) { - command_t cmd; - cyg_uint32 cid_request = FAIL; - command_response_t response; - - /* Configure CMD2 for card */ - /* No Argument is expected for CMD2 */ - mxcmci_cmd_config(&cmd, CMD2, NO_ARG, READ, RESPONSE_136, - DATA_PRESENT_NONE, ENABLE, DISABLE); - - /* Issue CMD2 to card to determine CID contents */ - if (host_send_cmd(&cmd) == FAIL) { - cid_request = FAIL; - diag_printf("Send CMD2 Failed.\n"); - } else { - /* Read Command response */ - response.format = RESPONSE_136; - host_read_response(&response); - - /* Assign CID values to mmc_cid structures */ - Card_identification.cid0 = response.cmd_rsp0; - Card_identification.cid1 = response.cmd_rsp1; - Card_identification.cid2 = response.cmd_rsp2; - Card_identification.cid3 = response.cmd_rsp3; - - /* Assign cid_request as SUCCESS */ - cid_request = SUCCESS; - } - - flash_dprintf(FLASH_DEBUG_MAX, "%s:CID=%X:%X:%X:%X\n", __FUNCTION__, - Card_identification.cid0, Card_identification.cid1, - Card_identification.cid2, Card_identification.cid3); - return cid_request; + command_t cmd; + cyg_uint32 cid_request = FAIL; + command_response_t response; + + /* Configure CMD2 for card */ + /* No Argument is expected for CMD2 */ + mxcmci_cmd_config(&cmd, CMD2, NO_ARG, READ, RESPONSE_136, + DATA_PRESENT_NONE, ENABLE, DISABLE); + + /* Issue CMD2 to card to determine CID contents */ + if (host_send_cmd(&cmd) == FAIL) { + cid_request = FAIL; + diag_printf("Send CMD2 Failed.\n"); + } else { + /* Read Command response */ + response.format = RESPONSE_136; + host_read_response(&response); + + /* Assign CID values to mmc_cid structures */ + Card_identification.cid0 = response.cmd_rsp0; + Card_identification.cid1 = response.cmd_rsp1; + Card_identification.cid2 = response.cmd_rsp2; + Card_identification.cid3 = response.cmd_rsp3; + + /* Assign cid_request as SUCCESS */ + cid_request = SUCCESS; + } + + flash_dprintf(FLASH_DEBUG_MAX, "%s:CID=%X:%X:%X:%X\n", __FUNCTION__, + Card_identification.cid0, Card_identification.cid1, + Card_identification.cid2, Card_identification.cid3); + return cid_request; } cyg_uint32 mxcmci_trans_prepare(void) { - command_t cmd; - cyg_uint32 card_state = 0; - cyg_uint32 transfer_status = 0; - command_response_t response; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); - - /* Configure CMD7 for MMC card */ - /* 16bit card address is expected as Argument */ - mxcmci_cmd_config(&cmd, CMD7, card_address, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Sending the card from stand-by to transfer state */ - if (host_send_cmd(&cmd) == FAIL) { - transfer_status = FAIL; - diag_printf("Send CMD7 Failed.\n"); - } else { - - /* Configure CMD13 to read status of the card becuase CMD7 has R1b response */ - mxcmci_cmd_config(&cmd, CMD13, card_address, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - if (host_send_cmd(&cmd) == FAIL) { - transfer_status = FAIL; - diag_printf("Send CMD13 Failed.\n"); - } else { - /* Read Command response */ - response.format = RESPONSE_48; - host_read_response(&response); - - card_state = CURR_CARD_STATE(response.cmd_rsp0); - - if (card_state == TRAN) { - transfer_status = SUCCESS; - - } else { - diag_printf("card_state: 0x%x\n", card_state); - transfer_status = FAIL; - } - } - - } - - return transfer_status; + command_t cmd; + cyg_uint32 card_state = 0; + cyg_uint32 transfer_status = 0; + command_response_t response; + cyg_uint32 card_address = (Card_rca << RCA_SHIFT); + + /* Configure CMD7 for MMC card */ + /* 16bit card address is expected as Argument */ + mxcmci_cmd_config(&cmd, CMD7, card_address, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Sending the card from stand-by to transfer state */ + if (host_send_cmd(&cmd) == FAIL) { + transfer_status = FAIL; + diag_printf("Send CMD7 Failed.\n"); + } else { + + /* Configure CMD13 to read status of the card becuase CMD7 has R1b response */ + mxcmci_cmd_config(&cmd, CMD13, card_address, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + if (host_send_cmd(&cmd) == FAIL) { + transfer_status = FAIL; + diag_printf("Send CMD13 Failed.\n"); + } else { + /* Read Command response */ + response.format = RESPONSE_48; + host_read_response(&response); + + card_state = CURR_CARD_STATE(response.cmd_rsp0); + + if (card_state == TRAN) { + transfer_status = SUCCESS; + + } else { + diag_printf("card_state: 0x%x\n", card_state); + transfer_status = FAIL; + } + } + + } + return transfer_status; } cyg_uint32 mxcmci_trans_status(void) { - command_t cmd; - cyg_uint32 card_state = 0; - cyg_uint32 transfer_status = 0; - command_response_t response; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); - - /* Configure CMD13 to read status of the card becuase CMD7 has R1b response */ - mxcmci_cmd_config(&cmd, CMD13, card_address, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - if (host_send_cmd(&cmd) == FAIL) { - diag_printf("Fail, CMD13\n"); - transfer_status = FAIL; - } - - else { - /* Read Command response */ - response.format = RESPONSE_48; - host_read_response(&response); - - card_state = CURR_CARD_STATE(response.cmd_rsp0); - - if (card_state == TRAN) { - transfer_status = SUCCESS; - //diag_printf("card_state: 0x%x\n", card_state); - } - - else { - //diag_printf("card_state: 0x%x\n", card_state); - transfer_status = FAIL; - } - } - return transfer_status; + command_t cmd; + cyg_uint32 card_state = 0; + cyg_uint32 transfer_status = 0; + command_response_t response; + cyg_uint32 card_address = (Card_rca << RCA_SHIFT); + + /* Configure CMD13 to read status of the card becuase CMD7 has R1b response */ + mxcmci_cmd_config(&cmd, CMD13, card_address, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + if (host_send_cmd(&cmd) == FAIL) { + diag_printf("Fail, CMD13\n"); + transfer_status = FAIL; + } + + else { + /* Read Command response */ + response.format = RESPONSE_48; + host_read_response(&response); + + card_state = CURR_CARD_STATE(response.cmd_rsp0); + + if (card_state == TRAN) { + transfer_status = SUCCESS; + //diag_printf("card_state: 0x%x\n", card_state); + } + else { + //diag_printf("card_state: 0x%x\n", card_state); + transfer_status = FAIL; + } + } + return transfer_status; } -void mxcmci_cmd_config(command_t * cmd_config, cyg_uint32 index, - cyg_uint32 argument, xfer_type_t transfer, - response_format_t format, data_present_select data, - crc_check_enable crc, cmdindex_check_enable cmdindex) +void mxcmci_cmd_config(command_t *cmd_config, cyg_uint32 index, + cyg_uint32 argument, xfer_type_t transfer, + response_format_t format, data_present_select data, + crc_check_enable crc, cmdindex_check_enable cmdindex) { + command_t *cmd; - command_t *cmd; - - /* Assign cmd to cmd_config */ - cmd = cmd_config; + /* Assign cmd to cmd_config */ + cmd = cmd_config; - /* Configure Command index */ - cmd->command = index; + /* Configure Command index */ + cmd->command = index; - /* Configure Command Argument */ - cmd->arg = argument; + /* Configure Command Argument */ + cmd->arg = argument; - /* Configure Data transfer type */ - cmd->data_transfer = transfer; + /* Configure Data transfer type */ + cmd->data_transfer = transfer; - /* Configure Response Format */ - cmd->response_format = format; + /* Configure Response Format */ + cmd->response_format = format; - /* Configure Data Present Select */ - cmd->data_present = data; + /* Configure Data Present Select */ + cmd->data_present = data; - /* Configiure CRC check Enable */ - cmd->crc_check = crc; + /* Configiure CRC check Enable */ + cmd->crc_check = crc; - /*Configure Command index check enable */ - cmd->cmdindex_check = cmdindex; + /* Configure Command index check enable */ + cmd->cmdindex_check = cmdindex; - /* if multi-block is used */ - if (CMD18 == index || CMD25 == index) { - /*Configure Block count enable */ - cmd->block_count_enable_check = ENABLE; - /*Configure Multi single block select */ - cmd->multi_single_block = MULTIPLE; - } else { - /*Configure Block count enable */ - cmd->block_count_enable_check = DISABLE; + /* if multi-block is used */ + if (CMD18 == index || CMD25 == index) { + /* Configure Block count enable */ + cmd->block_count_enable_check = ENABLE; + /* Configure Multi single block select */ + cmd->multi_single_block = MULTIPLE; + } else { + /* Configure Block count enable */ + cmd->block_count_enable_check = DISABLE; - /*Configure Multi single block select */ - cmd->multi_single_block = SINGLE; - } + /* Configure Multi single block select */ + cmd->multi_single_block = SINGLE; + } } diff --git a/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_mmc.c b/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_mmc.c index cf80b2a6..4a8751c1 100644 --- a/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_mmc.c +++ b/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_mmc.c @@ -51,16 +51,15 @@ // //========================================================================== +#include #include #include #include #include - -extern int HighCapacityCard; +#include static cyg_uint32 mmc_set_rca(void); static cyg_uint32 mmc_set_bus_width(cyg_uint32 bus_width); -static cyg_uint32 mmc_set_high_speed_mode(void); cyg_uint32 address_mode; /* Global variable for addressing mode */ @@ -88,7 +87,6 @@ cyg_uint32 mmc_init(cyg_uint32 bus_width) return FAIL; } #endif - /* Set block length for transfer */ //diag_printf("Send CMD to Set Block Length.\n"); if (sdmmc_set_blklen(BLK_LEN)) @@ -113,11 +111,10 @@ cyg_uint32 mmc_init(cyg_uint32 bus_width) } -cyg_uint32 mmc_data_read(cyg_uint32 * dest_ptr, cyg_uint32 length, - cyg_uint32 offset) +cyg_uint32 mmc_data_read(cyg_uint32 *dest_ptr, cyg_uint32 length, + cyg_uint32 offset) { command_t cmd; - int len; cyg_uint32 read_block_status = 0; cyg_uint32 blk_len = BLK_LEN; unsigned int SectorNum = 0; @@ -132,7 +129,7 @@ cyg_uint32 mmc_data_read(cyg_uint32 * dest_ptr, cyg_uint32 length, /* wait until in transfer mode */ while (mxcmci_trans_status()) { - hal_delay_us(5); + HAL_DELAY_US(5); } reread: @@ -200,12 +197,11 @@ reread: return read_block_status; } -cyg_uint32 mmc_data_write(cyg_uint32 * src_ptr, cyg_uint32 length, - cyg_uint32 offset) +cyg_uint32 mmc_data_write(cyg_uint32 *src_ptr, cyg_uint32 length, + cyg_uint32 offset) { command_t cmd; - cyg_int32 len; cyg_uint32 blk_len = BLK_LEN; cyg_uint32 write_block_status = SUCCESS; unsigned int SectorNum; @@ -221,12 +217,12 @@ cyg_uint32 mmc_data_write(cyg_uint32 * src_ptr, cyg_uint32 length, offset = offset/512; //need waiting until CARD out of Prg status, or will cause CMD25 timeout - //hal_delay_us(100); + //HAL_DELAY_US(100); //StartCounter(); while (mxcmci_trans_status()) { - hal_delay_us(2); + HAL_DELAY_US(2); } //counter = StopCounter(); @@ -248,7 +244,7 @@ rewrite: esdhc_softreset(ESDHC_RESET_CMD_MSK | ESDHC_RESET_DAT_MSK); write_block_status = FAIL; - //hal_delay_us(1000); + //HAL_DELAY_US(1000); goto rewrite; } else { @@ -305,390 +301,378 @@ rewrite: } return write_block_status; - } cyg_uint32 mmc_data_erase(cyg_uint32 offset, cyg_uint32 size) { - command_t cmd; - extern int Card_Mode; - cyg_uint8 startEraseBlockCmd = CMD35; - cyg_uint8 endEraseBlockCmd = CMD36; - - cyg_uint32 startBlock = offset / BLK_LEN; - cyg_uint32 endBlock = (offset + size - 1) / BLK_LEN; - cyg_uint32 ret; + command_t cmd; + extern int Card_Mode; + cyg_uint8 startEraseBlockCmd = CMD35; + cyg_uint8 endEraseBlockCmd = CMD36; + + cyg_uint32 startBlock = offset / BLK_LEN; + cyg_uint32 endBlock = (offset + size - 1) / BLK_LEN; + cyg_uint32 ret; // diag_printf("card_data_erase\n"); - if (Card_Mode == 0) { - startBlock *= BLK_LEN; - endBlock *= BLK_LEN; - startEraseBlockCmd = CMD35; - endEraseBlockCmd = CMD36; - } - - else if (Card_Mode == 1) { - startBlock *= BLK_LEN; - endBlock *= BLK_LEN; - startEraseBlockCmd = CMD32; - endEraseBlockCmd = CMD33; - } + if (Card_Mode == 0) { + startBlock *= BLK_LEN; + endBlock *= BLK_LEN; + startEraseBlockCmd = CMD35; + endEraseBlockCmd = CMD36; + } + + else if (Card_Mode == 1) { + startBlock *= BLK_LEN; + endBlock *= BLK_LEN; + startEraseBlockCmd = CMD32; + endEraseBlockCmd = CMD33; + } #if 1 - /* hight capacity card uses sector mode */ - if(HighCapacityCard) - startBlock /= BLK_LEN; - endBlock /= BLK_LEN; + /* hight capacity card uses sector mode */ + if(HighCapacityCard) + startBlock /= BLK_LEN; + endBlock /= BLK_LEN; #endif // diag_printf("0x%x - 0x%x, size: 0x%x\n", startBlock, endBlock, size); - /* Configure start erase command to set first block */ - mxcmci_cmd_config(&cmd, startEraseBlockCmd, startBlock, READ, - RESPONSE_48, DATA_PRESENT_NONE, ENABLE, ENABLE); - /* wait response */ - if ((ret = host_send_cmd(&cmd)) == SUCCESS) { - flash_dprintf(FLASH_DEBUG_MAX, - "%s: successful for host_send_cmd\n", - __FUNCTION__); - /* Configure end erase command to set end block */ - mxcmci_cmd_config(&cmd, endEraseBlockCmd, endBlock, READ, - RESPONSE_48, DATA_PRESENT_NONE, ENABLE, ENABLE); - if ((ret = host_send_cmd(&cmd)) == SUCCESS) { - flash_dprintf(FLASH_DEBUG_MAX, - "%s: successful for host_send_cmd:2\n", - __FUNCTION__); - /* Comfigure command to start erase */ - mxcmci_cmd_config(&cmd, CMD38, 0, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - if ((ret = host_send_cmd(&cmd)) == SUCCESS) { - flash_dprintf(FLASH_DEBUG_MAX, - "%s: successful for host_send_cmd:3\n", - __FUNCTION__); - //wait for completion - return ret; - } - } - } - - flash_dprintf(FLASH_DEBUG_MAX, "%s: Error return (%d)\n", __FUNCTION__, - ret); - return ret; + /* Configure start erase command to set first block */ + mxcmci_cmd_config(&cmd, startEraseBlockCmd, startBlock, READ, + RESPONSE_48, DATA_PRESENT_NONE, ENABLE, ENABLE); + /* wait response */ + if ((ret = host_send_cmd(&cmd)) == SUCCESS) { + flash_dprintf(FLASH_DEBUG_MAX, + "%s: successful for host_send_cmd\n", + __FUNCTION__); + /* Configure end erase command to set end block */ + mxcmci_cmd_config(&cmd, endEraseBlockCmd, endBlock, READ, + RESPONSE_48, DATA_PRESENT_NONE, ENABLE, ENABLE); + if ((ret = host_send_cmd(&cmd)) == SUCCESS) { + flash_dprintf(FLASH_DEBUG_MAX, + "%s: successful for host_send_cmd:2\n", + __FUNCTION__); + /* Comfigure command to start erase */ + mxcmci_cmd_config(&cmd, CMD38, 0, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + if ((ret = host_send_cmd(&cmd)) == SUCCESS) { + flash_dprintf(FLASH_DEBUG_MAX, + "%s: successful for host_send_cmd:3\n", + __FUNCTION__); + //wait for completion + return ret; + } + } + } + + flash_dprintf(FLASH_DEBUG_MAX, "%s: Error return (%d)\n", __FUNCTION__, + ret); + return ret; } cyg_uint32 mmc_voltage_validation(void) { - command_t cmd; - command_response_t response; - cyg_uint32 voltage_validation_command = 0; - cyg_uint32 ocr_val = 0; - cyg_uint32 voltage_validation = FAIL; - - ocr_val = (cyg_uint32) ((MMC_OCR_VALUE) & 0xFFFFFFFF); - - while ((voltage_validation_command < MMCSD_READY_TIMEOUT) - && (voltage_validation != SUCCESS)) { - /* Configure CMD1 for MMC card */ - mxcmci_cmd_config(&cmd, CMD1, ocr_val, READ, RESPONSE_48, - DATA_PRESENT_NONE, DISABLE, DISABLE); - - /* Issue CMD1 to MMC card to determine OCR value */ - if (host_send_cmd(&cmd) == FAIL) { - voltage_validation = FAIL; - break; - } else { - /* Read Response from CMDRSP0 Register */ - response.format = RESPONSE_48; - host_read_response(&response); - - /* Check if card busy bit is cleared or not */ - if (!(response.cmd_rsp0 & CARD_BUSY_BIT)) { - /* Iterate One more time */ - voltage_validation_command++; - } else { - if ((response.cmd_rsp0 & MMC_OCR_HC_RES) == - MMC_OCR_HC_RES) { - address_mode = SECT_MODE; - voltage_validation = SUCCESS; - } else if ((response.cmd_rsp0 & MMC_OCR_LC_RES) - == MMC_OCR_LC_RES) { - address_mode = BYTE_MODE; - voltage_validation = SUCCESS; - } - } - - } - } - - return voltage_validation; + command_t cmd; + command_response_t response; + cyg_uint32 voltage_validation_command = 0; + cyg_uint32 ocr_val = 0; + cyg_uint32 voltage_validation = FAIL; + + ocr_val = (cyg_uint32) ((MMC_OCR_VALUE) & 0xFFFFFFFF); + + while ((voltage_validation_command < MMCSD_READY_TIMEOUT) + && (voltage_validation != SUCCESS)) { + /* Configure CMD1 for MMC card */ + mxcmci_cmd_config(&cmd, CMD1, ocr_val, READ, RESPONSE_48, + DATA_PRESENT_NONE, DISABLE, DISABLE); + + /* Issue CMD1 to MMC card to determine OCR value */ + if (host_send_cmd(&cmd) == FAIL) { + voltage_validation = FAIL; + break; + } else { + /* Read Response from CMDRSP0 Register */ + response.format = RESPONSE_48; + host_read_response(&response); + + /* Check if card busy bit is cleared or not */ + if (!(response.cmd_rsp0 & CARD_BUSY_BIT)) { + /* Iterate One more time */ + voltage_validation_command++; + } else { + if ((response.cmd_rsp0 & MMC_OCR_HC_RES) == + MMC_OCR_HC_RES) { + address_mode = SECT_MODE; + voltage_validation = SUCCESS; + } else if ((response.cmd_rsp0 & MMC_OCR_LC_RES) + == MMC_OCR_LC_RES) { + address_mode = BYTE_MODE; + voltage_validation = SUCCESS; + } + } + + } + } + + return voltage_validation; } static cyg_uint32 mmc_set_rca(void) { - command_t cmd; - cyg_uint32 card_state = 0; - cyg_uint32 rca_request = 0; - command_response_t response; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); - - /* Configure CMD3 for MMC card */ - /* 32bit card address is expected as Argument */ - mxcmci_cmd_config(&cmd, CMD3, card_address, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Assigns relative address to the card - */ - - if (host_send_cmd(&cmd) == FAIL) { - rca_request = FAIL; - } - - else { - /* Read Command response */ - response.format = RESPONSE_48; - host_read_response(&response); - card_state = CURR_CARD_STATE(response.cmd_rsp0); - if (card_state == IDENT) { - rca_request = SUCCESS; - - } else { - rca_request = FAIL; - } - } - - return rca_request; + command_t cmd; + cyg_uint32 card_state = 0; + cyg_uint32 rca_request = 0; + command_response_t response; + cyg_uint32 card_address = (Card_rca << RCA_SHIFT); + + /* Configure CMD3 for MMC card */ + /* 32bit card address is expected as Argument */ + mxcmci_cmd_config(&cmd, CMD3, card_address, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Assigns relative address to the card + */ + + if (host_send_cmd(&cmd) == FAIL) { + rca_request = FAIL; + } + + else { + /* Read Command response */ + response.format = RESPONSE_48; + host_read_response(&response); + card_state = CURR_CARD_STATE(response.cmd_rsp0); + if (card_state == IDENT) { + rca_request = SUCCESS; + + } else { + rca_request = FAIL; + } + } + + return rca_request; } cyg_uint32 mmc_get_spec_ver(void) { - cyg_uint32 mmc_spec_version; - - if (card_get_csd() == FAIL) { - mmc_spec_version = 0; - } else { - mmc_spec_version = ((csd.csd3 && MMC_SPEC_VER) >> MMC_SPEC_VER_SHIFT); - } + cyg_uint32 mmc_spec_version; - return mmc_spec_version; + if (card_get_csd() == FAIL) { + mmc_spec_version = 0; + } else { + mmc_spec_version = ((csd.csd3 && MMC_SPEC_VER) >> MMC_SPEC_VER_SHIFT); + } + return mmc_spec_version; } cyg_uint32 card_flash_query(void *data) { - command_t cmd; - cyg_uint32 cid_request = FAIL; - command_response_t response; - - /* Configure CMD2 for card */ - mxcmci_cmd_config(&cmd, CMD2, NO_ARG, READ, RESPONSE_136, - DATA_PRESENT_NONE, ENABLE, DISABLE); - /* Issue CMD2 to card to determine CID contents */ - if (host_send_cmd(&cmd) == FAIL) { - cid_request = FAIL; - flash_dprintf(FLASH_DEBUG_MAX, "%s: can't send query command\n", - __FUNCTION__); - } else { - cyg_uint32 *d = (cyg_uint32 *) data; - /* Read Command response */ - response.format = RESPONSE_136; - host_read_response(&response); - /* Assign CID values to mmc_cid structures */ - *d++ = response.cmd_rsp0; - *d++ = response.cmd_rsp1; - *d++ = response.cmd_rsp2; - *d = response.cmd_rsp3; - - /* Assign cid_request as SUCCESS */ - cid_request = SUCCESS; - } - flash_dprintf(FLASH_DEBUG_MAX, - "%s(Success?=%d):(ID=0x%x: 0x%x, 0x%x, 0x%x)\n", - __FUNCTION__, cid_request, *(cyg_uint32 *) (data), - *(cyg_uint32 *) ((cyg_uint32) data + 4), - *(cyg_uint8 *) ((cyg_uint32) data + 8), - *(cyg_uint8 *) ((cyg_uint32) data + 12)); - return; + command_t cmd; + cyg_uint32 cid_request = FAIL; + command_response_t response; + + /* Configure CMD2 for card */ + mxcmci_cmd_config(&cmd, CMD2, NO_ARG, READ, RESPONSE_136, + DATA_PRESENT_NONE, ENABLE, DISABLE); + /* Issue CMD2 to card to determine CID contents */ + if (host_send_cmd(&cmd) == FAIL) { + cid_request = FAIL; + flash_dprintf(FLASH_DEBUG_MAX, "%s: can't send query command\n", + __FUNCTION__); + } else { + cyg_uint32 *d = (cyg_uint32 *) data; + /* Read Command response */ + response.format = RESPONSE_136; + host_read_response(&response); + /* Assign CID values to mmc_cid structures */ + *d++ = response.cmd_rsp0; + *d++ = response.cmd_rsp1; + *d++ = response.cmd_rsp2; + *d = response.cmd_rsp3; + + /* Assign cid_request as SUCCESS */ + cid_request = SUCCESS; + } + flash_dprintf(FLASH_DEBUG_MAX, + "%s(Success?=%d):(ID=0x%x: 0x%x, 0x%x, 0x%x)\n", + __FUNCTION__, cid_request, *(cyg_uint32 *) (data), + *(cyg_uint32 *) ((cyg_uint32) data + 4), + *(cyg_uint8 *) ((cyg_uint32) data + 8), + *(cyg_uint8 *) ((cyg_uint32) data + 12)); + return cid_request; } static cyg_uint32 mmc_set_bus_width(cyg_uint32 bus_width) { - command_t cmd; - cyg_uint32 set_bus_width_status = FAIL; - command_response_t response; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); + command_t cmd; + cyg_uint32 set_bus_width_status = FAIL; - if ((bus_width == FOUR) || (bus_width == EIGHT) || (bus_width == ONE)) { + if ((bus_width == 4) || (bus_width == 8) || (bus_width == 1)) { - /* Configure CMD6 to write to EXT_CSD register for BUS_WIDTH */ - mxcmci_cmd_config(&cmd, CMD6, 0x03b70001 | ((bus_width >> 2) << 8), READ, - RESPONSE_48, DATA_PRESENT_NONE, ENABLE, ENABLE); + /* Configure CMD6 to write to EXT_CSD register for BUS_WIDTH */ + mxcmci_cmd_config(&cmd, CMD6, 0x03b70001 | ((bus_width >> 2) << 8), READ, + RESPONSE_48, DATA_PRESENT_NONE, ENABLE, ENABLE); - if (host_send_cmd(&cmd) == SUCCESS) { - set_bus_width_status = SUCCESS; - } else { - diag_printf("Setting MMC bus width failed.\n"); - } - } + if (host_send_cmd(&cmd) == SUCCESS) { + set_bus_width_status = SUCCESS; + } else { + diag_printf("Setting MMC bus width failed.\n"); + } + } - return set_bus_width_status; + return set_bus_width_status; } -static cyg_uint32 mmc_set_high_speed_mode(void) +cyg_uint32 mmc_set_high_speed_mode(void) { - command_t cmd; - command_response_t response; - cyg_uint32 status = FAIL; - - //diag_printf("Send CMD6 to Set High Speed Mode.\n"); - /* Configure CMD6 to write to EXT_CSD register for BUS_WIDTH */ - mxcmci_cmd_config(&cmd, CMD6, 0x03b90100, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - if (host_send_cmd(&cmd) == SUCCESS) { - /* wait until in transfer mode */ - while (mxcmci_trans_status()) { - hal_delay_us(5); - } - - status = SUCCESS; - } else { - diag_printf("Setting MMC High Speed Mode FAILED.\n"); - } - - return status; + command_t cmd; + cyg_uint32 status; + + //diag_printf("Send CMD6 to Set High Speed Mode.\n"); + /* Configure CMD6 to write to EXT_CSD register for BUS_WIDTH */ + mxcmci_cmd_config(&cmd, CMD6, 0x03b90100, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + status = host_send_cmd(&cmd); + if (status == SUCCESS) { + /* wait until in transfer mode */ + while (mxcmci_trans_status()) { + HAL_DELAY_US(5); + } + } else { + diag_printf("Setting MMC High Speed Mode FAILED.\n"); + } + + return status; } int sdmmc_set_blklen(int len) { - int status = FAIL; - command_t cmd; - command_response_t response; - - /* Configure CMD16 to set block length as 512 bytes. */ - mxcmci_cmd_config(&cmd, CMD16, len, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Issue command CMD16 to set block length as 512 bytes */ - if (host_send_cmd(&cmd) == FAIL) { - diag_printf("%s: Can't set block length!(CMD16)\n", - __FUNCTION__); - esdhc_softreset(ESDHC_RESET_CMD_MSK); - status = FAIL; - } else { - status = SUCCESS; - } - - return status; + int status; + command_t cmd; + + /* Configure CMD16 to set block length as 512 bytes. */ + mxcmci_cmd_config(&cmd, CMD16, len, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Issue command CMD16 to set block length as 512 bytes */ + if (host_send_cmd(&cmd) == FAIL) { + diag_printf("%s: Can't set block length!(CMD16)\n", + __FUNCTION__); + esdhc_softreset(ESDHC_RESET_CMD_MSK); + status = FAIL; + } else { + status = SUCCESS; + } + + return status; } int sdmmc_stop_transmission(void) { - int status = FAIL; - command_t cmd; - command_response_t response; + command_t cmd; - /* Comfigure command CMD12 for read stop */ - mxcmci_cmd_config(&cmd, CMD12, 0, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); + /* Comfigure command CMD12 for read stop */ + mxcmci_cmd_config(&cmd, CMD12, 0, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); - if (host_send_cmd(&cmd) == FAIL) { - //diag_printf("%s: Can't send CMD12!\n", __FUNCTION__); - //esdhc_softreset(ESDHC_RESET_CMD_MSK | ESDHC_RESET_DAT_MSK); - //read_block_status = FAIL; - } + if (host_send_cmd(&cmd) == FAIL) { + //diag_printf("%s: Can't send CMD12!\n", __FUNCTION__); + //esdhc_softreset(ESDHC_RESET_CMD_MSK | ESDHC_RESET_DAT_MSK); + //read_block_status = FAIL; + } - return 0; + return 0; } static unsigned int mmc_set_extendCSD(unsigned int ECSD_index, unsigned int value, unsigned int access_mode) { - unsigned int argument = 0; - command_t cmd; - - /* access mode: 0b01 set bits/ 0b10 clear bits/ 0b11 write bytes */ - argument = (access_mode << 24) | (ECSD_index << 16) | (value << 8); - //argument = 0x1b30000; - - mxcmci_cmd_config(&cmd, CMD6, argument, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - if(host_send_cmd(&cmd) == SUCCESS) { - return 0; - } else { - //diag_printf("%s: Setting MMC boot Failed.\n", __FUNCTION__); - return 1; - } + unsigned int argument = 0; + command_t cmd; + + /* access mode: 0b01 set bits/ 0b10 clear bits/ 0b11 write bytes */ + argument = (access_mode << 24) | (ECSD_index << 16) | (value << 8); + //argument = 0x1b30000; + + mxcmci_cmd_config(&cmd, CMD6, argument, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + if(host_send_cmd(&cmd) == SUCCESS) { + return 0; + } else { + //diag_printf("%s: Setting MMC boot Failed.\n", __FUNCTION__); + return 1; + } } -static void mmc_set_boot_partition_size(unsigned int value) +void mmc_set_boot_partition_size(unsigned int value) { - command_t cmd; - command_response_t response; - cyg_uint32 card_state = 0; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); - - mxcmci_cmd_config(&cmd, CMD62, 0XEFAC62EC, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - host_send_cmd(&cmd); - - mxcmci_cmd_config(&cmd, CMD62, 0X00CBAEA7, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - host_send_cmd(&cmd); - - mxcmci_cmd_config(&cmd, CMD62, value, READ, RESPONSE_48, - DATA_PRESENT, ENABLE, ENABLE); - host_send_cmd(&cmd); + command_t cmd; + + mxcmci_cmd_config(&cmd, CMD62, 0XEFAC62EC, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + host_send_cmd(&cmd); + + mxcmci_cmd_config(&cmd, CMD62, 0X00CBAEA7, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + host_send_cmd(&cmd); + + mxcmci_cmd_config(&cmd, CMD62, value, READ, RESPONSE_48, + DATA_PRESENT, ENABLE, ENABLE); + host_send_cmd(&cmd); } cyg_uint32 emmc_set_boot_partition (cyg_uint32 *src_ptr, cyg_uint32 length) { - cyg_uint32 status=FAIL; - unsigned int value; - unsigned int eMMCBootDataSize = (length / (128 * 1024)) + 1; - - if (MMC_Spec_vers < 4) - return 1; - - /* read back 1KB data as we are programming to user are and want to aviod erasing MBR - * will be removed once we program Redboot to boot partition of the card - */ - mmc_data_read(src_ptr, 0x400, 0); - - /* Set boot partition */ - /* 1. Configure CMD6 to write to EXT_CSD register for eMMC boot partition, Byte 179*/ - /* boot partition: user area enable and r/w enable */ - value = (0x7 << 3) | (0x7); - //value = (0x1 << 3) | (0x1); - status = mmc_set_extendCSD(179, value, 0x3); - if(status) { - return 1; /* failed */ - } - - /* 2. Set boot partition size: n*128KB */ - value = eMMCBootDataSize; - //status = mmc_set_extendCSD(226, value, 0x3); - //if(status) { - // return 1; /* failed */ - //} - //mmc_set_boot_partition_size(value); - - //diag_printf("Boot partition size: 0x%xKB\n", eMMCBootDataSize * 128); - - /* 3. Program to boot partition, default address is alway 0x0 */ - status = mmc_data_write (src_ptr, eMMCBootDataSize*128*1024, 0); - if(status) { - return 1; /* failed */ - } - - while (mxcmci_trans_status()); - - /* 4. Clear boot partition access bits, to protect w/r of boot partition */ - /* bit 6: send boot ack signal, boot partition: user area enable and r/w access disable */ - //value = (0x1 << 6) | (0x1 << 3) | (0x0); - value = (0x1 << 6) | (0x7 << 3) | (0x0); - status = mmc_set_extendCSD(179, value, 0x3); - if(status) { - return 1; /* failed */ - } - - return 0; + cyg_uint32 status=FAIL; + unsigned int value; + unsigned int eMMCBootDataSize = (length / (128 * 1024)) + 1; + + if (MMC_Spec_vers < 4) + return 1; + + /* read back 1KB data as we are programming to user are and want to aviod erasing MBR + * will be removed once we program Redboot to boot partition of the card + */ + mmc_data_read(src_ptr, 0x400, 0); + + /* Set boot partition */ + /* 1. Configure CMD6 to write to EXT_CSD register for eMMC boot partition, Byte 179*/ + /* boot partition: user area enable and r/w enable */ + value = (0x7 << 3) | (0x7); + //value = (0x1 << 3) | (0x1); + status = mmc_set_extendCSD(179, value, 0x3); + if(status) { + return 1; /* failed */ + } + + /* 2. Set boot partition size: n*128KB */ + value = eMMCBootDataSize; + //status = mmc_set_extendCSD(226, value, 0x3); + //if(status) { + // return 1; /* failed */ + //} + //mmc_set_boot_partition_size(value); + + //diag_printf("Boot partition size: 0x%xKB\n", eMMCBootDataSize * 128); + + /* 3. Program to boot partition, default address is alway 0x0 */ + status = mmc_data_write (src_ptr, eMMCBootDataSize*128*1024, 0); + if (status) { + return 1; /* failed */ + } + + while (mxcmci_trans_status()); + + /* 4. Clear boot partition access bits, to protect w/r of boot partition */ + /* bit 6: send boot ack signal, boot partition: user area enable and r/w access disable */ + //value = (0x1 << 6) | (0x1 << 3) | (0x0); + value = (0x1 << 6) | (0x7 << 3) | (0x0); + status = mmc_set_extendCSD(179, value, 0x3); + if(status) { + return 1; /* failed */ + } + + return 0; } /* end of mxcmci_mmc.c */ diff --git a/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_sd.c b/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_sd.c index e2fa4710..cb6199d7 100644 --- a/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_sd.c +++ b/packages/devs/flash/arm/mxc/v2_0/src/mxcmci_sd.c @@ -51,6 +51,7 @@ // //========================================================================== +#include #include #include #include @@ -83,416 +84,416 @@ static cyg_uint32 sd_set_high_speed_mode(void); cyg_uint32 sd_init(cyg_uint32 bus_width) { - cyg_uint32 status = FAIL; - cyg_uint32 bus_size = bus_width; - - /* Get CID number of SD Memory Card */ - if (!mxcmci_get_cid()) { - //diag_printf("%s:mxcmci_get_cid OK!\n", __FUNCTION__); - /* Set RCA of the SD Card */ - if (!sd_get_rca()) { - //diag_printf("%s:sd_get_rca OK!\n", __FUNCTION__); - /*Get CSD from Card */ - if (card_get_csd()) - return FAIL; - - /*Enable operating frequency */ - host_cfg_clock(OPERATING_FREQ); - - //diag_printf("Set SD Card in Transfer State.\n"); - - /*Put SD Card in Transfer State */ - if (!mxcmci_trans_prepare()) { + cyg_uint32 status = FAIL; + cyg_uint32 bus_size = bus_width; + + /* Get CID number of SD Memory Card */ + if (!mxcmci_get_cid()) { + //diag_printf("%s:mxcmci_get_cid OK!\n", __FUNCTION__); + /* Set RCA of the SD Card */ + if (!sd_get_rca()) { + //diag_printf("%s:sd_get_rca OK!\n", __FUNCTION__); + /*Get CSD from Card */ + if (card_get_csd()) + return FAIL; + + /*Enable operating frequency */ + host_cfg_clock(OPERATING_FREQ); + + //diag_printf("Set SD Card in Transfer State.\n"); + + /*Put SD Card in Transfer State */ + if (!mxcmci_trans_prepare()) { #if 0 - if (sd_set_high_speed_mode()) { - return FAIL; - } + if (sd_set_high_speed_mode()) { + return FAIL; + } #endif - if (sdmmc_set_blklen(BLK_LEN)) - return FAIL; - - /* SD can only support 1/4 bit bitwidth, 8 bit is not supported */ - if (EIGHT == bus_width) { - bus_width = FOUR; - } - if (!sd_set_bus_width(bus_width)) { - esdhc_base_pointer->protocol_control &= - ~(0x3 << 1); - esdhc_base_pointer->protocol_control |= - (bus_width / 4) << 1; - diag_printf("Bus Width: %d\n", - bus_width); - status = SUCCESS; - } - } - } - - } else { - diag_printf("Get CID Failed.\n"); - - } - - //diag_printf("%s:failed to Init SD card!\n", __FUNCTION__); - return status; + if (sdmmc_set_blklen(BLK_LEN)) + return FAIL; + + /* SD can only support 1/4 bit bitwidth, 8 bit is not supported */ + if (8 == bus_width) { + bus_width = 4; + } + if (!sd_set_bus_width(bus_width)) { + esdhc_base_pointer->protocol_control &= + ~(0x3 << 1); + esdhc_base_pointer->protocol_control |= + (bus_width / 4) << 1; + diag_printf("Bus Width: %d\n", + bus_width); + status = SUCCESS; + } + } + } + + } else { + diag_printf("Get CID Failed.\n"); + + } + + //diag_printf("%s:failed to Init SD card!\n", __FUNCTION__); + return status; } cyg_uint32 sd_voltage_validation(void) { - //wait max timeout (unit: ms) - cyg_uint32 timeout = 15000; - - command_t cmd; - command_response_t response; - cyg_uint32 voltage_validation_command = 0; - cyg_uint32 default_rca = 0; - - cyg_uint32 ocr_value = SD_OCR_VALUE_HV_LC; /* nirp_oct07: <- split OCR to 3.3v and 1.8v cases */ - cyg_uint32 voltage_validation = FAIL; - cyg_uint32 interface_value = 0; - cyg_uint32 card_usable = SUCCESS; - - /* Configure Command CMD8 to check for High capacity support */ - /* try 3.3V first */ - mxcmci_cmd_config(&cmd, CMD8, SD_IF_HV_COND_ARG, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Issue Command CMD8 to SD Memory card */ - if (host_send_cmd(&cmd) == SUCCESS) { /* nirp_oct07: <- changed order of detection */ - //diag_printf("%s:CMD8 OK!\n", __FUNCTION__); - response.format = RESPONSE_48; - host_read_response(&response); - - /* Obtain Interface value from the response buffer */ - interface_value = response.cmd_rsp0; - - /* Check if volatge lies in range or not */ - if ((interface_value & SD_IF_HV_COND_ARG) == SD_IF_HV_COND_ARG) { - ocr_value = ((cyg_uint32) (SD_OCR_VALUE_HV_HC) & 0xFFFFFFFF); /* nirp_oct07: <- split OCR to 3.3v and 1.8v cases */ - } - - /* start timer for a delay of 1.5sec, for ACMD41 */ - hal_delay_us(1500); - - while ((voltage_validation_command < 20) - && (voltage_validation != SUCCESS) - && (card_usable == SUCCESS)) { - /* Configure CMD55 for SD card */ - /* This command expects defualt RCA 0x0000 as argument. */ - mxcmci_cmd_config(&cmd, CMD55, default_rca, READ, - RESPONSE_48, DATA_PRESENT_NONE, - ENABLE, ENABLE); - - /* Issue CMD55 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - voltage_validation = FAIL; - //diag_printf("Send CMD55 Failed.\n"); - break; - } else { - /* Configure ACMD41 for SD card */ - /* This command expects operating voltage range as argument. */ - /* CODE REVIEW START: Need to check why BUSY was expected */ - /* INTERNAL CODE REVIEW: Accepted - to fix original code if needed */ - /* nirp: changed RESPONSE_48_CHECK_BUSY to RESPONSE_48 */ - /* nirp_oct03: why with busy again? ACMD41 doesn't hold busy line */ - mxcmci_cmd_config(&cmd, ACMD41, ocr_value, READ, - RESPONSE_48, DATA_PRESENT_NONE, DISABLE, - DISABLE); - - /* Issue ACMD41 to SD Memory card to determine OCR value */ - if (host_send_cmd(&cmd) == FAIL) { - voltage_validation = FAIL; - diag_printf("Send CMD41 Failed.\n"); - break; - } else { - /* Read Response from CMDRSP0 Register */ - response.format = RESPONSE_48; - host_read_response(&response); - - /* Obtain OCR Values from the response */ - /* Obtain OCR value from the response buffer */ - ocr_value = response.cmd_rsp0; - - /* Check if card busy bit is cleared or not */ - if (!(response.cmd_rsp0 & CARD_BUSY_BIT)) { - /* Iterate One more time */ - voltage_validation_command++; - } else { - - /*CODE REVIEW START: Update code and check only bit 30, HC or LC card type. All voltage bits needs to be masked. */ - /* INTERNAL CODE REVIEW: Accepted - need fix the code accordingly */ - /* nirp: It may be better to check the actual power supply voltage - requiring the entire range (0xff8000) may fail the sequence even if the device can be supported */ - /*CODE REVIEW END: */ - - if ((response.cmd_rsp0 & SD_OCR_HC_RES) == SD_OCR_HC_RES) { - address_mode = SECT_MODE; - voltage_validation = SUCCESS; - } - /* CODE REVIEW 3: (same as above) Check is logically correct, but seems redundent. - Anything that fails the HC check, is assumed Low Capacity */ - /* nirp_oct03: this can be just an "else". the LC macro is 0 anyway, - and anything not HC is LC by default */ - /* removed else if */ - else { - address_mode = BYTE_MODE; - voltage_validation = SUCCESS; - } - } - } - } - - hal_delay_us(1000); - } - - if (voltage_validation == FAIL) { - card_usable = FAIL; - } - - } else { - /*3.3v test failed, try to test 1.8v mode! */ - mxcmci_cmd_config(&cmd, CMD8, SD_IF_LV_COND_ARG, READ, - RESPONSE_48, DATA_PRESENT_NONE, ENABLE, - ENABLE); - - /* Issue Command CMD8 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - //diag_printf("%s:CMD8 for 1.8v failed!\n", __FUNCTION__); - /* nirp_oct07: CMD8 failed both in 3.3 and in 1.8v, try SD 1.x case - no CMD8, LC, 3.3v only */ - ocr_value = ((cyg_uint32) (SD_OCR_VALUE_HV_LC) & 0xFFFFFFFF); /* nirp_oct07: <- changed order of detection */ - } else { - //diag_printf("%s:CMD8 for 1.8v OK!\n", __FUNCTION__); - response.format = RESPONSE_48; - host_read_response(&response); - - /* Obtain Interface value from the response buffer */ - interface_value = response.cmd_rsp0; - - /* Check if volatge lies in range or not */ - if ((interface_value & SD_IF_LV_COND_ARG) == SD_IF_LV_COND_ARG) { - ocr_value = ((cyg_uint32) (SD_OCR_VALUE_LV_HC) & 0xFFFFFFFF); /* nirp_oct07: <- split OCR to 3.3v and 1.8v cases */ - } - /* nirp_oct07: otherwise, try with HV_LC settings (set at function start) */ - } - - } - - /* start timer for a delay of 1.5sec, for ACMD41 */ - hal_delay_us(1500); - - /* nirp_oct03: MMCSD_READY_TIMEOUT too long. - ACMD41 also takes longer than CMD1 (twice - ~200 clocks for CMD55+resp+CMD41+resp */ - /* In any case ,ACMD 41 will loop not more than 1.5 sec */ - while ((voltage_validation_command < 20) - && (voltage_validation != SUCCESS) && (card_usable == SUCCESS)) { - /* Configure CMD55 for SD card */ - /* This command expects defualt RCA 0x0000 as argument. */ - mxcmci_cmd_config(&cmd, CMD55, default_rca, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Issue CMD55 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - voltage_validation = FAIL; - //diag_printf("Send CMD55 Failed!\n"); - break; - } else { - /* Configure ACMD41 for SD card */ - /* This command expects operating voltage range as argument. */ - /* CODE REVIEW START: Need to check why BUSY was expected */ - /* INTERNAL CODE REVIEW: Accepted - to fix original code if needed */ - /* nirp: changed RESPONSE_48_CHECK_BUSY to RESPONSE_48 */ - /* nirp_oct03: why with busy again? ACMD41 doesn't hold busy line */ - mxcmci_cmd_config(&cmd, ACMD41, ocr_value, READ, - RESPONSE_48, DATA_PRESENT_NONE, - DISABLE, DISABLE); - - /* CODE REVIEW END: */ - - /* Issue ACMD41 to SD Memory card to determine OCR value */ - if (host_send_cmd(&cmd) == FAIL) { - voltage_validation = FAIL; - diag_printf("Send ACMD41 Failed!\n"); - break; - } else { - /* Read Response from CMDRSP0 Register */ - response.format = RESPONSE_48; - host_read_response(&response); - - /* Obtain OCR Values from the response */ - /* Obtain OCR value from the response buffer - */ - ocr_value = response.cmd_rsp0; - - /* Check if card busy bit is cleared or not */ - if (!(response.cmd_rsp0 & CARD_BUSY_BIT)) { - /* Iterate One more time */ - voltage_validation_command++; - } else { - /*CODE REVIEW START: Update code and check only bit 30, HC or LC card type. All voltage bits needs to be masked. */ - /* INTERNAL CODE REVIEW: Accepted - need fix the code accordingly */ - /* nirp: It may be better to check the actual power supply voltage - requiring the entire range (0xff8000) may fail the sequence even if the device can be supported */ - /*CODE REVIEW END: */ - - if ((response.cmd_rsp0 & SD_OCR_HC_RES) == SD_OCR_HC_RES) { - address_mode = SECT_MODE; - voltage_validation = SUCCESS; - } - /* CODE REVIEW 3: (same as above) Check is logically correct, but seems redundent. - Anything that fails the HC check, is assumed Low Capacity */ - /* nirp_oct03: this can be just an "else". the LC macro is 0 anyway, - and anything not HC is LC by default */ - else { - address_mode = BYTE_MODE; - voltage_validation = SUCCESS; - } - } - } - - } - - hal_delay_us(1000); - - } - - return voltage_validation; + //wait max timeout (unit: ms) + cyg_uint32 timeout = 15000; + + command_t cmd; + command_response_t response; + cyg_uint32 voltage_validation_command = 0; + cyg_uint32 default_rca = 0; + + cyg_uint32 ocr_value = SD_OCR_VALUE_HV_LC; /* nirp_oct07: <- split OCR to 3.3v and 1.8v cases */ + cyg_uint32 voltage_validation = FAIL; + cyg_uint32 interface_value = 0; + cyg_uint32 card_usable = SUCCESS; + + /* Configure Command CMD8 to check for High capacity support */ + /* try 3.3V first */ + mxcmci_cmd_config(&cmd, CMD8, SD_IF_HV_COND_ARG, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Issue Command CMD8 to SD Memory card */ + if (host_send_cmd(&cmd) == SUCCESS) { /* nirp_oct07: <- changed order of detection */ + //diag_printf("%s:CMD8 OK!\n", __FUNCTION__); + response.format = RESPONSE_48; + host_read_response(&response); + + /* Obtain Interface value from the response buffer */ + interface_value = response.cmd_rsp0; + + /* Check if volatge lies in range or not */ + if ((interface_value & SD_IF_HV_COND_ARG) == SD_IF_HV_COND_ARG) { + ocr_value = ((cyg_uint32) (SD_OCR_VALUE_HV_HC) & 0xFFFFFFFF); /* nirp_oct07: <- split OCR to 3.3v and 1.8v cases */ + } + + /* start timer for a delay of 1.5sec, for ACMD41 */ + hal_delay_us(1500); + + while ((voltage_validation_command < 20) + && (voltage_validation != SUCCESS) + && (card_usable == SUCCESS)) { + /* Configure CMD55 for SD card */ + /* This command expects defualt RCA 0x0000 as argument. */ + mxcmci_cmd_config(&cmd, CMD55, default_rca, READ, + RESPONSE_48, DATA_PRESENT_NONE, + ENABLE, ENABLE); + + /* Issue CMD55 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + voltage_validation = FAIL; + //diag_printf("Send CMD55 Failed.\n"); + break; + } else { + /* Configure ACMD41 for SD card */ + /* This command expects operating voltage range as argument. */ + /* CODE REVIEW START: Need to check why BUSY was expected */ + /* INTERNAL CODE REVIEW: Accepted - to fix original code if needed */ + /* nirp: changed RESPONSE_48_CHECK_BUSY to RESPONSE_48 */ + /* nirp_oct03: why with busy again? ACMD41 doesn't hold busy line */ + mxcmci_cmd_config(&cmd, ACMD41, ocr_value, READ, + RESPONSE_48, DATA_PRESENT_NONE, DISABLE, + DISABLE); + + /* Issue ACMD41 to SD Memory card to determine OCR value */ + if (host_send_cmd(&cmd) == FAIL) { + voltage_validation = FAIL; + diag_printf("Send CMD41 Failed.\n"); + break; + } else { + /* Read Response from CMDRSP0 Register */ + response.format = RESPONSE_48; + host_read_response(&response); + + /* Obtain OCR Values from the response */ + /* Obtain OCR value from the response buffer */ + ocr_value = response.cmd_rsp0; + + /* Check if card busy bit is cleared or not */ + if (!(response.cmd_rsp0 & CARD_BUSY_BIT)) { + /* Iterate One more time */ + voltage_validation_command++; + } else { + + /*CODE REVIEW START: Update code and check only bit 30, HC or LC card type. All voltage bits needs to be masked. */ + /* INTERNAL CODE REVIEW: Accepted - need fix the code accordingly */ + /* nirp: It may be better to check the actual power supply voltage - requiring the entire range (0xff8000) may fail the sequence even if the device can be supported */ + /*CODE REVIEW END: */ + + if ((response.cmd_rsp0 & SD_OCR_HC_RES) == SD_OCR_HC_RES) { + address_mode = SECT_MODE; + voltage_validation = SUCCESS; + } + /* CODE REVIEW 3: (same as above) Check is logically correct, but seems redundent. + Anything that fails the HC check, is assumed Low Capacity */ + /* nirp_oct03: this can be just an "else". the LC macro is 0 anyway, + and anything not HC is LC by default */ + /* removed else if */ + else { + address_mode = BYTE_MODE; + voltage_validation = SUCCESS; + } + } + } + } + + hal_delay_us(1000); + } + + if (voltage_validation == FAIL) { + card_usable = FAIL; + } + + } else { + /*3.3v test failed, try to test 1.8v mode! */ + mxcmci_cmd_config(&cmd, CMD8, SD_IF_LV_COND_ARG, READ, + RESPONSE_48, DATA_PRESENT_NONE, ENABLE, + ENABLE); + + /* Issue Command CMD8 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + //diag_printf("%s:CMD8 for 1.8v failed!\n", __FUNCTION__); + /* nirp_oct07: CMD8 failed both in 3.3 and in 1.8v, try SD 1.x case - no CMD8, LC, 3.3v only */ + ocr_value = ((cyg_uint32) (SD_OCR_VALUE_HV_LC) & 0xFFFFFFFF); /* nirp_oct07: <- changed order of detection */ + } else { + //diag_printf("%s:CMD8 for 1.8v OK!\n", __FUNCTION__); + response.format = RESPONSE_48; + host_read_response(&response); + + /* Obtain Interface value from the response buffer */ + interface_value = response.cmd_rsp0; + + /* Check if volatge lies in range or not */ + if ((interface_value & SD_IF_LV_COND_ARG) == SD_IF_LV_COND_ARG) { + ocr_value = ((cyg_uint32) (SD_OCR_VALUE_LV_HC) & 0xFFFFFFFF); /* nirp_oct07: <- split OCR to 3.3v and 1.8v cases */ + } + /* nirp_oct07: otherwise, try with HV_LC settings (set at function start) */ + } + + } + + /* start timer for a delay of 1.5sec, for ACMD41 */ + hal_delay_us(1500); + + /* nirp_oct03: MMCSD_READY_TIMEOUT too long. + ACMD41 also takes longer than CMD1 (twice - ~200 clocks for CMD55+resp+CMD41+resp */ + /* In any case ,ACMD 41 will loop not more than 1.5 sec */ + while ((voltage_validation_command < 20) + && (voltage_validation != SUCCESS) && (card_usable == SUCCESS)) { + /* Configure CMD55 for SD card */ + /* This command expects defualt RCA 0x0000 as argument. */ + mxcmci_cmd_config(&cmd, CMD55, default_rca, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Issue CMD55 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + voltage_validation = FAIL; + //diag_printf("Send CMD55 Failed!\n"); + break; + } else { + /* Configure ACMD41 for SD card */ + /* This command expects operating voltage range as argument. */ + /* CODE REVIEW START: Need to check why BUSY was expected */ + /* INTERNAL CODE REVIEW: Accepted - to fix original code if needed */ + /* nirp: changed RESPONSE_48_CHECK_BUSY to RESPONSE_48 */ + /* nirp_oct03: why with busy again? ACMD41 doesn't hold busy line */ + mxcmci_cmd_config(&cmd, ACMD41, ocr_value, READ, + RESPONSE_48, DATA_PRESENT_NONE, + DISABLE, DISABLE); + + /* CODE REVIEW END: */ + + /* Issue ACMD41 to SD Memory card to determine OCR value */ + if (host_send_cmd(&cmd) == FAIL) { + voltage_validation = FAIL; + diag_printf("Send ACMD41 Failed!\n"); + break; + } else { + /* Read Response from CMDRSP0 Register */ + response.format = RESPONSE_48; + host_read_response(&response); + + /* Obtain OCR Values from the response */ + /* Obtain OCR value from the response buffer + */ + ocr_value = response.cmd_rsp0; + + /* Check if card busy bit is cleared or not */ + if (!(response.cmd_rsp0 & CARD_BUSY_BIT)) { + /* Iterate One more time */ + voltage_validation_command++; + } else { + /*CODE REVIEW START: Update code and check only bit 30, HC or LC card type. All voltage bits needs to be masked. */ + /* INTERNAL CODE REVIEW: Accepted - need fix the code accordingly */ + /* nirp: It may be better to check the actual power supply voltage - requiring the entire range (0xff8000) may fail the sequence even if the device can be supported */ + /*CODE REVIEW END: */ + + if ((response.cmd_rsp0 & SD_OCR_HC_RES) == SD_OCR_HC_RES) { + address_mode = SECT_MODE; + voltage_validation = SUCCESS; + } + /* CODE REVIEW 3: (same as above) Check is logically correct, but seems redundent. + Anything that fails the HC check, is assumed Low Capacity */ + /* nirp_oct03: this can be just an "else". the LC macro is 0 anyway, + and anything not HC is LC by default */ + else { + address_mode = BYTE_MODE; + voltage_validation = SUCCESS; + } + } + } + + } + + hal_delay_us(1000); + + } + + return voltage_validation; } static cyg_uint32 sd_get_rca(void) { - command_t cmd; - cyg_uint32 card_state = 0; - cyg_uint32 rca_request = 0; - command_response_t response; - - /* Configure CMD3 for MMC card */ - /* 32bit card address is expected as Argument */ - mxcmci_cmd_config(&cmd, CMD3, NO_ARG, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Get relative address of the card */ - - if (host_send_cmd(&cmd) == FAIL) { - rca_request = FAIL; - diag_printf("Send CMD3 Failed.\n"); - } else { - /* Read Command response */ - response.format = RESPONSE_48; - host_read_response(&response); - - Card_rca = ((cyg_uint32) (response.cmd_rsp0 >> RCA_SHIFT)); - - card_state = CURR_CARD_STATE(response.cmd_rsp0); - - if (card_state == IDENT) { - rca_request = SUCCESS; - } else { - rca_request = FAIL; - diag_printf("Get RCA Failed.\n"); - } - } - - return rca_request; + command_t cmd; + cyg_uint32 card_state = 0; + cyg_uint32 rca_request = 0; + command_response_t response; + + /* Configure CMD3 for MMC card */ + /* 32bit card address is expected as Argument */ + mxcmci_cmd_config(&cmd, CMD3, NO_ARG, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Get relative address of the card */ + + if (host_send_cmd(&cmd) == FAIL) { + rca_request = FAIL; + diag_printf("Send CMD3 Failed.\n"); + } else { + /* Read Command response */ + response.format = RESPONSE_48; + host_read_response(&response); + + Card_rca = ((cyg_uint32) (response.cmd_rsp0 >> RCA_SHIFT)); + + card_state = CURR_CARD_STATE(response.cmd_rsp0); + + if (card_state == IDENT) { + rca_request = SUCCESS; + } else { + rca_request = FAIL; + diag_printf("Get RCA Failed.\n"); + } + } + + return rca_request; } static cyg_uint32 sd_get_bit_mode_support(void) { - command_t cmd; - cyg_uint32 rd_data_buff[128]; - cyg_uint32 bit4_mode_support; - command_response_t response; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); - - /* Configure CMD55 for SD card */ - /* This command expects RCA as argument. */ - mxcmci_cmd_config(&cmd, CMD55, card_address, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Issue CMD55 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - bit4_mode_support = 0; - } else { - /* Read Command response */ - response.format = RESPONSE_48; - host_read_response(&response); - - /* Afetr giving ACMD Command, the R1 response should have - * STATUS_APP_CMD set - */ - if (response.cmd_rsp0 & SD_R1_STATUS_APP_CMD_MSK) { - - /* Configure ACMD51 for SD card */ - /* This command expects No argument. */ - - mxcmci_cmd_config(&cmd, ACMD51, NO_ARG, READ, - RESPONSE_48, DATA_PRESENT, ENABLE, - ENABLE); - - /* Issue ACMD51 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - bit4_mode_support = 0; - } else { - /* Read Response from e-SDHC buffer */ - host_data_read(rd_data_buff, 512); - - /* Check for bus width supported */ - bit4_mode_support = (rd_data_buff[SD_BUS_WIDTH_OFFSET] & BIT_MODE_4_SUPPORT); - - if (bit4_mode_support) { - bit4_mode_support = BIT_4_MODE; - } - - } - } - } - - return bit4_mode_support; + command_t cmd; + cyg_uint32 rd_data_buff[128]; + cyg_uint32 bit4_mode_support; + command_response_t response; + cyg_uint32 card_address = (Card_rca << RCA_SHIFT); + + /* Configure CMD55 for SD card */ + /* This command expects RCA as argument. */ + mxcmci_cmd_config(&cmd, CMD55, card_address, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Issue CMD55 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + bit4_mode_support = 0; + } else { + /* Read Command response */ + response.format = RESPONSE_48; + host_read_response(&response); + + /* Afetr giving ACMD Command, the R1 response should have + * STATUS_APP_CMD set + */ + if (response.cmd_rsp0 & SD_R1_STATUS_APP_CMD_MSK) { + + /* Configure ACMD51 for SD card */ + /* This command expects No argument. */ + + mxcmci_cmd_config(&cmd, ACMD51, NO_ARG, READ, + RESPONSE_48, DATA_PRESENT, ENABLE, + ENABLE); + + /* Issue ACMD51 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + bit4_mode_support = 0; + } else { + /* Read Response from e-SDHC buffer */ + host_data_read(rd_data_buff, 512); + + /* Check for bus width supported */ + bit4_mode_support = (rd_data_buff[SD_BUS_WIDTH_OFFSET] & BIT_MODE_4_SUPPORT); + + if (bit4_mode_support) { + bit4_mode_support = BIT_4_MODE; + } + + } + } + } + + return bit4_mode_support; } static cyg_uint32 sd_set_bus_width(cyg_uint32 bus_width) { - command_t cmd; - cyg_uint32 set_bus_width_status = 0; - command_response_t response; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); - - if ((bus_width == FOUR) || (bus_width == ONE)) { - /* Configure CMD55 for SD card */ - /* This command expects RCA as argument. */ - - mxcmci_cmd_config(&cmd, CMD55, card_address, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Issue CMD55 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - set_bus_width_status = FAIL; - } else { - /* Read Command response */ - response.format = RESPONSE_48; - host_read_response(&response); - - /* Afetr giving ACMD Command, the R1 response should have - * STATUS_APP_CMD set - */ - if (response.cmd_rsp0 & SD_R1_STATUS_APP_CMD_MSK) { - bus_width = (bus_width >> ONE); - - /* Configure ACMD6 for SD card */ - mxcmci_cmd_config(&cmd, ACMD6, bus_width, READ, - RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, - ENABLE); - - /* Issue ACMD6 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - set_bus_width_status = FAIL; - } else { - set_bus_width_status = SUCCESS; - } - } - } - } - - return set_bus_width_status; + command_t cmd; + cyg_uint32 set_bus_width_status = 0; + command_response_t response; + cyg_uint32 card_address = (Card_rca << RCA_SHIFT); + + if ((bus_width == 4) || (bus_width == 1)) { + /* Configure CMD55 for SD card */ + /* This command expects RCA as argument. */ + + mxcmci_cmd_config(&cmd, CMD55, card_address, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Issue CMD55 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + set_bus_width_status = FAIL; + } else { + /* Read Command response */ + response.format = RESPONSE_48; + host_read_response(&response); + + /* Afetr giving ACMD Command, the R1 response should have + * STATUS_APP_CMD set + */ + if (response.cmd_rsp0 & SD_R1_STATUS_APP_CMD_MSK) { + bus_width = (bus_width >> ONE); + + /* Configure ACMD6 for SD card */ + mxcmci_cmd_config(&cmd, ACMD6, bus_width, READ, + RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, + ENABLE); + + /* Issue ACMD6 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + set_bus_width_status = FAIL; + } else { + set_bus_width_status = SUCCESS; + } + } + } + } + + return set_bus_width_status; } /*========================================================================== @@ -515,74 +516,74 @@ Detailed Description: cyg_uint32 esd_set_boot_partition(cyg_uint32 *src_ptr, cyg_uint32 length) { - command_t cmd; - cyg_uint32 set_partition_status = FAIL; - command_response_t response; - cyg_uint8 response_data[512]; - cyg_uint32 *response_pointer = (cyg_uint32 *) response_data; - cyg_uint32 card_address = (Card_rca << RCA_SHIFT); - cyg_uint32 card_state; - - /* Send CMD43 to select partition PARTITION1 active */ - mxcmci_cmd_config(&cmd, CMD43, - 0x1<<24, - READ, - RESPONSE_48, - DATA_PRESENT_NONE, - ENABLE, - ENABLE); - - if(host_send_cmd(&cmd) == FAIL) { - //diag_printf("%s: Send CMD43 Failed.\n", __FUNCTION__); - return 1; - } - - set_partition_status = mmc_data_write (src_ptr, length, 0); - if(set_partition_status) { - return 1; /* failed */ - } - - return 0; + command_t cmd; + cyg_uint32 set_partition_status = FAIL; + command_response_t response; + cyg_uint8 response_data[512]; + cyg_uint32 *response_pointer = (cyg_uint32 *) response_data; + cyg_uint32 card_address = (Card_rca << RCA_SHIFT); + cyg_uint32 card_state; + + /* Send CMD43 to select partition PARTITION1 active */ + mxcmci_cmd_config(&cmd, CMD43, + 0x1<<24, + READ, + RESPONSE_48, + DATA_PRESENT_NONE, + ENABLE, + ENABLE); + + if(host_send_cmd(&cmd) == FAIL) { + //diag_printf("%s: Send CMD43 Failed.\n", __FUNCTION__); + return 1; + } + + set_partition_status = mmc_data_write (src_ptr, length, 0); + if(set_partition_status) { + return 1; /* failed */ + } + + return 0; } static cyg_uint32 sd_set_high_speed_mode(void) { - command_t cmd; - cyg_uint32 status = FAIL; - command_response_t response; - - /* Configure CMD6 for SD card */ - mxcmci_cmd_config(&cmd, CMD6, 0xfffff1, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Issue CMD6 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - status = FAIL; - diag_printf("Send CMD6 Failed.\n"); - return FAIL; - } else { - hal_delay_us(1000); - status = SUCCESS; - - } - - mxcmci_cmd_config(&cmd, CMD6, 0x80fffff1, READ, RESPONSE_48, - DATA_PRESENT_NONE, ENABLE, ENABLE); - - /* Issue CMD6 to SD Memory card */ - if (host_send_cmd(&cmd) == FAIL) { - status = FAIL; - diag_printf("Send CMD6 Failed.\n"); - } else { - /* wait until in transfer mode */ - while (mxcmci_trans_status()) { - hal_delay_us(5); - } - - status = SUCCESS; - } - - return status; + command_t cmd; + cyg_uint32 status = FAIL; + command_response_t response; + + /* Configure CMD6 for SD card */ + mxcmci_cmd_config(&cmd, CMD6, 0xfffff1, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Issue CMD6 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + status = FAIL; + diag_printf("Send CMD6 Failed.\n"); + return FAIL; + } else { + hal_delay_us(1000); + status = SUCCESS; + + } + + mxcmci_cmd_config(&cmd, CMD6, 0x80fffff1, READ, RESPONSE_48, + DATA_PRESENT_NONE, ENABLE, ENABLE); + + /* Issue CMD6 to SD Memory card */ + if (host_send_cmd(&cmd) == FAIL) { + status = FAIL; + diag_printf("Send CMD6 Failed.\n"); + } else { + /* wait until in transfer mode */ + while (mxcmci_trans_status()) { + hal_delay_us(5); + } + + status = SUCCESS; + } + + return status; } /* end of mxcmic_sd.c */ diff --git a/packages/devs/ipu/arm/imx/v1_0/include/ipu_common.h b/packages/devs/ipu/arm/imx/v1_0/include/ipu_common.h index 8f655ca9..2d2c7a32 100644 --- a/packages/devs/ipu/arm/imx/v1_0/include/ipu_common.h +++ b/packages/devs/ipu/arm/imx/v1_0/include/ipu_common.h @@ -20,6 +20,7 @@ // System-wide configuration info #include #include +#include #ifdef CYGBLD_HAL_PLF_DEFS_H #include CYGBLD_HAL_PLF_DEFS_H #else diff --git a/packages/ecos.db b/packages/ecos.db index 533a867c..a26d209a 100644 --- a/packages/ecos.db +++ b/packages/ecos.db @@ -1817,6 +1817,15 @@ package CYGPKG_DEVS_ETH_ARM_TX51 { This package provides Ethernet support for the Ka-Ro electronics TX51 processor module." } +package CYGPKG_DEVS_ETH_ARM_TX53 { + alias { "Ethernet driver for Ka-Ro electronics TX53 processor module" devs_eth_arm_tx53 } + directory devs/eth/arm/tx53karo + script tx53_eth_drivers.cdl + hardware + description " + This package provides Ethernet support for the Ka-Ro electronics TX53 processor module." +} + package CYGPKG_DEVS_ETH_ARM_IMX_3STACK { alias { "Ethernet driver for Freescale 3-Stack board" imx_3stack_eth_driver } hardware @@ -3593,6 +3602,16 @@ package CYGPKG_HAL_ARM_MX51 { eCos on Freescale i.MX51 based systems." } +package CYGPKG_HAL_ARM_MX53 { + alias { "Freescale i.MX53 Chipset" hal_arm_mx53 } + directory hal/arm/mx53/var + script hal_arm_soc.cdl + hardware + description " + The MX53 HAL package provides the support needed to run + eCos on Freescale i.MX53 based systems." +} + package CYGPKG_HAL_ARM_MXC91321 { alias { "Freescale MXC91321 Chipset" hal_arm_mxc91321 } directory hal/arm/mxc91321/var @@ -3762,6 +3781,16 @@ package CYGPKG_HAL_ARM_TX51KARO { eCos on a Ka-Ro electronics TX51 processor module." } +package CYGPKG_HAL_ARM_TX53KARO { + alias { "Ka-Ro electronics TX53 processor module" hal_arm_tx53karo } + directory hal/arm/mx53/karo + script hal_arm_tx53.cdl + hardware + description " + The TX53 HAL package provides the support needed to run + eCos on a Ka-Ro electronics TX53 processor module." +} + # -------------------------------------------------------------------------- # SH packages package CYGPKG_HAL_SH { @@ -5897,6 +5926,18 @@ target tx51karo { Freescale i.MX51 processor." } +target tx53karo { + alias { "Ka-Ro electronics TX53 processor module" mx53 tx53karo } + packages { CYGPKG_HAL_ARM + CYGPKG_HAL_ARM_MX53 + CYGPKG_HAL_ARM_TX53KARO + } + description " + The tx53karo target provides the packages needed to run + eCos on a Ka-Ro electronics TX53 module equipped with a + Freescale i.MX53 processor." +} + target mx31ads { alias { "Freescale i.MX31 ADS board" mx31 mx31ads } packages { CYGPKG_HAL_ARM diff --git a/packages/hal/arm/arch/v2_0/src/redboot_linux_exec.c b/packages/hal/arm/arch/v2_0/src/redboot_linux_exec.c index 81c1bec8..9d7a5f9c 100644 --- a/packages/hal/arm/arch/v2_0/src/redboot_linux_exec.c +++ b/packages/hal/arm/arch/v2_0/src/redboot_linux_exec.c @@ -77,7 +77,7 @@ #include #ifndef CYGARC_PHYSICAL_ADDRESS -# error +# error CYGARC_PHYSICAL_ADDRESS not defined # define CYGARC_PHYSICAL_ADDRESS(x) (x) #endif diff --git a/packages/infra/v2_0/src/diag.cxx b/packages/infra/v2_0/src/diag.cxx index 189303eb..5fc75a0f 100644 --- a/packages/infra/v2_0/src/diag.cxx +++ b/packages/infra/v2_0/src/diag.cxx @@ -42,7 +42,7 @@ //#####DESCRIPTIONBEGIN#### // // Author(s): nickg,gthomas,jlarmour -// Contributors: +// Contributors: // Date: 1999-02-22 // Purpose: Infrastructure diagnostic output // Description: Implementations of infrastructure diagnostic routines. @@ -55,61 +55,60 @@ #include #include -#include // base types - -#include // HAL polled output -#include // architectural stuff for... -#include // interrupt control -#include // diagnostic output routines +#include // base types + +#include // HAL polled output +#include // architectural stuff for... +#include // interrupt control +#include // diagnostic output routines #include #include #include - + #ifdef CYG_HAL_DIAG_LOCK_DATA_DEFN CYG_HAL_DIAG_LOCK_DATA_DEFN; #endif - + /*----------------------------------------------------------------------*/ externC void diag_write_num( - cyg_uint32 n, /* number to write */ - cyg_ucount8 base, /* radix to write to */ - cyg_ucount8 sign, /* sign, '-' if -ve, '+' if +ve */ - cyg_bool pfzero, /* prefix with zero ? */ - cyg_ucount8 width /* min width of number */ - ); + cyg_uint64 n, /* number to write */ + cyg_ucount8 base, /* radix to write to */ + cyg_ucount8 sign, /* sign, '-' if -ve, '+' if +ve */ + cyg_bool pfzero, /* prefix with zero ? */ + cyg_ucount8 width /* min width of number */ + ); class Cyg_dummy_diag_init_class { public: Cyg_dummy_diag_init_class() { - HAL_DIAG_INIT(); - } + HAL_DIAG_INIT(); + } }; // Initialize after HAL. static Cyg_dummy_diag_init_class cyg_dummy_diag_init_obj - CYGBLD_ATTRIB_INIT_AFTER(CYG_INIT_HAL); +CYGBLD_ATTRIB_INIT_AFTER(CYG_INIT_HAL); /*----------------------------------------------------------------------*/ /* Write single char to output */ externC void diag_write_char(char c) { - /* Translate LF into CRLF */ + /* Translate LF into CRLF */ - if( c == '\n' ) - { - HAL_DIAG_WRITE_CHAR('\r'); - } + if (c == '\n') { + HAL_DIAG_WRITE_CHAR('\r'); + } - HAL_DIAG_WRITE_CHAR(c); + HAL_DIAG_WRITE_CHAR(c); } // Default wrapper function used by diag_printf static void _diag_write_char(char c, void *param) { - diag_write_char(c); + diag_write_char(c); } /*----------------------------------------------------------------------*/ @@ -128,7 +127,7 @@ static void (*_putc)(char c, void *param) = _diag_write_char; externC void diag_init_putc(void (*putc)(char c, void *param)) { - _putc = putc; + _putc = putc; } /*----------------------------------------------------------------------*/ @@ -136,29 +135,32 @@ diag_init_putc(void (*putc)(char c, void *param)) externC void diag_write_string(const char *psz) { - while( *psz ) diag_write_char( *psz++ ); + while (*psz) + diag_write_char(*psz++); } /*----------------------------------------------------------------------*/ /* Write decimal value */ -externC void diag_write_dec( cyg_int32 n) +externC void diag_write_dec(cyg_int32 n) { - cyg_ucount8 sign; + cyg_ucount8 sign; - if( n < 0 ) n = -n, sign = '-'; - else sign = '+'; - - diag_write_num( n, 10, sign, false, 0); + if (n < 0) + n = -n, sign = '-'; + else + sign = '+'; + + diag_write_num(n, 10, sign, false, 0); } /*----------------------------------------------------------------------*/ /* Write hexadecimal value */ -externC void diag_write_hex( cyg_uint32 n) +externC void diag_write_hex(cyg_uint32 n) { - diag_write_num( n, 16, '+', false, 0); -} + diag_write_num(n, 16, '+', false, 0); +} /*----------------------------------------------------------------------*/ /* Generic number writing function */ @@ -167,94 +169,94 @@ externC void diag_write_hex( cyg_uint32 n) /* the left. */ externC void diag_write_long_num( - cyg_uint64 n, /* number to write */ - cyg_ucount8 base, /* radix to write to */ - cyg_ucount8 sign, /* sign, '-' if -ve, '+' if +ve */ - cyg_bool pfzero, /* prefix with zero ? */ - cyg_ucount8 width /* min width of number */ - ) + cyg_uint64 n, /* number to write */ + cyg_ucount8 base, /* radix to write to */ + cyg_ucount8 sign, /* sign, '-' if -ve, '+' if +ve */ + cyg_bool pfzero, /* prefix with zero ? */ + cyg_ucount8 width /* min width of number */ + ) { - char buf[32]; - cyg_count8 bpos; - char bufinit = pfzero?'0':' '; - const char *digits = "0123456789ABCDEF"; - - /* init buffer to padding char: space or zero */ - for( bpos = 0; bpos < (cyg_count8)sizeof(buf); bpos++ ) buf[bpos] = bufinit; - - /* Set pos to start */ - bpos = 0; - - /* construct digits into buffer in reverse order */ - if( n == 0 ) buf[bpos++] = '0'; - else while( n != 0 ) - { - cyg_ucount8 d = n % base; - buf[bpos++] = digits[d]; - n /= base; - } - - /* set pos to width if less. */ - if( (cyg_count8)width > bpos ) bpos = width; - - /* set sign if negative. */ - if( sign == '-' ) - { - if( buf[bpos-1] == bufinit ) bpos--; - buf[bpos] = sign; - } - else bpos--; - - /* Now write it out in correct order. */ - while( bpos >= 0 ) - diag_write_char(buf[bpos--]); + char buf[32]; + cyg_count8 bpos; + char bufinit = pfzero?'0':' '; + const char *digits = "0123456789ABCDEF"; + + /* init buffer to padding char: space or zero */ + for (bpos = 0; bpos < (cyg_count8)sizeof(buf); bpos++) + buf[bpos] = bufinit; + + /* Set pos to start */ + bpos = 0; + + /* construct digits into buffer in reverse order */ + if (n == 0) + buf[bpos++] = '0'; + else + while (n != 0) { + cyg_ucount8 d = n % base; + buf[bpos++] = digits[d]; + n /= base; + } + + /* set pos to width if less. */ + if ((cyg_count8)width > bpos) + bpos = width; + + /* set sign if negative. */ + if (sign == '-') { + if (buf[bpos-1] == bufinit) bpos--; + buf[bpos] = sign; + } else { + bpos--; + } + + /* Now write it out in correct order. */ + while(bpos >= 0) + diag_write_char(buf[bpos--]); } externC void diag_write_num( - cyg_uint32 n, /* number to write */ - cyg_ucount8 base, /* radix to write to */ - cyg_ucount8 sign, /* sign, '-' if -ve, '+' if +ve */ - cyg_bool pfzero, /* prefix with zero ? */ - cyg_ucount8 width /* min width of number */ - ) + cyg_uint64 n, /* number to write */ + cyg_ucount8 base, /* radix to write to */ + cyg_ucount8 sign, /* sign, '-' if -ve, '+' if +ve */ + cyg_bool pfzero, /* prefix with zero ? */ + cyg_ucount8 width /* min width of number */ + ) { - diag_write_long_num((long long)n, base, sign, pfzero, width); + diag_write_long_num(n, base, sign, pfzero, width); } /*----------------------------------------------------------------------*/ /* perform some simple sanity checks on a string to ensure that it */ /* consists of printable characters and is of reasonable length. */ -static cyg_bool diag_check_string( const char *str ) +static cyg_bool diag_check_string(const char *str) { - cyg_bool result = true; - const char *s; - - if( str == NULL ) return false; - - for( s = str ; result && *s ; s++ ) - { - char c = *s; + cyg_bool result = true; + const char *s; - /* Check for a reasonable length string. */ - - if( s-str > 2048 ) result = false; + if (str == NULL) + return false; - /* We only really support CR, NL, tab and backspace at present. - * If we want to use other special chars, this test will - * have to be expanded. */ + for (s = str ; result && *s ; s++) { + char c = *s; - if( c == '\n' || c == '\r' || c == '\b' || c == '\t' ) - continue; + /* Check for a reasonable length string. */ + if (s - str > 2048) + result = false; - /* Check for printable chars. This assumes ASCII */ - - if( c < ' ' || c > '~' ) - result = false; + /* We only really support CR, NL, tab and backspace at present. + * If we want to use other special chars, this test will + * have to be expanded. */ + if (c == '\n' || c == '\r' || c == '\b' || c == '\t') + continue; - } + /* Check for printable chars. This assumes ASCII */ + if (c < ' ' || c > '~') + result = false; + } - return result; + return result; } /*----------------------------------------------------------------------*/ @@ -262,25 +264,25 @@ static cyg_bool diag_check_string( const char *str ) static int _cvt(unsigned long long val, char *buf, long radix, const char *digits) { - char temp[80]; - char *cp = temp; - int length = 0; - - if (val == 0) { - /* Special case */ - *cp++ = '0'; - } else { - while (val) { - *cp++ = digits[val % radix]; - val /= radix; - } - } - while (cp != temp) { - *buf++ = *--cp; - length++; - } - *buf = '\0'; - return (length); + char temp[80]; + char *cp = temp; + int length = 0; + + if (val == 0) { + /* Special case */ + *cp++ = '0'; + } else { + while (val) { + *cp++ = digits[val % radix]; + val /= radix; + } + } + while (cp != temp) { + *buf++ = *--cp; + length++; + } + *buf = '\0'; + return length; } #define is_digit(c) ((c >= '0') && (c <= '9')) @@ -288,375 +290,379 @@ _cvt(unsigned long long val, char *buf, long radix, const char *digits) static int _vprintf(void (*putc)(char c, void *param), void *param, const char *fmt, va_list ap) { - char buf[sizeof(long long)*8]; - char c, sign; - const char *cp=buf; - int left_prec, right_prec, zero_fill, pad, pad_on_right, - i, islong, islonglong; - long long val = 0; - int res = 0, length = 0; - - if (!diag_check_string(fmt)) { - diag_write_string("\n"); - return 0; - } - while ((c = *fmt++) != '\0') { - if (c == '%') { - c = *fmt++; - left_prec = right_prec = pad_on_right = islong = islonglong = 0; - if (c == '-') { - c = *fmt++; - pad_on_right++; - } - if (c == '0') { - zero_fill = true; - c = *fmt++; - } else { - zero_fill = false; - } - while (is_digit(c)) { - left_prec = (left_prec * 10) + (c - '0'); - c = *fmt++; - } - if (c == '.') { - c = *fmt++; - zero_fill++; - while (is_digit(c)) { - right_prec = (right_prec * 10) + (c - '0'); - c = *fmt++; - } - } else { - right_prec = left_prec; - } - sign = '\0'; - if (c == 'l') { - // 'long' qualifier - c = *fmt++; - islong = 1; - if (c == 'l') { - // long long qualifier - c = *fmt++; - islonglong = 1; - } - } - if (c == 'z') { - c = *fmt++; - islong = sizeof(size_t) == sizeof(long); - } - // Fetch value [numeric descriptors only] - switch (c) { - case 'p': - islong = 1; - case 'd': - case 'D': - case 'x': - case 'X': - case 'u': - case 'U': - case 'b': - case 'B': - if (islonglong) { - val = va_arg(ap, long long); - } else if (islong) { - val = (long long)va_arg(ap, long); - } else{ - val = (long long)va_arg(ap, int); - } - if ((c == 'd') || (c == 'D')) { - if (val < 0) { - sign = '-'; - val = -val; - } - } else { - // Mask to unsigned, sized quantity - if (islong) { - val &= ((long long)1 << (sizeof(long) * 8)) - 1; - } else if (!islonglong) { // no need to mask longlong - val &= ((long long)1 << (sizeof(int) * 8)) - 1; - } - } - break; - default: - break; - } - // Process output - switch (c) { - case 'p': // Pointer - (*putc)('0', param); - (*putc)('x', param); - zero_fill = true; - left_prec = sizeof(unsigned long)*2; - res += 2; // Account for "0x" leadin - case 'd': - case 'D': - case 'u': - case 'U': - case 'x': - case 'X': - switch (c) { - case 'd': - case 'D': - case 'u': - case 'U': - length = _cvt(val, buf, 10, "0123456789"); - break; - case 'p': - case 'x': - length = _cvt(val, buf, 16, "0123456789abcdef"); - break; - case 'X': - length = _cvt(val, buf, 16, "0123456789ABCDEF"); - break; - } - cp = buf; - break; - case 's': - case 'S': - cp = va_arg(ap, char *); - if (cp == NULL) - cp = ""; + char buf[sizeof(long long) * 8]; + char c, sign; + const char *cp = buf; + int left_prec, right_prec, zero_fill, pad, pad_on_right, + i, islong, islonglong; + long long val = 0; + int res = 0, length = 0; + + if (!diag_check_string(fmt)) { + diag_write_string("\n"); + return 0; + } + while ((c = *fmt++) != '\0') { + if (c == '%') { + c = *fmt++; + left_prec = right_prec = pad_on_right = islong = islonglong = 0; + if (c == '-') { + c = *fmt++; + pad_on_right++; + } + if (c == '0') { + zero_fill = true; + c = *fmt++; + } else { + zero_fill = false; + } + while (is_digit(c)) { + left_prec = (left_prec * 10) + (c - '0'); + c = *fmt++; + } + if (c == '.') { + c = *fmt++; + zero_fill++; + while (is_digit(c)) { + right_prec = (right_prec * 10) + (c - '0'); + c = *fmt++; + } + } else { + right_prec = left_prec; + } + sign = '\0'; + if (c == 'l') { + // 'long' qualifier + c = *fmt++; + islong = 1; + if (c == 'l') { + // long long qualifier + c = *fmt++; + islonglong = 1; + } + } + if (c == 'z') { + c = *fmt++; + islong = sizeof(size_t) == sizeof(long); + } + // Fetch value [numeric descriptors only] + switch (c) { + case 'p': + islong = 1; + case 'd': + case 'D': + case 'x': + case 'X': + case 'u': + case 'U': + case 'b': + case 'B': + if (islonglong) { + val = va_arg(ap, long long); + } else if (islong) { + val = (long long)va_arg(ap, long); + } else{ + val = (long long)va_arg(ap, int); + } + if ((c == 'd') || (c == 'D')) { + if (val < 0) { + sign = '-'; + val = -val; + } + } else { + // Mask to unsigned, sized quantity + if (!islonglong) { + // no need to mask longlong + if (islong) + val &= ((long long)1 << (sizeof(long) * 8)) - 1; + else + val &= ((long long)1 << (sizeof(int) * 8)) - 1; + } + } + break; + default: + break; + } + // Process output + switch (c) { + case 'p': // Pointer + putc('0', param); + putc('x', param); + zero_fill = true; + left_prec = sizeof(unsigned long) * 2; + res += 2; // Account for "0x" leadin + case 'd': + case 'D': + case 'u': + case 'U': + case 'x': + case 'X': + switch (c) { + case 'd': + case 'D': + case 'u': + case 'U': + length = _cvt(val, buf, 10, "0123456789"); + break; + case 'p': + case 'x': + length = _cvt(val, buf, 16, "0123456789abcdef"); + break; + case 'X': + length = _cvt(val, buf, 16, "0123456789ABCDEF"); + break; + } + cp = buf; + break; + case 's': + case 'S': + cp = va_arg(ap, char *); + if (cp == NULL) + cp = ""; #if !CYGINT_ISO_CTYPE #warning enable CYGINT_ISO_CTYPE to get sensible string output instead of bogus '' messages for unprintable characters - else if (!diag_check_string(cp)) { - diag_write_string(" 0) { - (*putc)(c, param); - res++; - } - } - if (sign != '\0') { - (*putc)(sign, param); - res++; - } - while (length-- > 0) { - c = *cp++; -#if CYGINT_ISO_CTYPE - if (isprint(c) || isspace(c)) { - (*putc)(c, param); - } else if (iscntrl(c)) { - (*putc)('\\', param); - (*putc)('C', param); - (*putc)('-', param); - (*putc)(c | 0x40, param); - } else { - int len = _cvt(c, buf, 16, "0123456789ABCDEF"); - (*putc)('\\', param); - (*putc)('0', param); - (*putc)('x', param); - for (int i = 0; i < len; i++) { - (*putc)(buf[i], param); + length = 0; + while (cp[length] != '\0') length++; + break; + case 'c': + case 'C': + c = va_arg(ap, int /*char*/); + putc(c, param); + res++; + continue; + case 'b': + case 'B': + length = left_prec; + if (left_prec == 0) { + if (islonglong) + length = sizeof(long long) * 8; + else if (islong) + length = sizeof(long) * 8; + else + length = sizeof(int) * 8; + } + for (i = 0; i < length-1; i++) { + buf[i] = ((val & ((long long)1< 0) { + putc(c, param); + res++; + } + } + if (sign != '\0') { + putc(sign, param); + res++; + } + while (length-- > 0) { + c = *cp++; +#if CYGINT_ISO_CTYPE + if (isprint(c) || isspace(c)) { + putc(c, param); + } else if (iscntrl(c)) { + putc('\\', param); + putc('C', param); + putc('-', param); + putc(c | 0x40, param); + } else { + int len = _cvt(c, buf, 16, "0123456789ABCDEF"); + putc('\\', param); + putc('0', param); + putc('x', param); + for (int i = 0; i < len; i++) { + putc(buf[i], param); + } + } #else - (*putc)(c, param); + putc(c, param); #endif - res++; - } - if (pad_on_right) { - while (pad-- > 0) { - (*putc)(' ', param); - res++; - } - } - } else { - (*putc)(c, param); - res++; - } - } - return (res); + res++; + } + if (pad_on_right) { + while (pad-- > 0) { + putc(' ', param); + res++; + } + } + } else { + putc(c, param); + res++; + } + } + return res; } struct _sputc_info { - char *ptr; - int max, len; + char *ptr; + int max, len; }; -static void +static void _sputc(char c, void *param) { - struct _sputc_info *info = (struct _sputc_info *)param; + struct _sputc_info *info = (struct _sputc_info *)param; - if (info->len < info->max) { - *(info->ptr)++ = c; - *(info->ptr) = '\0'; - info->len++; - } + if (info->len < info->max) { + *info->ptr++ = c; + *info->ptr = '\0'; + info->len++; + } } int diag_sprintf(char *buf, const char *fmt, ...) -{ - int ret; - va_list ap; - struct _sputc_info info; - - va_start(ap, fmt); - info.ptr = buf; - info.max = 1024; // Unlimited - info.len = 0; - ret = _vprintf(_sputc, (void *)&info, fmt, ap); - va_end(ap); - return (info.len); +{ + int ret; + va_list ap; + struct _sputc_info info; + + va_start(ap, fmt); + info.ptr = buf; + info.max = 1024; // Unlimited + info.len = 0; + ret = _vprintf(_sputc, &info, fmt, ap); + va_end(ap); + return info.len; } int diag_snprintf(char *buf, size_t len, const char *fmt, ...) -{ - int ret; - va_list ap; - struct _sputc_info info; - - va_start(ap, fmt); - info.ptr = buf; - info.len = 0; - info.max = len-1; - ret = _vprintf(_sputc, (void *)&info, fmt, ap); - va_end(ap); - return (info.len); +{ + int ret; + va_list ap; + struct _sputc_info info; + + va_start(ap, fmt); + info.ptr = buf; + info.len = 0; + info.max = len-1; + ret = _vprintf(_sputc, &info, fmt, ap); + va_end(ap); + return info.len; } -int +int diag_vsprintf(char *buf, const char *fmt, va_list ap) { - int ret; - struct _sputc_info info; - - info.ptr = buf; - info.max = 1024; // Unlimited - info.len = 0; - ret = _vprintf(_sputc, (void *)&info, fmt, ap); - return (info.len); + int ret; + struct _sputc_info info; + + info.ptr = buf; + info.max = 1024; // Unlimited + info.len = 0; + ret = _vprintf(_sputc, &info, fmt, ap); + return info.len; } int diag_printf(const char *fmt, ...) { - va_list ap; - int ret; + va_list ap; + int ret; - va_start(ap, fmt); - ret = _vprintf(_putc, (void *)0, fmt, ap); - va_end(ap); - return (ret); + va_start(ap, fmt); + ret = _vprintf(_putc, NULL, fmt, ap); + va_end(ap); + return ret; } int diag_vprintf(const char *fmt, va_list ap) { - int ret; + int ret; - ret = _vprintf(_putc, (void *)0, fmt, ap); - return (ret); + ret = _vprintf(_putc, NULL, fmt, ap); + return ret; } void diag_vdump_buf_with_offset(__printf_fun *pf, - cyg_uint8 *p, - CYG_ADDRWORD s, - cyg_uint8 *base) + cyg_uint8 *p, + CYG_ADDRWORD s, + cyg_uint8 *base) { - int i, c; - if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) { - s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p; - } - while ((int)s > 0) { - if (base) { - (*pf)("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base); - } else { - (*pf)("%08X: ", p); - } - for (i = 0; i < 16; i++) { - if (i < (int)s) { - (*pf)("%02X ", p[i] & 0xFF); - } else { - (*pf)(" "); - } - if (i == 7) (*pf)(" "); - } - (*pf)(" |"); - for (i = 0; i < 16; i++) { - if (i < (int)s) { - c = p[i] & 0xFF; - if ((c < 0x20) || (c >= 0x7F)) c = '.'; - } else { - c = ' '; - } - (*pf)("%c", c); - } - (*pf)("|\n"); - s -= 16; - p += 16; - } + int i, c; + + if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) { + s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p; + } + while ((int)s > 0) { + if (base) { + pf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base); + } else { + pf("%08X: ", p); + } + for (i = 0; i < 16; i++) { + if (i < (int)s) { + pf("%02X ", p[i] & 0xFF); + } else { + pf(" "); + } + if (i == 7) + pf(" "); + } + pf(" |"); + for (i = 0; i < 16; i++) { + if (i < (int)s) { + c = p[i] & 0xFF; + if ((c < 0x20) || (c >= 0x7F)) c = '.'; + } else { + c = ' '; + } + pf("%c", c); + } + pf("|\n"); + s -= 16; + p += 16; + } } void -diag_dump_buf_with_offset(cyg_uint8 *p, - CYG_ADDRWORD s, - cyg_uint8 *base) +diag_dump_buf_with_offset(cyg_uint8 *p, + CYG_ADDRWORD s, + cyg_uint8 *base) { - diag_vdump_buf_with_offset(diag_printf, p, s, base); + diag_vdump_buf_with_offset(diag_printf, p, s, base); } void @@ -666,31 +672,32 @@ diag_dump_buf(void *p, CYG_ADDRWORD s) } void -diag_dump_buf_with_offset_32bit(cyg_uint32 *p, - CYG_ADDRWORD s, - cyg_uint32 *base) +diag_dump_buf_with_offset_32bit(cyg_uint32 *p, + CYG_ADDRWORD s, + cyg_uint32 *base) { - int i; - if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) { - s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p; - } - while ((int)s > 0) { - if (base) { - diag_printf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base); - } else { - diag_printf("%08X: ", (CYG_ADDRWORD)p); - } - for (i = 0; i < 4; i++) { - if (i < (int)s/4) { - diag_printf("%08X ", p[i] ); - } else { - diag_printf(" "); - } - } - diag_printf("\n"); - s -= 16; - p += 4; - } + int i; + + if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) { + s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p; + } + while ((int)s > 0) { + if (base) { + diag_printf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base); + } else { + diag_printf("%08X: ", (CYG_ADDRWORD)p); + } + for (i = 0; i < 4; i++) { + if (i < (int)s / 4) { + diag_printf("%08X ", p[i]); + } else { + diag_printf(" "); + } + } + diag_printf("\n"); + s -= 16; + p += 4; + } } externC void @@ -700,32 +707,32 @@ diag_dump_buf_32bit(void *p, CYG_ADDRWORD s) } void -diag_dump_buf_with_offset_16bit(cyg_uint16 *p, - CYG_ADDRWORD s, - cyg_uint16 *base) +diag_dump_buf_with_offset_16bit(cyg_uint16 *p, + CYG_ADDRWORD s, + cyg_uint16 *base) { - int i; - if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) { - s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p; - } - while ((int)s > 0) { - if (base) { - diag_printf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base); - } else { - diag_printf("%08X: ", (CYG_ADDRWORD)p); - } - for (i = 0; i < 8; i++) { - if (i < (int)s/2) { - diag_printf("%04X ", p[i] ); - if (i == 3) diag_printf(" "); - } else { - diag_printf(" "); - } - } - diag_printf("\n"); - s -= 16; - p += 8; - } + int i; + if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) { + s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p; + } + while ((int)s > 0) { + if (base) { + diag_printf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base); + } else { + diag_printf("%08X: ", (CYG_ADDRWORD)p); + } + for (i = 0; i < 8; i++) { + if (i < (int)s / 2) { + diag_printf("%04X ", p[i]); + if (i == 3) diag_printf(" "); + } else { + diag_printf(" "); + } + } + diag_printf("\n"); + s -= 16; + p += 8; + } } externC void diff --git a/packages/io/flash/v2_0/include/flash.h b/packages/io/flash/v2_0/include/flash.h index 8becb38a..688aba18 100644 --- a/packages/io/flash/v2_0/include/flash.h +++ b/packages/io/flash/v2_0/include/flash.h @@ -74,57 +74,57 @@ externC int flash_get_block_info(int *block_size, int *blocks); externC bool flash_code_overlaps(void *start, void *end); externC char *flash_errmsg(int err); -#define FLASH_ERR_OK 0x00 // No error - operation complete -#define FLASH_ERR_INVALID 0x01 // Invalid FLASH address -#define FLASH_ERR_ERASE 0x02 // Error trying to erase -#define FLASH_ERR_LOCK 0x03 // Error trying to lock/unlock -#define FLASH_ERR_PROGRAM 0x04 // Error trying to program -#define FLASH_ERR_PROTOCOL 0x05 // Generic error -#define FLASH_ERR_PROTECT 0x06 // Device/region is write-protected -#define FLASH_ERR_NOT_INIT 0x07 // FLASH info not yet initialized -#define FLASH_ERR_HWR 0x08 // Hardware (configuration?) problem -#define FLASH_ERR_ERASE_SUSPEND 0x09 // Device is in erase suspend mode -#define FLASH_ERR_PROGRAM_SUSPEND 0x0a // Device is in in program suspend mode -#define FLASH_ERR_DRV_VERIFY 0x0b // Driver failed to verify data -#define FLASH_ERR_DRV_TIMEOUT 0x0c // Driver timed out waiting for device -#define FLASH_ERR_DRV_WRONG_PART 0x0d // Driver does not support device -#define FLASH_ERR_LOW_VOLTAGE 0x0e // Not enough juice to complete job +#define FLASH_ERR_OK 0x00 // No error - operation complete +#define FLASH_ERR_INVALID 0x01 // Invalid FLASH address +#define FLASH_ERR_ERASE 0x02 // Error trying to erase +#define FLASH_ERR_LOCK 0x03 // Error trying to lock/unlock +#define FLASH_ERR_PROGRAM 0x04 // Error trying to program +#define FLASH_ERR_PROTOCOL 0x05 // Generic error +#define FLASH_ERR_PROTECT 0x06 // Device/region is write-protected +#define FLASH_ERR_NOT_INIT 0x07 // FLASH info not yet initialized +#define FLASH_ERR_HWR 0x08 // Hardware (configuration?) problem +#define FLASH_ERR_ERASE_SUSPEND 0x09 // Device is in erase suspend mode +#define FLASH_ERR_PROGRAM_SUSPEND 0x0a // Device is in in program suspend mode +#define FLASH_ERR_DRV_VERIFY 0x0b // Driver failed to verify data +#define FLASH_ERR_DRV_TIMEOUT 0x0c // Driver timed out waiting for device +#define FLASH_ERR_DRV_WRONG_PART 0x0d // Driver does not support device +#define FLASH_ERR_LOW_VOLTAGE 0x0e // Not enough juice to complete job #ifdef CYGPKG_IO_FLASH_BLOCK_DEVICE typedef struct { - CYG_ADDRESS offset; - int len; - int flasherr; - void **err_address; + CYG_ADDRESS offset; + int len; + int flasherr; + void **err_address; } cyg_io_flash_getconfig_erase_t; typedef struct { - int dev_size; + int dev_size; } cyg_io_flash_getconfig_devsize_t; typedef struct { - CYG_ADDRESS offset; - int block_size; + CYG_ADDRESS offset; + int block_size; } cyg_io_flash_getconfig_blocksize_t; #endif #ifdef _FLASH_PRIVATE_ struct flash_info { - int block_size; // Assuming fixed size "blocks" - int blocks; // Number of blocks - int buffer_size; // Size of write buffer (only defined for some devices) - unsigned long block_mask; - void *start, *end; // Address range - int init; - _printf *pf; + int block_size; // Assuming fixed size "blocks" + int blocks; // Number of blocks + int buffer_size; // Size of write buffer (only defined for some devices) + unsigned long block_mask; + void *start, *end; // Address range + int init; + _printf *pf; }; externC struct flash_info flash_info; externC int flash_hwr_init(void); externC int flash_hwr_map_error(int err); -// +// // Some FLASH devices may require additional support, e.g. to turn on // appropriate voltage drivers, before any operation. // diff --git a/packages/io/flash/v2_0/src/flash.c b/packages/io/flash/v2_0/src/flash.c index 59725c50..aee6b861 100644 --- a/packages/io/flash/v2_0/src/flash.c +++ b/packages/io/flash/v2_0/src/flash.c @@ -44,13 +44,12 @@ // Author(s): gthomas // Contributors: gthomas // Date: 2000-07-26 -// Purpose: -// Description: -// +// Purpose: +// Description: +// //####DESCRIPTIONEND#### // //========================================================================== - #include #include @@ -85,17 +84,17 @@ externC code_fun flash_unlock_block; int flash_init(_printf *pf) { - int err; + int err; - flash_info.pf = pf; // Do this before calling into the driver - if (flash_info.init) return FLASH_ERR_OK; + flash_info.pf = pf; // Do this before calling into the driver + if (flash_info.init) return FLASH_ERR_OK; - if ((err = flash_hwr_init()) != FLASH_ERR_OK) { - return err; - } - flash_info.block_mask = ~(flash_info.block_size-1); - flash_info.init = 1; - return FLASH_ERR_OK; + if ((err = flash_hwr_init()) != FLASH_ERR_OK) { + return err; + } + flash_info.block_mask = ~(flash_info.block_size - 1); + flash_info.init = 1; + return FLASH_ERR_OK; } // Use this function to make function pointers anonymous - forcing the @@ -112,286 +111,285 @@ static void *__anonymizer(void *p) void flash_dev_query(void *data) { - typedef void code_fun(void *); - code_fun *_flash_query; - int d_cache, i_cache; + typedef void code_fun(void *); + code_fun *_flash_query; + int d_cache, i_cache; - _flash_query = (code_fun*)__anonymizer(&flash_query); + _flash_query = (code_fun*)__anonymizer(&flash_query); - HAL_FLASH_CACHES_OFF(d_cache, i_cache); - (*_flash_query)(data); - HAL_FLASH_CACHES_ON(d_cache, i_cache); + HAL_FLASH_CACHES_OFF(d_cache, i_cache); + (*_flash_query)(data); + HAL_FLASH_CACHES_ON(d_cache, i_cache); } int flash_verify_addr(void *target) { - if (!flash_info.init) { - return FLASH_ERR_NOT_INIT; - } - if (((CYG_ADDRESS)target >= (CYG_ADDRESS)flash_info.start) && - ((CYG_ADDRESS)target <= ((CYG_ADDRESS)flash_info.end - 1))) { - return FLASH_ERR_OK; - } else { - return FLASH_ERR_INVALID; - } + if (!flash_info.init) { + return FLASH_ERR_NOT_INIT; + } + if (((CYG_ADDRESS)target >= (CYG_ADDRESS)flash_info.start) && + ((CYG_ADDRESS)target <= ((CYG_ADDRESS)flash_info.end - 1))) { + return FLASH_ERR_OK; + } else { + return FLASH_ERR_INVALID; + } } int flash_get_limits(void *target, void **start, void **end) { - if (!flash_info.init) { - return FLASH_ERR_NOT_INIT; - } - *start = flash_info.start; - *end = flash_info.end; - return FLASH_ERR_OK; + if (!flash_info.init) { + return FLASH_ERR_NOT_INIT; + } + *start = flash_info.start; + *end = flash_info.end; + return FLASH_ERR_OK; } int flash_get_block_info(int *block_size, int *blocks) { - if (!flash_info.init) { - return FLASH_ERR_NOT_INIT; - } - *block_size = flash_info.block_size; - *blocks = flash_info.blocks; - return FLASH_ERR_OK; + if (!flash_info.init) { + return FLASH_ERR_NOT_INIT; + } + *block_size = flash_info.block_size; + *blocks = flash_info.blocks; + return FLASH_ERR_OK; } int flash_erase(void *addr, int len, void **err_addr) { - unsigned short *block, *end_addr; - int stat = 0; - typedef int code_fun(unsigned short *, unsigned int); - code_fun *_flash_erase_block; - int d_cache, i_cache; + unsigned short *block, *end_addr; + int stat = 0; + typedef int code_fun(unsigned short *, unsigned int); + code_fun *_flash_erase_block; + int d_cache, i_cache; - if (!flash_info.init) { - return FLASH_ERR_NOT_INIT; - } + if (!flash_info.init) { + return FLASH_ERR_NOT_INIT; + } #ifdef CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT - if (plf_flash_query_soft_wp(addr,len)) - return FLASH_ERR_PROTECT; + if (plf_flash_query_soft_wp(addr,len)) + return FLASH_ERR_PROTECT; #endif - _flash_erase_block = (code_fun*)__anonymizer(&flash_erase_block); + _flash_erase_block = (code_fun*)__anonymizer(&flash_erase_block); - block = (unsigned short *)((CYG_ADDRESS)addr & flash_info.block_mask); - end_addr = (unsigned short *)((CYG_ADDRESS)addr + len); + block = (unsigned short *)((CYG_ADDRESS)addr & flash_info.block_mask); + end_addr = (unsigned short *)((CYG_ADDRESS)addr + len); - /* Check to see if end_addr overflowed */ - if ((end_addr < block) && (len > 0)) { - end_addr = (unsigned short *)((CYG_ADDRESS)flash_info.end - 1); - } + /* Check to see if end_addr overflowed */ + if ((end_addr < block) && (len > 0)) { + end_addr = (unsigned short *)((CYG_ADDRESS)flash_info.end); + } #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("... Erase from %p-%p: ", block, end_addr); + flash_info.pf("... Erase from %p-%p: ", block, end_addr); #endif - HAL_FLASH_CACHES_OFF(d_cache, i_cache); - FLASH_Enable(block, end_addr); - while (block < end_addr) { - // Supply the blocksize for a gross check for erase success - unsigned short *tmp_block; + HAL_FLASH_CACHES_OFF(d_cache, i_cache); + FLASH_Enable(block, end_addr); + while (block < end_addr) { + // Supply the blocksize for a gross check for erase success + unsigned short *tmp_block; #if !defined(CYGSEM_IO_FLASH_READ_INDIRECT) - int i; - unsigned char *dp; - bool erased = true; - - dp = (unsigned char *)block; - for (i = 0; i < flash_info.block_size; i++) { - if (*dp++ != 0xFF) { - erased = false; - break; - } - } + int i; + unsigned char *dp; + bool erased = true; + + dp = (unsigned char *)block; + for (i = 0; i < flash_info.block_size; i++) { + if (*dp++ != 0xFF) { + erased = false; + break; + } + } #else - bool erased = false; + bool erased = false; #endif - if (!erased) { - stat = (*_flash_erase_block)(block, flash_info.block_size); - stat = flash_hwr_map_error(stat); - } - if (stat) { - *err_addr = block; - break; - } - - // Check to see if block will overflow - tmp_block = block + flash_info.block_size / sizeof(*block); - if (tmp_block < block) { - // If block address overflows, set block value to end on this loop - block = end_addr; - } else { - block = tmp_block; - } + if (!erased) { + stat = (*_flash_erase_block)(block, flash_info.block_size); + stat = flash_hwr_map_error(stat); + } + if (stat) { + *err_addr = block; + break; + } + + // Check to see if block will overflow + tmp_block = block + flash_info.block_size / sizeof(*block); + if (tmp_block < block) { + // If block address overflows, set block value to end on this loop + block = end_addr; + } else { + block = tmp_block; + } #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("."); + flash_info.pf("."); #endif - } - FLASH_Disable((void *)((CYG_ADDRESS)addr & flash_info.block_mask), - end_addr); - HAL_FLASH_CACHES_ON(d_cache, i_cache); + } + FLASH_Disable((void *)((CYG_ADDRESS)addr & flash_info.block_mask), + end_addr); + HAL_FLASH_CACHES_ON(d_cache, i_cache); #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("\n"); + flash_info.pf("\n"); #endif - return stat; + return stat; } int flash_program(void *_addr, void *_data, int len, void **err_addr) { - int stat = 0; - int size; - typedef int code_fun(void *, void *, int, unsigned long, int); - code_fun *_flash_program_buf; - unsigned char *addr = _addr; - unsigned char *data = _data; - CYG_ADDRESS tmp; - int d_cache, i_cache; - - if (!flash_info.init) { - return FLASH_ERR_NOT_INIT; - } + int stat = 0; + int size; + typedef int code_fun(void *, void *, int, unsigned long, int); + code_fun *_flash_program_buf; + unsigned char *addr = _addr; + unsigned char *data = _data; + CYG_ADDRESS tmp; + int d_cache, i_cache; + + if (!flash_info.init) { + return FLASH_ERR_NOT_INIT; + } #ifdef CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT - if (plf_flash_query_soft_wp(addr,len)) - return FLASH_ERR_PROTECT; + if (plf_flash_query_soft_wp(addr,len)) + return FLASH_ERR_PROTECT; #endif - _flash_program_buf = (code_fun*)__anonymizer(&flash_program_buf); + _flash_program_buf = (code_fun*)__anonymizer(&flash_program_buf); #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("... Program from %p-%p at %p: ", data, - (void *)((CYG_ADDRESS)data + len), addr); + flash_info.pf("... Program from %p-%p at %p: ", data, + (void *)((CYG_ADDRESS)data + len), addr); #endif - HAL_FLASH_CACHES_OFF(d_cache, i_cache); - FLASH_Enable(addr, addr + len); - while (len > 0) { - size = len; + HAL_FLASH_CACHES_OFF(d_cache, i_cache); + FLASH_Enable(addr, addr + len); + while (len > 0) { + size = len; #if defined(MXCFLASH_SELECT_NAND) || defined(MXCFLASH_SELECT_MMC) - if (flash_info.start != 0) + if (flash_info.start != 0) #endif - if (size > flash_info.block_size) size = flash_info.block_size; + if (size > flash_info.block_size) size = flash_info.block_size; - tmp = (CYG_ADDRESS)addr & ~flash_info.block_mask; - if (tmp) { - tmp = flash_info.block_size - tmp; - if (size > tmp) size = tmp; - } + tmp = (CYG_ADDRESS)addr & ~flash_info.block_mask; + if (tmp) { + tmp = flash_info.block_size - tmp; + if (size > tmp) size = tmp; + } - stat = (*_flash_program_buf)(addr, data, size, - flash_info.block_mask, flash_info.buffer_size); - stat = flash_hwr_map_error(stat); + stat = (*_flash_program_buf)(addr, data, size, + flash_info.block_mask, flash_info.buffer_size); + stat = flash_hwr_map_error(stat); #ifdef CYGSEM_IO_FLASH_VERIFY_PROGRAM - if (0 == stat) // Claims to be OK - if (memcmp(addr, data, size) != 0) { - stat = 0x0BAD; + if (0 == stat) // Claims to be OK + if (memcmp(addr, data, size) != 0) { + stat = 0x0BAD; #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("V"); + flash_info.pf("V"); #endif - } + } #endif - if (stat) { - *err_addr = addr; - break; - } + if (stat) { + *err_addr = addr; + break; + } #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("."); + flash_info.pf("."); #endif - len -= size; - addr += size / sizeof(*addr); - data += size / sizeof(*data); - } - FLASH_Disable(_addr, addr + len); - HAL_FLASH_CACHES_ON(d_cache, i_cache); + len -= size; + addr += size / sizeof(*addr); + data += size / sizeof(*data); + } + FLASH_Disable(_addr, addr + len); + HAL_FLASH_CACHES_ON(d_cache, i_cache); #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("\n"); + flash_info.pf("\n"); #endif - return stat; + return stat; } int flash_read(void *_addr, void *_data, int len, void **err_addr) { #ifdef CYGSEM_IO_FLASH_READ_INDIRECT - int stat = 0; - int size; - typedef int code_fun(void *, void *, int, unsigned long, int); - code_fun *_flash_read_buf; - unsigned char *addr = _addr; - unsigned char *data = _data; - CYG_ADDRESS tmp; - int d_cache, i_cache; + int stat = 0; + int size; + typedef int code_fun(void *, void *, int, unsigned long, int); + code_fun *_flash_read_buf; + unsigned char *addr = _addr; + unsigned char *data = _data; + CYG_ADDRESS tmp; + int d_cache, i_cache; - if (!flash_info.init) { - return FLASH_ERR_NOT_INIT; - } + if (!flash_info.init) { + return FLASH_ERR_NOT_INIT; + } - _flash_read_buf = (code_fun*)__anonymizer(&flash_read_buf); + _flash_read_buf = (code_fun*)__anonymizer(&flash_read_buf); #ifdef CYGSEM_IO_FLASH_CHATTER_VERBOSE - flash_info.pf("... Read from %p-%p at %p: ", data, - (void *)((CYG_ADDRESS)data + len), addr); + flash_info.pf("... Read from %p-%p at %p: ", data, + (void *)((CYG_ADDRESS)data + len), addr); #endif - HAL_FLASH_CACHES_OFF(d_cache, i_cache); - FLASH_Enable(addr, addr + len); - while (len > 0) { - size = len; + HAL_FLASH_CACHES_OFF(d_cache, i_cache); + FLASH_Enable(addr, addr + len); + while (len > 0) { + size = len; #if defined(MXCFLASH_SELECT_NAND) || defined(MXCFLASH_SELECT_MMC) - if (flash_info.start !=0) + if (flash_info.start != 0) #endif - if (size > flash_info.block_size) size = flash_info.block_size; + if (size > flash_info.block_size) size = flash_info.block_size; - tmp = (CYG_ADDRESS)addr & ~flash_info.block_mask; - if (tmp) { - tmp = flash_info.block_size - tmp; - if (size>tmp) size = tmp; - - } + tmp = (CYG_ADDRESS)addr & ~flash_info.block_mask; + if (tmp) { + tmp = flash_info.block_size - tmp; + if (size>tmp) size = tmp; + } - stat = (*_flash_read_buf)(addr, data, size, - flash_info.block_mask, flash_info.buffer_size); - stat = flash_hwr_map_error(stat); + stat = (*_flash_read_buf)(addr, data, size, + flash_info.block_mask, flash_info.buffer_size); + stat = flash_hwr_map_error(stat); #ifdef CYGSEM_IO_FLASH_VERIFY_PROGRAM - if (0 == stat) // Claims to be OK - if (memcmp(addr, data, size) != 0) { - stat = 0x0BAD; + if (0 == stat) // Claims to be OK + if (memcmp(addr, data, size) != 0) { + stat = 0x0BAD; #ifdef CYGSEM_IO_FLASH_CHATTER_VERBOSE - flash_info.pf("V"); + flash_info.pf("V"); #endif - } + } #endif - if (stat) { - *err_addr = addr; - break; - } + if (stat) { + *err_addr = addr; + break; + } #ifdef CYGSEM_IO_FLASH_CHATTER_VERBOSE - flash_info.pf("."); + flash_info.pf("."); #endif - len -= size; - addr += size / sizeof(*addr); - data += size / sizeof(*data); - } - FLASH_Disable(_addr, addr + len); - HAL_FLASH_CACHES_ON(d_cache, i_cache); + len -= size; + addr += size / sizeof(*addr); + data += size / sizeof(*data); + } + FLASH_Disable(_addr, addr + len); + HAL_FLASH_CACHES_ON(d_cache, i_cache); #ifdef CYGSEM_IO_FLASH_CHATTER_VERBOSE - flash_info.pf("\n"); + flash_info.pf("\n"); #endif - return stat; + return stat; #else // CYGSEM_IO_FLASH_READ_INDIRECT - // Direct access to FLASH memory is possible - just move the requested bytes - if (!flash_info.init) { - return FLASH_ERR_NOT_INIT; - } - memcpy(_data, _addr, len); - return FLASH_ERR_OK; + // Direct access to FLASH memory is possible - just move the requested bytes + if (!flash_info.init) { + return FLASH_ERR_NOT_INIT; + } + memcpy(_data, _addr, len); + return FLASH_ERR_OK; #endif } @@ -400,65 +398,65 @@ flash_read(void *_addr, void *_data, int len, void **err_addr) int flash_lock(void *addr, int len, void **err_addr) { - unsigned short *block, *end_addr; - int stat = 0; - typedef int code_fun(unsigned short *); - code_fun *_flash_lock_block; - int d_cache, i_cache; + unsigned short *block, *end_addr; + int stat = 0; + typedef int code_fun(unsigned short *); + code_fun *_flash_lock_block; + int d_cache, i_cache; - if (!flash_info.init) { - return FLASH_ERR_NOT_INIT; - } + if (!flash_info.init) { + return FLASH_ERR_NOT_INIT; + } #ifdef CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT - if (plf_flash_query_soft_wp(addr,len)) - return FLASH_ERR_PROTECT; + if (plf_flash_query_soft_wp(addr,len)) + return FLASH_ERR_PROTECT; #endif - _flash_lock_block = (code_fun*)__anonymizer(&flash_lock_block); + _flash_lock_block = (code_fun*)__anonymizer(&flash_lock_block); - block = (unsigned short *)((CYG_ADDRESS)addr & flash_info.block_mask); - end_addr = (unsigned short *)((CYG_ADDRESS)addr + len); + block = (unsigned short *)((CYG_ADDRESS)addr & flash_info.block_mask); + end_addr = (unsigned short *)((CYG_ADDRESS)addr + len); - /* Check to see if end_addr overflowed */ - if ((end_addr < block) && (len > 0)) { - end_addr = (unsigned short *)((CYG_ADDRESS)flash_info.end - 1); - } + /* Check to see if end_addr overflowed */ + if ((end_addr < block) && (len > 0)) { + end_addr = (unsigned short *)((CYG_ADDRESS)flash_info.end - 1); + } #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("... Lock from %p-%p: ", block, end_addr); + flash_info.pf("... Lock from %p-%p: ", block, end_addr); #endif - HAL_FLASH_CACHES_OFF(d_cache, i_cache); - FLASH_Enable(block, end_addr); - while (block < end_addr) { - unsigned short *tmp_block; - stat = (*_flash_lock_block)(block); - stat = flash_hwr_map_error(stat); - if (stat) { - *err_addr = block; - break; - } - - // Check to see if block will overflow - tmp_block = block + flash_info.block_size / sizeof(*block); - if (tmp_block < block) { - // If block address overflows, set block value to end on this loop - block = end_addr; - } else { - block = tmp_block; - } + HAL_FLASH_CACHES_OFF(d_cache, i_cache); + FLASH_Enable(block, end_addr); + while (block < end_addr) { + unsigned short *tmp_block; + stat = (*_flash_lock_block)(block); + stat = flash_hwr_map_error(stat); + if (stat) { + *err_addr = block; + break; + } + + // Check to see if block will overflow + tmp_block = block + flash_info.block_size / sizeof(*block); + if (tmp_block < block) { + // If block address overflows, set block value to end on this loop + block = end_addr; + } else { + block = tmp_block; + } #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("."); + flash_info.pf("."); #endif - } - FLASH_Disable((void *)((CYG_ADDRESS)addr & flash_info.block_mask), - end_addr); - HAL_FLASH_CACHES_ON(d_cache, i_cache); + } + FLASH_Disable((void *)((CYG_ADDRESS)addr & flash_info.block_mask), + end_addr); + HAL_FLASH_CACHES_ON(d_cache, i_cache); #ifdef CYGSEM_IO_FLASH_CHATTER - flash_info.pf("\n"); + flash_info.pf("\n"); #endif - return stat; + return stat; } int @@ -528,38 +526,38 @@ flash_unlock(void *addr, int len, void **err_addr) char * flash_errmsg(int err) { - switch (err) { - case FLASH_ERR_OK: - return "No error - operation complete"; - case FLASH_ERR_ERASE_SUSPEND: - return "Device is in erase suspend state"; - case FLASH_ERR_PROGRAM_SUSPEND: - return "Device is in program suspend state"; - case FLASH_ERR_INVALID: - return "Invalid FLASH address"; - case FLASH_ERR_ERASE: - return "Error trying to erase"; - case FLASH_ERR_LOCK: - return "Error trying to lock/unlock"; - case FLASH_ERR_PROGRAM: - return "Error trying to program"; - case FLASH_ERR_PROTOCOL: - return "Generic error"; - case FLASH_ERR_PROTECT: - return "Device/region is write-protected"; - case FLASH_ERR_NOT_INIT: - return "FLASH sub-system not initialized"; - case FLASH_ERR_DRV_VERIFY: - return "Data verify failed after operation"; - case FLASH_ERR_DRV_TIMEOUT: - return "Driver timed out waiting for device"; - case FLASH_ERR_DRV_WRONG_PART: - return "Driver does not support device"; - case FLASH_ERR_LOW_VOLTAGE: - return "Device reports low voltage"; - default: - return "Unknown error"; - } + switch (err) { + case FLASH_ERR_OK: + return "No error - operation complete"; + case FLASH_ERR_ERASE_SUSPEND: + return "Device is in erase suspend state"; + case FLASH_ERR_PROGRAM_SUSPEND: + return "Device is in program suspend state"; + case FLASH_ERR_INVALID: + return "Invalid FLASH address"; + case FLASH_ERR_ERASE: + return "Error trying to erase"; + case FLASH_ERR_LOCK: + return "Error trying to lock/unlock"; + case FLASH_ERR_PROGRAM: + return "Error trying to program"; + case FLASH_ERR_PROTOCOL: + return "Generic error"; + case FLASH_ERR_PROTECT: + return "Device/region is write-protected"; + case FLASH_ERR_NOT_INIT: + return "FLASH sub-system not initialized"; + case FLASH_ERR_DRV_VERIFY: + return "Data verify failed after operation"; + case FLASH_ERR_DRV_TIMEOUT: + return "Driver timed out waiting for device"; + case FLASH_ERR_DRV_WRONG_PART: + return "Driver does not support device"; + case FLASH_ERR_LOW_VOLTAGE: + return "Device reports low voltage"; + default: + return "Unknown error"; + } } // EOF io/flash/..../flash.c diff --git a/packages/redboot/v2_0/src/io.c b/packages/redboot/v2_0/src/io.c index 775710d4..c7488a50 100644 --- a/packages/redboot/v2_0/src/io.c +++ b/packages/redboot/v2_0/src/io.c @@ -44,9 +44,9 @@ // Author(s): gthomas // Contributors: gthomas,hmt,jlarmour // Date: 2000-07-14 -// Purpose: -// Description: -// +// Purpose: +// Description: +// // This code is part of RedBoot (tm). // //####DESCRIPTIONEND#### @@ -64,100 +64,100 @@ static void do_channel(int argc, char *argv[]); #ifdef CYGPKG_REDBOOT_ANY_CONSOLE -RedBoot_cmd("channel", - "Display/switch console channel", - "[-1|]", - do_channel - ); +RedBoot_cmd("channel", + "Display/switch console channel", + "[-1|]", + do_channel + ); #else -RedBoot_cmd("channel", - "Display/switch console channel", - "[]", - do_channel - ); +RedBoot_cmd("channel", + "Display/switch console channel", + "[]", + do_channel + ); #endif static void do_channel(int argc, char *argv[]) { - int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); + int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); - if (argc == 2) { + if (argc == 2) { #ifdef CYGPKG_REDBOOT_ANY_CONSOLE - if (strcmp( argv[1], "-1") == 0) { - console_selected = false; - console_echo = true; - } else + if (strcmp( argv[1], "-1") == 0) { + console_selected = false; + console_echo = true; + } else #endif - { - unsigned long chan; - if ( !parse_num( argv[1], &chan, NULL, NULL) ) { - diag_printf("** Error: invalid channel '%s'\n", argv[1]); - } else { - if (chan < CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS) { - CYGACC_CALL_IF_SET_CONSOLE_COMM(chan); - CYGACC_CALL_IF_SET_DEBUG_COMM(chan); - if (chan != cur) - console_echo = true; - } - else { - diag_printf("**Error: bad channel number '%s'\n", argv[1]); - } - } - } - } - /* else display */ - else { - diag_printf("Current console channel id: "); + { + unsigned long chan; + if ( !parse_num( argv[1], &chan, NULL, NULL) ) { + diag_printf("** Error: invalid channel '%s'\n", argv[1]); + } else { + if (chan < CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS) { + CYGACC_CALL_IF_SET_CONSOLE_COMM(chan); + CYGACC_CALL_IF_SET_DEBUG_COMM(chan); + if (chan != cur) + console_echo = true; + } + else { + diag_printf("**Error: bad channel number '%s'\n", argv[1]); + } + } + } + } + /* else display */ + else { + diag_printf("Current console channel id: "); #ifdef CYGPKG_REDBOOT_ANY_CONSOLE - if (!console_selected) - diag_printf("-1\n"); - else + if (!console_selected) + diag_printf("-1\n"); + else #endif - diag_printf("%d\n", cur); - } + diag_printf("%d\n", cur); + } } -void +void mon_write_char(char c) { - hal_virtual_comm_table_t *__chan; + hal_virtual_comm_table_t *__chan; #ifdef CYGPKG_REDBOOT_ANY_CONSOLE - if (!console_selected) { - int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); - int i; - // Send output to all channels - for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; i++) { - CYGACC_CALL_IF_SET_CONSOLE_COMM(i); - __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); - CYGACC_COMM_IF_PUTC(*__chan, c); - } - CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); - } else + if (!console_selected) { + int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); + int i; + // Send output to all channels + for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; i++) { + CYGACC_CALL_IF_SET_CONSOLE_COMM(i); + __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); + CYGACC_COMM_IF_PUTC(*__chan, c); + } + CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); + } else #endif - { - __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); - if (__chan) - CYGACC_COMM_IF_PUTC(*__chan, c); - else { - __chan = CYGACC_CALL_IF_DEBUG_PROCS(); - CYGACC_COMM_IF_PUTC(*__chan, c); - } - } + { + __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); + if (__chan) + CYGACC_COMM_IF_PUTC(*__chan, c); + else { + __chan = CYGACC_CALL_IF_DEBUG_PROCS(); + CYGACC_COMM_IF_PUTC(*__chan, c); + } + } } -static void +static void mon_read_char(char *c) { - hal_virtual_comm_table_t* __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); - - if (__chan) - *c = CYGACC_COMM_IF_GETC(*__chan); - else { - __chan = CYGACC_CALL_IF_DEBUG_PROCS(); - *c = CYGACC_COMM_IF_GETC(*__chan); - } + hal_virtual_comm_table_t *__chan = CYGACC_CALL_IF_CONSOLE_PROCS(); + + if (__chan) + *c = CYGACC_COMM_IF_GETC(*__chan); + else { + __chan = CYGACC_CALL_IF_DEBUG_PROCS(); + *c = CYGACC_COMM_IF_GETC(*__chan); + } } #ifdef CYGPKG_REDBOOT_ANY_CONSOLE @@ -167,84 +167,84 @@ static int _mon_timeout; bool mon_read_char_with_timeout(char *c) { - bool res = false; - hal_virtual_comm_table_t *__chan; + bool res = false; + hal_virtual_comm_table_t *__chan; #ifdef CYGPKG_REDBOOT_ANY_CONSOLE - if (!console_selected) { - int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); - int i, j, tot; - // Try input from all channels - tot = 0; - while (tot < _mon_timeout) { - for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; i++, tot++) { - CYGACC_CALL_IF_SET_CONSOLE_COMM(i); - __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); - res = CYGACC_COMM_IF_GETC_TIMEOUT(*__chan, c); - if (res) { - // Input available on this channel, make it be the console - if (*c != '\0') { - // Don't chose this unless real data have arrived - console_selected = true; - CYGACC_CALL_IF_SET_DEBUG_COMM(i); - // Disable interrupts on all channels but this one - for (j = 0; j < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; j++) { - if (i != j) { - CYGACC_CALL_IF_SET_CONSOLE_COMM(j); - __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); - CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_IRQ_DISABLE); - } - } - CYGACC_CALL_IF_SET_CONSOLE_COMM(i); - return res; - } - } - } - } - CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); - } else + if (!console_selected) { + int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); + int i, j, tot; + // Try input from all channels + tot = 0; + while (tot < _mon_timeout) { + for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; i++, tot++) { + CYGACC_CALL_IF_SET_CONSOLE_COMM(i); + __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); + res = CYGACC_COMM_IF_GETC_TIMEOUT(*__chan, c); + if (res) { + // Input available on this channel, make it be the console + if (*c != '\0') { + // Don't chose this unless real data have arrived + console_selected = true; + CYGACC_CALL_IF_SET_DEBUG_COMM(i); + // Disable interrupts on all channels but this one + for (j = 0; j < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; j++) { + if (i != j) { + CYGACC_CALL_IF_SET_CONSOLE_COMM(j); + __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); + CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_IRQ_DISABLE); + } + } + CYGACC_CALL_IF_SET_CONSOLE_COMM(i); + return res; + } + } + } + } + CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); + } else #endif - { - __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); - if (__chan) - res = CYGACC_COMM_IF_GETC_TIMEOUT(*__chan, c); - else { - __chan = CYGACC_CALL_IF_DEBUG_PROCS(); - res = CYGACC_COMM_IF_GETC_TIMEOUT(*__chan, c); - } - } - return res; + { + __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); + if (__chan) + res = CYGACC_COMM_IF_GETC_TIMEOUT(*__chan, c); + else { + __chan = CYGACC_CALL_IF_DEBUG_PROCS(); + res = CYGACC_COMM_IF_GETC_TIMEOUT(*__chan, c); + } + } + return res; } void mon_set_read_char_timeout(int ms) { - hal_virtual_comm_table_t *__chan; + hal_virtual_comm_table_t *__chan; #ifdef CYGPKG_REDBOOT_ANY_CONSOLE - if (!console_selected) { - int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); - int i; - // Set timeout to minimum on each channel; total amounts to desired value - _mon_timeout = ms; - ms = 1; - for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; i++) { - CYGACC_CALL_IF_SET_CONSOLE_COMM(i); - if ((__chan = CYGACC_CALL_IF_CONSOLE_PROCS()) != 0) { - CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_SET_TIMEOUT, ms); - } - } - CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); - } else + if (!console_selected) { + int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); + int i; + // Set timeout to minimum on each channel; total amounts to desired value + _mon_timeout = ms; + ms = 1; + for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; i++) { + CYGACC_CALL_IF_SET_CONSOLE_COMM(i); + if ((__chan = CYGACC_CALL_IF_CONSOLE_PROCS()) != 0) { + CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_SET_TIMEOUT, ms); + } + } + CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); + } else #endif - { - if ((__chan = CYGACC_CALL_IF_CONSOLE_PROCS()) != 0) { - CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_SET_TIMEOUT, ms); - } - if ((__chan = CYGACC_CALL_IF_DEBUG_PROCS()) != 0) { - CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_SET_TIMEOUT, ms); - } - } + { + if ((__chan = CYGACC_CALL_IF_CONSOLE_PROCS()) != 0) { + CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_SET_TIMEOUT, ms); + } + if ((__chan = CYGACC_CALL_IF_DEBUG_PROCS()) != 0) { + CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_SET_TIMEOUT, ms); + } + } } // @@ -253,14 +253,14 @@ mon_set_read_char_timeout(int ms) bool _rb_break(int timeout) { - char c; - mon_set_read_char_timeout(timeout); - if (mon_read_char_with_timeout(&c)) { - if (c == 0x03) { // Test for ^C - return true; - } - } - return false; + char c; + mon_set_read_char_timeout(timeout); + if (mon_read_char_with_timeout(&c)) { + if (c == 0x03) { // Test for ^C + return true; + } + } + return false; } #ifdef CYGFUN_REDBOOT_BOOT_SCRIPT @@ -275,40 +275,40 @@ _rb_break(int timeout) static int getc_script(char *cp) { - static bool newline = true; - bool skip; - - while (script && *script) { - if (newline && *script == '{') { - skip = false; - ++script; - - // skip if it isn't for this startup type - if (strncmp(script, _STARTUP_STR, strlen(_STARTUP_STR))) - skip = true; - - // skip past "{...}" - while (*script && *script++ != '}') - ; - - // skip script line if neccessary - if (skip) { - while (*script && *script++ != '\n') - ; - } else - newline = false; - - } else { - *cp = *script++; - if (*cp == '\n') { - newline = true; - } else { - newline = false; - } - return true; + static bool newline = true; + bool skip; + + while (script && *script) { + if (newline && *script == '{') { + skip = false; + ++script; + + // skip if it isn't for this startup type + if (strncmp(script, _STARTUP_STR, strlen(_STARTUP_STR))) + skip = true; + + // skip past "{...}" + while (*script && *script++ != '}') + ; + + // skip script line if neccessary + if (skip) { + while (*script && *script++ != '\n') + ; + } else + newline = false; + + } else { + *cp = *script++; + if (*cp == '\n') { + newline = true; + } else { + newline = false; + } + return true; + } } - } - return false; + return false; } #endif @@ -351,422 +351,422 @@ static void expand_history(char *); int _rb_gets_preloaded(char *buf, int buflen, int timeout) { - char *ip = buf; // Insertion point - char *eol = buf; // End of line - char c; - bool res = false; - static char last_ch = '\0'; - int _timeout; + char *ip = buf; // Insertion point + char *eol = buf; // End of line + char c; + bool res = false; + static char last_ch = '\0'; + int _timeout; #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 - int _index = _cl_index; // Last saved line - char *xp; + int _index = _cl_index; // Last saved line + char *xp; #ifdef CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES - int ansi_state = 0; // Used to drive ANSI parser - char ansi_char = '\0'; + int ansi_state = 0; // Used to drive ANSI parser + char ansi_char = '\0'; #endif #endif - // Display current buffer data - while (*eol) { - mon_write_char(*eol++); - } - ip = eol; + // Display current buffer data + while (*eol) { + mon_write_char(*eol++); + } + ip = eol; - while (true) { + while (true) { #ifdef CYGFUN_REDBOOT_BOOT_SCRIPT - if (getc_script(&c)) - do_idle(false); - else + if (getc_script(&c)) + do_idle(false); + else #endif - if ((timeout > 0) && (eol == buf)) { + if ((timeout > 0) && (eol == buf)) { #define MIN_TIMEOUT 50 - _timeout = timeout > MIN_TIMEOUT ? MIN_TIMEOUT : timeout; - mon_set_read_char_timeout(_timeout); - while (timeout > 0) { - res = mon_read_char_with_timeout(&c); - if (res) { - // Got a character - do_idle(false); - break; - } - timeout -= _timeout; - } - if (res == false) { - do_idle(true); - return _GETS_TIMEOUT; // Input timed out - } - } else { - mon_read_char(&c); - } - *eol = '\0'; + _timeout = timeout > MIN_TIMEOUT ? MIN_TIMEOUT : timeout; + mon_set_read_char_timeout(_timeout); + while (timeout > 0) { + res = mon_read_char_with_timeout(&c); + if (res) { + // Got a character + do_idle(false); + break; + } + timeout -= _timeout; + } + if (res == false) { + do_idle(true); + return _GETS_TIMEOUT; // Input timed out + } + } else { + mon_read_char(&c); + } + *eol = '\0'; #define CTRL(c) ((c)&0x1F) #ifdef CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES - // Special handling of ANSI keyboard sequences (arrows, etc) - if (c == 0x1B) { - // Leadin for ANSI keyboard sequence - ansi_state = 1; - continue; - } - switch (ansi_state) { - case 0: - // No ANSI sequence in progress - break; - case 1: - // ESC seen, look for '[' - if (c == '[') { - ansi_state = 2; - } else if (c == 'O') { - ansi_state = 4; - } else { - // Handle bad sequences? - ansi_state = 0; - } - continue; - case 2: - // ESC+[ seen, process key - ansi_state = 0; - switch (c) { - case 'A': - c = CTRL('P'); - break; - case 'B': - c = CTRL('N'); - break; - case 'C': - c = CTRL('F'); - break; - case 'D': - c = CTRL('B'); - break; - case 'F': - c = CTRL('E'); - break; - case 'H': - c = CTRL('A'); - break; - case '1': - ansi_char = CTRL('A'); - ansi_state = 3; - continue; - case '3': - ansi_char = CTRL('D'); - ansi_state = 3; - continue; - default: - // Handle bad sequences? - continue; - } - break; - case 3: - // Sequences like ^[[1~ == ^H - ansi_state = 0; - if (c == '~') { - c = ansi_char; - } else { - // Handle bad sequences? - continue; - } - break; - case 4: - // Sequences like ^[OF == ^E - ansi_state = 0; - if (c == 'F') { - c = CTRL('E'); - } else { - // Handle bad sequences? - continue; - } - break; - } + // Special handling of ANSI keyboard sequences (arrows, etc) + if (c == 0x1B) { + // Leadin for ANSI keyboard sequence + ansi_state = 1; + continue; + } + switch (ansi_state) { + case 0: + // No ANSI sequence in progress + break; + case 1: + // ESC seen, look for '[' + if (c == '[') { + ansi_state = 2; + } else if (c == 'O') { + ansi_state = 4; + } else { + // Handle bad sequences? + ansi_state = 0; + } + continue; + case 2: + // ESC+[ seen, process key + ansi_state = 0; + switch (c) { + case 'A': + c = CTRL('P'); + break; + case 'B': + c = CTRL('N'); + break; + case 'C': + c = CTRL('F'); + break; + case 'D': + c = CTRL('B'); + break; + case 'F': + c = CTRL('E'); + break; + case 'H': + c = CTRL('A'); + break; + case '1': + ansi_char = CTRL('A'); + ansi_state = 3; + continue; + case '3': + ansi_char = CTRL('D'); + ansi_state = 3; + continue; + default: + // Handle bad sequences? + continue; + } + break; + case 3: + // Sequences like ^[[1~ == ^H + ansi_state = 0; + if (c == '~') { + c = ansi_char; + } else { + // Handle bad sequences? + continue; + } + break; + case 4: + // Sequences like ^[OF == ^E + ansi_state = 0; + if (c == 'F') { + c = CTRL('E'); + } else { + // Handle bad sequences? + continue; + } + break; + } #endif - switch (c) { + switch (c) { #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 - case CTRL('P'): - // Fetch the previous line into the buffer - if (_index >= 0) { - // Erase the previous line [crude] - while (ip != buf) { - mon_write_char('\b'); - mon_write_char(' '); - mon_write_char('\b'); - ip--; - } - strcpy(buf, _cl_lines[_index]); - while (*ip) { - mon_write_char(*ip++); - } - eol = ip; - // Move to previous line - _index--; - if (_index < 0) { - _index = _cl_max_index; - } - } else { - mon_write_char(0x07); // Audible bell on most devices - } - break; - case CTRL('N'): - // Fetch the next line into the buffer - if (_index >= 0) { - if (++_index > _cl_max_index) _index = 0; - // Erase the previous line [crude] - while (ip != buf) { - mon_write_char('\b'); - mon_write_char(' '); - mon_write_char('\b'); - ip--; - } - strcpy(buf, _cl_lines[_index]); - while (*ip) { - mon_write_char(*ip++); - } - eol = ip; - } else { - mon_write_char(0x07); // Audible bell on most devices - } - break; - case CTRL('B'): - // Move insertion point backwards - if (ip != buf) { - mon_write_char('\b'); - ip--; - } - break; - case CTRL('F'): - // Move insertion point forwards - if (ip != eol) { - mon_write_char(*ip++); - } - break; - case CTRL('E'): - // Move insertion point to end of line - while (ip != eol) { - mon_write_char(*ip++); - } - break; - case CTRL('A'): - // Move insertion point to beginning of line - if (ip != buf) { - xp = ip; - while (xp-- != buf) { - mon_write_char('\b'); - } - } - ip = buf; - break; - case CTRL('K'): - // Kill to the end of line - if (ip != eol) { - xp = ip; - while (xp++ != eol) { - mon_write_char(' '); - } - while (--xp != ip) { - mon_write_char('\b'); - } - eol = ip; - } - break; - case CTRL('D'): - // Erase the character under the cursor - if (ip != eol) { - xp = ip; - eol--; - while (xp != eol) { - *xp = *(xp+1); - mon_write_char(*xp++); - } - mon_write_char(' '); // Erases last character - mon_write_char('\b'); - while (xp-- != ip) { - mon_write_char('\b'); - } - } - break; + case CTRL('P'): + // Fetch the previous line into the buffer + if (_index >= 0) { + // Erase the previous line [crude] + while (ip != buf) { + mon_write_char('\b'); + mon_write_char(' '); + mon_write_char('\b'); + ip--; + } + strcpy(buf, _cl_lines[_index]); + while (*ip) { + mon_write_char(*ip++); + } + eol = ip; + // Move to previous line + _index--; + if (_index < 0) { + _index = _cl_max_index; + } + } else { + mon_write_char(0x07); // Audible bell on most devices + } + break; + case CTRL('N'): + // Fetch the next line into the buffer + if (_index >= 0) { + if (++_index > _cl_max_index) _index = 0; + // Erase the previous line [crude] + while (ip != buf) { + mon_write_char('\b'); + mon_write_char(' '); + mon_write_char('\b'); + ip--; + } + strcpy(buf, _cl_lines[_index]); + while (*ip) { + mon_write_char(*ip++); + } + eol = ip; + } else { + mon_write_char(0x07); // Audible bell on most devices + } + break; + case CTRL('B'): + // Move insertion point backwards + if (ip != buf) { + mon_write_char('\b'); + ip--; + } + break; + case CTRL('F'): + // Move insertion point forwards + if (ip != eol) { + mon_write_char(*ip++); + } + break; + case CTRL('E'): + // Move insertion point to end of line + while (ip != eol) { + mon_write_char(*ip++); + } + break; + case CTRL('A'): + // Move insertion point to beginning of line + if (ip != buf) { + xp = ip; + while (xp-- != buf) { + mon_write_char('\b'); + } + } + ip = buf; + break; + case CTRL('K'): + // Kill to the end of line + if (ip != eol) { + xp = ip; + while (xp++ != eol) { + mon_write_char(' '); + } + while (--xp != ip) { + mon_write_char('\b'); + } + eol = ip; + } + break; + case CTRL('D'): + // Erase the character under the cursor + if (ip != eol) { + xp = ip; + eol--; + while (xp != eol) { + *xp = *(xp+1); + mon_write_char(*xp++); + } + mon_write_char(' '); // Erases last character + mon_write_char('\b'); + while (xp-- != ip) { + mon_write_char('\b'); + } + } + break; #endif // CYGNUM_REDBOOT_CMD_LINE_EDITING - case CTRL('C'): // ^C - // Abort current input - diag_printf("^C\n"); - *buf = '\0'; // Nothing useful in buffer - return _GETS_CTRLC; - case '\n': - case '\r': - // If previous character was the "other" end-of-line, ignore this one - if (((c == '\n') && (last_ch == '\r')) || - ((c == '\r') && (last_ch == '\n'))) { - c = '\0'; - break; - } - // End of line - if (console_echo) { - mon_write_char('\r'); - mon_write_char('\n'); - } - last_ch = c; + case CTRL('C'): // ^C + // Abort current input + diag_printf("^C\n"); + *buf = '\0'; // Nothing useful in buffer + return _GETS_CTRLC; + case '\n': + case '\r': + // If previous character was the "other" end-of-line, ignore this one + if (((c == '\n') && (last_ch == '\r')) || + ((c == '\r') && (last_ch == '\n'))) { + c = '\0'; + break; + } + // End of line + if (console_echo) { + mon_write_char('\r'); + mon_write_char('\n'); + } + last_ch = c; #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 - if (cmd_history) { - // History handling - only when enabled + if (cmd_history) { + // History handling - only when enabled #ifdef CYGBLD_REDBOOT_CMD_LINE_HISTORY - expand_history(buf); + expand_history(buf); #endif - if (*buf != '\0') { - if (++_cl_index == _CL_NUM_LINES) _cl_index = 0; - if (_cl_index > _cl_max_index) _cl_max_index = _cl_index; - strcpy(_cl_lines[_cl_index], buf); - } - } + if (*buf != '\0') { + if (++_cl_index == _CL_NUM_LINES) _cl_index = 0; + if (_cl_index > _cl_max_index) _cl_max_index = _cl_index; + strcpy(_cl_lines[_cl_index], buf); + } + } #endif - return _GETS_OK; - case '\b': - case 0x7F: // DEL - if (ip != buf) { + return _GETS_OK; + case '\b': + case 0x7F: // DEL + if (ip != buf) { #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 - if (ip != eol) { - ip--; - mon_write_char('\b'); - xp = ip; - while (xp != (eol-1)) { - *xp = *(xp+1); - mon_write_char(*xp++); - } - mon_write_char(' '); // Erases last character - mon_write_char('\b'); - while (xp-- != ip) { - mon_write_char('\b'); - } - } else { - if (console_echo) { - mon_write_char('\b'); - mon_write_char(' '); - mon_write_char('\b'); - } - ip--; - } - eol--; + if (ip != eol) { + ip--; + mon_write_char('\b'); + xp = ip; + while (xp != (eol-1)) { + *xp = *(xp+1); + mon_write_char(*xp++); + } + mon_write_char(' '); // Erases last character + mon_write_char('\b'); + while (xp-- != ip) { + mon_write_char('\b'); + } + } else { + if (console_echo) { + mon_write_char('\b'); + mon_write_char(' '); + mon_write_char('\b'); + } + ip--; + } + eol--; #else - if (console_echo) { - mon_write_char('\b'); - mon_write_char(' '); - mon_write_char('\b'); - } - ip--; - eol--; + if (console_echo) { + mon_write_char('\b'); + mon_write_char(' '); + mon_write_char('\b'); + } + ip--; + eol--; #endif - } - break; + } + break; #ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS - case '+': // fall through - case '$': - if (ip == buf || last_ch != '\\') - { - // Give up and try GDB protocol - ungetDebugChar(c); // Push back character so stubs will see it - return _GETS_GDB; - } - if (last_ch == '\\') { + case '+': // fall through + case '$': + if (ip == buf || last_ch != '\\') + { + // Give up and try GDB protocol + ungetDebugChar(c); // Push back character so stubs will see it + return _GETS_GDB; + } + if (last_ch == '\\') { #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 - if (ip == eol) { - // Just save \$ as $ - eol = --ip; - } else { - mon_write_char('\b'); - *--ip = c; - mon_write_char(c); - break; - } + if (ip == eol) { + // Just save \$ as $ + eol = --ip; + } else { + mon_write_char('\b'); + *--ip = c; + mon_write_char(c); + break; + } #else - ip--; // Save \$ as $ + ip--; // Save \$ as $ #endif - } - // else fall through + } + // else fall through #endif - default: + default: #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 - // If the insertion point is not at the end of line, make space for it - if (ip != eol) { - xp = eol; - *++eol = '\0'; - while (xp != ip) { - *xp = *(xp-1); - xp--; - } - } + // If the insertion point is not at the end of line, make space for it + if (ip != eol) { + xp = eol; + *++eol = '\0'; + while (xp != ip) { + *xp = *(xp-1); + xp--; + } + } #endif - if (console_echo) { - mon_write_char(c); - } - if (ip == eol) { - // Advance both pointers - *ip++ = c; - eol = ip; + if (console_echo) { + mon_write_char(c); + } + if (ip == eol) { + // Advance both pointers + *ip++ = c; + eol = ip; #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 - } else { - // Just insert the character - *ip++ = c; - xp = ip; - while (xp != eol) { - mon_write_char(*xp++); - } - while (xp-- != ip) { - mon_write_char('\b'); - } + } else { + // Just insert the character + *ip++ = c; + xp = ip; + while (xp != eol) { + mon_write_char(*xp++); + } + while (xp-- != ip) { + mon_write_char('\b'); + } #endif - } - } - last_ch = c; - if (ip == buf + buflen - 1) { // Buffer full - *ip = '\0'; - return buflen; - } - } + } + } + last_ch = c; + if (ip == buf + buflen - 1) { // Buffer full + *ip = '\0'; + return buflen; + } + } } int _rb_gets(char *buf, int buflen, int timeout) { - *buf = '\0'; // Empty buffer - return _rb_gets_preloaded(buf, buflen, timeout); + *buf = '\0'; // Empty buffer + return _rb_gets_preloaded(buf, buflen, timeout); } static bool _verify_action(int timeout, char *fmt, va_list ap) { - char ans[8]; - int ret; + char ans[8]; + int ret; #ifdef CYGFUN_REDBOOT_BOOT_SCRIPT - // Don't ask if we're executing a script - if (script && *script) - return 1; + // Don't ask if we're executing a script + if (script && *script) + return 1; #endif - diag_vprintf(fmt, ap); - diag_printf(" - continue (y/n)? "); - if ((ret = _rb_gets(ans, sizeof(ans), timeout)) > 0) { - return ((ans[0] == 'y') || (ans[0] == 'Y')); - } else { - if (ret == _GETS_TIMEOUT) { - diag_printf(" ** Timed out!\n"); - } - return 0; // Timed out or ^C - } + diag_vprintf(fmt, ap); + diag_printf(" - continue (y/n)? "); + if ((ret = _rb_gets(ans, sizeof(ans), timeout)) > 0) { + return ((ans[0] == 'y') || (ans[0] == 'Y')); + } else { + if (ret == _GETS_TIMEOUT) { + diag_printf(" ** Timed out!\n"); + } + return 0; // Timed out or ^C + } } bool verify_action(char *fmt, ...) { - va_list ap; + va_list ap; - va_start(ap, fmt); - return _verify_action(0, fmt, ap); + va_start(ap, fmt); + return _verify_action(0, fmt, ap); } bool verify_action_with_timeout(int timeout, char *fmt, ...) { - va_list ap; + va_list ap; - va_start(ap, fmt); - return _verify_action(timeout, fmt, ap); + va_start(ap, fmt); + return _verify_action(timeout, fmt, ap); } @@ -776,15 +776,15 @@ verify_action_with_timeout(int timeout, char *fmt, ...) static int parse_history_index(char *s) { - int val = 0; + int val = 0; - while ('0' <= *s && *s <= '9') - val = (val * 10) + (*s++ - '0'); + while ('0' <= *s && *s <= '9') + val = (val * 10) + (*s++ - '0'); - if (*s) - return -1; + if (*s) + return -1; - return val; + return val; } // Check input line to see if it needs history expansion. If so, @@ -792,60 +792,60 @@ parse_history_index(char *s) static void expand_history(char *buf) { - int ncmds = _cl_max_index + 1; - int i, index, len; - - if (buf[0] != '!' || buf[1] == '\0') - return; + int ncmds = _cl_max_index + 1; + int i, index, len; - if (ncmds > 0) { - if (!strcmp(buf, "!!")) { - strcpy(buf, _cl_lines[_cl_index]); - return; - } - if ((index = parse_history_index(buf + 1)) >= 0) { - if (index <= _cl_max_index) { - strcpy(buf, _cl_lines[index]); + if (buf[0] != '!' || buf[1] == '\0') return; - } - } - len = strlen(buf + 1); - for (i = 0, index = _cl_index; i < ncmds; i++) { - if (!strncmp(_cl_lines[index], buf+1, len)) { - strcpy(buf, _cl_lines[index]); - return; - } - if (--index < 0) - index = _cl_max_index; + + if (ncmds > 0) { + if (!strcmp(buf, "!!")) { + strcpy(buf, _cl_lines[_cl_index]); + return; + } + if ((index = parse_history_index(buf + 1)) >= 0) { + if (index <= _cl_max_index) { + strcpy(buf, _cl_lines[index]); + return; + } + } + len = strlen(buf + 1); + for (i = 0, index = _cl_index; i < ncmds; i++) { + if (!strncmp(_cl_lines[index], buf+1, len)) { + strcpy(buf, _cl_lines[index]); + return; + } + if (--index < 0) + index = _cl_max_index; + } } - } - diag_printf("%s: event not found\n", buf); - *buf = '\0'; + diag_printf("%s: event not found\n", buf); + *buf = '\0'; } static void do_history(int argc, char *argv[]) { - int ncmds = _cl_max_index + 1; - int i, index; - - if (_cl_index == _cl_max_index) { - // history has not wrapped around - for (i = 0; i < ncmds; i++) - diag_printf("%3d %s\n", i, _cl_lines[i]); - } else { - for (i = 0, index = _cl_index + 1; i < ncmds; i++) { - diag_printf("%3d %s\n", i, _cl_lines[index++]); - if (index > _cl_max_index) - index = 0; + int ncmds = _cl_max_index + 1; + int i, index; + + if (_cl_index == _cl_max_index) { + // history has not wrapped around + for (i = 0; i < ncmds; i++) + diag_printf("%3d %s\n", i, _cl_lines[i]); + } else { + for (i = 0, index = _cl_index + 1; i < ncmds; i++) { + diag_printf("%3d %s\n", i, _cl_lines[index++]); + if (index > _cl_max_index) + index = 0; + } } - } } -RedBoot_cmd("history", - "Display command history", - "", - do_history - ); +RedBoot_cmd("history", + "Display command history", + "", + do_history + ); #endif // CYGBLD_REDBOOT_CMD_LINE_HISTORY diff --git a/packages/redboot/v2_0/src/main.c b/packages/redboot/v2_0/src/main.c index 04d7cdf4..202318bb 100644 --- a/packages/redboot/v2_0/src/main.c +++ b/packages/redboot/v2_0/src/main.c @@ -51,6 +51,7 @@ // //========================================================================== +#include #define DEFINE_VARS #include #include @@ -760,3 +761,25 @@ valid_address(unsigned char *addr) } return false; } + +static unsigned long random; +/* provide at least _some_ sort of randomness */ +#define MAX_LOOPS 1000 + +extern unsigned int hal_timer_count(void); + +static void random_init(void) +{ + unsigned int timer; + int i; + + unsigned int start = hal_timer_count(); + + start = hal_timer_count(); + for (i = 0; i < MAX_LOOPS; i++) { + timer = hal_timer_count(); + srand(random + timer); + random = rand(); + } +} +RedBoot_init(random_init, RedBoot_INIT_FIRST);