]> git.kernelconcepts.de Git - karo-tx-redboot.git/commitdiff
TX53 Release 2011-12-20
authorlothar <lothar>
Thu, 22 Dec 2011 14:12:17 +0000 (14:12 +0000)
committerlothar <lothar>
Thu, 22 Dec 2011 14:12:17 +0000 (14:12 +0000)
56 files changed:
ReleaseNotes.txt [new file with mode: 0755]
build.sh
config/TX25-40x1.ecc [new file with mode: 0644]
config/TX27-40x0.ecc
config/TX27-40x1.ecc
config/TX51-60x0.ecc [new file with mode: 0644]
config/TX51-60x1.ecc [new file with mode: 0644]
config/TX51-60x2.ecc [new file with mode: 0644]
config/TX51-80x0.ecc
config/TX51-80x1.ecc [new file with mode: 0644]
config/TX51-80x2.ecc [new file with mode: 0644]
config/TX53-1020.ecc [new file with mode: 0644]
config/TX53-1022.ecc [new file with mode: 0644]
config/TX53-1x30.ecc [new file with mode: 0644]
config/TX53-1x31.ecc [new file with mode: 0644]
config/TX53-8020.ecc [new file with mode: 0644]
config/TX53-8021.ecc [new file with mode: 0644]
config/TX53-8x30.ecc [new file with mode: 0644]
config/TX53-8x31.ecc [new file with mode: 0644]
packages/devs/eth/arm/tx53karo/v1_0/cdl/tx53_eth_drivers.cdl [new file with mode: 0644]
packages/devs/eth/arm/tx53karo/v1_0/include/devs_eth_arm_tx53.inl [new file with mode: 0644]
packages/devs/eth/fec/v2_0/include/fec.h
packages/devs/eth/fec/v2_0/src/if_fec.c
packages/devs/eth/phy/v2_0/include/eth_phy_dev.h
packages/devs/eth/phy/v2_0/src/eth_phy.c
packages/devs/flash/arm/mxc/v2_0/cdl/mxc_flash_select.cdl
packages/devs/flash/arm/mxc/v2_0/include/tx53_nand_bbt.h [new file with mode: 0644]
packages/hal/arm/mx25/karo/v1_0/src/tx25_splash.c [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/cdl/hal_arm_tx53.cdl [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/include/hal_platform_setup.h [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/include/karo_tx53.h [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/include/pkgconf/mlt_arm_tx53_romram.h [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/include/pkgconf/mlt_arm_tx53_romram.ldi [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/include/plf_io.h [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/include/plf_mmap.h [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/misc/redboot_ROMRAM.ecm [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/src/mx53_fastlogo.c [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/src/redboot_cmds.c [new file with mode: 0644]
packages/hal/arm/mx53/karo/v1_0/src/tx53_misc.c [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/cdl/hal_arm_soc.cdl [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/include/hal_cache.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/include/hal_diag.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/include/hal_mm.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/include/hal_soc.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/include/hal_var_ints.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/include/mx53_iomux.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/include/plf_stub.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/include/var_io.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/src/cmds.c [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/src/hab_super_root.h [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/src/soc_diag.c [new file with mode: 0644]
packages/hal/arm/mx53/var/v2_0/src/soc_misc.c [new file with mode: 0644]
packages/infra/v2_0/src/diag.cxx
packages/net/common/v2_0/tests/ping_test.c
packages/net/common/v2_0/tests/tftp_client_test.c
packages/redboot/v2_0/src/dump.c

diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
new file mode 100755 (executable)
index 0000000..7a4997e
--- /dev/null
@@ -0,0 +1,100 @@
+  RedBoot for Starter-Kit V (STK5)
+  Ka-Ro Electronics GmbH
+
+  ===========================================================
+ v1.5.1 (2011-11-16)
+  Changes:
+    Fix FEC driver handling of 10BaseT link
+
+ v1.5.0 (2010-06-16)
+  Changes:
+    Added support for TX53
+
+ v1.4.9 (2010-11-19)
+  Changes:
+    TX25:
+      Added support for redundant WinCE image load
+
+ v1.4.8 (2010-10-29)
+  Changes:
+    TX25:
+      Added support for splash screen, enabled with:
+       fconfig bootsplash_enable true
+       LCD parameters:
+       Name     Default Value          Description
+       lcd_bpp:                  16    LCD color depth (only 16bpp for now)
+       lcd_buffer_addr: -2113929216    LCD frame buffer address (hex: 0x82000000)
+       lcd_clk_period:        33333    Pixel clock period (in ps)
+       lcd_clk_polarity:      false    Pixel clock polarity active low
+       lcd_panel_width:         640    LCD panel width (in pixels)
+       lcd_panel_height:        480    LCD panel height (in pixels)
+       lcd_hsync_polarity:     true    HSYNC polarity active low
+       lcd_hsync_width:          64    HSYNC pulse width (in pixels):     1 ..  64
+       lcd_margin_left:          96    Left margin (in pixels):           1 .. 256
+       lcd_margin_right:         80    Right margin (in pixels):          1 .. 256
+       lcd_margin_top:           46    Top margin (in scan lines):        0 .. 255
+       lcd_margin_bottom:        39    Bottom margin (in scan lines):     0 .. 255
+       lcd_vsync_polarity:     true    VSYNC polarity active low
+       lcd_vsync_width:           3    VSYNC pulse width (in scan lines): 0 ..  63
+
+       Image data is loaded from the flash partition named 'logo' and
+       can be stored either as a binary dump or in Windows .bmp
+       format with 24bpp.
+
+      Renamed config/TX25-40x0.ecc to config/TX25-40x1.ecc to be in
+        sync with the module name
+
+ v1.4.7 (2010-06-02)
+  Changes:
+    TX51:
+      Added support for TX51-80x2 and TX51-80x1 (SDRAM clock selectable via cdl)
+
+ v1.4.6 (2010-03-04)
+  Changes:
+    TX27:
+      Fixed SDRAM timing according to application note from Micron.
+    TX51:
+      Fixed display of reset reason.
+      Corrected DEBUG LED settings
+    all modules:
+      Disabled FIS CRC check to facilitate update of the Linux
+      partition from within Linux (see RedBoot/README)
+
+ v1.4.5 (2010-01-21)
+  Changes:
+    Added support for TX51-80x0
+
+ v1.4.4 (2009-09-15)
+  Changes:
+    Corrected SDRAM timing setup for TX25 that was accidentally broken
+    in the previous release
+
+ v1.4.3 (2009-08-19)
+  Changes:
+    switched to unified source tree for TX25,TX27,TX37
+    fixing some issues with bad block handling on TX27
+
+ v1.4.2 (2009-04-29)
+  Changes:
+    Corrected the SDRAM initialisation for TX27-4021 (128MiB SDRAM)
+    module.
+
+ v1.4.1 (2009-04-24)
+  Changes:
+    Fixed a bug that lead to writing the RedBoot config partition on
+    every startup which would lead to excessive wearout of the flash.
+  The patch ecos-tx27-update.patch should be applied before compiling
+  RedBoot from source.
+
+ v1.4 (2009-03-20)
+  Changes:
+  + 'RedBoot config' partition merged with 'FIS Directory' into one
+     erase block
+  + improved bad block handling
+  + Flash partitioning changed due to the above
+    NOTE: The Linux kernel expects the RedBoot partition table at a
+          fixed block in flash determined by a configuration option.
+          Thus the new RedBoot version will only work with the new
+          Linux kernel.
+  + MAC address stored in processor internal fuse array
+  + new command: 'nand bad' to manually update the BBT
index b09c9afa451447ee668a735a4bdeaa60de23ab29..2fec628ffe8213b06af7034aa48b47612bb5727d 100644 (file)
--- a/build.sh
+++ b/build.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
 #!/bin/bash
-options="cnqrR"
+options="cnqrRp:"
 release=false
 tools_dir="$PWD/tools/bin"
 ecosconfig="$tools_dir/tools/configtool/standalone/common/ecosconfig"
 release=false
 tools_dir="$PWD/tools/bin"
 ecosconfig="$tools_dir/tools/configtool/standalone/common/ecosconfig"
@@ -9,6 +9,7 @@ clean=false
 rebuild=false
 doit=true
 make_opts=
 rebuild=false
 doit=true
 make_opts=
+pattern="*"
 
 error() {
     if [ -n "${target}" ];then
 
 error() {
     if [ -n "${target}" ];then
@@ -56,6 +57,9 @@ while getopts "$options" opt;do
            doit=false
            make_opts="${make_opts} -n"
            ;;
            doit=false
            make_opts="${make_opts} -n"
            ;;
+       p)
+           pattern="$OPTARG"
+           ;;
        q)
            quiet=true
            ;;
        q)
            quiet=true
            ;;
@@ -78,7 +82,7 @@ shift $(($OPTIND - 1))
 if [ $# -gt 0 ];then
     targets="$@"
 else
 if [ $# -gt 0 ];then
     targets="$@"
 else
-    targets=$(cd config;ls *.ecc)
+    targets=$(cd config;ls $pattern.ecc)
 fi
 
 set -e
 fi
 
 set -e
diff --git a/config/TX25-40x1.ecc b/config/TX25-40x1.ecc
new file mode 100644 (file)
index 0000000..bce8e4e
--- /dev/null
@@ -0,0 +1,10295 @@
+# 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    tx25karo ;
+    template    redboot ;
+    package -hardware CYGPKG_HAL_ARM current ;
+    package -hardware CYGPKG_HAL_ARM_MX25 current ;
+    package -hardware CYGPKG_HAL_ARM_TX25KARO 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_TX25 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 ;
+};
+
+# ---- 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
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-926ejs-linux-gnu
+    # value_source default
+    # 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
+    # No user value, uncomment the following line to provide one.
+    # user_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 default
+    # Default 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"
+    # 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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_TX25
+    #     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 TX25 processor module
+#
+cdl_package CYGPKG_DEVS_ETH_ARM_TX25 {
+    # 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 TX25 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_TX25KARO_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 == current
+    #     CYGPKG_HAL_ARM_MX53 (unknown) == 0
+    #   --> 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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_TX25KARO, 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_TX25KARO, 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_TX25KARO, 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_MX25, 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 TX25 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_MX25, 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_MX25 {
+    # 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+};
+
+# >
+# mDDR/DDR2 support
+# When this option is enabled, it indicates support
+# for Mobile DDR on the MX25 3stack CPU board.  mDDR
+# was used on TO1.0 boards.  Subsequent boards use
+# DDR2 memory.
+#
+cdl_option CYGHWR_MX25_MDDR {
+    # Flavor: bool
+    # No user value, uncomment the following line to provide one.
+    # user_value 0
+    # value_source default
+    # Default value: 0
+};
+
+# 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_TX25KARO, 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_TX25KARO, 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_TX25KARO, 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_TX25KARO, 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 TX25 module
+# This HAL platform package provides generic
+# support for the Ka-Ro electronics TX25 module.
+#
+cdl_package CYGPKG_HAL_ARM_TX25KARO {
+    # 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" 
+
+    # 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 TX25
+#
+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 TX25 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 TX25 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 TX25 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_TX25_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 TX25 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX25_SDRAM_SIZE {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 0x04000000
+    # value_source default
+    # Default value: 0x04000000
+    # Legal values:  0x02000000 0x04000000 0x08000000 
+};
+
+# 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_TX25_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 TX25 HAL. These flags are used in addition
+# to the set of global flags.
+#
+cdl_option CYGPKG_HAL_ARM_TX25_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 TX25 HAL. These flags are removed from
+# the set of global flags if present.
+#
+cdl_option CYGPKG_HAL_ARM_TX25_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_TX25_BOOTSPLASH {
+    # Flavor: bool
+    user_value 1
+    # value_source user
+    # Default value: 0
+};
+
+# <
+# Memory layout
+#
+cdl_component CYGHWR_MEMORY_LAYOUT {
+    # Calculated value:  "arm_tx25_romram" 
+    # Flavor: data
+    # Current_value: arm_tx25_romram
+};
+
+# >
+# Memory layout linker script fragment
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+    # Calculated value:  "<pkgconf/mlt_arm_tx25_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx25_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx25_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx25_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 == "-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"
+    #   --> 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 == "-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"
+    #   --> 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_TX25_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_TX25KARO
+    #     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
+    # 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: 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 2009-06-10"
+    # 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_TX25KARO_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_TX25_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
+    # value_source default
+    # 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 0x80108000
+    # value_source default
+    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x80108000
+    #   --> 0x80108000
+};
+
+# 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 0x80108000
+    # 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_TX25_OPTIONS
+    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x80108000 
+};
+
+# 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_TX25_OPTIONS {
+    # ActiveIf constraint: CYGPKG_REDBOOT
+    #     CYGPKG_REDBOOT == current
+    #   --> 1
+
+    # There is no associated value.
+    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x80108000 
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x80108000
+    #   --> 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_TX25KARO
+    #     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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 == current
+    #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX53 (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:  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 <cyg/io/tx25_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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: ""
+};
+
+# <
+# <
+# <
+
index 9362d5cbe7dcfef59d449394c886821f163204d2..d2724584e3a15a3c03b4a8f2077564220ac7a9a8 100644 (file)
@@ -9456,11 +9456,13 @@ cdl_component CYGHWR_DEVS_FLASH_MMC {
 cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
     # This option is not active
     # The parent CYGHWR_DEVS_FLASH_MMC is disabled
 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_3STACK || CYGPKG_HAL_ARM_MX35_3STACK || CYGPKG_HAL_ARM_MX25_3STACK ||  CYGPKG_HAL_ARM_MX51
-    #     CYGPKG_HAL_ARM_MX37_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25_3STACK (unknown) == 0
+    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
     #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
     #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX53 (unknown) == 0
     #   --> 0
 
     # Flavor: bool
     #   --> 0
 
     # Flavor: bool
index 6109d967467a91329868c1bb2d6ae247b14ec9e8..c61ee3d21fe5b85c02fe9d67ce9300197ff3db3e 100644 (file)
@@ -9457,11 +9457,13 @@ cdl_component CYGHWR_DEVS_FLASH_MMC {
 cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
     # This option is not active
     # The parent CYGHWR_DEVS_FLASH_MMC is disabled
 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_3STACK || CYGPKG_HAL_ARM_MX35_3STACK || CYGPKG_HAL_ARM_MX25_3STACK ||  CYGPKG_HAL_ARM_MX51
-    #     CYGPKG_HAL_ARM_MX37_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25_3STACK (unknown) == 0
+    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
     #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
     #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX53 (unknown) == 0
     #   --> 0
 
     # Flavor: bool
     #   --> 0
 
     # Flavor: bool
diff --git a/config/TX51-60x0.ecc b/config/TX51-60x0.ecc
new file mode 100644 (file)
index 0000000..fc6733b
--- /dev/null
@@ -0,0 +1,10390 @@
+# 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    tx51karo ;
+    template    redboot ;
+    package -hardware CYGPKG_HAL_ARM current ;
+    package -hardware CYGPKG_HAL_ARM_MX51 current ;
+    package -hardware CYGPKG_HAL_ARM_TX51KARO 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_TX51 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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_TX51
+    #     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 TX51 processor module
+#
+cdl_package CYGPKG_DEVS_ETH_ARM_TX51 {
+    # 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 TX51 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_TX51KARO_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 {
+    # 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
+#
+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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_MX51, 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 TX51 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_MX51, 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_MX51 {
+    # 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_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+};
+
+# >
+# MX51 Tapeout 2.0 support
+# When this option is enabled, it indicates support for
+# MX51 Tapeout 2.0
+#
+cdl_option CYGHWR_MX51_TO2 {
+    # Flavor: bool
+    # No user value, uncomment the following line to provide one.
+    # user_value 1
+    # value_source default
+    # Default value: 1
+};
+
+# MX51 mDDR memory support
+# When this option is enabled, it indicates support for
+# mDDR memory on MX51
+#
+cdl_option CYGHWR_MX51_MDDR {
+    # Flavor: bool
+    user_value 1
+    # value_source user
+    # Default value: 0
+};
+
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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 TX51 module
+# This HAL platform package provides generic
+# support for the Ka-Ro electronics TX51 module.
+#
+cdl_package CYGPKG_HAL_ARM_TX51KARO {
+    # 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" 
+
+    # 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 TX51
+#
+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 TX51 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 TX51 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 TX51 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_TX51_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 TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_SIZE {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 0x08000000
+    # value_source default
+    # Default value: 0x08000000
+    # Legal values:  0x10000000 0x08000000 0x04000000 
+};
+
+# SDRAM clock
+# This option specifies the SDRAM clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 166
+    # value_source default
+    # Default value: 166
+    # Legal values:  166 200 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_CPU_CLK {
+    # Flavor: data
+    user_value 600
+    # value_source user
+    # Default value: 800
+    # Legal values:  600 800 
+};
+
+# 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_TX51_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 TX51 HAL. These flags are used in addition
+# to the set of global flags.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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 TX51 HAL. These flags are removed from
+# the set of global flags if present.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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_MX51_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_tx51_romram" 
+    # Flavor: data
+    # Current_value: arm_tx51_romram
+};
+
+# >
+# Memory layout linker script fragment
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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_TX51_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_TX51KARO
+    #     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_TX51KARO_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_TX51_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 0x90108000
+    # value_source default
+    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 0x90108000
+};
+
+# 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 0x90108000
+    # 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_TX51_OPTIONS
+    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+};
+
+# 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_TX51_OPTIONS {
+    # ActiveIf constraint: CYGPKG_REDBOOT
+    #     CYGPKG_REDBOOT == current
+    #   --> 1
+
+    # There is no associated value.
+    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 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_TX51KARO
+    #     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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 == current
+    #     CYGPKG_HAL_ARM_MX53 (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:  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 <cyg/io/tx51_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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_MX51_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/TX51-60x1.ecc b/config/TX51-60x1.ecc
new file mode 100644 (file)
index 0000000..99fe584
--- /dev/null
@@ -0,0 +1,10388 @@
+# 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    tx51karo ;
+    template    redboot ;
+    package -hardware CYGPKG_HAL_ARM current ;
+    package -hardware CYGPKG_HAL_ARM_MX51 current ;
+    package -hardware CYGPKG_HAL_ARM_TX51KARO 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_TX51 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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_TX51
+    #     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 TX51 processor module
+#
+cdl_package CYGPKG_DEVS_ETH_ARM_TX51 {
+    # 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 TX51 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_TX51KARO_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 {
+    # 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
+#
+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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_MX51, 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 TX51 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_MX51, 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_MX51 {
+    # 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_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+};
+
+# >
+# MX51 Tapeout 2.0 support
+# When this option is enabled, it indicates support for
+# MX51 Tapeout 2.0
+#
+cdl_option CYGHWR_MX51_TO2 {
+    # Flavor: bool
+    # No user value, uncomment the following line to provide one.
+    # user_value 1
+    # value_source default
+    # Default value: 1
+};
+
+# MX51 mDDR memory support
+# When this option is enabled, it indicates support for
+# mDDR memory on MX51
+#
+cdl_option CYGHWR_MX51_MDDR {
+    # Flavor: bool
+    user_value 1
+    # value_source user
+    # Default value: 0
+};
+
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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 TX51 module
+# This HAL platform package provides generic
+# support for the Ka-Ro electronics TX51 module.
+#
+cdl_package CYGPKG_HAL_ARM_TX51KARO {
+    # 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" 
+
+    # 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 TX51
+#
+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 TX51 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 TX51 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 TX51 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_TX51_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 TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_SIZE {
+    # Flavor: data
+    user_value 0x10000000
+    # value_source user
+    # Default value: 0x08000000
+    # Legal values:  0x10000000 0x08000000 0x04000000 
+};
+
+# SDRAM clock
+# This option specifies the SDRAM clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_CLK {
+    # Flavor: data
+    user_value 200
+    # value_source user
+    # Default value: 166
+    # Legal values:  166 200 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_CPU_CLK {
+    # Flavor: data
+    user_value 600
+    # value_source user
+    # Default value: 800
+    # Legal values:  600 800 
+};
+
+# 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_TX51_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 TX51 HAL. These flags are used in addition
+# to the set of global flags.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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 TX51 HAL. These flags are removed from
+# the set of global flags if present.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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_MX51_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_tx51_romram" 
+    # Flavor: data
+    # Current_value: arm_tx51_romram
+};
+
+# >
+# Memory layout linker script fragment
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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_TX51_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_TX51KARO
+    #     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_TX51KARO_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_TX51_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 0x90108000
+    # value_source default
+    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 0x90108000
+};
+
+# 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 0x90108000
+    # 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_TX51_OPTIONS
+    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+};
+
+# 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_TX51_OPTIONS {
+    # ActiveIf constraint: CYGPKG_REDBOOT
+    #     CYGPKG_REDBOOT == current
+    #   --> 1
+
+    # There is no associated value.
+    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 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_TX51KARO
+    #     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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 == current
+    #     CYGPKG_HAL_ARM_MX53 (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:  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 <cyg/io/tx51_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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_MX51_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/TX51-60x2.ecc b/config/TX51-60x2.ecc
new file mode 100644 (file)
index 0000000..76554cb
--- /dev/null
@@ -0,0 +1,10389 @@
+# 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    tx51karo ;
+    template    redboot ;
+    package -hardware CYGPKG_HAL_ARM current ;
+    package -hardware CYGPKG_HAL_ARM_MX51 current ;
+    package -hardware CYGPKG_HAL_ARM_TX51KARO 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_TX51 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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_TX51
+    #     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 TX51 processor module
+#
+cdl_package CYGPKG_DEVS_ETH_ARM_TX51 {
+    # 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 TX51 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_TX51KARO_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 {
+    # 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
+#
+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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_MX51, 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 TX51 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_MX51, 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_MX51 {
+    # 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_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+};
+
+# >
+# MX51 Tapeout 2.0 support
+# When this option is enabled, it indicates support for
+# MX51 Tapeout 2.0
+#
+cdl_option CYGHWR_MX51_TO2 {
+    # Flavor: bool
+    # No user value, uncomment the following line to provide one.
+    # user_value 1
+    # value_source default
+    # Default value: 1
+};
+
+# MX51 mDDR memory support
+# When this option is enabled, it indicates support for
+# mDDR memory on MX51
+#
+cdl_option CYGHWR_MX51_MDDR {
+    # Flavor: bool
+    user_value 1
+    # value_source user
+    # Default value: 0
+};
+
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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 TX51 module
+# This HAL platform package provides generic
+# support for the Ka-Ro electronics TX51 module.
+#
+cdl_package CYGPKG_HAL_ARM_TX51KARO {
+    # 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" 
+
+    # 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 TX51
+#
+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 TX51 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 TX51 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 TX51 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_TX51_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 TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_SIZE {
+    # Flavor: data
+    user_value 0x10000000
+    # value_source user
+    # Default value: 0x08000000
+    # Legal values:  0x10000000 0x08000000 0x04000000 
+};
+
+# SDRAM clock
+# This option specifies the SDRAM clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 166
+    # value_source default
+    # Default value: 166
+    # Legal values:  166 200 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_CPU_CLK {
+    # Flavor: data
+    user_value 600
+    # value_source user
+    # Default value: 800
+    # Legal values:  600 800 
+};
+
+# 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_TX51_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 TX51 HAL. These flags are used in addition
+# to the set of global flags.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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 TX51 HAL. These flags are removed from
+# the set of global flags if present.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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_MX51_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_tx51_romram" 
+    # Flavor: data
+    # Current_value: arm_tx51_romram
+};
+
+# >
+# Memory layout linker script fragment
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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_TX51_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_TX51KARO
+    #     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_TX51KARO_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_TX51_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 0x90108000
+    # value_source default
+    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 0x90108000
+};
+
+# 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 0x90108000
+    # 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_TX51_OPTIONS
+    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+};
+
+# 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_TX51_OPTIONS {
+    # ActiveIf constraint: CYGPKG_REDBOOT
+    #     CYGPKG_REDBOOT == current
+    #   --> 1
+
+    # There is no associated value.
+    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 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_TX51KARO
+    #     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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 == current
+    #     CYGPKG_HAL_ARM_MX53 (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:  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 <cyg/io/tx51_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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_MX51_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
+};
+
+# <
+# <
+
index c5f22488413fd053139b0b4cc82f9c2d0374f7fa..c888afff82526d4331c0ac23f60fb31b97bd6ff0 100644 (file)
@@ -3106,7 +3106,8 @@ cdl_package CYGPKG_HAL_ARM_MX51 {
 
     # The following properties are affected by this value
     # option CYGHWR_DEVS_FLASH_MMC_ESDHC
 
     # The following properties are affected by this value
     # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     ActiveIf:  CYGPKG_HAL_ARM_MX37_3STACK || CYGPKG_HAL_ARM_MX35_3STACK || CYGPKG_HAL_ARM_MX25_3STACK ||  CYGPKG_HAL_ARM_MX51
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
 };
 
 # >
 };
 
 # >
@@ -9488,11 +9489,13 @@ cdl_component CYGHWR_DEVS_FLASH_MMC {
 cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
     # This option is not active
     # The parent CYGHWR_DEVS_FLASH_MMC is disabled
 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_3STACK || CYGPKG_HAL_ARM_MX35_3STACK || CYGPKG_HAL_ARM_MX25_3STACK ||  CYGPKG_HAL_ARM_MX51
-    #     CYGPKG_HAL_ARM_MX37_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25_3STACK (unknown) == 0
+    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
     #     CYGPKG_HAL_ARM_MX51 == current
     #     CYGPKG_HAL_ARM_MX51 == current
+    #     CYGPKG_HAL_ARM_MX53 (unknown) == 0
     #   --> 1
 
     # Flavor: bool
     #   --> 1
 
     # Flavor: bool
diff --git a/config/TX51-80x1.ecc b/config/TX51-80x1.ecc
new file mode 100644 (file)
index 0000000..a458c85
--- /dev/null
@@ -0,0 +1,10389 @@
+# 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    tx51karo ;
+    template    redboot ;
+    package -hardware CYGPKG_HAL_ARM current ;
+    package -hardware CYGPKG_HAL_ARM_MX51 current ;
+    package -hardware CYGPKG_HAL_ARM_TX51KARO 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_TX51 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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_TX51
+    #     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 TX51 processor module
+#
+cdl_package CYGPKG_DEVS_ETH_ARM_TX51 {
+    # 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 TX51 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_TX51KARO_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 {
+    # 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
+#
+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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_MX51, 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 TX51 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_MX51, 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_MX51 {
+    # 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_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+};
+
+# >
+# MX51 Tapeout 2.0 support
+# When this option is enabled, it indicates support for
+# MX51 Tapeout 2.0
+#
+cdl_option CYGHWR_MX51_TO2 {
+    # Flavor: bool
+    # No user value, uncomment the following line to provide one.
+    # user_value 1
+    # value_source default
+    # Default value: 1
+};
+
+# MX51 mDDR memory support
+# When this option is enabled, it indicates support for
+# mDDR memory on MX51
+#
+cdl_option CYGHWR_MX51_MDDR {
+    # Flavor: bool
+    user_value 1
+    # value_source user
+    # Default value: 0
+};
+
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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 TX51 module
+# This HAL platform package provides generic
+# support for the Ka-Ro electronics TX51 module.
+#
+cdl_package CYGPKG_HAL_ARM_TX51KARO {
+    # 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" 
+
+    # 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 TX51
+#
+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 TX51 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 TX51 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 TX51 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_TX51_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 TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_SIZE {
+    # Flavor: data
+    user_value 0x10000000
+    # value_source user
+    # Default value: 0x08000000
+    # Legal values:  0x10000000 0x08000000 0x04000000 
+};
+
+# SDRAM clock
+# This option specifies the SDRAM clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_CLK {
+    # Flavor: data
+    user_value 200
+    # value_source user
+    # Default value: 166
+    # Legal values:  166 200 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_CPU_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 800
+    # value_source default
+    # Default value: 800
+    # Legal values:  600 800 
+};
+
+# 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_TX51_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 TX51 HAL. These flags are used in addition
+# to the set of global flags.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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 TX51 HAL. These flags are removed from
+# the set of global flags if present.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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_MX51_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_tx51_romram" 
+    # Flavor: data
+    # Current_value: arm_tx51_romram
+};
+
+# >
+# Memory layout linker script fragment
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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_TX51_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_TX51KARO
+    #     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_TX51KARO_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_TX51_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 0x90108000
+    # value_source default
+    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 0x90108000
+};
+
+# 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 0x90108000
+    # 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_TX51_OPTIONS
+    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+};
+
+# 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_TX51_OPTIONS {
+    # ActiveIf constraint: CYGPKG_REDBOOT
+    #     CYGPKG_REDBOOT == current
+    #   --> 1
+
+    # There is no associated value.
+    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 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_TX51KARO
+    #     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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 == current
+    #     CYGPKG_HAL_ARM_MX53 (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:  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 <cyg/io/tx51_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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_MX51_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/TX51-80x2.ecc b/config/TX51-80x2.ecc
new file mode 100644 (file)
index 0000000..5f75499
--- /dev/null
@@ -0,0 +1,10390 @@
+# 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    tx51karo ;
+    template    redboot ;
+    package -hardware CYGPKG_HAL_ARM current ;
+    package -hardware CYGPKG_HAL_ARM_MX51 current ;
+    package -hardware CYGPKG_HAL_ARM_TX51KARO 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_TX51 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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_TX51
+    #     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 TX51 processor module
+#
+cdl_package CYGPKG_DEVS_ETH_ARM_TX51 {
+    # 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 TX51 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_TX51KARO_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 {
+    # 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
+#
+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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_MX51, 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 TX51 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_MX51, 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_MX51 {
+    # 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_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
+};
+
+# >
+# MX51 Tapeout 2.0 support
+# When this option is enabled, it indicates support for
+# MX51 Tapeout 2.0
+#
+cdl_option CYGHWR_MX51_TO2 {
+    # Flavor: bool
+    # No user value, uncomment the following line to provide one.
+    # user_value 1
+    # value_source default
+    # Default value: 1
+};
+
+# MX51 mDDR memory support
+# When this option is enabled, it indicates support for
+# mDDR memory on MX51
+#
+cdl_option CYGHWR_MX51_MDDR {
+    # Flavor: bool
+    user_value 1
+    # value_source user
+    # Default value: 0
+};
+
+# 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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_TX51KARO, 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 TX51 module
+# This HAL platform package provides generic
+# support for the Ka-Ro electronics TX51 module.
+#
+cdl_package CYGPKG_HAL_ARM_TX51KARO {
+    # 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" 
+
+    # 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 TX51
+#
+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 TX51 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 TX51 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 TX51 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_TX51_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 TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_SIZE {
+    # Flavor: data
+    user_value 0x10000000
+    # value_source user
+    # Default value: 0x08000000
+    # Legal values:  0x10000000 0x08000000 0x04000000 
+};
+
+# SDRAM clock
+# This option specifies the SDRAM clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_SDRAM_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 166
+    # value_source default
+    # Default value: 166
+    # Legal values:  166 200 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX51_CPU_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 800
+    # value_source default
+    # Default value: 800
+    # Legal values:  600 800 
+};
+
+# 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_TX51_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 TX51 HAL. These flags are used in addition
+# to the set of global flags.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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 TX51 HAL. These flags are removed from
+# the set of global flags if present.
+#
+cdl_option CYGPKG_HAL_ARM_TX51_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_MX51_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_tx51_romram" 
+    # Flavor: data
+    # Current_value: arm_tx51_romram
+};
+
+# >
+# Memory layout linker script fragment
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx51_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx51_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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_TX51_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_TX51KARO
+    #     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_TX51KARO_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_TX51_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 0x90108000
+    # value_source default
+    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 0x90108000
+};
+
+# 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 0x90108000
+    # 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_TX51_OPTIONS
+    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+};
+
+# 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_TX51_OPTIONS {
+    # ActiveIf constraint: CYGPKG_REDBOOT
+    #     CYGPKG_REDBOOT == current
+    #   --> 1
+
+    # There is no associated value.
+    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000 
+    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x90108000
+    #   --> 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_TX51KARO
+    #     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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 == current
+    #     CYGPKG_HAL_ARM_MX53 (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:  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 <cyg/io/tx51_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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_MX51_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-1020.ecc b/config/TX53-1020.ecc
new file mode 100644 (file)
index 0000000..5bfbb59
--- /dev/null
@@ -0,0 +1,10427 @@
+# 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  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: 5
+    # Flavor: data
+    # Current_value: 5
+
+    # 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 five 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 == 5
+};
+
+# 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 == 5
+
+    # 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 == 5
+};
+
+# 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 DDR type
+# This option specifies the SDRAM type of the TX53 module.
+# Valid options are '2' for DDR2 and '3' for DDR3.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 2
+    # value_source default
+    # Default value: 2
+    # Legal values:  2 3 
+
+    # The following properties are affected by this value
+    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+};
+
+# 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 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 1000
+    # value_source default
+    # Default value: 1000
+    # Legal values:  800 1000 
+};
+
+# 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
+};
+
+# <
+# Options for DDR2 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+    #   --> 1
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
+    # Flavor: data
+    user_value 333
+    # value_source user
+    # Default value: 400
+    # Legal values:  216 266 333 400 
+};
+
+# <
+# Options for DDR3 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+    # This option is not active
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+    #   --> 0
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+    # This option is not active
+    # The parent CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS is not active
+
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 333
+    # value_source default
+    # Default value: 333
+    # Legal values:  333 
+};
+
+# <
+# 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:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 (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
+    # 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 <cyg/io/tx53_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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-1022.ecc b/config/TX53-1022.ecc
new file mode 100644 (file)
index 0000000..0f908f5
--- /dev/null
@@ -0,0 +1,10427 @@
+# 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  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: 5
+    # Flavor: data
+    # Current_value: 5
+
+    # 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 five 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 == 5
+};
+
+# 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 == 5
+
+    # 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 == 5
+};
+
+# 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 DDR type
+# This option specifies the SDRAM type of the TX53 module.
+# Valid options are '2' for DDR2 and '3' for DDR3.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 2
+    # value_source default
+    # Default value: 2
+    # Legal values:  2 3 
+
+    # The following properties are affected by this value
+    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+};
+
+# 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 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 1000
+    # value_source default
+    # Default value: 1000
+    # Legal values:  800 1000 
+};
+
+# 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
+};
+
+# <
+# Options for DDR2 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+    #   --> 1
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR2_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 266 333 400 
+};
+
+# <
+# Options for DDR3 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+    # This option is not active
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+    #   --> 0
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+    # This option is not active
+    # The parent CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS is not active
+
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 333
+    # value_source default
+    # Default value: 333
+    # Legal values:  333 
+};
+
+# <
+# 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:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 (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
+    # 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 <cyg/io/tx53_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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-1x30.ecc b/config/TX53-1x30.ecc
new file mode 100644 (file)
index 0000000..f32ca83
--- /dev/null
@@ -0,0 +1,10427 @@
+# 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  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: 5
+    # Flavor: data
+    # Current_value: 5
+
+    # 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 five 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 == 5
+};
+
+# 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 == 5
+
+    # 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 == 5
+};
+
+# 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 DDR type
+# This option specifies the SDRAM type of the TX53 module.
+# Valid options are '2' for DDR2 and '3' for DDR3.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+    # Flavor: data
+    user_value 3
+    # value_source user
+    # Default value: 2
+    # Legal values:  2 3 
+
+    # The following properties are affected by this value
+    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+};
+
+# 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 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 1000
+    # value_source default
+    # Default value: 1000
+    # Legal values:  800 1000 
+};
+
+# 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
+};
+
+# <
+# Options for DDR2 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+    # This option is not active
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+    #   --> 0
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
+    # This option is not active
+    # The parent CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS is not active
+
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 400
+    # value_source default
+    # Default value: 400
+    # Legal values:  216 266 333 400 
+};
+
+# <
+# Options for DDR3 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+    #   --> 1
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 333
+    # value_source default
+    # Default value: 333
+    # Legal values:  333 
+};
+
+# <
+# 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:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 (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
+    # 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 <cyg/io/tx53_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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-1x31.ecc b/config/TX53-1x31.ecc
new file mode 100644 (file)
index 0000000..0d13a54
--- /dev/null
@@ -0,0 +1,10426 @@
+# 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  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: 5
+    # Flavor: data
+    # Current_value: 5
+
+    # 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 five 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 == 5
+};
+
+# 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 == 5
+
+    # 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 == 5
+};
+
+# 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 DDR type
+# This option specifies the SDRAM type of the TX53 module.
+# Valid options are '2' for DDR2 and '3' for DDR3.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+    # Flavor: data
+    user_value 3
+    # value_source user
+    # Default value: 2
+    # Legal values:  2 3 
+
+    # The following properties are affected by this value
+    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+};
+
+# 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 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 1000
+    # value_source default
+    # Default value: 1000
+    # Legal values:  800 1000 
+};
+
+# 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
+};
+
+# <
+# Options for DDR2 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+    # This option is not active
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+    #   --> 0
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
+    # This option is not active
+    # The parent CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS is not active
+
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 400
+    # value_source default
+    # Default value: 400
+    # Legal values:  216 266 333 400 
+};
+
+# <
+# Options for DDR3 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+    #   --> 1
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 333
+    # value_source default
+    # Default value: 333
+    # Legal values:  333 
+};
+
+# <
+# 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:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 (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
+    # 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 <cyg/io/tx53_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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-8020.ecc b/config/TX53-8020.ecc
new file mode 100644 (file)
index 0000000..caa80f5
--- /dev/null
@@ -0,0 +1,10426 @@
+# 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  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: 5
+    # Flavor: data
+    # Current_value: 5
+
+    # 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 five 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 == 5
+};
+
+# 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 == 5
+
+    # 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 == 5
+};
+
+# 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 DDR type
+# This option specifies the SDRAM type of the TX53 module.
+# Valid options are '2' for DDR2 and '3' for DDR3.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 2
+    # value_source default
+    # Default value: 2
+    # Legal values:  2 3 
+
+    # The following properties are affected by this value
+    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+};
+
+# 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 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+    # Flavor: data
+    user_value 800
+    # value_source user
+    # Default value: 1000
+    # Legal values:  800 1000 
+};
+
+# 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
+};
+
+# <
+# Options for DDR2 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+    #   --> 1
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
+    # Flavor: data
+    user_value 333
+    # value_source user
+    # Default value: 400
+    # Legal values:  216 266 333 400 
+};
+
+# <
+# Options for DDR3 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+    # This option is not active
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+    #   --> 0
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+    # This option is not active
+    # The parent CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS is not active
+
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 333
+    # value_source default
+    # Default value: 333
+    # Legal values:  333 
+};
+
+# <
+# 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:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 (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
+    # 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 <cyg/io/tx53_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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-8021.ecc b/config/TX53-8021.ecc
new file mode 100644 (file)
index 0000000..22cece0
--- /dev/null
@@ -0,0 +1,10426 @@
+# 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  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: 5
+    # Flavor: data
+    # Current_value: 5
+
+    # 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 five 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 == 5
+};
+
+# 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 == 5
+
+    # 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 == 5
+};
+
+# 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 DDR type
+# This option specifies the SDRAM type of the TX53 module.
+# Valid options are '2' for DDR2 and '3' for DDR3.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 2
+    # value_source default
+    # Default value: 2
+    # Legal values:  2 3 
+
+    # The following properties are affected by this value
+    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+};
+
+# 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 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+    # Flavor: data
+    user_value 800
+    # value_source user
+    # Default value: 1000
+    # Legal values:  800 1000 
+};
+
+# 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
+};
+
+# <
+# Options for DDR2 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+    #   --> 1
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR2_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 266 333 400 
+};
+
+# <
+# Options for DDR3 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+    # This option is not active
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+    #   --> 0
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+    # This option is not active
+    # The parent CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS is not active
+
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 333
+    # value_source default
+    # Default value: 333
+    # Legal values:  333 
+};
+
+# <
+# 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:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 (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
+    # 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 <cyg/io/tx53_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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-8x30.ecc b/config/TX53-8x30.ecc
new file mode 100644 (file)
index 0000000..9cc3561
--- /dev/null
@@ -0,0 +1,10426 @@
+# 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  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: 5
+    # Flavor: data
+    # Current_value: 5
+
+    # 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 five 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 == 5
+};
+
+# 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 == 5
+
+    # 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 == 5
+};
+
+# 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 DDR type
+# This option specifies the SDRAM type of the TX53 module.
+# Valid options are '2' for DDR2 and '3' for DDR3.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+    # Flavor: data
+    user_value 3
+    # value_source user
+    # Default value: 2
+    # Legal values:  2 3 
+
+    # The following properties are affected by this value
+    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+};
+
+# 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 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+    # Flavor: data
+    user_value 800
+    # value_source user
+    # Default value: 1000
+    # Legal values:  800 1000 
+};
+
+# 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
+};
+
+# <
+# Options for DDR2 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+    # This option is not active
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+    #   --> 0
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
+    # This option is not active
+    # The parent CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS is not active
+
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 400
+    # value_source default
+    # Default value: 400
+    # Legal values:  216 266 333 400 
+};
+
+# <
+# Options for DDR3 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+    #   --> 1
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 333
+    # value_source default
+    # Default value: 333
+    # Legal values:  333 
+};
+
+# <
+# 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:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 (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
+    # 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 <cyg/io/tx53_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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-8x31.ecc b/config/TX53-8x31.ecc
new file mode 100644 (file)
index 0000000..7b83ce5
--- /dev/null
@@ -0,0 +1,10425 @@
+# 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 ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
+    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
+    #   --> 1
+    # Requires: CYGPKG_ISOINFRA
+    #     CYGPKG_ISOINFRA == current
+    #   --> 1
+};
+
+# >
+# Inline versions of <string.h> functions
+# This option chooses whether some of the
+# particularly simple string functions from
+# <string.h> 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 ==  "<cyg/libc/string/bsdstring.h>" 
+    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
+    #   --> 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 <string.h>
+# 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 <ctype.h> 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 ==  "<cyg/libc/i18n/mb.h>" 
+    #     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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <ctype.h> functions
+# This option chooses whether the simple character
+# classification and conversion functions (e.g.
+# isupper(), isalpha(), toupper(), etc.)
+# from <ctype.h> 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 ==  "<cyg/libc/i18n/ctype.inl>" 
+    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h> functions
+# This option chooses whether some of the
+# particularly simple standard utility functions
+# from <stdlib.h> 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/div.inl>" 
+    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
+    #   --> 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
+    #   --> 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 <stdlib.h>
+# 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 <stdlib.h>
+# 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
+    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
+    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
+    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  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: 5
+    # Flavor: data
+    # Current_value: 5
+
+    # 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 five 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 == 5
+};
+
+# 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 == 5
+
+    # 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 == 5
+};
+
+# 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 DDR type
+# This option specifies the SDRAM type of the TX53 module.
+# Valid options are '2' for DDR2 and '3' for DDR3.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+    # Flavor: data
+    user_value 3
+    # value_source user
+    # Default value: 2
+    # Legal values:  2 3 
+
+    # The following properties are affected by this value
+    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
+    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+};
+
+# 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 
+};
+
+# CPU clock
+# This option specifies the CPU clock in MHz of the TX51 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+    # Flavor: data
+    user_value 800
+    # value_source user
+    # Default value: 1000
+    # Legal values:  800 1000 
+};
+
+# 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
+};
+
+# <
+# Options for DDR2 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+    # This option is not active
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+    #   --> 0
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
+    # This option is not active
+    # The parent CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS is not active
+
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 400
+    # value_source default
+    # Default value: 400
+    # Legal values:  216 266 333 400 
+};
+
+# <
+# Options for DDR3 SDRAM
+#
+cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
+    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+    #   --> 1
+
+    # There is no associated value.
+};
+
+# >
+# SDRAM clock
+# This option specifies the SDRAM clock im MHz of the TX53 module.
+#
+cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+    # Flavor: data
+    # No user value, uncomment the following line to provide one.
+    # user_value 333
+    # value_source default
+    # Default value: 333
+    # Legal values:  333 
+};
+
+# <
+# 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:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
+};
+
+# Memory layout header file
+#
+cdl_option CYGHWR_MEMORY_LAYOUT_H {
+    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
+    # Flavor: data
+    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
+};
+
+# <
+# <
+# <
+# <
+# <
+# 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 <cyg/infra/cyg_trac.h>)
+# 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 <cyg/libc/i18n/ctype.inl>
+    # 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 ==  "<cyg/libc/i18n/newlibctype.h>" 
+    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
+    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
+};
+
+# <
+# 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 <cyg/error/codes.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # package CYGPKG_ERROR
+    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
+};
+
+# 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 <cyg/error/errno.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # component CYGPKG_ERROR_ERRNO
+    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
+};
+
+# <
+# 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 <cyg/libc/stdlib/atox.inl>
+    # 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 ==  "<cyg/libc/stdlib/atox.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/abs.inl>
+    # 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 ==  "<cyg/libc/stdlib/abs.inl>" 
+};
+
+# 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 <cyg/libc/stdlib/div.inl>
+    # 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 ==  "<cyg/libc/stdlib/div.inl>" 
+};
+
+# 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 ==  "<cyg/libc/i18n/mb.h>" 
+};
+
+# 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 <cyg/error/strerror.h>
+    # value_source inferred
+    # Default value: 0 0
+
+    # The following properties are affected by this value
+    # option CYGPKG_ERROR_STRERROR
+    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/bsdstring.h>
+    # 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 ==  "<cyg/libc/string/bsdstring.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# 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 <cyg/libc/string/string.h>
+    # 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 ==  "<cyg/libc/string/string.h>" 
+};
+
+# <
+# 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 <fcntl.h>
+#
+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
+};
+
+# <
+# <sys/stat.h> 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 
+};
+
+# <dirent.h> 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 <sys/types.h> contents
+# This covers the types required by POSIX to be in
+# <sys/types.h>
+#
+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 <sys/types.h> contents
+# This covers the extra types required by non-POSIX
+# packages to be in <sys/types.h>. 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_MX53 
+    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
+    #     CYGPKG_HAL_ARM_MX51 (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
+    # 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 <cyg/io/tx53_nand_bbt.h>
+    # 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 <pkgconf/heaps.hxx>.
+#
+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 <cyg/memalloc/dlmalloc.hxx>
+    # value_source default
+    # Default value: <cyg/memalloc/dlmalloc.hxx>
+
+    # The following properties are affected by this value
+    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
+    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
+    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
+};
+
+# 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 ==  "<cyg/memalloc/memvar.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 ==  "<cyg/memalloc/dlmalloc.hxx>" 
+    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
+    #   --> 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 == "<cyg/error/codes.h>" 
+    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
+    #   --> 1
+};
+
+# >
+# errno variable
+# This package controls the behaviour of the
+# errno variable (or more strictly, expression)
+# from <errno.h>.
+#
+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 == "<cyg/error/errno.h>" 
+    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
+    #   --> 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 <string.h>
+#
+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 == "<cyg/error/strerror.h>" 
+    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
+    #   --> 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/tx53karo/v1_0/cdl/tx53_eth_drivers.cdl b/packages/devs/eth/arm/tx53karo/v1_0/cdl/tx53_eth_drivers.cdl
new file mode 100644 (file)
index 0000000..4ca08a8
--- /dev/null
@@ -0,0 +1,89 @@
+# ====================================================================
+#
+#      tx53_eth_drivers.cdl
+#
+# ====================================================================
+#####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+## WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with eCos; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+##
+## As a special exception, if other files instantiate templates or use macros
+## or inline functions from this file, or you compile this file and link it
+## with other works to produce a work based on this file, this file does not
+## by itself cause the resulting work to be covered by the GNU General Public
+## License. However the source code for this file must still be made available
+## in accordance with section (3) of the GNU General Public License.
+##
+## This exception does not invalidate any other reasons why a work based on
+## this file might be covered by the GNU General Public License.
+##
+## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+## at http://sources.redhat.com/ecos/ecos-license/
+## -------------------------------------------
+#####ECOSGPLCOPYRIGHTEND####
+
+cdl_package CYGPKG_DEVS_ETH_ARM_TX53 {
+    display       "Ethernet driver for Ka-Ro electronics TX53 processor module"
+
+    parent        CYGPKG_IO_ETH_DRIVERS
+    active_if    CYGPKG_IO_ETH_DRIVERS
+
+    include_dir   cyg/io
+
+    cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED {
+        display   "FEC ethernet driver required"
+    }
+
+    cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 {
+        display       "Ka-Ro TX53 ethernet port driver"
+        flavor        bool
+        default_value 1
+        description   "
+            This option includes the ethernet device driver for the
+            MXC Board port."
+
+        implements CYGHWR_NET_DRIVER_ETH0
+        implements CYGINT_DEVS_ETH_FEC_REQUIRED
+        requires CYGSEM_REDBOOT_PLF_ESA_VALIDATE
+        requires CYGHWR_DEVS_ETH_PHY_LAN8700
+
+        cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME {
+            display       "Device name for the ETH0 ethernet driver"
+            flavor        data
+            default_value {"\"eth0\""}
+            description   "
+                This option sets the name of the ethernet device."
+        }
+
+        cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI {
+            display       "OUI part of MAC address"
+            flavor        data
+            active_if     CYGSEM_REDBOOT_PLF_ESA_VALIDATE
+            default_value { "{ 0x00, 0x0c, 0xc6 }" }
+            description   "
+                This option sets OUI part (manufacturer ID) of the MAC address
+                for validation."
+        }
+    }
+
+    define_proc {
+        puts $::cdl_system_header "/***** ethernet driver proc output start *****/"
+        puts $::cdl_system_header "#define CYGDAT_DEVS_ETH_FEC_CFG <pkgconf/devs_eth_arm_tx53.h>"
+        puts $::cdl_system_header "#define CYGDAT_DEVS_ETH_FEC_INL <cyg/io/devs_eth_arm_tx53.inl>"
+        puts $::cdl_system_header "/*****  ethernet driver proc output end  *****/"
+    }
+}
diff --git a/packages/devs/eth/arm/tx53karo/v1_0/include/devs_eth_arm_tx53.inl b/packages/devs/eth/arm/tx53karo/v1_0/include/devs_eth_arm_tx53.inl
new file mode 100644 (file)
index 0000000..716e906
--- /dev/null
@@ -0,0 +1,384 @@
+//==========================================================================
+//
+//      devs_eth_arm_tx53.inl
+//
+//      Board ethernet I/O definitions.
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+
+#include <cyg/hal/hal_intr.h>                  // CYGNUM_HAL_INTERRUPT_ETHR
+#include <cyg/hal/hal_if.h>
+#include <cyg/hal/mx53_iomux.h>
+
+#ifdef CYGPKG_REDBOOT
+#include <pkgconf/redboot.h>
+#ifdef CYGSEM_REDBOOT_FLASH_CONFIG
+#include <redboot.h>
+#include <flash_config.h>
+#endif
+#endif
+
+
+#ifdef __WANT_DEVS
+
+#ifdef CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
+
+#ifdef CYGPKG_DEVS_ETH_PHY
+
+static char  mxc_fec_name[] = "mxc_fec";
+
+#define FEC_POWER_GPIO                                 MX53_GPIO_NR(3, 20)
+#define FEC_RESET_GPIO                                 MX53_GPIO_NR(7, 6)
+
+#ifdef CYGSEM_REDBOOT_PLF_ESA_VALIDATE
+//
+// Verify that the given ESA is valid for this platform
+//
+static char oui[3] = CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI;
+
+bool
+cyg_plf_redboot_esa_validate(unsigned char *val)
+{
+       return (val[0] == oui[0]) && (val[1] == oui[1]) && (val[2] == oui[2]);
+}
+#endif
+
+extern int tx53_mac_addr_program(unsigned char mac_addr[ETHER_ADDR_LEN]);
+
+static inline void tx53_write_reg(CYG_ADDRWORD base_addr, CYG_WORD32 offset, CYG_WORD32 val)
+{
+       if (net_debug) {
+               diag_printf("Changing reg %08x from %08x to %08x\n",
+                                       base_addr + offset, readl(base_addr + offset), val);
+       }
+       HAL_WRITE_UINT32(base_addr + offset, val);
+}
+
+static inline CYG_WORD32 tx53_read_reg(CYG_ADDRWORD base_addr, CYG_WORD32 offset)
+{
+       CYG_WORD32 val;
+
+       HAL_READ_UINT32(base_addr + offset, val);
+       if (net_debug) diag_printf("Read %08x from reg %08x\n", val, base_addr + offset);
+       return val;
+}
+
+static inline void tx53_set_reg(CYG_ADDRWORD base_addr, CYG_WORD32 offset,
+                                                               CYG_WORD32 set_mask, CYG_WORD32 clr_mask)
+{
+       CYG_WORD32 val;
+
+       HAL_READ_UINT32(base_addr + offset, val);
+       if (net_debug) diag_printf("Changing reg %08x from %08x to %08x\n", base_addr + offset, val,
+                                  (val & ~clr_mask) | set_mask);
+       val = (val & ~clr_mask) | set_mask;
+       HAL_WRITE_UINT32(base_addr + offset, val);
+}
+
+static iomux_v3_cfg_t tx53_fec_gpio_pads[] = {
+       /* setup FEC PHY pins for GPIO function (with SION set) */
+       MX53_PAD_FEC_REF_CLK__GPIO_1_23 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_MDC__GPIO_1_31 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_MDIO__GPIO_1_22 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_RXD0__GPIO_1_27 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_RXD1__GPIO_1_26 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_RX_ER__GPIO_1_24 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_TX_EN__GPIO_1_28 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_TXD0__GPIO_1_30 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_TXD1__GPIO_1_29 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_CRS_DV__GPIO_1_25 | IOMUX_CONFIG_SION,
+
+       /* PHY reset */
+       MX53_PAD_PATA_DA_0__GPIO_7_6 | IOMUX_CONFIG_SION,
+       /* PHY power */
+       MX53_PAD_EIM_D20__GPIO_3_20 | IOMUX_CONFIG_SION,
+};
+
+static iomux_v3_cfg_t tx53_fec_pads[] = {
+       MX53_PAD_FEC_REF_CLK__FEC_TX_CLK,
+       MX53_PAD_FEC_MDC__FEC_MDC,
+       MX53_PAD_FEC_MDIO__FEC_MDIO,
+       MX53_PAD_FEC_RXD0__FEC_RDATA_0,
+       MX53_PAD_FEC_RXD1__FEC_RDATA_1,
+       MX53_PAD_FEC_RX_ER__FEC_RX_ER,
+       MX53_PAD_FEC_TX_EN__FEC_TX_EN,
+       MX53_PAD_FEC_TXD0__FEC_TDATA_0,
+       MX53_PAD_FEC_TXD1__FEC_TDATA_1,
+       MX53_PAD_FEC_CRS_DV__FEC_RX_DV,
+};
+
+static struct tx53_gpio_setup {
+       unsigned gpio:9,
+               dir:1,
+               level:1;
+} tx53_fec_gpio_data[] = {
+       /*                                       dir,
+        *                               gpio,   level */
+       { FEC_RESET_GPIO,          1, 0, }, /* PHY reset */
+       { FEC_POWER_GPIO,          1, 1, }, /* PHY power enable */
+       { MX53_GPIO_NR(1, 23), 0, }, /* ENET_CLK */
+       { MX53_GPIO_NR(1, 31), 1, 0, }, /* MDC */
+       { MX53_GPIO_NR(1, 22), 1, 0, }, /* MDIO */
+       { MX53_GPIO_NR(1, 27), 1, 1, }, /* Mode0/RXD0 */
+       { MX53_GPIO_NR(1, 26), 1, 1, }, /* Mode1/RXD1 */
+       { MX53_GPIO_NR(1, 24), 0, }, /* RX_ER */
+       { MX53_GPIO_NR(1, 28), 1, 0, }, /* TX_EN */
+       { MX53_GPIO_NR(1, 30), 1, 0, }, /* TXD0 */
+       { MX53_GPIO_NR(1, 29), 1, 0, }, /* TXD1 */
+       { MX53_GPIO_NR(1, 25), 1, 1, }, /* Mode2/CRS_DV */
+};
+
+static inline void tx53_phy_gpio_init(void)
+{
+       int i;
+
+       if (net_debug)
+               diag_printf("Initializing PHY GPIOs\n");
+
+       /* setup all pins attached to the PHY to the required level */
+       for (i = 0; i < CYG_NELEM(tx53_fec_gpio_data); i++) {
+               struct tx53_gpio_setup *gs = &tx53_fec_gpio_data[i];
+
+               if (gs->dir)
+                       gpio_direction_output(gs->gpio, gs->level);
+               else
+                       gpio_direction_input(gs->gpio);
+       }
+
+       /* configure all FEC pads as GPIO */
+       mx53_iomux_setup_pads(tx53_fec_gpio_pads, CYG_NELEM(tx53_fec_gpio_pads));
+
+       for (i = 0; i < CYG_NELEM(tx53_fec_gpio_data); i++) {
+               struct tx53_gpio_setup *gs = &tx53_fec_gpio_data[i];
+
+               if (gs->dir) {
+                       if (gs->level ^ gpio_get_value(gs->gpio)) {
+                               diag_printf("%s: GPIO%d_%d[%d] is not %s\n", __FUNCTION__,
+                                                       gs->gpio / GPIO_NUM_PIN, gs->gpio % GPIO_NUM_PIN,
+                                                       i, gs->level ? "HIGH" : "LOW");
+                       }
+               }
+       }
+       if (net_debug)
+               diag_printf("PHY GPIO init done\n");
+}
+
+static bool mxc_fec_init(struct cyg_netdevtab_entry *tab);
+static bool tx53_fec_init(struct cyg_netdevtab_entry *tab)
+{
+       cyg_bool esa_set;
+       int ok;
+
+       /* Check, whether MAC address is enabled */
+       ok = CYGACC_CALL_IF_FLASH_CFG_OP(CYGNUM_CALL_IF_FLASH_CFG_GET,
+                                                                        "fec_esa", &esa_set, CONFIG_BOOL);
+       if (!(ok && esa_set)) {
+               diag_printf("FEC disabled; set fec_esa=true to enable networking\n");
+               return false;
+       }
+       return mxc_fec_init(tab);
+}
+
+static void tx53_fec_phy_init(void)
+{
+       const int phy_reset_delay = 25000;      /* wait for 25ms for LAN8710 to power up */
+
+       /*
+        * make sure the ETH PHY strap pins are pulled to the right voltage
+        * before deasserting the PHY reset GPIO
+        */
+       /* assert FEC PHY Reset (GPIO2_14) and switch PHY power on (GPIO1_3) */
+
+       tx53_phy_gpio_init();
+
+       if (net_debug)
+               diag_printf("Switching PHY POWER on\n");
+       gpio_set_value(FEC_RESET_GPIO, 0);
+       gpio_set_value(FEC_POWER_GPIO, 1);
+
+       if (!gpio_get_value(FEC_POWER_GPIO)) {
+               diag_printf("**Failed to switch PHY power on\n");
+       }
+
+       if (gpio_get_value(FEC_RESET_GPIO)) {
+               diag_printf("**Failed to assert PHY reset\n");
+       }
+
+       /* wait for 100us according to LAN8710 spec. before ... */
+       HAL_DELAY_US(phy_reset_delay);
+       /* ... deasserting FEC PHY reset */
+       if (net_debug) diag_printf("Releasing PHY RESET\n");
+       gpio_set_value(FEC_RESET_GPIO, 1);
+       if (!gpio_get_value(FEC_RESET_GPIO)) {
+               diag_printf("**Failed to release PHY reset\n");
+       }
+
+       /* configure all FEC pins to their required functions */
+       mx53_iomux_setup_pads(tx53_fec_pads, CYG_NELEM(tx53_fec_pads));
+}
+
+ETH_PHY_REG_LEVEL_ACCESS_FUNS(eth0_phy,
+                                                         tx53_fec_phy_init,
+                                                         mxc_fec_phy_reset,
+                                                         mxc_fec_phy_write,
+                                                         mxc_fec_phy_read);
+
+cyg_bool _tx53_provide_fec_esa(unsigned char *addr)
+{
+       cyg_bool enabled;
+       int ok;
+
+       ok = CYGACC_CALL_IF_FLASH_CFG_OP(CYGNUM_CALL_IF_FLASH_CFG_GET,
+                                        "fec_esa", &enabled, CONFIG_BOOL);
+       if (ok && enabled) {
+#ifdef CYGSEM_REDBOOT_PLF_ESA_VALIDATE
+               cyg_uint8 addr2[ETHER_ADDR_LEN];
+
+               addr[0] = readl(SOC_FEC_MAC_BASE + 0x00);
+               addr[1] = readl(SOC_FEC_MAC_BASE + 0x04);
+               addr[2] = readl(SOC_FEC_MAC_BASE + 0x08);
+               addr[3] = readl(SOC_FEC_MAC_BASE + 0x0c);
+               addr[4] = readl(SOC_FEC_MAC_BASE + 0x10);
+               addr[5] = readl(SOC_FEC_MAC_BASE + 0x14);
+
+               if (cyg_plf_redboot_esa_validate(addr)) {
+                       diag_printf("Ethernet FEC MAC address from fuse bank: ");
+                       diag_printf("%02x:%02x:%02x:%02x:%02x:%02x\n",
+                                               addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
+                       CYGACC_CALL_IF_FLASH_CFG_OP(CYGNUM_CALL_IF_FLASH_CFG_GET,
+                                                                               "fec_esa_data", addr2, CONFIG_ESA);
+                       if (memcmp(addr, addr2, sizeof(addr)) != 0) {
+                               CYGACC_CALL_IF_FLASH_CFG_OP(CYGNUM_CALL_IF_FLASH_CFG_SET,
+                                                                                       "fec_esa_data", addr, CONFIG_ESA);
+                       }
+#ifdef SOC_MAC_ADDR_LOCK_FUSE
+                       if ((readl(IIM_BASE_ADDR + 0x800 + SOC_MAC_ADDR_FUSE_BANK * 0x400 +
+                                          SOC_MAC_ADDR_LOCK_FUSE * 4) &
+                                SOC_MAC_ADDR_LOCK_BIT) == 0) {
+                               tx53_mac_addr_program(addr);
+                       }
+#endif // SOC_MAC_ADDR_LOCK_FUSE
+                       return true;
+               }
+#endif // CYGSEM_REDBOOT_PLF_ESA_VALIDATE
+
+               CYGACC_CALL_IF_FLASH_CFG_OP(CYGNUM_CALL_IF_FLASH_CFG_GET,
+                                                                       "fec_esa_data", addr, CONFIG_ESA);
+
+               diag_printf("Ethernet FEC MAC address from fconfig: ");
+               diag_printf("%02x:%02x:%02x:%02x:%02x:%02x\n",
+                                       addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
+
+#ifdef CYGSEM_REDBOOT_PLF_ESA_VALIDATE
+               if (cyg_plf_redboot_esa_validate(addr)) {
+                       tx53_mac_addr_program(addr);
+                       return true;
+               }
+
+               diag_printf("** Error: Invalid MAC address: ");
+               diag_printf("%02x:%02x:%02x:%02x:%02x:%02x\n",
+                                       addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
+
+               writel(addr[0], SOC_FEC_MAC_BASE + 0x00);
+               writel(addr[1], SOC_FEC_MAC_BASE + 0x04);
+               writel(addr[2], SOC_FEC_MAC_BASE + 0x08);
+               writel(addr[3], SOC_FEC_MAC_BASE + 0x0c);
+               writel(addr[4], SOC_FEC_MAC_BASE + 0x10);
+               writel(addr[5], SOC_FEC_MAC_BASE + 0x14);
+
+#ifdef SOC_MAC_ADDR_LOCK_FUSE
+               if ((readl(IIM_BASE_ADDR + 0x800 + SOC_MAC_ADDR_FUSE_BANK * 0x400 +
+                                  SOC_MAC_ADDR_LOCK_FUSE * 4) &
+                        SOC_MAC_ADDR_LOCK_BIT) == 0) {
+                       diag_printf("Use 'fconfig fec_esa_data' to set the MAC address\n");
+                       return false;
+               } else {
+                       diag_printf("Using MAC address from fconfig\n");
+               }
+#else
+               diag_printf("Using MAC address from fconfig\n");
+#endif // SOC_MAC_ADDR_LOCK_FUSE
+#endif // CYGSEM_REDBOOT_PLF_ESA_VALIDATE
+               return true;
+       }
+       return false;
+}
+
+static mxc_fec_priv_t mxc_fec_private = {
+       .phy = &eth0_phy,                                                         // PHY access routines
+       .provide_esa = _tx53_provide_fec_esa,
+};
+
+ETH_DRV_SC(mxc_fec_sc,
+                  &mxc_fec_private, // Driver specific data
+                  mxc_fec_name,
+                  mxc_fec_start,
+                  mxc_fec_stop,
+                  mxc_fec_control,
+                  mxc_fec_can_send,
+                  mxc_fec_send,
+                  mxc_fec_recv,
+                  mxc_fec_deliver,             // "pseudoDSR" called from fast net thread
+                  mxc_fec_poll,                // poll function, encapsulates ISR and DSR
+                  mxc_fec_int_vector);
+
+NETDEVTAB_ENTRY(mxc_fec_netdev,
+                               mxc_fec_name,
+                               tx53_fec_init,
+                               &mxc_fec_sc);
+#endif
+
+#if defined(CYGPKG_REDBOOT) && defined(CYGSEM_REDBOOT_FLASH_CONFIG)
+RedBoot_config_option("Set FEC network hardware address [MAC]",
+                                         fec_esa,
+                                         ALWAYS_ENABLED, true,
+                                         CONFIG_BOOL, true
+                                        );
+RedBoot_config_option("FEC network hardware address [MAC]",
+                                         fec_esa_data,
+                                         "fec_esa", true,
+                                         CONFIG_ESA, 0
+                                        );
+#endif // CYGPKG_REDBOOT && CYGSEM_REDBOOT_FLASH_CONFIG
+
+#ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
+// Note that this section *is* active in an application, outside RedBoot,
+// where the above section is not included.
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
+#endif // CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
+
+#endif // __WANT_DEVS
index 87a5a56552241cf5e7cde7e20220e845f8322aca..477ee0ed7eab8ce947cd0882e0bae5a5b103165a 100644 (file)
@@ -138,10 +138,12 @@ void mxc_fec_phy_write(int reg, int unit, unsigned short data);
 #define FEC_RCR_BC_REJ         0x00000010
 #define FEC_RCR_PROM           0x00000008
 #define FEC_RCR_MII_MODE       0x00000004
 #define FEC_RCR_BC_REJ         0x00000010
 #define FEC_RCR_PROM           0x00000008
 #define FEC_RCR_MII_MODE       0x00000004
+#define FEC_RCR_DRT                    0x00000002
 
 /* the defines of Transmit Control*/
 #define FEC_TCR_RFC_PAUSE      0x00000010
 #define FEC_TCR_FDEN           0x00000004
 
 /* the defines of Transmit Control*/
 #define FEC_TCR_RFC_PAUSE      0x00000010
 #define FEC_TCR_FDEN           0x00000004
+#define FEC_TCR_HBC                    0x00000002
 
 /* the defines of buffer description*/
 #define FEC_BD_RX_NUM          256
 
 /* the defines of buffer description*/
 #define FEC_BD_RX_NUM          256
index 8708e63d5088d991c217122b27f8059be9661f21..ff9d2867ddd0eed3599e9ac58f9c15665aa00187 100644 (file)
@@ -359,8 +359,8 @@ mxc_fec_start(struct eth_drv_sc *sc, unsigned char *enaddr, int flags)
        mxc_fec_set_mac_address(hw_reg, enaddr);
 
        priv->tx_busy = 0;
        mxc_fec_set_mac_address(hw_reg, enaddr);
 
        priv->tx_busy = 0;
-       mxc_fec_reg_write(hw_reg, rdar, mxc_fec_reg_read(hw_reg, rdar) | FEC_RX_TX_ACTIVE);
-       mxc_fec_reg_write(hw_reg, ecr, mxc_fec_reg_read(hw_reg, ecr) | FEC_ETHER_EN);
+       mxc_fec_reg_write(hw_reg, rdar, FEC_RX_TX_ACTIVE);
+       mxc_fec_reg_write(hw_reg, ecr, FEC_ETHER_EN);
 }
 
 /*!
 }
 
 /*!
@@ -425,19 +425,16 @@ mxc_fec_can_send(struct eth_drv_sc *sc)
 #ifdef CYGPKG_DEVS_ETH_PHY
                unsigned short value;
                value = _eth_phy_state(priv->phy);
 #ifdef CYGPKG_DEVS_ETH_PHY
                unsigned short value;
                value = _eth_phy_state(priv->phy);
+               if (value & ETH_PHY_STAT_LINK) {
+                       mxc_fec_phy_status(priv, value, true);
+               }
 #else
                unsigned short value;
                mxc_fec_mii_read(hw_reg, priv->phy_addr, 1, &value);
 #else
                unsigned short value;
                mxc_fec_mii_read(hw_reg, priv->phy_addr, 1, &value);
-#endif
                if (value & PHY_STATUS_LINK_ST) {
                if (value & PHY_STATUS_LINK_ST) {
-                       if (!(priv->status & FEC_STATUS_LINK_ON)) {
-                               mxc_fec_phy_status(priv, value, true);
-                       }
-               } else {
-                       if (priv->status & FEC_STATUS_LINK_ON) {
-                               mxc_fec_phy_status(priv, value, true);
-                       }
+                       mxc_fec_phy_status(priv, 0, true);
                }
                }
+#endif
        }
 
        return priv->status & FEC_STATUS_LINK_ON;
        }
 
        return priv->status & FEC_STATUS_LINK_ON;
@@ -589,7 +586,7 @@ mxc_fec_check_rx_bd(struct eth_drv_sc *sc)
                        p++;
                }
                priv->rx_cur = p;
                        p++;
                }
                priv->rx_cur = p;
-               mxc_fec_reg_write(hw_reg, rdar, mxc_fec_reg_read(hw_reg, rdar) | FEC_RX_TX_ACTIVE);
+               mxc_fec_reg_write(hw_reg, rdar, FEC_RX_TX_ACTIVE);
        }
 }
 
        }
 }
 
@@ -647,20 +644,19 @@ mxc_fec_poll(struct eth_drv_sc *sc)
 #ifdef CYGPKG_DEVS_ETH_PHY
                unsigned short value;
                value = _eth_phy_state(priv->phy);
 #ifdef CYGPKG_DEVS_ETH_PHY
                unsigned short value;
                value = _eth_phy_state(priv->phy);
+               if (!(value & ETH_PHY_STAT_LINK) ^
+                       !(priv->status & FEC_STATUS_LINK_ON)) {
+                       mxc_fec_phy_status(priv, value, true);
+               }
 #else
                unsigned short value;
                mxc_fec_mii_read(hw_reg, priv->phy_addr, 1, &value);
 #else
                unsigned short value;
                mxc_fec_mii_read(hw_reg, priv->phy_addr, 1, &value);
+               if (!(value & PHY_STATUS_LINK_ST) ^
+                       !(priv->status & FEC_STATUS_LINK_ON)) {
+                       mxc_fec_phy_status(priv, 0, true);
+               }
 #endif
                last_poll = 0;
 #endif
                last_poll = 0;
-               if (value & PHY_STATUS_LINK_ST) {
-                       if (!(priv->status & FEC_STATUS_LINK_ON)) {
-                               mxc_fec_phy_status(priv, value, true);
-                       }
-               } else {
-                       if (priv->status & FEC_STATUS_LINK_ON) {
-                               mxc_fec_phy_status(priv, value, true);
-                       }
-               }
        }
 }
 
        }
 }
 
@@ -715,7 +711,7 @@ mxc_fec_chip_init(mxc_fec_priv_t *dev)
        unsigned long ipg_clk;
        unsigned long clkdiv;
 
        unsigned long ipg_clk;
        unsigned long clkdiv;
 
-       mxc_fec_reg_write(hw_reg, ecr, mxc_fec_reg_read(hw_reg, ecr) | FEC_RESET);
+       mxc_fec_reg_write(hw_reg, ecr, FEC_RESET);
        while (mxc_fec_reg_read(hw_reg, ecr) & FEC_RESET) {
                hal_delay_us(FEC_COMMON_TICK);
        }
        while (mxc_fec_reg_read(hw_reg, ecr) & FEC_RESET) {
                hal_delay_us(FEC_COMMON_TICK);
        }
@@ -751,15 +747,15 @@ mxc_fec_chip_init(mxc_fec_priv_t *dev)
        /* must be done before enabling the MII gasket
         * (otherwise MIIGSK_ENR_READY will never assert)
         */
        /* must be done before enabling the MII gasket
         * (otherwise MIIGSK_ENR_READY will never assert)
         */
-       mxc_fec_reg_write(hw_reg, ecr, mxc_fec_reg_read(hw_reg, ecr) | FEC_ETHER_EN);
+       mxc_fec_reg_write(hw_reg, ecr, FEC_ETHER_EN);
 }
 
 static void mxc_fec_phy_status(mxc_fec_priv_t *dev, unsigned short value, bool show)
 {
 }
 
 static void mxc_fec_phy_status(mxc_fec_priv_t *dev, unsigned short value, bool show)
 {
+       int changed = 0;
 #ifdef CYGPKG_DEVS_ETH_PHY
        if (value & ETH_PHY_STAT_LINK) {
 #ifdef CYGPKG_DEVS_ETH_PHY
        if (value & ETH_PHY_STAT_LINK) {
-               int changed = !(dev->status & FEC_STATUS_LINK_ON);
-
+               changed = !(dev->status & FEC_STATUS_LINK_ON);
                dev->status |= FEC_STATUS_LINK_ON;
                if (value & ETH_PHY_STAT_FDX) {
                        dev->status |= FEC_STATUS_FULL_DPLX;
                dev->status |= FEC_STATUS_LINK_ON;
                if (value & ETH_PHY_STAT_FDX) {
                        dev->status |= FEC_STATUS_FULL_DPLX;
@@ -773,14 +769,11 @@ static void mxc_fec_phy_status(mxc_fec_priv_t *dev, unsigned short value, bool s
                        changed |= !!(dev->status & ETH_PHY_STAT_100MB);
                        dev->status &= ~FEC_STATUS_100M;
                }
                        changed |= !!(dev->status & ETH_PHY_STAT_100MB);
                        dev->status &= ~FEC_STATUS_100M;
                }
-               if (changed) {
-                       mxc_fec_mii_setup(dev);
-               }
        } else {
        } else {
+               changed = !!(dev->status & FEC_STATUS_LINK_ON);
                dev->status &= ~FEC_STATUS_LINK_ON;
        }
 #else
                dev->status &= ~FEC_STATUS_LINK_ON;
        }
 #else
-       int changed = 0;
        mxc_fec_mii_read(dev->hw_reg, dev->phy_addr, PHY_STATUS_REG, &value);
        if (value & PHY_STATUS_LINK_ST) {
                changed |= !(dev->status & FEC_STATUS_LINK_ON);
        mxc_fec_mii_read(dev->hw_reg, dev->phy_addr, PHY_STATUS_REG, &value);
        if (value & PHY_STATUS_LINK_ST) {
                changed |= !(dev->status & FEC_STATUS_LINK_ON);
@@ -803,11 +796,26 @@ static void mxc_fec_phy_status(mxc_fec_priv_t *dev, unsigned short value, bool s
                changed |= dev->status & FEC_STATUS_100M;
                dev->status &= ~FEC_STATUS_100M;
        }
                changed |= dev->status & FEC_STATUS_100M;
                dev->status &= ~FEC_STATUS_100M;
        }
+#endif
        if (changed) {
        if (changed) {
+               if (dev->status & FEC_STATUS_FULL_DPLX) {
+                       mxc_fec_reg_write(dev->hw_reg, tcr,
+                                                       (mxc_fec_reg_read(dev->hw_reg, tcr) & ~FEC_TCR_HBC) |
+                                                       FEC_TCR_FDEN);
+                       mxc_fec_reg_write(dev->hw_reg, rcr,
+                                                       (mxc_fec_reg_read(dev->hw_reg, rcr) & ~FEC_RCR_DRT) |
+                                                       FEC_RCR_FCE);
+               } else {
+                       mxc_fec_reg_write(dev->hw_reg, tcr,
+                                                       (mxc_fec_reg_read(dev->hw_reg, tcr) & ~FEC_TCR_FDEN) |
+                                                       FEC_TCR_HBC);
+                       mxc_fec_reg_write(dev->hw_reg, rcr,
+                                                       (mxc_fec_reg_read(dev->hw_reg, rcr) & ~FEC_RCR_FCE) |
+                                                       FEC_RCR_DRT);
+               }
                mxc_fec_mii_setup(dev);
        }
                mxc_fec_mii_setup(dev);
        }
-#endif
-       if (!show) {
+       if (!show || !changed) {
                return;
        }
        if (dev->status & FEC_STATUS_LINK_ON) {
                return;
        }
        if (dev->status & FEC_STATUS_LINK_ON) {
@@ -830,7 +838,7 @@ mxc_fec_phy_init(mxc_fec_priv_t *dev)
        unsigned short value = 0;
        unsigned long timeout = FEC_COMMON_TIMEOUT;
 
        unsigned short value = 0;
        unsigned long timeout = FEC_COMMON_TIMEOUT;
 
-       /*Reset PHY*/
+       /* Reset PHY */
        mxc_fec_mii_write(dev->hw_reg, dev->phy_addr, PHY_CTRL_REG, PHY_CTRL_RESET);
        while (timeout--) {
                if (mxc_fec_mii_read(dev->hw_reg, dev->phy_addr, PHY_CTRL_REG, &value)) {
        mxc_fec_mii_write(dev->hw_reg, dev->phy_addr, PHY_CTRL_REG, PHY_CTRL_RESET);
        while (timeout--) {
                if (mxc_fec_mii_read(dev->hw_reg, dev->phy_addr, PHY_CTRL_REG, &value)) {
@@ -965,9 +973,9 @@ mxc_fec_phy_init(mxc_fec_priv_t *dev)
        }
 #endif
        diag_printf("FEC: [ %s ] [ %s ] [ %s ]:\n",
        }
 #endif
        diag_printf("FEC: [ %s ] [ %s ] [ %s ]:\n",
-               (dev->status&FEC_STATUS_FULL_DPLX)?"FULL_DUPLEX":"HALF_DUPLEX",
-               (dev->status&FEC_STATUS_LINK_ON)?"connected":"disconnected",
-               (dev->status&FEC_STATUS_100M)?"100M bps":"10M bps");
+               (dev->status & FEC_STATUS_FULL_DPLX) ? "FULL_DUPLEX" : "HALF_DUPLEX",
+               (dev->status & FEC_STATUS_LINK_ON) ? "connected" : "disconnected",
+               (dev->status & FEC_STATUS_100M) ? "100M bps" : "10M bps");
 #endif
        return true;
 }
 #endif
        return true;
 }
index 2a1c5df650ecbb09d822fe4773ac412e977a8b5d..02e7450986ebe9435e426f4489f75ee4bf5fa6ba 100644 (file)
@@ -4,7 +4,7 @@
 //
 //      eth_phy_dev.h
 //
 //
 //      eth_phy_dev.h
 //
-//      Device API for ethernet transciever (PHY) support
+//      Device API for ethernet transceiver (PHY) support
 //
 //==========================================================================
 //####ECOSGPLCOPYRIGHTBEGIN####
 //
 //==========================================================================
 //####ECOSGPLCOPYRIGHTBEGIN####
@@ -45,9 +45,9 @@
 // Author(s):    gthomas
 // Contributors: gthomas
 // Date:         2003-08-01
 // Author(s):    gthomas
 // Contributors: gthomas
 // Date:         2003-08-01
-// Purpose:      
-// Description:  
-//              
+// Purpose:
+// Description:
+//
 //####DESCRIPTIONEND####
 //
 //==========================================================================
 //####DESCRIPTIONEND####
 //
 //==========================================================================
 #endif
 
 // Transceiver mode
 #endif
 
 // Transceiver mode
-#define PHY_BMCR             0x00    // Register number
-#define PHY_BMCR_RESET       0x8000
-#define PHY_BMCR_LOOPBACK    0x4000
-#define PHY_BMCR_100MB       0x2000
-#define PHY_BMCR_AUTO_NEG    0x1000
-#define PHY_BMCR_POWER_DOWN  0x0800
-#define PHY_BMCR_ISOLATE     0x0400
-#define PHY_BMCR_RESTART     0x0200
+#define PHY_BMCR                        0x00    // Register number
+#define PHY_BMCR_RESET          0x8000
+#define PHY_BMCR_LOOPBACK       0x4000
+#define PHY_BMCR_100MB          0x2000
+#define PHY_BMCR_AUTO_NEG       0x1000
+#define PHY_BMCR_POWER_DOWN     0x0800
+#define PHY_BMCR_ISOLATE        0x0400
+#define PHY_BMCR_RESTART        0x0200
 #define PHY_BMCR_FULL_DUPLEX 0x0100
 #define PHY_BMCR_FULL_DUPLEX 0x0100
-#define PHY_BMCR_COLL_TEST   0x0080
+#define PHY_BMCR_COLL_TEST      0x0080
 
 
-#define PHY_BMSR             0x01    // Status register
-#define PHY_BMSR_100T4       0x8000
-#define PHY_BMSR_100FDX      0x4000
-#define PHY_BMSR_100HDX      0x2000
-#define PHY_BMSR_10FDX       0x1000
-#define PHY_BMSR_10HDX       0x0800
-#define PHY_BMSR_AUTO_NEG    0x0020  
-#define PHY_BMSR_LINK        0x0004
+#define PHY_BMSR                        0x01    // Status register
+#define PHY_BMSR_100T4          0x8000
+#define PHY_BMSR_100FDX                 0x4000
+#define PHY_BMSR_100HDX                 0x2000
+#define PHY_BMSR_10FDX          0x1000
+#define PHY_BMSR_10HDX          0x0800
+#define PHY_BMSR_AUTO_NEG       0x0020
+#define PHY_BMSR_LINK           0x0004
 
 
-#define PHY_ID1              0x02    // Chip ID register (high 16 bits)
-#define PHY_ID2              0x03    // Chip ID register (low 16 bits)
+#define PHY_ID1                                 0x02    // Chip ID register (high 16 bits)
+#define PHY_ID2                                 0x03    // Chip ID register (low 16 bits)
 
 
-#define PHY_AN_ADV           0x04    // Auto negotiation advertisement register
-#define PHY_AN_ADV_10HDX     0x0020
-#define PHY_AN_ADV_10FDX     0x0040
-#define PHY_AN_ADV_100HDX    0x0080
-#define PHY_AN_ADV_100FDX    0x0100
-#define PHY_AN_ADV_100_T4    0x0200
+#define PHY_AN_ADV                      0x04    // Auto negotiation advertisement register
+#define PHY_AN_ADV_10HDX        0x0020
+#define PHY_AN_ADV_10FDX        0x0040
+#define PHY_AN_ADV_100HDX       0x0080
+#define PHY_AN_ADV_100FDX       0x0100
+#define PHY_AN_ADV_100_T4       0x0200
 
 
-#define PHY_AN_PAR           0x05    // Auto negotiation link partner ability
-#define PHY_AN_PAR_10HDX     0x0020
-#define PHY_AN_PAR_10FDX     0x0040
-#define PHY_AN_PAR_100HDX    0x0080
-#define PHY_AN_PAR_100FDX    0x0100
-#define PHY_AN_PAR_100_T4    0x0200
+#define PHY_AN_PAR                      0x05    // Auto negotiation link partner ability
+#define PHY_AN_PAR_10HDX        0x0020
+#define PHY_AN_PAR_10FDX        0x0040
+#define PHY_AN_PAR_100HDX       0x0080
+#define PHY_AN_PAR_100FDX       0x0100
+#define PHY_AN_PAR_100_T4       0x0200
 
 struct _eth_phy_dev_entry {
 
 struct _eth_phy_dev_entry {
-    char          *name;
-    unsigned long  id;
-    bool         (*stat)(eth_phy_access_t *f, int *stat);
+       char              *name;
+       unsigned long  id;
+       bool             (*stat)(eth_phy_access_t *f, int *stat);
 } CYG_HAL_TABLE_TYPE;
 
 } CYG_HAL_TABLE_TYPE;
 
-#define _eth_phy_dev(_name_,_id_,_stat_)                \
-struct _eth_phy_dev_entry _eth_phy_dev_##_id_           \
-   CYG_HAL_TABLE_QUALIFIED_ENTRY(_eth_phy_devs,_id_) =  \
-     { _name_, _id_, _stat_ }; 
+#define _eth_phy_dev(_name_,_id_,_stat_)                               \
+       struct _eth_phy_dev_entry _eth_phy_dev_##_id_           \
+       CYG_HAL_TABLE_QUALIFIED_ENTRY(_eth_phy_devs,_id_) =     \
+       { _name_, _id_, _stat_ };
 
 #endif  // CYGONCE_DEVS_ETH_PHY_DEV_H_
 // ------------------------------------------------------------------------
 
 #endif  // CYGONCE_DEVS_ETH_PHY_DEV_H_
 // ------------------------------------------------------------------------
index d3943987018c4a5e5f82c5245a959ad6fbe257a7..d2b8acee082405f197e0da5822db7d39d8159281 100644 (file)
@@ -2,7 +2,7 @@
 //
 //      dev/eth_phy.c
 //
 //
 //      dev/eth_phy.c
 //
-//      Ethernet transciever (PHY) support 
+//      Ethernet transceiver (PHY) support
 //
 //==========================================================================
 //####ECOSGPLCOPYRIGHTBEGIN####
 //
 //==========================================================================
 //####ECOSGPLCOPYRIGHTBEGIN####
 //#####DESCRIPTIONBEGIN####
 //
 // Author(s):    gthomas
 //#####DESCRIPTIONBEGIN####
 //
 // Author(s):    gthomas
-// Contributors: 
+// Contributors:
 // Date:         2003-08-01
 // Date:         2003-08-01
-// Purpose:      
+// Purpose:
 // Description:  API support for ethernet PHY
 // Description:  API support for ethernet PHY
-//              
+//
 //
 //####DESCRIPTIONEND####
 //
 //
 //####DESCRIPTIONEND####
 //
@@ -70,13 +70,13 @@ CYG_HAL_TABLE_END( __ETH_PHY_TAB_END__, _eth_phy_devs );
 extern struct _eth_phy_dev_entry __ETH_PHY_TAB__[], __ETH_PHY_TAB_END__;
 
 // MII interface
 extern struct _eth_phy_dev_entry __ETH_PHY_TAB__[], __ETH_PHY_TAB_END__;
 
 // MII interface
-#define MII_Start            0x40000000
-#define MII_Read             0x20000000
-#define MII_Write            0x10000000
-#define MII_Cmd              0x30000000
-#define MII_Phy(phy)         (phy << 23)
-#define MII_Reg(reg)         (reg << 18)
-#define MII_TA               0x00020000
+#define MII_Start                       0x40000000
+#define MII_Read                        0x20000000
+#define MII_Write                       0x10000000
+#define MII_Cmd                                 0x30000000
+#define MII_Phy(phy)            (phy << 23)
+#define MII_Reg(reg)            (reg << 18)
+#define MII_TA                          0x00020000
 
 //
 // PHY unit access (via MII channel, using bit-level operations)
 
 //
 // PHY unit access (via MII channel, using bit-level operations)
@@ -85,208 +85,208 @@ extern struct _eth_phy_dev_entry __ETH_PHY_TAB__[], __ETH_PHY_TAB_END__;
 static cyg_uint32
 phy_cmd(eth_phy_access_t *f, cyg_uint32 cmd)
 {
 static cyg_uint32
 phy_cmd(eth_phy_access_t *f, cyg_uint32 cmd)
 {
-    cyg_uint32  retval;
-    int         i, off;
-    bool        is_read = (cmd & MII_Cmd) == MII_Read;
+       cyg_uint32  retval;
+       int                     i, off;
+       bool            is_read = (cmd & MII_Cmd) == MII_Read;
 
 
-    // Set both bits as output
-    f->ops.bit_level_ops.set_dir(1);
+       // Set both bits as output
+       f->ops.bit_level_ops.set_dir(1);
 
 
-    // Preamble
-    for (i = 0; i < 32; i++) {
-        f->ops.bit_level_ops.set_clock(0);
-        f->ops.bit_level_ops.set_data(1);
-        CYGACC_CALL_IF_DELAY_US(1);
-        f->ops.bit_level_ops.set_clock(1);
-        CYGACC_CALL_IF_DELAY_US(1);
-    }
+       // Preamble
+       for (i = 0; i < 32; i++) {
+               f->ops.bit_level_ops.set_clock(0);
+               f->ops.bit_level_ops.set_data(1);
+               CYGACC_CALL_IF_DELAY_US(1);
+               f->ops.bit_level_ops.set_clock(1);
+               CYGACC_CALL_IF_DELAY_US(1);
+       }
 
 
-    // Command/data
-    for (i = 0, off = 31; i < (is_read ? 14 : 32); i++, --off) {
-        f->ops.bit_level_ops.set_clock(0);
-        f->ops.bit_level_ops.set_data((cmd >> off) & 0x00000001);
-        CYGACC_CALL_IF_DELAY_US(1);
-        f->ops.bit_level_ops.set_clock(1);
-        CYGACC_CALL_IF_DELAY_US(1);
-    }
+       // Command/data
+       for (i = 0, off = 31; i < (is_read ? 14 : 32); i++, --off) {
+               f->ops.bit_level_ops.set_clock(0);
+               f->ops.bit_level_ops.set_data((cmd >> off) & 0x00000001);
+               CYGACC_CALL_IF_DELAY_US(1);
+               f->ops.bit_level_ops.set_clock(1);
+               CYGACC_CALL_IF_DELAY_US(1);
+       }
 
 
-    retval = cmd;
+       retval = cmd;
 
 
-    // If read, fetch data register
-    if (is_read) {
-        retval >>= 16;
+       // If read, fetch data register
+       if (is_read) {
+               retval >>= 16;
 
 
-        f->ops.bit_level_ops.set_clock(0);
-        f->ops.bit_level_ops.set_dir(0);
-        CYGACC_CALL_IF_DELAY_US(1);
-        f->ops.bit_level_ops.set_clock(1);
-        CYGACC_CALL_IF_DELAY_US(1);
                f->ops.bit_level_ops.set_clock(0);
                f->ops.bit_level_ops.set_clock(0);
-        CYGACC_CALL_IF_DELAY_US(1);
+               f->ops.bit_level_ops.set_dir(0);
+               CYGACC_CALL_IF_DELAY_US(1);
+               f->ops.bit_level_ops.set_clock(1);
+               CYGACC_CALL_IF_DELAY_US(1);
+               f->ops.bit_level_ops.set_clock(0);
+               CYGACC_CALL_IF_DELAY_US(1);
 
 
-        for (i = 0, off = 15; i < 16; i++, off--) {
-            f->ops.bit_level_ops.set_clock(1);
-            retval <<= 1;
-            retval |= f->ops.bit_level_ops.get_data();
-            CYGACC_CALL_IF_DELAY_US(1);
-            f->ops.bit_level_ops.set_clock(0);
-            CYGACC_CALL_IF_DELAY_US(1);
-        }
-    }
+               for (i = 0, off = 15; i < 16; i++, off--) {
+                       f->ops.bit_level_ops.set_clock(1);
+                       retval <<= 1;
+                       retval |= f->ops.bit_level_ops.get_data();
+                       CYGACC_CALL_IF_DELAY_US(1);
+                       f->ops.bit_level_ops.set_clock(0);
+                       CYGACC_CALL_IF_DELAY_US(1);
+               }
+       }
 
 
-    // Set both bits as output
-    f->ops.bit_level_ops.set_dir(1);
+       // Set both bits as output
+       f->ops.bit_level_ops.set_dir(1);
 
 
-    // Postamble
-    for (i = 0; i < 32; i++) {
-        f->ops.bit_level_ops.set_clock(0);
-        f->ops.bit_level_ops.set_data(1);
-        CYGACC_CALL_IF_DELAY_US(1);
-        f->ops.bit_level_ops.set_clock(1);
-        CYGACC_CALL_IF_DELAY_US(1);
-    }
+       // Postamble
+       for (i = 0; i < 32; i++) {
+               f->ops.bit_level_ops.set_clock(0);
+               f->ops.bit_level_ops.set_data(1);
+               CYGACC_CALL_IF_DELAY_US(1);
+               f->ops.bit_level_ops.set_clock(1);
+               CYGACC_CALL_IF_DELAY_US(1);
+       }
 
 
-    return retval;
+       return retval;
 }
 
 externC bool
 _eth_phy_init(eth_phy_access_t *f)
 {
 }
 
 externC bool
 _eth_phy_init(eth_phy_access_t *f)
 {
-    int addr;
-    unsigned short state;
-    unsigned long id = 0;
-    struct _eth_phy_dev_entry *dev;
+       int addr;
+       unsigned short state;
+       unsigned long id = 0;
+       struct _eth_phy_dev_entry *dev;
 
 
-    if (f->init_done) return true;
-    f->init();
-    // Scan to determine PHY address
-    f->init_done = true;
-    for (addr = 0;  addr < 0x20;  addr++) {
-        if (_eth_phy_read(f, PHY_ID1, addr, &state)) {
-            id = state << 16;
-            if (_eth_phy_read(f, PHY_ID2, addr, &state)) {
-                id |= state;
-                f->phy_addr = addr;
-                for (dev = __ETH_PHY_TAB__; dev != &__ETH_PHY_TAB_END__;  dev++) {
-                    if (dev->id == id) {
-                        eth_phy_printf("PHY: %s\n", dev->name);
-                        f->dev = dev;
-                        return true;
-                    }
-                }
-            }
-        }
-    }
-    if (addr >= 0x20) {
-        // Can't handle this PHY
-        eth_phy_printf("Unsupported PHY device - id: %lx\n", id);
-    }
-    f->init_done = false;
-    return false;
+       if (f->init_done) return true;
+       f->init();
+       // Scan to determine PHY address
+       f->init_done = true;
+       for (addr = 0;  addr < 0x20;  addr++) {
+               if (_eth_phy_read(f, PHY_ID1, addr, &state)) {
+                       id = state << 16;
+                       if (_eth_phy_read(f, PHY_ID2, addr, &state)) {
+                               id |= state;
+                               f->phy_addr = addr;
+                               for (dev = __ETH_PHY_TAB__; dev != &__ETH_PHY_TAB_END__;  dev++) {
+                                       if (dev->id == id) {
+                                               eth_phy_printf("PHY: %s\n", dev->name);
+                                               f->dev = dev;
+                                               return true;
+                                       }
+                               }
+                       }
+               }
+       }
+       if (addr >= 0x20) {
+               // Can't handle this PHY
+               eth_phy_printf("Unsupported PHY device - id: %lx\n", id);
+       }
+       f->init_done = false;
+       return false;
 }
 
 externC void
 _eth_phy_reset(eth_phy_access_t *f)
 {
 }
 
 externC void
 _eth_phy_reset(eth_phy_access_t *f)
 {
-    if (!f->init_done) {
-        eth_phy_printf("PHY reset without init on PHY: %p\n", f);
-        return;
-    }
-    f->init();
+       if (!f->init_done) {
+               eth_phy_printf("PHY reset without init on PHY: %p\n", f);
+               return;
+       }
+       f->init();
 }
 
 externC void
 _eth_phy_write(eth_phy_access_t *f, int reg, int addr, unsigned short data)
 {
 }
 
 externC void
 _eth_phy_write(eth_phy_access_t *f, int reg, int addr, unsigned short data)
 {
-    if (!f->init_done) {
-        eth_phy_printf("PHY write without init on PHY: %p\n", f);
-        return;
-    }
-    if (f->ops_type == PHY_BIT_LEVEL_ACCESS_TYPE) {
-        phy_cmd(f, MII_Start | MII_Write | MII_Phy(addr) | MII_Reg(reg) | MII_TA | data);
-    } else {
-        f->ops.reg_level_ops.put_reg(reg, addr, data);
-    }
+       if (!f->init_done) {
+               eth_phy_printf("PHY write without init on PHY: %p\n", f);
+               return;
+       }
+       if (f->ops_type == PHY_BIT_LEVEL_ACCESS_TYPE) {
+               phy_cmd(f, MII_Start | MII_Write | MII_Phy(addr) | MII_Reg(reg) | MII_TA | data);
+       } else {
+               f->ops.reg_level_ops.put_reg(reg, addr, data);
+       }
 }
 
 externC bool
 _eth_phy_read(eth_phy_access_t *f, int reg, int addr, unsigned short *val)
 {
 }
 
 externC bool
 _eth_phy_read(eth_phy_access_t *f, int reg, int addr, unsigned short *val)
 {
-    cyg_uint32 ret;
+       cyg_uint32 ret;
 
 
-    if (!f->init_done) {
-        eth_phy_printf("PHY read without init on PHY: %p\n", f);
-        return false;
-    }
-    if (f->ops_type == PHY_BIT_LEVEL_ACCESS_TYPE) {
-        ret = phy_cmd(f, MII_Start | MII_Read | MII_Phy(addr) | MII_Reg(reg) | MII_TA);
-        *val = ret;
-        return true;
-    } else {
-        return f->ops.reg_level_ops.get_reg(reg, addr, val);
-    }
+       if (!f->init_done) {
+               eth_phy_printf("PHY read without init on PHY: %p\n", f);
+               return false;
+       }
+       if (f->ops_type == PHY_BIT_LEVEL_ACCESS_TYPE) {
+               ret = phy_cmd(f, MII_Start | MII_Read | MII_Phy(addr) | MII_Reg(reg) | MII_TA);
+               *val = ret;
+               return true;
+       } else {
+               return f->ops.reg_level_ops.get_reg(reg, addr, val);
+       }
 }
 
 externC int
 _eth_phy_cfg(eth_phy_access_t *f, int mode)
 {
 }
 
 externC int
 _eth_phy_cfg(eth_phy_access_t *f, int mode)
 {
-    int phy_timeout = 5*1000;  // Wait 5 seconds max for link to clear
-    bool phy_ok;
-    unsigned short reset_mode, phy_state;
-    int i;
+       int phy_timeout = 5 * 1000;  // Wait 5 seconds max for link to clear
+       bool phy_ok;
+       unsigned short reset_mode, phy_state;
+       int i;
 
 
-    if (!f->init_done) {
-        eth_phy_printf("PHY config without init on PHY: %p\n", f);
-        return 0;
-    }
+       if (!f->init_done) {
+               eth_phy_printf("PHY config without init on PHY: %p\n", f);
+               return 0;
+       }
 
 
-    // Reset PHY (transceiver)
-    phy_ok = false;
-    _eth_phy_reset(f);
+       // Reset PHY (transceiver)
+       phy_ok = false;
+       _eth_phy_reset(f);
 
 
-    _eth_phy_write(f, PHY_BMCR, f->phy_addr, PHY_BMCR_RESET);
-    for (i = 0;  i < 5*100;  i++) {
-        phy_ok = _eth_phy_read(f, PHY_BMCR, f->phy_addr, &phy_state);            
-        eth_phy_printf("PHY: %x\n", phy_state);
-        if (phy_ok && !(phy_state & PHY_BMCR_RESET)) break;
-        CYGACC_CALL_IF_DELAY_US(10000);   // 10ms
-    }
-    if (!phy_ok || (phy_state & PHY_BMCR_RESET)) {
-        eth_phy_printf("PPC405: Can't get PHY unit to soft reset: %x\n", phy_state);
-        return 0;
-    }
+       _eth_phy_write(f, PHY_BMCR, f->phy_addr, PHY_BMCR_RESET);
+       for (i = 0;  i < 5 * 100;  i++) {
+               phy_ok = _eth_phy_read(f, PHY_BMCR, f->phy_addr, &phy_state);
+               eth_phy_printf("PHY: %04x\n", phy_state);
+               if (phy_ok && !(phy_state & PHY_BMCR_RESET)) break;
+               CYGACC_CALL_IF_DELAY_US(10000);   // 10ms
+       }
+       if (!phy_ok || (phy_state & PHY_BMCR_RESET)) {
+               eth_phy_printf("Can't get PHY unit to soft reset: %x\n", phy_state);
+               return 0;
+       }
 
 
-    reset_mode = PHY_BMCR_RESTART | PHY_BMCR_AUTO_NEG;
-    _eth_phy_write(f, PHY_BMCR, f->phy_addr, reset_mode);
-    while (phy_timeout-- >= 0) {
-        phy_ok = _eth_phy_read(f, PHY_BMSR, f->phy_addr, &phy_state);
-        if (phy_ok && (phy_state & PHY_BMSR_AUTO_NEG)) {
-            break;
-        } else {
-            CYGACC_CALL_IF_DELAY_US(10000);   // 10ms
-        }
-    }
-    if (phy_timeout <= 0) {
-        eth_phy_printf("** PPC405 Warning: PHY LINK UP failed: %04x\n", phy_state);
-        return 0;
-    }
+       reset_mode = PHY_BMCR_RESTART | PHY_BMCR_AUTO_NEG;
+       _eth_phy_write(f, PHY_BMCR, f->phy_addr, reset_mode);
+       while (phy_timeout-- >= 0) {
+               phy_ok = _eth_phy_read(f, PHY_BMSR, f->phy_addr, &phy_state);
+               if (phy_ok && (phy_state & PHY_BMSR_AUTO_NEG)) {
+                       break;
+               } else {
+                       CYGACC_CALL_IF_DELAY_US(10000);   // 10ms
+               }
+       }
+       if (phy_timeout <= 0) {
+               eth_phy_printf("**Warning: PHY LINK UP failed: %04x\n", phy_state);
+               return 0;
+       }
 
 
-    return _eth_phy_state(f);
+       return _eth_phy_state(f);
 }
 
 externC int
 _eth_phy_state(eth_phy_access_t *f)
 {
 }
 
 externC int
 _eth_phy_state(eth_phy_access_t *f)
 {
-    int state = 0;
+       int state = 0;
 
 
-    if (!f->init_done) {
-        eth_phy_printf("PHY state without init on PHY: %p\n", f);
-        return 0;
-    }
-    if (f->dev->stat(f, &state)) {
-        return state;
-    } else {
-        return 0;
-    }
-    return state;
+       if (!f->init_done) {
+               eth_phy_printf("PHY state without init on PHY: %p\n", f);
+               return 0;
+       }
+       if (f->dev->stat(f, &state)) {
+               return state;
+       } else {
+               return 0;
+       }
+       return state;
 }
 }
index 2e284c3291d4713386dce87938278298bbfccccd..9fa37d0b959c2d5dab02313b13790d268005f83a 100644 (file)
@@ -67,7 +67,7 @@ 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 || CYGPKG_HAL_ARM_MX35 || 
         cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
             display       "MXC platform MMC card for newer SDHC controllers"
             active_if   { CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-                         CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 }
+                         CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 }
             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
             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/tx53_nand_bbt.h b/packages/devs/flash/arm/mxc/v2_0/include/tx53_nand_bbt.h
new file mode 100644 (file)
index 0000000..bdf2958
--- /dev/null
@@ -0,0 +1,25 @@
+static cyg_int8 bbt_pattern[] = {'B', 'b', 't', '0' };
+static cyg_int8 mirror_pattern[] = {'1', 't', 'b', 'B' };
+
+static struct nand_bbt_descr tx53_bbt_main_descr = {
+       .options = (NAND_BBT_LASTBLOCK | NAND_BBT_CREATE | NAND_BBT_WRITE |
+                               NAND_BBT_2BIT | NAND_BBT_VERSION),
+       .offs = 0,
+       .len = 4,
+       .veroffs = 4,
+       .maxblocks = 4,
+       .pattern = bbt_pattern,
+};
+
+static struct nand_bbt_descr tx53_bbt_mirror_descr = {
+       .options = (NAND_BBT_LASTBLOCK | NAND_BBT_CREATE | NAND_BBT_WRITE |
+                               NAND_BBT_2BIT | NAND_BBT_VERSION),
+       .offs = 0,
+       .len = 4,
+       .veroffs = 4,
+       .maxblocks = 4,
+       .pattern = mirror_pattern,
+};
+
+static struct nand_bbt_descr *g_mxc_nfc_bbt_main_descr = &tx53_bbt_main_descr;
+static struct nand_bbt_descr *g_mxc_nfc_bbt_mirror_descr = &tx53_bbt_mirror_descr;
diff --git a/packages/hal/arm/mx25/karo/v1_0/src/tx25_splash.c b/packages/hal/arm/mx25/karo/v1_0/src/tx25_splash.c
new file mode 100644 (file)
index 0000000..34d372f
--- /dev/null
@@ -0,0 +1,764 @@
+//==========================================================================
+//
+//      tx25_bootsplash.c
+//
+//      TX25 Bootsplash Implementation
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+#endif
+#include <cyg/infra/cyg_type.h>
+#include <cyg/io/flash.h>
+#ifdef CYGSEM_REDBOOT_FLASH_CONFIG
+#include <flash_config.h>
+#endif
+#ifdef CYGOPT_REDBOOT_FIS
+#include <fis.h>
+#endif
+#include CYGBLD_HAL_PLATFORM_H
+#include <cyg/hal/plf_mmap.h>
+#include <cyg/hal/karo_tx25.h>         // Platform specific hardware definitions
+
+#define LCDC_BASE                      0x53fbc000
+
+#define LCDC_SSA                       0x00
+
+#define LCDC_SIZE                      0x04
+#define SIZE_XMAX(x)           ((((x) >> 4) & 0x3f) << 20)
+
+#define SIZE_YMAX(y)           ((y) & 0x3ff)
+
+#define LCDC_VPW                       0x08
+#define VPW_VPW(x)                     ((x) & 0x3ff)
+
+#define LCDC_CPOS                      0x0C
+#define CPOS_CC1                       (1 << 31)
+#define CPOS_CC0                       (1 << 30)
+#define CPOS_OP                                (1 << 28)
+#define CPOS_CXP(x)                    (((x) & 3ff) << 16)
+
+#define CPOS_CYP(y)                    ((y) & 0x3ff)
+
+#define LCDC_LCWHB                     0x10
+#define LCWHB_BK_EN                    (1 << 31)
+#define LCWHB_CW(w)                    (((w) & 0x1f) << 24)
+#define LCWHB_CH(h)                    (((h) & 0x1f) << 16)
+#define LCWHB_BD(x)                    ((x) & 0xff)
+
+#define LCDC_LCHCC                     0x14
+
+#define LCHCC_CUR_COL_R(r)     (((r) & 0x3f) << 12)
+#define LCHCC_CUR_COL_G(g)     (((g) & 0x3f) << 6)
+#define LCHCC_CUR_COL_B(b)     ((b) & 0x3f)
+
+#define LCDC_PCR                       0x18
+
+#define PCR_TFT                (1 << 31)
+#define PCR_COLOR      (1 << 30)
+#define PCR_PBSIZ_1    (0 << 28)
+#define PCR_PBSIZ_2    (1 << 28)
+#define PCR_PBSIZ_4    (2 << 28)
+#define PCR_PBSIZ_8    (3 << 28)
+#define PCR_BPIX_1     (0 << 25)
+#define PCR_BPIX_2     (1 << 25)
+#define PCR_BPIX_4     (2 << 25)
+#define PCR_BPIX_8     (3 << 25)
+#define PCR_BPIX_12    (4 << 25)
+#define PCR_BPIX_16    (5 << 25)
+#define PCR_BPIX_18    (6 << 25)
+#define PCR_PIXPOL     (1 << 24)
+#define PCR_FLMPOL     (1 << 23)
+#define PCR_LPPOL      (1 << 22)
+#define PCR_CLKPOL     (1 << 21)
+#define PCR_OEPOL      (1 << 20)
+#define PCR_SCLKIDLE   (1 << 19)
+#define PCR_END_SEL    (1 << 18)
+#define PCR_END_BYTE_SWAP (1 << 17)
+#define PCR_REV_VS     (1 << 16)
+#define PCR_ACD_SEL    (1 << 15)
+#define PCR_ACD(x)     (((x) & 0x7f) << 8)
+#define PCR_SCLK_SEL   (1 << 7)
+#define PCR_SHARP      (1 << 6)
+#define PCR_PCD(x)     ((x) & 0x3f)
+
+#define LCDC_HCR                       0x1C
+#define HCR_H_WIDTH(x)         (((x) & 0x3f) << 26)
+#define HCR_H_WAIT_1(x)                (((x) & 0xff) << 8)
+#define HCR_H_WAIT_2(x)                ((x) & 0xff)
+
+#define LCDC_VCR                       0x20
+#define VCR_V_WIDTH(x)         (((x) & 0x3f) << 26)
+#define VCR_V_WAIT_1(x)                (((x) & 0xff) << 8)
+#define VCR_V_WAIT_2(x)                ((x) & 0xff)
+
+#define LCDC_POS                       0x24
+#define POS_POS(x)                     ((x) & 1f)
+
+#define LCDC_LSCR1                     0x28
+
+#define LCDC_PWMR                      0x2C
+
+#define LCDC_DMACR                     0x30
+
+#define LCDC_RMCR                      0x34
+
+#define RMCR_SELF_REF          (1 << 0)
+
+#define LCDC_LCDICR                    0x38
+#define LCDICR_INT_SYN         (1 << 2)
+#define LCDICR_INT_CON         (1)
+
+#define LCDC_LCDISR                    0x40
+#define LCDISR_UDR_ERR         (1 << 3)
+#define LCDISR_ERR_RES         (1 << 2)
+#define LCDISR_EOF                     (1 << 1)
+#define LCDISR_BOF                     (1 << 0)
+
+#define BMP_MAGIC                      0x4D42
+#define BMP_HEADER_V3_SIZE     sizeof(V3BITMAPINFOHEADER)
+
+typedef struct lcd_display_metrics {
+       cyg_uint16 *frame_buffer;
+       unsigned long pixclk;
+       unsigned long width;
+       unsigned long height;
+       unsigned long hsync;
+       unsigned long vsync;
+       unsigned long bpp;
+       /* margin settings */
+       unsigned long top;
+       unsigned long bottom;
+       unsigned long left;
+       unsigned long right;
+       /* control signal polarities */
+       bool pixclk_pol;
+       bool hsync_pol;
+       bool vsync_pol;
+} LCDDIM;
+
+typedef struct {
+       cyg_uint32              size;
+       cyg_int32               width;
+       cyg_int32               height;
+       cyg_uint16              planes;
+       cyg_uint16              bit_count;
+       cyg_uint32              compression;
+       cyg_uint32              size_image;
+       cyg_int32               x_pels_per_meter;
+       cyg_int32               y_pels_per_meter;
+       cyg_uint32              clr_used;
+       cyg_uint32              clr_important;
+} V3BITMAPINFOHEADER;
+
+typedef struct {
+       cyg_uint16      type;                   // Signatur
+       cyg_uint32      size;                   // Groesse der datei
+       cyg_uint16      reserved[2];
+       cyg_uint32      offset;                 // Offset der Pixeldaten
+} __attribute__((packed)) BITMAPFILEHEADER;
+
+#define lcd_reg_write(val, reg)        __lcd_reg_write(val, reg, #reg)
+static inline void __lcd_reg_write(cyg_uint32 val, unsigned short reg,
+                                                               const char *name)
+{
+       writel(val, LCDC_BASE + reg);
+}
+
+static inline cyg_uint32 lcd_reg_read(unsigned short reg)
+{
+       cyg_uint32 val;
+
+       val = readl(LCDC_BASE + reg);
+       return val;
+}
+
+
+static bool get_var(const char *name, void *val, int type)
+{
+       bool ok;
+
+       ok = CYGACC_CALL_IF_FLASH_CFG_OP(CYGNUM_CALL_IF_FLASH_CFG_GET,
+                                                                       (char *)name, val, type);
+       if (!ok) {
+               diag_printf("fconfig variable %s not set; fconfig -i is needed!\n",
+                                       name);
+       }
+       return ok;
+}
+
+static inline void lcdc_enable(int on)
+{
+       cyg_uint32 cgcr1 = readl(CCM_BASE_ADDR + CLKCTL_CGR1);
+
+       if (on) {
+               cgcr1 |= 1 << 29;
+       } else {
+               cgcr1 &= ~(1 << 29);
+       }
+       writel(cgcr1, CCM_BASE_ADDR + CLKCTL_CGR1);
+}
+
+static inline int bytes_per_pixel(unsigned long bpp)
+{
+       switch (bpp) {
+       case 8:
+               return 1;
+
+       case 16:
+               return 2;
+
+       default:
+               return 4;
+       }
+}
+
+static void lcd_pin_cfg(void)
+{
+#if 0
+       writel(1, IOMUXC_BASE_ADDR + 0x088);
+       writel(1, IOMUXC_BASE_ADDR + 0x08c);
+       writel(0, IOMUXC_BASE_ADDR + 0x0c8);
+       writel(0, IOMUXC_BASE_ADDR + 0x0cc);
+       writel(0, IOMUXC_BASE_ADDR + 0x0d0);
+       writel(0, IOMUXC_BASE_ADDR + 0x0d4);
+       writel(0, IOMUXC_BASE_ADDR + 0x0d8);
+       writel(0, IOMUXC_BASE_ADDR + 0x0dc);
+       writel(0, IOMUXC_BASE_ADDR + 0x0e0);
+       writel(0, IOMUXC_BASE_ADDR + 0x0e4);
+       writel(0, IOMUXC_BASE_ADDR + 0x0e8);
+       writel(0, IOMUXC_BASE_ADDR + 0x0ec);
+       writel(0, IOMUXC_BASE_ADDR + 0x0f0);
+       writel(0, IOMUXC_BASE_ADDR + 0x0f4);
+       writel(0, IOMUXC_BASE_ADDR + 0x0f8);
+       writel(0, IOMUXC_BASE_ADDR + 0x0fc);
+       writel(0, IOMUXC_BASE_ADDR + 0x100);
+       writel(0, IOMUXC_BASE_ADDR + 0x104);
+       writel(0, IOMUXC_BASE_ADDR + 0x108);
+       writel(0, IOMUXC_BASE_ADDR + 0x10c);
+       writel(0, IOMUXC_BASE_ADDR + 0x110);
+       writel(0, IOMUXC_BASE_ADDR + 0x114);
+#endif
+}
+
+/* evaluate the config parameters */
+static bool bootsplash_setup(LCDDIM *ldim, unsigned long img_len)
+{
+       bool ok;
+
+       ok = get_var("lcd_buffer_addr", &ldim->frame_buffer, CONFIG_INT);
+       ok &= get_var("lcd_clk_period", &ldim->pixclk, CONFIG_INT);
+       ok &= get_var("lcd_clk_polarity", &ldim->pixclk_pol, CONFIG_BOOL);
+
+       ok &= get_var("lcd_panel_width", &ldim->width, CONFIG_INT);
+       ok &= get_var("lcd_panel_height", &ldim->height, CONFIG_INT);
+       ok &= get_var("lcd_bpp", &ldim->bpp, CONFIG_INT);
+
+       ok &= get_var("lcd_hsync_width", &ldim->hsync, CONFIG_INT);
+       ok &= get_var("lcd_hsync_polarity", &ldim->hsync_pol, CONFIG_BOOL);
+       ok &= get_var("lcd_margin_left", &ldim->left, CONFIG_INT);
+       ok &= get_var("lcd_margin_right", &ldim->right, CONFIG_INT);
+
+       ok &= get_var("lcd_vsync_width", &ldim->vsync, CONFIG_INT);
+       ok &= get_var("lcd_vsync_polarity", &ldim->vsync_pol, CONFIG_BOOL);
+       ok &= get_var("lcd_margin_top", &ldim->top, CONFIG_INT);
+       ok &= get_var("lcd_margin_bottom", &ldim->bottom, CONFIG_INT);
+
+       if (!ok)
+               return false;
+
+       if (ldim->width < 16 || ldim->width > 1024) {
+               diag_printf("Invalid LCD panel width: %lu\n", ldim->width);
+               ok = false;
+       }
+
+       if (ldim->height < 1 || ldim->height > 511) {
+               diag_printf("Invalid LCD panel height: %lu\n", ldim->height);
+               ok = false;
+       }
+
+       if (ldim->hsync < 1 || ldim->hsync > 64) {
+               diag_printf("Invalid HSYNC width: %lu\n", ldim->hsync);
+               ok = false;
+       }
+
+       if (ldim->vsync > 63) {
+               diag_printf("Invalid VSYNC width: %lu\n", ldim->vsync);
+               ok = false;
+       }
+
+       if (ldim->left < 3 || ldim->left > 258) {
+               diag_printf("Invalid left margin: %lu\n", ldim->left);
+               ok = false;
+       }
+
+       if (ldim->right < 1 || ldim->right > 256) {
+               diag_printf("Invalid right margin: %lu\n", ldim->right);
+               ok = false;
+       }
+
+       if (ldim->top > 255) {
+               diag_printf("Invalid top margin: %lu\n", ldim->top);
+               ok = false;
+       }
+
+       if (ldim->bottom > 255) {
+               diag_printf("Invalid bottom margin: %lu\n", ldim->bottom);
+               ok = false;
+       }
+
+       switch (ldim->bpp) {
+       default:
+               diag_printf("Invalid color depth: %lu\n", ldim->bpp);
+               return false;
+
+       case 16:
+       case 8:
+               break;
+       }
+
+       if (ldim->width * ldim->height * bytes_per_pixel(ldim->bpp) > img_len) {
+               diag_printf("LCD panel size %lux%lux%u = %lu does not match image size %lu\n",
+                                       ldim->width, ldim->height, bytes_per_pixel(ldim->bpp),
+                                       ldim->width * ldim->height * bytes_per_pixel(ldim->bpp),
+                                       img_len);
+               ok = false;
+       }
+
+       return ok;
+}
+
+/* initialize the LCD controller */
+static bool bootsplash_display(LCDDIM *ldim)
+{
+       unsigned long lcdc_clk = get_peri_clock(LCDC_CLK);
+       unsigned long pcr;
+       CYG_ADDRESS disp_addr_phys;
+
+       HAL_VIRT_TO_PHYS_ADDRESS(ldim->frame_buffer, disp_addr_phys);
+
+       diag_printf("LCD %lux%lu-%lu %lu.%03luMHz\n",
+                               ldim->width, ldim->height, ldim->bpp,
+                               1000000 / ldim->pixclk,
+                               1000000000 / ldim->pixclk % 1000);
+
+       ldim->pixclk = 1000000000 / ldim->pixclk * 1000;
+       if (ldim->pixclk > lcdc_clk / 2) {
+               diag_printf("LCD pixel clock %lu too high; max.: %lu\n",
+                                       ldim->pixclk, lcdc_clk / 2);
+               return false;
+       }
+
+       pcr = lcdc_clk / ldim->pixclk;
+       if (pcr-- > 63) {
+               diag_printf("LCD pixel clock %lu too low; min.: %lu\n",
+                                       ldim->pixclk, lcdc_clk / 128);
+               return false;
+       }
+
+       pcr |= PCR_TFT | PCR_COLOR | PCR_SCLK_SEL |
+               (ldim->vsync_pol * PCR_FLMPOL) |
+               (ldim->hsync_pol * PCR_LPPOL) |
+               (ldim->pixclk_pol * PCR_PIXPOL);
+
+       switch (ldim->bpp) {
+       case 18:
+               pcr |= PCR_PBSIZ_8 | PCR_BPIX_18;
+               break;
+
+       case 16:
+               pcr |= PCR_PBSIZ_8 | PCR_BPIX_16;
+               break;
+
+       case 8:
+               pcr |= PCR_BPIX_8 | PCR_END_BYTE_SWAP;
+               break;
+       }
+
+       lcdc_enable(0);
+       lcd_pin_cfg();
+
+       lcd_reg_write(VPW_VPW(ldim->width * ldim->bpp / 8 / 4), LCDC_VPW);
+       lcd_reg_write(HCR_H_WIDTH(ldim->hsync - 1) | HCR_H_WAIT_2(ldim->left - 3) |
+                               HCR_H_WAIT_1(ldim->right - 1), LCDC_HCR);
+       lcd_reg_write(VCR_V_WIDTH(ldim->vsync) | VCR_V_WAIT_2(ldim->top) |
+                               VCR_V_WAIT_1(ldim->bottom), LCDC_VCR);
+       lcd_reg_write(SIZE_XMAX(ldim->width) | SIZE_YMAX(ldim->height), LCDC_SIZE);
+       lcd_reg_write(pcr, LCDC_PCR);
+       lcd_reg_write(0, LCDC_PWMR);
+       lcd_reg_write(0, LCDC_LSCR1);
+       lcd_reg_write(0x80040060, LCDC_DMACR);
+
+       lcd_reg_write(disp_addr_phys, LCDC_SSA);
+       lcd_reg_write(0, LCDC_POS);
+       lcd_reg_write(0, LCDC_CPOS);
+       lcd_reg_write(0, LCDC_RMCR);
+
+       lcdc_enable(1);
+
+       while (!(lcd_reg_read(LCDC_LCDISR) & LCDISR_EOF));
+
+       gpio_set_bit(LCD_POWER_GPIO / 32 + 1, LCD_POWER_GPIO % 32);
+       gpio_set_bit(LCD_RESET_GPIO / 32 + 1, LCD_RESET_GPIO % 32);
+
+       HAL_DELAY_US(300000);
+       gpio_clr_bit(LCD_BACKLIGHT_GPIO / 32 + 1, LCD_BACKLIGHT_GPIO % 32);
+
+       return true;
+}
+
+static void set_pixel(LCDDIM *ldim, unsigned short x, unsigned short y,
+                       unsigned char red, unsigned char green, unsigned char blue)
+{
+       unsigned int offset = y * ldim->width + x;
+       unsigned short *fb = (unsigned short *)(ldim->frame_buffer + offset);
+
+       *fb = ((red & 0x1f) << 11) |
+               ((green & 0x3f) << 5) |
+               ((blue & 0x1f) << 0);
+}
+
+static unsigned long paint_test_picture(LCDDIM *ldim)
+{
+       const int stripes = 8;
+       const unsigned int fill_size = ldim->width * ldim->height / stripes;
+       cyg_uint16 *frame_pointer = ldim->frame_buffer;
+       int x;
+
+       memset(frame_pointer, 0, fill_size * bytes_per_pixel(ldim->bpp));
+       frame_pointer += fill_size;
+
+       for (x = 0; x < fill_size; x++) {
+               *frame_pointer++ = 0xf800;                      // red screen
+       }
+
+       for (x = 0; x < fill_size; x++) {
+               *frame_pointer++ = 0x07e0;                      // green screen
+       }
+
+       for (x = 0; x < fill_size; x++) {
+               *frame_pointer++ = 0x001f;                      // blue screen
+       }
+
+       for (x = 0; x < fill_size; x++) {
+               *frame_pointer++ = 0x07ff;                      // yellow screen
+       }
+
+       for (x = 0; x < fill_size; x++) {
+               *frame_pointer++ = 0xf81f;                      // magenta screen
+       }
+
+       for (x = 0; x < fill_size; x++) {
+               *frame_pointer++ = 0xffe0;                      // cyan screen
+       }
+
+       memset(frame_pointer, 0xff, fill_size * bytes_per_pixel(ldim->bpp));
+       frame_pointer += fill_size;
+
+       // draw a white frame
+       for (x = 0; x < ldim->width; x++)
+               set_pixel(ldim, x, 0,
+                               0xff, 0xff, 0xff);
+
+       for (x = 0; x < ldim->height; x++)
+               set_pixel(ldim, ldim->width - 1, x,
+                               0xff, 0xff, 0xff);
+
+       for (x = 0; x < ldim->width; x++)
+               set_pixel(ldim, x, ldim->height - 1,
+                               0xff, 0xff, 0xff);
+
+       for (x = 0; x < ldim->height; x++)
+               set_pixel(ldim, 0, x,
+                               0xff, 0xff, 0xff);
+
+       // diagonal lines
+       for (x = 0; x < ldim->width; x++)
+               set_pixel(ldim, x, x * ldim->height / ldim->width,
+                               (x & 1) * 0xff, (x & 1) * 0xff, (x & 1) * 0xff);
+
+       for (x = 0; x < ldim->width; x++)
+               set_pixel(ldim, ldim->width - x - 1, x * ldim->height / ldim->width,
+                               (x & 1) * 0xff, (x & 1) * 0xff, (x & 1) * 0xff);
+       return (frame_pointer - ldim->frame_buffer) * bytes_per_pixel(ldim->bpp);
+}
+
+static void load_bitmap(LCDDIM *ldim, void *ram_addr,
+                                               unsigned long img_len)
+{
+       cyg_uint8               *sp;
+       cyg_uint8               red, green, blue;
+       cyg_uint16              *ppixel;
+
+       BITMAPFILEHEADER        bmfh;
+       V3BITMAPINFOHEADER      bmih;
+       int line, col;
+
+       /* copy bitmap file header */
+       memcpy(&bmfh, ram_addr, sizeof(bmfh));
+
+       /* copy bitmap info header */
+       memcpy(&bmih, (cyg_uint8 *)ram_addr + sizeof(bmfh), sizeof(bmih));
+
+       if (bmfh.type != 0x4d42) {
+               if (ldim->width * ldim->height * bytes_per_pixel(ldim->bpp) > img_len) {
+                       diag_printf("LCD panel size %lux%lux%u = %lu does not match image size %lu\n",
+                                               ldim->width, ldim->height, bytes_per_pixel(ldim->bpp),
+                                               ldim->width * ldim->height * bytes_per_pixel(ldim->bpp),
+                                               img_len);
+                       goto end_failure;
+               }
+               memcpy(ldim->frame_buffer, ram_addr, img_len);
+               return;
+       }
+
+       if (bmfh.offset >= bmfh.size) {
+               diag_printf("Corrupted BMP header\n");
+               goto end_failure;
+       }
+
+       if (bmih.size != BMP_HEADER_V3_SIZE ) {
+               diag_printf("** ERROR: unsupported bitmap header version, structure size must be %u\n",
+                                       BMP_HEADER_V3_SIZE);
+               goto end_failure;
+       }
+
+       if (bmih.bit_count != 24) {
+               diag_printf("** ERROR: only 24 bit BMP files are supported\n");
+               goto end_failure;
+       }
+
+       if ((bmih.width != ldim->width) || (bmih.height != ldim->height)) {
+               diag_printf("** ERROR: BMP image size %ux%u does not match configured size: %lux%lu\n",
+                                       bmih.width, bmih.height, ldim->width, ldim->height);
+               goto end_failure;
+       }
+
+       /* pointer to picture data */
+       sp = (cyg_uint8 *)ram_addr + bmfh.offset;
+
+       if (bmih.bit_count == 16) {
+               for (line = ldim->height; line > 0; line--) {
+                       memcpy(ldim->frame_buffer + (line - 1) * ldim->width,
+                               sp, ldim->width * 2);
+                       sp += ldim->width * 2;
+               }
+               return;
+       }
+
+       for (line = ldim->height; line > 0; line--) {
+               ppixel = ldim->frame_buffer + (line - 1) * ldim->width;
+               for (col = 0; col < ldim->width; col ++) {
+                       blue    = *sp++ >> 3;   // 5 bits
+                       green   = *sp++ >> 2;   // 6 bits
+                       red             = *sp++ >> 3;   // 5 bits
+                       *ppixel++       = ((red << 11) | (green << 5) | (blue << 0));
+               }
+       }
+       return;
+
+end_failure:
+       paint_test_picture(ldim);
+}
+
+/*
+ * load the logo from nand flash to memory.
+ */
+static bool do_logo_load(LCDDIM *ldim)
+{
+       void *fis_addr;
+       int ret = 0xFF;
+       void *err_addr;
+       unsigned int logo_size;
+       struct fis_image_desc *img;
+       void *ram_addr;
+
+       /* Read the logo from storage media */
+       if ((img = fis_lookup("logo", NULL)) == NULL) {
+               diag_printf("No logo partition found in the fis table, logo not loaded\n");
+               return false;
+       }
+
+       fis_addr = (void *)img->flash_base;
+       ram_addr = (void *)img->mem_base;
+
+       logo_size = img->data_length;
+       ret = FLASH_READ(fis_addr, ram_addr, logo_size, &err_addr);
+       if (ret != 0) {
+               diag_printf("Loading logo from FLASH to MEMORY failed. error code: %d", ret);
+               return false;
+       }
+       if (!bootsplash_setup(ldim, logo_size)) {
+               diag_printf("Cannot init splash screen; Invalid display parameters\n");
+               return false;
+       }
+       load_bitmap(ldim, ram_addr, logo_size);
+       bootsplash_display(ldim);
+       return true;
+}
+
+static void redboot_bootsplash_display(void)
+{
+       bool bootsplash_feature_enable;
+       int ok;
+       LCDDIM ldim;
+
+       gpio_set_bit(LCD_RESET_GPIO / 32, LCD_RESET_GPIO % 32);
+       gpio_set_bit(LCD_POWER_GPIO / 32, LCD_POWER_GPIO % 32);
+       gpio_set_bit(LCD_BACKLIGHT_GPIO / 32, LCD_BACKLIGHT_GPIO % 32);
+
+       ok = CYGACC_CALL_IF_FLASH_CFG_OP(CYGNUM_CALL_IF_FLASH_CFG_GET,
+                                                                       "bootsplash_enable",
+                                                                       &bootsplash_feature_enable, CONFIG_BOOL);
+       if (!ok) {
+               diag_printf("fconfig variable bootsplash_enable not found\n");
+       }
+       if (ok && bootsplash_feature_enable) {
+               do_logo_load(&ldim);
+       }
+}
+
+#ifdef CYGPKG_REDBOOT
+RedBoot_init(redboot_bootsplash_display, RedBoot_INIT_SECOND);
+
+RedBoot_config_option("Enable splash display at boot",
+                                       bootsplash_enable,
+                                       ALWAYS_ENABLED, true,
+                                       CONFIG_BOOL,
+                                       false
+       );
+
+RedBoot_config_option("LCD frame buffer address",
+                                       lcd_buffer_addr,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       RAM_BANK0_BASE + RAM_BANK0_SIZE
+       );
+
+RedBoot_config_option("Pixel clock period (in ps)",
+                                       lcd_clk_period,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       33333
+       );
+
+RedBoot_config_option("Pixel clock polarity active low",
+                                       lcd_clk_polarity,
+                                       "bootsplash_enable", true,
+                                       CONFIG_BOOL,
+                                       false
+       );
+
+RedBoot_config_option("LCD panel width (in pixels)",
+                                       lcd_panel_width,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       640
+       );
+
+RedBoot_config_option("LCD panel height (in pixels)",
+                                       lcd_panel_height,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       480
+       );
+
+RedBoot_config_option("LCD color depth (BPP)",
+                                       lcd_bpp,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       16
+       );
+
+RedBoot_config_option("HSYNC pulse width (in pixels)",
+                                       lcd_hsync_width,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       64
+       );
+
+RedBoot_config_option("HSYNC polarity active low",
+                                       lcd_hsync_polarity,
+                                       "bootsplash_enable", true,
+                                       CONFIG_BOOL,
+                                       true
+       );
+
+RedBoot_config_option("Left margin (in pixels)",
+                                       lcd_margin_left,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       96
+       );
+
+RedBoot_config_option("Right margin (in pixels)",
+                                       lcd_margin_right,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       80
+       );
+
+RedBoot_config_option("VSYNC pulse width (in scan lines)",
+                                       lcd_vsync_width,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       3
+       );
+
+RedBoot_config_option("VSYNC polarity active low",
+                                       lcd_vsync_polarity,
+                                       "bootsplash_enable", true,
+                                       CONFIG_BOOL,
+                                       true
+       );
+
+RedBoot_config_option("Top margin (in scan lines)",
+                                       lcd_margin_top,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       46
+       );
+
+RedBoot_config_option("Bottom margin (in scan lines)",
+                                       lcd_margin_bottom,
+                                       "bootsplash_enable", true,
+                                       CONFIG_INT,
+                                       39
+       );
+#endif
diff --git a/packages/hal/arm/mx53/karo/v1_0/cdl/hal_arm_tx53.cdl b/packages/hal/arm/mx53/karo/v1_0/cdl/hal_arm_tx53.cdl
new file mode 100644 (file)
index 0000000..c367c7a
--- /dev/null
@@ -0,0 +1,411 @@
+# ====================================================================
+#
+#      hal_arm_tx53.cdl
+#
+# ====================================================================
+#####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+## WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with eCos; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+##
+## As a special exception, if other files instantiate templates or use macros
+## or inline functions from this file, or you compile this file and link it
+## with other works to produce a work based on this file, this file does not
+## by itself cause the resulting work to be covered by the GNU General Public
+## License. However the source code for this file must still be made available
+## in accordance with section (3) of the GNU General Public License.
+##
+## This exception does not invalidate any other reasons why a work based on
+## this file might be covered by the GNU General Public License.
+##
+## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+## at http://sources.redhat.com/ecos/ecos-license/
+## -------------------------------------------
+#####ECOSGPLCOPYRIGHTEND####
+
+cdl_package CYGPKG_HAL_ARM_TX53KARO {
+    display       "Ka-Ro TX53 module"
+    parent        CYGPKG_HAL_ARM_MX53
+    requires     CYGINT_ISO_CTYPE
+    hardware
+    include_dir   cyg/hal
+    define_header hal_arm_tx53.h
+    description   "
+        This HAL platform package provides generic
+        support for the Ka-Ro electronics TX53 module."
+
+    compile       tx53_misc.c
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+    implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+
+    implements    CYGHWR_HAL_ARM_SOC_UART1
+    implements    CYGHWR_HAL_ARM_SOC_UART2
+    implements    CYGHWR_HAL_ARM_SOC_UART3
+    implements    CYGHWR_HAL_ARM_SOC_UART4
+
+    requires {CYGBLD_BUILD_REDBOOT == 1}
+
+    define_proc {
+        puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_soc.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_tx53.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLF_DEFS_H <cyg/hal/karo_tx53.h>"
+       puts $::cdl_header "#define HAL_PLATFORM_CPU    \"Freescale i.MX53 based\""
+        puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Ka-Ro TX53 processor module\""
+        puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  3279"
+        puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK tx53_program_new_stack"
+    }
+
+    cdl_component CYG_HAL_STARTUP {
+        display       "Startup type"
+        flavor        data
+        default_value { "ROMRAM" }
+        legal_values  { "ROMRAM" "RAM" }
+       no_define
+        define -file system.h CYG_HAL_STARTUP
+        description   "
+           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_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+        display       "Diagnostic serial port baud rate"
+        flavor        data
+        legal_values  9600 19200 38400 57600 115200
+        default_value 115200
+        description   "
+            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_DEBUG_CHANNEL_BAUD {
+        display       "GDB serial port baud rate"
+        flavor        data
+        legal_values  9600 19200 38400 57600 115200
+        default_value 115200
+        description   "
+            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_COMM_CHANNELS {
+        display      "Number of communication channels on the TX53"
+        flavor       data
+        calculated   5
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+        display          "Debug serial port"
+        active_if        CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+        flavor           data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        default_value    0
+        description      "
+            The TX53 provides access to five serial ports. This option
+            chooses which port will be used to connect to a host
+            running GDB."
+     }
+
+     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+         display         "Default console channel."
+         flavor          data
+         legal_values    0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+         calculated      0
+     }
+
+     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+         display         "Console serial port"
+         active_if       CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+         flavor data
+         legal_values    0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+         default_value   CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+         description     "
+            The TX53 provides access to three serial ports. This option
+            chooses which port will be used for console output."
+     }
+
+    cdl_component CYGBLD_GLOBAL_OPTIONS {
+        display       "Global build options"
+        flavor        none
+        no_define
+        description   "
+           Global build options including control over
+           compiler flags, linker flags and choice of toolchain."
+
+
+        parent  CYGPKG_NONE
+
+        cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
+            display       "Global command prefix"
+            flavor        data
+            no_define
+            default_value { "arm-926ejs-linux-gnu" }
+            description   "
+                This option specifies the command prefix used when
+                invoking the build tools."
+        }
+
+        cdl_option CYGBLD_GLOBAL_CFLAGS {
+            display       "Global compiler flags"
+            flavor        data
+            no_define
+            requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
+            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" }
+            description   "
+                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_LDFLAGS {
+            display       "Global linker flags"
+            flavor        data
+            no_define
+            default_value { "-Wl,--gc-sections -Wl,-static -O2 -nostdlib" }
+            description   "
+                This option controls the global linker flags. Individual
+                packages may define options which override these global flags."
+        }
+    }
+
+    cdl_component CYGPKG_HAL_ARM_TX53_OPTIONS {
+        display "Ka-Ro electronics TX53 module build options"
+        flavor        none
+        no_define
+        requires      { CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 }
+        description   "
+           Package specific build options including control over
+           compiler flags used only in building this package,
+           and details of which tests are built."
+
+        cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
+            display       "SDRAM DDR type"
+            flavor        data
+            legal_values  { 2 3 }
+            default_value { 2 }
+            description   "
+                This option specifies the SDRAM type of the TX53 module.
+               Valid options are '2' for DDR2 and '3' for DDR3."
+        }
+
+        cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
+            display       "SDRAM size"
+            flavor        data
+            legal_values  { 0x40000000 0x20000000 }
+            default_value { 0x20000000 }
+# This is what I would like to do, but define_proc currently does not allow for
+# accessing variables
+#            display       "SDRAM size in MiB"
+#            legal_values  { 1024 512 }
+#            default_value { 1024 }
+#            define_proc {
+#                puts $::cdl_header "#define CYGNUM_HAL_ARM_TX53_SDRAM_SIZE \
+#                      [format "0x%08x" [expr $CYGNUM_HAL_ARM_TX53_SDRAM_SIZE * 1048576]]"
+#            }
+            description   "
+                This option specifies the SDRAM size of the TX53 module."
+        }
+
+        cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
+            display       "CPU clock"
+            flavor        data
+            legal_values  { 800 1000 }
+            default_value { 1000 }
+            description   "
+                This option specifies the CPU clock in MHz of the TX51 module."
+        }
+
+        cdl_option CYGOPT_HAL_ARM_TX53_DEBUG {
+            display "Enable low level debugging with LED"
+            flavor bool
+            default_value { false }
+            description   "
+                This option enables low level debugging by blink codes
+                of the LED on STK5."
+        }
+
+        cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_ADD {
+            display       "Additional compiler flags"
+            flavor        data
+            no_define
+            default_value { "" }
+            description   "
+                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_REMOVE {
+            display       "Suppressed compiler flags"
+            flavor        data
+            no_define
+            default_value { "" }
+            description   "
+                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 CYGHWR_MX53_LCD_LOGO {
+               display       "Show a splash screen from the FIS partition: 'logo'"
+       active_if     { CYGPKG_DEVS_IMX_IPU }
+       default_value 0
+       description   "
+           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"
+            compile       mx53_fastlogo.c
+        }
+    }
+
+    cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
+        display       "Options for DDR2 SDRAM"
+       active_if     { CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 }
+        flavor        none
+        no_define
+
+        cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
+            display       "SDRAM clock"
+            flavor        data
+            legal_values  { 216 266 333 400 }
+            default_value { 400 }
+            description   "
+                This option specifies the SDRAM clock im MHz of the TX53 module."
+        }
+    }
+
+    cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
+        display       "Options for DDR3 SDRAM"
+       active_if     { CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 }
+        flavor        none
+        no_define
+
+        cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
+            display       "SDRAM clock"
+            flavor        data
+            legal_values  { 333 }
+            default_value { 333 }
+            description   "
+                This option specifies the SDRAM clock im MHz of the TX53 module."
+        }
+    }
+
+    cdl_component CYGHWR_MEMORY_LAYOUT {
+        display "Memory layout"
+        flavor data
+        no_define
+        calculated { "arm_tx53_romram" }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+            display "Memory layout linker script fragment"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
+            calculated { "<pkgconf/mlt_arm_tx53_romram.ldi>" }
+        }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_H {
+            display "Memory layout header file"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_H
+            calculated { "<pkgconf/mlt_arm_tx53_romram.h>" }
+        }
+    }
+
+    cdl_option CYGSEM_HAL_ROM_MONITOR {
+        display       "Behave as a ROM monitor"
+        flavor        bool
+        default_value 0
+        parent        CYGPKG_HAL_ROM_MONITOR
+        requires      { CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" }
+        description   "
+            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_USE_ROM_MONITOR {
+         display       "Work with a ROM monitor"
+         flavor        booldata
+         legal_values  { "Generic" "GDB_stubs" }
+         default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
+         parent        CYGPKG_HAL_ROM_MONITOR
+         requires      { CYG_HAL_STARTUP == "RAM" }
+         description   "
+             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_component CYGPKG_REDBOOT_HAL_OPTIONS {
+        display       "Redboot HAL options"
+        flavor        none
+        no_define
+        parent        CYGPKG_REDBOOT
+        active_if     CYGPKG_REDBOOT
+        description   "
+            This option lists the target's requirements for a valid Redboot
+            configuration."
+
+            compile -library=libextras.a redboot_cmds.c
+
+        cdl_option CYGBLD_BUILD_REDBOOT_BIN {
+            display       "Build Redboot ROM binary image"
+            active_if     CYGBLD_BUILD_REDBOOT
+            default_value 1
+            no_define
+            description "This option enables the conversion of the Redboot ELF
+                         image to a binary image suitable for ROM programming."
+
+            make -priority 325 {
+                <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+                $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+                $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+                $(OBJCOPY) -O binary $< $@
+                $(COMMAND_PREFIX)nm $< | awk 'NF == 3 {print}' | sort > $(<:.elf=.map)
+            }
+        }
+    }
+
+    cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS {
+        display       "Redboot HAL variant options"
+        flavor        none
+        no_define
+        parent        CYGPKG_REDBOOT
+        active_if     CYGPKG_REDBOOT
+
+        # RedBoot details
+        requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 }
+        define_proc {
+            puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+        }
+    }
+}
diff --git a/packages/hal/arm/mx53/karo/v1_0/include/hal_platform_setup.h b/packages/hal/arm/mx53/karo/v1_0/include/hal_platform_setup.h
new file mode 100644 (file)
index 0000000..4b65941
--- /dev/null
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+//=============================================================================
+//
+//     hal_platform_setup.h
+//
+//     Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+
+#include <pkgconf/system.h>                    // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H                  // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H                 // Platform specific configuration
+#include <cyg/hal/hal_soc.h>                   // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h>                   // MMU definitions
+#include CYGBLD_HAL_PLF_DEFS_H                 // Platform specific hardware definitions
+#include CYGHWR_MEMORY_LAYOUT_H
+
+#define CPU_CLK                                CYGNUM_HAL_ARM_TX53_CPU_CLK
+
+#if defined(CYGNUM_HAL_ARM_TX53_DDR2_CLK)
+#define SDRAM_CLK                      CYGNUM_HAL_ARM_TX53_DDR2_CLK
+#elif defined(CYGNUM_HAL_ARM_TX53_DDR3_CLK)
+#define SDRAM_CLK                      CYGNUM_HAL_ARM_TX53_DDR3_CLK
+#else
+#error SDRAM clock not defined
+#endif
+
+#define DEBUG_LED_BIT                  20
+#define LED_GPIO_BASE                  GPIO2_BASE_ADDR
+#define LED_MUX_OFFSET                 0x174
+#define LED_MUX_MODE                   0x11
+
+#ifdef CYGOPT_HAL_ARM_TX53_DEBUG
+#define LED_ON                         bl      led_on
+#define LED_OFF                                bl      led_off
+#else
+#define LED_ON
+#define LED_OFF
+#endif
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+
+#ifdef CYG_HAL_STARTUP_ROMRAM
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+#endif
+
+#define TX53_NAND_PAGE_SIZE            2048
+#define TX53_NAND_BLKS_PER_PAGE                64
+
+#define PLATFORM_PREAMBLE flash_header
+
+// This macro represents the initial startup code for the platform
+       .macro  _platform_setup1
+KARO_TX53_SETUP_START:
+       mrs     r0, CPSR
+       bic     r0, r0, #0x1f
+       orr     r0, r0, #0xd3
+       msr     CPSR_fc, r0
+
+       /*
+        * Invalidate L1 I/D
+        */
+       mov     r0, #0                  @ set up for MCR
+       mcr     p15, 0, r0, c8, c7, 0   @ invalidate TLBs
+       mcr     p15, 0, r0, c7, c5, 0   @ invalidate icache
+
+       /*
+        * disable MMU stuff and caches
+        */
+       mrc     p15, 0, r0, c1, c0, 0
+       bic     r0, r0, #0x00002000     @ clear bits 13 (--V-)
+       bic     r0, r0, #0x00000007     @ clear bits 2:0 (-CAM)
+       orr     r0, r0, #0x00000002     @ set bit 1 (--A-) Align
+       orr     r0, r0, #0x00000800     @ set bit 12 (Z---) BTB
+       mcr     p15, 0, r0, c1, c0, 0
+
+       setup_sdram
+
+       /* ARM errata ID #468414 */
+       mrc     15, 0, r1, c1, c0, 1
+       orr     r1, r1, #(1 << 5)    /* enable L1NEON bit */
+       mcr     15, 0, r1, c1, c0, 1
+
+       // Explicitly disable L2 cache
+       mrc     15, 0, r0, c1, c0, 1
+       bic     r0, r0, #0x2
+       mcr     15, 0, r0, c1, c0, 1
+
+       // reconfigure L2 cache aux control reg
+       mov     r0, #0xC0               // tag RAM
+       add     r0, r0, #0x4            // data RAM
+       orr     r0, r0, #(1 << 24)      // disable write allocate delay
+       orr     r0, r0, #(1 << 23)      // disable write allocate combine
+       orr     r0, r0, #(1 << 22)      // disable write allocate
+
+       mcr     15, 1, r0, c9, c0, 2
+
+init_aips_start:
+       init_aips
+       /* switch off LCD backlight */
+       ldr     r10, =GPIO1_BASE_ADDR
+
+       ldr     r9, [r10, #GPIO_DR]
+       orr     r9, r9, #(1 << 1)
+       str     r9, [r10, #GPIO_DR]
+
+       ldr     r9, [r10, #GPIO_GDIR]
+       orr     r9, r9, #(1 << 1)
+       str     r9, [r10, #GPIO_GDIR]
+
+       LED_INIT
+       LED_BLINK 1
+
+init_clock_start:
+       init_clock
+       LED_BLINK 2
+
+Normal_Boot_Continue:
+/*
+ * Note:
+ *     IOMUX/PBC setup is done in C function plf_hardware_init() for simplicity
+ */
+STACK_Setup:
+       @ Set up a stack [for calling C code]
+       ldr     r1, =__startup_stack
+       ldr     r2, =RAM_BANK0_BASE
+       orr     sp, r1, r2
+
+       @ Create MMU tables
+       bl      hal_mmu_init
+       LED_BLINK 3
+
+       /* Workaround for arm erratum #709718 */
+       @ Setup PRRR so device is always mapped to non-shared
+       mrc     MMU_CP, 0, r1, c10, c2, 0 // Read Primary Region Remap Register
+       bic     r1, #(3 << 16)
+       mcr     MMU_CP, 0, r1, c10, c2, 0 // Write Primary Region Remap Register
+
+       @ Enable MMU
+       ldr     r2, =10f
+       mrc     MMU_CP, 0, r1, MMU_Control, c0
+       orr     r1, r1, #7                      @ enable MMU bit
+       orr     r1, r1, #0x800                  @ enable z bit
+       orr     r1, r1, #(1 << 28)              @ Enable TEX remap, workaround for L1 cache issue
+       mcr     MMU_CP, 0, r1, MMU_Control, c0
+
+       /* Workaround for arm errata #621766 */
+       mrc     MMU_CP, 0, r1, MMU_Control, c0, 1
+       orr     r1, r1, #(1 << 5)               @ enable L1NEON bit
+       mcr     MMU_CP, 0, r1, MMU_Control, c0, 1
+
+       mov     pc, r2                          @ Change address spaces
+       .align  5
+10:
+       LED_BLINK 4
+       .endm   @ _platform_setup1
+
+       /* AIPS setup - Only setup MPROTx registers. The PACR default values are good.*/
+       .macro  init_aips
+       /*
+       * Set all MPROTx to be non-bufferable, trusted for R/W,
+       * not forced to user-mode.
+       */
+       ldr     r0, =AIPS1_CTRL_BASE_ADDR
+       ldr     r1, AIPS1_PARAM
+       str     r1, [r0, #0x00]
+       str     r1, [r0, #0x04]
+       ldr     r0, =AIPS2_CTRL_BASE_ADDR
+       str     r1, [r0, #0x00]
+       str     r1, [r0, #0x04]
+       .endm   /* init_aips */
+
+       .macro  init_clock
+       ldr     r0, =CCM_BASE_ADDR
+       ldr     r1, [r0, #CLKCTL_CCR]
+       tst     r1, #(1 << 12)
+       bne     osc_ok
+
+       orr     r1, r1, #(1 << 12)
+       str     r1, [r0, #CLKCTL_CCR]
+osc_ok:
+       /* Switch ARM to step clock */
+       mov     r1, #0x4
+       str     r1, [r0, #CLKCTL_CCSR]
+
+#if CPU_CLK == 1000
+       setup_pll PLL1_BASE_ADDR, 1000
+#elif CPU_CLK == 800
+       setup_pll PLL1_BASE_ADDR, 800
+#else
+#error Bad CPU clock
+#endif
+       setup_pll PLL3_BASE_ADDR, 400
+
+       /* Switch peripherals to PLL3 */
+       ldr     r1, CCM_CBCMR_VAL1
+       str     r1, [r0, #CLKCTL_CBCMR]
+
+       ldr     r1, CCM_CBCDR_VAL1
+       str     r1, [r0, #CLKCTL_CBCDR]
+1:
+       /* make sure change is effective */
+       ldr     r1, [r0, #CLKCTL_CDHIPR]
+       LED_BLINK 1
+       cmp     r1, #0x0
+       bne     1b
+
+#if SDRAM_CLK == 400
+       setup_pll PLL2_BASE_ADDR, 400
+#elif SDRAM_CLK == 333
+       setup_pll PLL2_BASE_ADDR, 333
+#elif SDRAM_CLK == 266
+       setup_pll PLL2_BASE_ADDR, 266
+#elif SDRAM_CLK == 216
+       setup_pll PLL2_BASE_ADDR, 216
+#elif SDRAM_CLK == 666
+       setup_pll PLL2_BASE_ADDR, 666
+#else
+#error Bad SDRAM_CLK
+#endif
+       /* Switch peripheral to PLL2 */
+       ldr     r1, CCM_CBCDR_VAL2
+       str     r1, [r0, #CLKCTL_CBCDR]
+
+       ldr     r1, CCM_CBCMR_VAL2
+       str     r1, [r0, #CLKCTL_CBCMR]
+
+       /* make sure change is effective */
+1:
+       ldr     r1, [r0, #CLKCTL_CDHIPR]
+       LED_BLINK 1
+       cmp     r1, #0x0
+       bne     1b
+
+       setup_pll PLL3_BASE_ADDR, 216
+
+       /* Set the platform clock dividers */
+       ldr     r2, =PLATFORM_BASE_ADDR
+       ldr     r1, PLATFORM_CLOCK_DIV
+       str     r1, [r2, #PLATFORM_ICGC]
+
+       mov     r1, #0
+       str     r1, [r0, #CLKCTL_CACRR] /* ARM podf */
+
+       /* Switch ARM back to PLL 1. */
+       mov     r1, #0
+       str     r1, [r0, #CLKCTL_CCSR]
+
+       /* setup the rest */
+       ldr     r1, W_CSCDR1_VAL
+       str     r1, [r0, #CLKCTL_CSCDR1]
+       ldr     r1, W_CSCMR1_VAL
+       str     r1, [r0, #CLKCTL_CSCMR1]
+
+       mov r1, #0x00000
+       str r1, [r0, #CLKCTL_CCDR]
+
+       /* for cko - for ARM div by 8 */
+       mov     r1, #0x000A0000
+       orr     r1, r1, #0x00000F0
+       str     r1, [r0, #CLKCTL_CCOSR]
+end_clk_init:
+       .endm   @ init_clock
+
+       .macro  setup_pll pll, mhz
+       ldr     r2, =\pll
+       ldr     r1, =0x1232
+       str     r1, [r2, #PLL_DP_CTL]           @ Set DPLL ON (set UPEN bit); BRMO=1
+       mov     r1, #0x2
+       str     r1, [r2, #PLL_DP_CONFIG]        @ Enable auto-restart AREN bit
+
+       ldr     r1, W_DP_OP_\mhz
+       str     r1, [r2, #PLL_DP_OP]
+       str     r1, [r2, #PLL_DP_HFS_OP]
+
+       ldr     r1, W_DP_MFD_\mhz
+       str     r1, [r2, #PLL_DP_MFD]
+       str     r1, [r2, #PLL_DP_HFS_MFD]
+
+       ldr     r1, W_DP_MFN_\mhz
+       str     r1, [r2, #PLL_DP_MFN]
+       str     r1, [r2, #PLL_DP_HFS_MFN]
+
+       /* Now restart PLL */
+       ldr     r1, =0x1232
+       str     r1, [r2, #PLL_DP_CTL]
+101:
+       ldr     r1, [r2, #PLL_DP_CTL]
+       ands    r1, r1, #0x1
+       beq     101b
+       .endm
+
+       .macro  setup_sdram
+#if 0
+       /* Decrease the DRAM SDCLK pads to HIGH Drive strength */
+       ldr     r0, =IOMUXC_BASE_ADDR
+       ldr     r1, =0x000000e5
+       str     r1, [r0, #0x4b8]
+       /* Change the delay line configuration */
+       ldr     r0, =ESDCTL_BASE_ADDR
+       ldr     r1, =0x00f49400
+       str     r1, [r0, #ESDCTL_ESDCDLY1]
+       ldr     r1, =0x00f49a00
+       str     r1, [r0, #ESDCTL_ESDCDLY2]
+       ldr     r1, =0x00f49100
+       str     r1, [r0, #ESDCTL_ESDCDLY3]
+       ldr     r1, =0x00f48900
+       str     r1, [r0, #ESDCTL_ESDCDLY4]
+       ldr     r1, =0x00f49400
+       str     r1, [r0, #ESDCTL_ESDCDLY5]
+#endif
+       .endm
+#else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1
+#endif
+#ifndef CYGOPT_HAL_ARM_TX53_DEBUG
+       .macro  LED_BLINK,val
+       .endm
+       .macro  DELAY,ms
+       .endm
+#else
+#define CYGHWR_LED_MACRO       LED_BLINK \x
+
+       .macro  DELAY,ms
+       ldr     r10, =\ms
+       bl      delay
+       .endm
+
+       .macro  LED_BLINK,val
+       ldr     r8, =\val
+       bl      led_blink
+       .endm
+#endif
+
+       .macro  LED_INIT
+       // initialize GPIO4_10 (PAD CSI2_D13) for LED on STK5
+       ldr     r10, =LED_GPIO_BASE
+       // GPIO_DR
+       ldr     r9, [r10, #GPIO_DR]
+       bic     r9, #(1 << DEBUG_LED_BIT)       @ LED OFF
+       str     r9, [r10, #GPIO_DR]
+       // GPIO_GDIR
+       ldr     r9, [r10, #GPIO_GDIR]
+       orr     r9, r9, #(1 << DEBUG_LED_BIT)
+       str     r9, [r10, #GPIO_GDIR]
+       // iomux
+       ldr     r10, =IOMUXC_BASE_ADDR
+       mov     r9, #LED_MUX_MODE
+       str     r9, [r10, #LED_MUX_OFFSET]
+       .endm
+
+#ifdef CYGOPT_HAL_ARM_TX53_DEBUG
+led_on:
+       ldr     r10, =LED_GPIO_BASE
+       // GPIO_DR
+       ldr     r9, [r10, #GPIO_DR]
+       orr     r9, #(1 << DEBUG_LED_BIT)       @ LED ON
+       str     r9, [r10, #GPIO_DR]
+       mov     pc, lr
+
+led_off:
+       ldr     r10, =LED_GPIO_BASE
+       // GPIO_DR
+       ldr     r9, [r10, #GPIO_DR]
+       bic     r9, #(1 << DEBUG_LED_BIT)       @ LED OFF
+       str     r9, [r10, #GPIO_DR]
+       mov     pc, lr
+
+delay:
+       subs    r10, r10, #1
+       movmi   pc, lr
+
+       ldr     r9, =(36000 / 10 / 10)
+2:
+       subs    r9, r9, #1
+       bne     2b
+       b       delay
+
+led_blink:
+       mov     r7, lr
+1:
+       subs    r8, r8, #1
+       bmi     2f
+
+       LED_ON
+       DELAY   200
+       LED_OFF
+       DELAY   300
+       b       1b
+2:
+       DELAY   700
+       mov     pc, r7
+#endif
+
+#define PLATFORM_VECTORS        _platform_vectors
+       .macro  _platform_vectors
+       .globl  _KARO_MAGIC
+_KARO_MAGIC:
+       .ascii  "KARO_CE6"
+       .globl  _KARO_STRUCT_SIZE
+_KARO_STRUCT_SIZE:
+       .word   0       // reserve space structure length
+
+       .globl  _KARO_CECFG_START
+_KARO_CECFG_START:
+       .rept   1024 / 4
+       .word   0       // reserve space for CE configuration
+       .endr
+
+       .globl  _KARO_CECFG_END
+_KARO_CECFG_END:
+       .endm
+
+       .align  5
+       .ascii  "KARO TX53 " __DATE__ " " __TIME__
+       .align
+
+#define CPU_2_BE_32(l)                 \
+       ((((l) << 24) & 0xFF000000) |   \
+       (((l) << 8) & 0x00FF0000) |     \
+       (((l) >> 8) & 0x0000FF00) |     \
+       (((l) >> 24) & 0x000000FF))
+
+#define MXC_DCD_ITEM(addr, val)                \
+       .word CPU_2_BE_32(addr) ;       \
+       .word CPU_2_BE_32(val)
+
+#define MXC_DCD_CMD_SZ_BYTE            1
+#define MXC_DCD_CMD_SZ_SHORT           2
+#define MXC_DCD_CMD_SZ_WORD            4
+#define MXC_DCD_CMD_FLAG_WRITE         0x0
+#define MXC_DCD_CMD_FLAG_CLR           0x2
+#define MXC_DCD_CMD_FLAG_SET           0x3
+#define MXC_DCD_CMD(type, flags, next) \
+       .word CPU_2_BE_32((0xcc << 24) | (((next) - .) << 8) | ((flags) << 3) | (type))
+
+#define NS_TO_CK(ns)   (((ns) * SDRAM_CLK + 999) / 1000)
+
+       .macro          CK_VAL, name, clks, offs, max
+       .iflt           \clks - \offs
+       .set            \name, 0
+       .else
+       .ifle           \clks - \offs - \max
+       .set            \name, \clks - \offs
+       .endif
+       .endif
+       .endm
+
+       .macro          NS_VAL, name, ns, offs, max
+       .iflt           \ns - \offs
+       .set            \name, 0
+       .else
+       CK_VAL          \name, NS_TO_CK(\ns), \offs, \max
+       .endif
+       .endm
+
+       .macro          CK_MAX, name, ck1, ck2, offs, max
+       .ifgt           \ck1 - \ck2
+       CK_VAL          \name, \ck1, \offs, \max
+       .else
+       CK_VAL          \name, \ck2, \offs, \max
+       .endif
+       .endm
+
+#define SDRAM_TYPE_DDR2 2
+#define SDRAM_TYPE_DDR3 3
+
+#define ESDMISC_DDR_TYPE_DDR3          0
+#define ESDMISC_DDR_TYPE_LPDDR2                1
+#define ESDMISC_DDR_TYPE_DDR2          2
+
+#define ESDOR_CLK_PERIOD               15625   /* base clock for ESDOR values 15.625uS */
+
+#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
+#define SDRAM_BURST_LENGTH             4
+#define BANK_ADDR_BITS                 1
+#define COL_ADDR_BITS                  10
+#define RALAT                          4
+#define WALAT                          0
+#define ADDR_MIRROR                    0
+#define DDR_TYPE                       ESDMISC_DDR_TYPE_DDR2
+
+#if SDRAM_SIZE > SZ_512M
+#define ROW_ADDR_BITS                  15
+
+/* 1GiB SDRAM: MEM2G08D2DABG */
+/* ESDCFG0 0x0c */
+NS_VAL tRFC,   195, 1, 255             /* clks - 1 (0..255) */
+CK_VAL tXS,    tRFC + 1 + NS_TO_CK(10), 1, 255 /* clks - 1 (0..255) tRFC + 10 */
+CK_VAL tXP,    2, 1, 7                 /* clks - 1 (0..7) */
+CK_VAL tXPDLL /* => tXARD */, 2, 1, 15 /* clks - 1 (0..15) */
+NS_VAL tFAW,   35, 1, 31               /* clks - 1 (0..31) */
+CK_VAL tCL,    5, 3, 8                 /* clks - 3 (0..8) CAS Latency */
+
+/* ESDCFG1 0x10 */
+NS_VAL tRCD,   13, 1, 7                /* clks - 1 (0..7) */
+NS_VAL tRP,    13, 1, 7                /* clks - 1 (0..7) */
+NS_VAL tRC,    58, 1, 31               /* clks - 1 (0..31) */
+NS_VAL tRAS,   45, 1, 31               /* clks - 1 (0..31) */
+CK_VAL tRPA,   1, 0, 1                 /* clks     (0..1) */
+NS_VAL tWR,    15, 1, 15               /* clks - 1 (0..15) */
+CK_VAL tMRD,   2, 1, 15                /* clks - 1 (0..15) */
+CK_VAL tCWL,   tCL + 3 - 1, 2, 6       /* clks - 2 (0..6) tCL - 1 */
+
+/* ESDCFG2 0x14 */
+CK_VAL tDLLK,  200, 1, 511             /* clks - 1 (0..511) */
+NS_VAL tRTP,   8, 1, 7                 /* clks - 1 (0..7) */
+NS_VAL tWTR,   8, 1, 7                 /* clks - 1 (0..7) */
+NS_VAL tRRD,   8, 1, 6                 /* clks - 1 (0..6) */
+#else
+#define ROW_ADDR_BITS                  14
+
+/* 512MiB SDRAM: V59C1G01(808) */
+/* ESDCFG0 0x0c */
+NS_VAL tRFC,   128, 1, 255             /* clks - 1 (0..255) */
+CK_VAL tXS,    tRFC + 1 + NS_TO_CK(10), 1, 255 /* clks - 1 (0..255) tRFC + 10 */
+CK_VAL tXP,    2, 1, 7                 /* clks - 1 (0..7) */
+CK_VAL tXPDLL, /* tXARD */ 2, 1, 15    /* clks - 1 (0..15) */
+NS_VAL tFAW,   50, 1, 31               /* clks - 1 (0..31) */
+CK_VAL tCL,    5, 3, 8                 /* clks - 3 (0..8) CAS Latency */
+
+/* ESDCFG1 0x10 */
+NS_VAL tRCD,   15, 1, 7                /* clks - 1 (0..7) */
+NS_VAL tRP,    15, 1, 7                /* clks - 1 (0..7) */
+NS_VAL tRC,    60, 1, 31               /* clks - 1 (0..31) */
+NS_VAL tRAS,   45, 1, 31               /* clks - 1 (0..31) */
+CK_VAL tRPA,   1, 0, 1                 /* clks     (0..1) */
+NS_VAL tWR,    15, 1, 15               /* clks - 1 (0..15) */
+CK_VAL tMRD,   2, 1, 15                /* clks - 1 (0..15) */
+CK_VAL tCWL,   tCL + 3 - 1, 2, 6       /* clks - 2 (0..6) tCL - 1 */
+
+/* ESDCFG2 0x14 */
+CK_VAL tDLLK,  200, 1, 511             /* clks - 1 (0..511) */
+NS_VAL tRTP,   8, 1, 7                 /* clks - 1 (0..7) */
+CK_VAL tWTR,   2, 1, 7                 /* clks - 1 (0..7) */
+NS_VAL tRRD,   10, 1, 6                /* clks - 1 (0..6) */
+#endif
+
+/* ESDOR 0x30 */
+NS_VAL tXPR,   400, 1, 255             /* clks - 1 (1..255) */
+
+#define tSDE_RST                       0 /* not relevant for DDR2 */
+#define tRST_CKE                       ((200000 + (ESDOR_CLK_PERIOD - 1)) / ESDOR_CLK_PERIOD)
+
+#define ESDSCR_MRS_VAL         (0x8000 | (3 << 4) | \
+                               ((((tCL + 3) << 4) | \
+                               (tWR << 9) | \
+                               ((1 - (SDRAM_BURST_LENGTH / 8)) << 1)) << 16))
+
+#elif CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR3
+/* DDR3 SDRAM */
+#if SDRAM_SIZE > SZ_512M
+#define BANK_ADDR_BITS                 2
+#else
+#define BANK_ADDR_BITS                 1
+#endif
+#define SDRAM_BURST_LENGTH             8
+#define RALAT                          5
+#define WALAT                          1
+#define ADDR_MIRROR                    0
+#define DDR_TYPE                       ESDMISC_DDR_TYPE_DDR3
+
+/* 512/1024MiB SDRAM: NT5CB128M16P-CG */
+/* ESDCFG0 0x0c */
+NS_VAL tRFC,   160, 1, 255             /* clks - 1 (0..255) */
+CK_MAX tXS,    tRFC + 1 + NS_TO_CK(10), 5, 1, 255      /* clks - 1 (0..255) tRFC + 10 */
+CK_MAX tXP,    3, NS_TO_CK(6), 1, 7    /* clks - 1 (0..7) */ /* max(6ns, 3*CK) */
+CK_MAX tXPDLL, NS_TO_CK(24), 2, 1, 15          /* clks - 1 (0..15) */
+NS_VAL tFAW,   45, 1, 31               /* clks - 1 (0..31) */
+CK_VAL tCL,    9, 3, 8                 /* clks - 3 (0..8) CAS Latency */
+
+/* ESDCFG1 0x10 */
+NS_VAL tRCD,   14, 1, 7                /* clks - 1 (0..7) */
+NS_VAL tRP,    14, 1, 7                /* clks - 1 (0..7) */
+NS_VAL tRC,    50, 1, 31               /* clks - 1 (0..31) */
+NS_VAL tRAS,   36, 1, 31               /* clks - 1 (0..31) */
+CK_VAL tRPA,   0, 0, 1                 /* clks     (0..1) */
+NS_VAL tWR,    15, 1, 15               /* clks - 1 (0..15) */
+CK_VAL tMRD,   4, 1, 15                /* clks - 1 (0..15) */
+CK_VAL tCWL,   7, 2, 6                 /* clks - 2 (0..6) */
+
+/* ESDCFG2 0x14 */
+CK_VAL tDLLK,  512, 1, 511             /* clks - 1 (0..511) */
+CK_MAX tRTP,   4, NS_TO_CK(8), 1, 7    /* clks - 1 (0..7) */
+CK_MAX tWTR,   4, NS_TO_CK(8), 1, 7    /* clks - 1 (0..7) */
+CK_MAX tRRD,   4, NS_TO_CK(8), 1, 7    /* clks - 1 (0..7) */
+
+/* ESDOR 0x30 */
+CK_MAX tXPR,   NS_TO_CK(160 + 10), 5, 1, 255 /* max(tRFC + 10, 5CK) */
+
+#define tSDE_RST                       ((200000 + (ESDOR_CLK_PERIOD - 1)) / ESDOR_CLK_PERIOD)
+#define tRST_CKE                       ((500000 + (ESDOR_CLK_PERIOD - 1)) / ESDOR_CLK_PERIOD)
+
+#define ROW_ADDR_BITS                  14
+#define COL_ADDR_BITS                  10
+
+       .iflt   tWR - 7
+       .set    ESDSCR_MRS_VAL, (0x8000 | (3 << 4) | \
+                               (((tWR - 3) << 9) | \
+                               (((tCL + 3) - 4) << 4)) << 16)
+       .else
+       .set    ESDSCR_MRS_VAL, (0x8000 | (3 << 4) | \
+                               ((((tWR + 1) / 2) << 9) | \
+                               (((tCL + 3) - 4) << 4)) << 16)
+       .endif
+
+#else
+#error Unsupported SDRAM type selected
+#endif
+
+#define ESDCFG0_VAL    (                       \
+       ((tRFC) << 24) |                        \
+       ((tXS) << 16) |                         \
+       ((tXP) << 13) |                         \
+       ((tXPDLL) << 9) |                       \
+       ((tFAW) << 4) |                         \
+       ((tCL) << 0))                           \
+
+#define ESDCFG1_VAL    (                       \
+       ((tRCD) << 29) |                        \
+       ((tRP) << 26) |                         \
+       ((tRC) << 21) |                         \
+       ((tRAS) << 16) |                        \
+       ((tRPA) << 15) |                        \
+       ((tWR) << 9) |                          \
+       ((tMRD) << 5) |                         \
+       ((tCWL) << 0))                          \
+
+#define ESDCFG2_VAL    (                       \
+       ((tDLLK) << 16) |                       \
+       ((tRTP) << 6) |                         \
+       ((tWTR) << 3) |                         \
+       ((tRRD) << 0))
+
+#define BL                             (SDRAM_BURST_LENGTH / 8) /* 0: 4 byte 1: 8 byte */
+#define ESDCTL_VAL                     (((ROW_ADDR_BITS - 11) << 24) | \
+                                       ((COL_ADDR_BITS - 9) << 20) | \
+                                       (BL << 19) | \
+                                       (1 << 16) | /* SDRAM bus width */ \
+                                       ((-1) << (32 - BANK_ADDR_BITS)))
+
+#define ESDMISC_VAL                    ((1 << 12) | \
+                                       (0x3 << 9) | \
+                                       (RALAT << 6) | \
+                                       (WALAT << 16) | \
+                                       (ADDR_MIRROR << 19) | \
+                                       (DDR_TYPE << 3))
+
+#define ESDOR_VAL              ((tXPR << 16) | (tSDE_RST << 8) | (tRST_CKE << 0))
+
+       .macro  flash_header
+__text_start:
+fcb_start:
+       b       reset_vector
+       .word   0x20424346      /* "FCB " marker */
+       .word   0x01    /* FCB version number */
+       .org    0x68
+       .word   0x0     /* primary image starting page number */
+       .word   0x0     /* secondary image starting page number */
+       .word   0x6b
+       .word   0x6b
+       .word   0x0     /* DBBT start page (0 == NO DBBT) */
+       .word   0       /* Bad block marker offset in main area (unused) */
+       .org    0xac
+       .word   0       /* BI Swap disabled */
+       .word   0       /* Bad Block marker offset in spare area */
+fcb_end:
+#if 1
+       .word   0
+tRFC_VAL:
+       .byte   tRFC
+tXS_VAL:
+       .byte   tXS
+tXP_VAL:
+       .byte   tXP
+tXPDLL_VAL:
+       .byte   tXPDLL
+tFAW_VAL:
+       .byte   tFAW
+tCL_VAL:
+       .byte   tCL
+tRCD_VAL:
+       .byte   tRCD
+tRP_VAL:
+       .byte   tRP
+tRC_VAL:
+       .byte   tRC
+tRAS_VAL:
+       .byte   tRAS
+tRPA_VAL:
+       .byte   tRPA
+tWR_VAL:
+       .byte   tWR
+tMRD_VAL:
+       .byte   tMRD
+tCWL_VAL:
+       .byte   tCWL
+tDLLK_VAL:
+       .byte   tDLLK
+tRTP_VAL:
+       .byte   tRTP
+tWTR_VAL:
+       .byte   tWTR
+tRRD_VAL:
+       .byte   tRRD
+tXPR_VAL:
+       .byte   tXPR
+tSDE_RST_VAL:
+       .byte   tSDE_RST
+tRST_CKE_VAL:
+       .byte   tRST_CKE
+       .align  2
+W_ESDCTL_VAL:
+       .word   ESDCTL_VAL
+W_ESDMISC_VAL:
+       .word   ESDMISC_VAL
+W_ESDCFG0_VAL:
+       .word   ESDCFG0_VAL
+W_ESDCFG1_VAL:
+       .word   ESDCFG1_VAL
+W_ESDCFG2_VAL:
+       .word   ESDCFG2_VAL
+W_ESDOR_VAL:
+       .word   ESDOR_VAL
+W_ESDSCR_MRS_VAL:
+       .word   ESDSCR_MRS_VAL
+#endif
+#if 0
+#undef ESDCFG0_VAL
+#undef ESDCFG1_VAL
+#undef ESDMISC_VAL
+
+#define ESDCFG0_VAL 0x9f5152e3
+#define ESDCFG1_VAL 0xb68e8a63
+#define ESDMISC_VAL 0x00011740
+W_ESDMISC_VAL_FSL:
+       .word   ESDMISC_VAL
+W_ESDCFG0_VAL_FSL:
+       .word   ESDCFG0_VAL
+W_ESDCFG1_VAL_FSL:
+       .word   ESDCFG1_VAL
+#endif
+       .org    0x400
+ivt_header:
+       .word   CPU_2_BE_32((0xd1 << 24) | (32 << 8) | 0x40)
+app_start_addr:
+       .long   reset_vector
+       .long   0x0
+dcd_ptr:
+       .long   dcd_hdr
+boot_data_ptr:
+       .word   boot_data
+self_ptr:
+       .word   ivt_header
+app_code_csf:
+       .word   0x0
+       .word   0x0
+boot_data:
+       .long   __text_start
+image_len:
+       .long   REDBOOT_IMAGE_SIZE
+plugin:
+       .word   0
+ivt_end:
+
+#define DCD_VERSION    0x40
+
+dcd_hdr:
+       .word CPU_2_BE_32((0xd2 << 24) |
+       ((dcd_end - .) << 8) | DCD_VERSION)
+dcd_start:
+       MXC_DCD_CMD(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, dcd_end)
+       /* disable all irrelevant clocks */
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR0, 0xffcc00cf)
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR1, 0x000fffc3)
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR2, 0x033c0000)
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR3, 0x00000000)
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR4, 0x00000000)
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR5, 0x00fff033)
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR6, 0x0f00030f)
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR7, 0xfff00000)
+       MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CMEOR, 0x00000000)
+
+       MXC_DCD_ITEM(IOMUXC_BASE_ADDR + 0x174, 0x00000011)      /* EIM_D18 => GPIO2[20] STK5-LED */
+
+       MXC_DCD_ITEM(0x63fd800c, 0x00000000)    /* M4IF: MUX NFC signals on WEIM */
+#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
+       /* setup SDRAM pads */
+       MXC_DCD_ITEM(0x53fa8554, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM3
+       MXC_DCD_ITEM(0x53fa8560, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM2
+       MXC_DCD_ITEM(0x53fa8594, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM1
+       MXC_DCD_ITEM(0x53fa8584, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM0
+
+       MXC_DCD_ITEM(0x53fa8558, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS3
+       MXC_DCD_ITEM(0x53fa8568, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS2
+       MXC_DCD_ITEM(0x53fa8590, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1
+       MXC_DCD_ITEM(0x53fa857c, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0
+
+       MXC_DCD_ITEM(0x53fa8564, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT1
+       MXC_DCD_ITEM(0x53fa8580, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT0
+       MXC_DCD_ITEM(0x53fa8570, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_1
+       MXC_DCD_ITEM(0x53fa8578, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_0
+
+       MXC_DCD_ITEM(0x53fa872c, 0x00200000)    @ IOMUXC_SW_PAD_CTL_GRP_B3DS
+       MXC_DCD_ITEM(0x53fa8728, 0x00200000)    @ IOMUXC_SW_PAD_CTL_GRP_B2DS
+       MXC_DCD_ITEM(0x53fa871c, 0x00200000)    @ IOMUXC_SW_PAD_CTL_GRP_B1DS
+       MXC_DCD_ITEM(0x53fa8718, 0x00200000)    @ IOMUXC_SW_PAD_CTL_GRP_B0DS
+
+       MXC_DCD_ITEM(0x53fa8574, 0x00280000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_CAS
+       MXC_DCD_ITEM(0x53fa8588, 0x00280000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_RAS
+       MXC_DCD_ITEM(0x53fa86f0, 0x00280000)    @ IOMUXC_SW_PAD_CTL_GRP_ADDDS
+       MXC_DCD_ITEM(0x53fa8720, 0x00280000)    @ IOMUXC_SW_PAD_CTL_GRP_CTLDS
+
+       MXC_DCD_ITEM(0x53fa86fc, 0x00000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDRPKE
+
+#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
+       MXC_DCD_ITEM(0x53fa86f4, 0x00000200)    @ IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL - DQS DIFF mode
+       MXC_DCD_ITEM(0x53fa8714, 0x00000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDRMODE - Data CMOS mode
+       MXC_DCD_ITEM(0x53fa8724, 0x06000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE - DDR_SEL=01
+#else
+       MXC_DCD_ITEM(0x53fa86f4, 0x00000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL - DQS DIFF mode
+       MXC_DCD_ITEM(0x53fa8714, 0x00000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDRMODE - Data CMOS mode
+       MXC_DCD_ITEM(0x53fa8724, 0x04000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE - DDR_SEL=10
+#endif
+       /* memory timing setup */
+       MXC_DCD_ITEM(0x63fd9088, 0x36353b38)
+       MXC_DCD_ITEM(0x63fd9090, 0x49434942)
+       MXC_DCD_ITEM(0x63fd90F8, 0x00000800)
+       MXC_DCD_ITEM(0x63fd907c, 0x01350138)
+       MXC_DCD_ITEM(0x63fd9080, 0x01380139)
+       MXC_DCD_ITEM(0x63fd9018, ESDMISC_VAL)   @ ESDMISC
+       MXC_DCD_ITEM(0x63fd9000, ESDCTL_VAL)
+       MXC_DCD_ITEM(0x63fd900c, ESDCFG0_VAL)
+       MXC_DCD_ITEM(0x63fd9010, ESDCFG1_VAL)
+       MXC_DCD_ITEM(0x63fd9014, ESDCFG2_VAL)
+
+       MXC_DCD_ITEM(0x63fd902c, 0x000026d2)    @ command delay
+       MXC_DCD_ITEM(0x63fd9030, ESDOR_VAL)     @ out of reset delays
+       MXC_DCD_ITEM(0x63fd9008, 0x12273030)    @ ODT timings
+       MXC_DCD_ITEM(0x63fd9004, 0x00030012)    @ Power down control
+
+       /*********************************
+       * DDR device configuration:
+       **********************************/
+       /* CS0 */
+#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008020)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008020)
+#endif
+       MXC_DCD_ITEM(0x63fd901c, ESDSCR_MRS_VAL)
+       //MXC_DCD_ITEM(0x63fd901c, 0x0a528030)  @ MRS: BL: 4, BT: seq, CL: 5, WR: 6
+#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
+       MXC_DCD_ITEM(0x63fd901c, 0x03868031)    @ EMRS(1): OCD calibration default
+       MXC_DCD_ITEM(0x63fd901c, 0x00068031)    @ EMRS(1): OCD calibration exit
+       MXC_DCD_ITEM(0x63fd901c, 0x00008032)    @ EMRS(2): 0
+#else
+       MXC_DCD_ITEM(0x63fd901c, 0x00008032)    @ MR2: 0
+       MXC_DCD_ITEM(0x63fd901c, 0x00008032)    @ MR3: 0
+       MXC_DCD_ITEM(0x63fd901c, 0x00028031)    @ MR1:
+       MXC_DCD_ITEM(0x63fd901c, 0x092080b0)    @ MR0: WHY 80b0 instead of 8030? Undocumented bit# 7?
+       MXC_DCD_ITEM(0x63fd901c, 0x04008040)
+#endif
+#if BANK_ADDR_BITS > 1
+#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
+       MXC_DCD_ITEM(0x63fd901c, 0x04008018)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008028)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008028)
+#endif
+       MXC_DCD_ITEM(0x63fd901c, 0x0a528038)    @ MRS: BL: 4, BT: seq, CL: 5, WR: 6
+       MXC_DCD_ITEM(0x63fd901c, 0x03868039)    @ EMRS(1): OCD calibration default
+       MXC_DCD_ITEM(0x63fd901c, 0x00068039)    @ EMRS(1): OCD calibration exit
+       MXC_DCD_ITEM(0x63fd901c, 0x0000803a)    @ EMRS(2): 0
+#endif
+       MXC_DCD_ITEM(0x63fd9020, 0x00005800)
+       MXC_DCD_ITEM(0x63fd9058, 0x00033332)    @ ODT control: 50Ohms, ODT act enable
+       MXC_DCD_ITEM(0x63fd901c, 0x00000000)
+
+       MXC_DCD_ITEM(0x63fd901c, 0x00448031)    @ full drive strength, enable 50ohm ODT
+       MXC_DCD_ITEM(0x63fd901c, 0x04008018)
+       MXC_DCD_ITEM(0x63fd901c, 0x00000000)
+
+       /* Enable ZQ calibration to tightly control the impedance of the DDR IO pads */
+       MXC_DCD_ITEM(0x63fd9040, 0x04b80003)    @ keep ZQ HW control values and enable it
+#else
+MXC_DCD_ITEM(0x53fa8554, 0x00300000)
+MXC_DCD_ITEM(0x53fa8560, 0x00300000)
+MXC_DCD_ITEM(0x53fa8594, 0x00300000)
+MXC_DCD_ITEM(0x53fa8584, 0x00300000)
+
+MXC_DCD_ITEM(0x53fa8558, 0x00f00000)
+MXC_DCD_ITEM(0x53fa8568, 0x00f00000)
+MXC_DCD_ITEM(0x53fa8590, 0x00f00000)
+MXC_DCD_ITEM(0x53fa857c, 0x00f00000)
+
+MXC_DCD_ITEM(0x53fa8564, 0x00300040)
+MXC_DCD_ITEM(0x53fa8580, 0x00300040)
+MXC_DCD_ITEM(0x53fa8570, 0x00300000)
+MXC_DCD_ITEM(0x53fa8578, 0x00300000)
+
+MXC_DCD_ITEM(0x53fa872c, 0x00300000)
+MXC_DCD_ITEM(0x53fa8728, 0x00300000)
+MXC_DCD_ITEM(0x53fa871c, 0x00300000)
+MXC_DCD_ITEM(0x53fa8718, 0x00300000)
+
+MXC_DCD_ITEM(0x53fa8574, 0x00300000)
+MXC_DCD_ITEM(0x53fa8588, 0x00300000)
+MXC_DCD_ITEM(0x53fa86f0, 0x00300000)
+MXC_DCD_ITEM(0x53fa8720, 0x00300000)
+
+MXC_DCD_ITEM(0x53fa86fc, 0x00000000)
+
+MXC_DCD_ITEM(0x53fa86f4, 0x00000000)
+MXC_DCD_ITEM(0x53fa8714, 0x00000000)
+
+MXC_DCD_ITEM(0x53fa8724, 0x04000000)
+
+MXC_DCD_ITEM(0x63fd9088, 0x35343535)
+MXC_DCD_ITEM(0x63fd9090, 0x4d444c44)
+MXC_DCD_ITEM(0x63fd907c, 0x01370138)
+MXC_DCD_ITEM(0x63fd9080, 0x013b013c)
+
+MXC_DCD_ITEM(0x63fd9018, 0x00011740)
+MXC_DCD_ITEM(0x63fd9000, 0xc3190000)
+MXC_DCD_ITEM(0x63fd900c, 0x9f5152e3)
+MXC_DCD_ITEM(0x63fd9010, 0xb68e8a63)
+MXC_DCD_ITEM(0x63fd9014, 0x01ff00db)
+
+MXC_DCD_ITEM(0x63fd902c, 0x000026d2)
+MXC_DCD_ITEM(0x63fd9030, 0x009f0e21)
+MXC_DCD_ITEM(0x63fd9008, 0x12273030)
+MXC_DCD_ITEM(0x63fd9004, 0x0002002d)
+@ MR0 - CS0
+MXC_DCD_ITEM(0x63fd901c, 0x00008032)
+MXC_DCD_ITEM(0x63fd901c, 0x00008033)
+MXC_DCD_ITEM(0x63fd901c, 0x00028031)
+MXC_DCD_ITEM(0x63fd901c, 0x092080b0)
+MXC_DCD_ITEM(0x63fd901c, 0x04008040)
+@ MR0 - CS1
+#if SDRAM_SIZE > SZ_512M
+MXC_DCD_ITEM(0x63fd901c, 0x0000803a)
+MXC_DCD_ITEM(0x63fd901c, 0x0000803b)
+MXC_DCD_ITEM(0x63fd901c, 0x00028039)
+MXC_DCD_ITEM(0x63fd901c, 0x09208138)
+
+MXC_DCD_ITEM(0x63fd901c, 0x04008048)
+#endif
+MXC_DCD_ITEM(0x63fd9020, 0x00005800)
+MXC_DCD_ITEM(0x63fd9040, 0x04b80003)
+MXC_DCD_ITEM(0x63fd9058, 0x00022227)
+MXC_DCD_ITEM(0x63fd901c, 0x00000000)
+#endif
+       MXC_DCD_ITEM(0x53fa8004, 0x00194005)    @ set LDO to 1.3V
+
+       /* setup NFC pads */
+       /* MUX_SEL */
+       MXC_DCD_ITEM(0x53fa819c, 0x00000000)    @ EIM_DA0
+       MXC_DCD_ITEM(0x53fa81a0, 0x00000000)    @ EIM_DA1
+       MXC_DCD_ITEM(0x53fa81a4, 0x00000000)    @ EIM_DA2
+       MXC_DCD_ITEM(0x53fa81a8, 0x00000000)    @ EIM_DA3
+       MXC_DCD_ITEM(0x53fa81ac, 0x00000000)    @ EIM_DA4
+       MXC_DCD_ITEM(0x53fa81b0, 0x00000000)    @ EIM_DA5
+       MXC_DCD_ITEM(0x53fa81b4, 0x00000000)    @ EIM_DA6
+       MXC_DCD_ITEM(0x53fa81b8, 0x00000000)    @ EIM_DA7
+       MXC_DCD_ITEM(0x53fa81dc, 0x00000000)    @ WE_B
+       MXC_DCD_ITEM(0x53fa81e0, 0x00000000)    @ RE_B
+       MXC_DCD_ITEM(0x53fa8228, 0x00000000)    @ CLE
+       MXC_DCD_ITEM(0x53fa822c, 0x00000000)    @ ALE
+       MXC_DCD_ITEM(0x53fa8230, 0x00000000)    @ WP_B
+       MXC_DCD_ITEM(0x53fa8234, 0x00000000)    @ RB0
+       MXC_DCD_ITEM(0x53fa8238, 0x00000000)    @ CS0
+       /* PAD_CTL */
+       MXC_DCD_ITEM(0x53fa84ec, 0x000000e4)    @ EIM_DA0
+       MXC_DCD_ITEM(0x53fa84f0, 0x000000e4)    @ EIM_DA1
+       MXC_DCD_ITEM(0x53fa84f4, 0x000000e4)    @ EIM_DA2
+       MXC_DCD_ITEM(0x53fa84f8, 0x000000e4)    @ EIM_DA3
+       MXC_DCD_ITEM(0x53fa84fc, 0x000000e4)    @ EIM_DA4
+       MXC_DCD_ITEM(0x53fa8500, 0x000000e4)    @ EIM_DA5
+       MXC_DCD_ITEM(0x53fa8504, 0x000000e4)    @ EIM_DA6
+       MXC_DCD_ITEM(0x53fa8508, 0x000000e4)    @ EIM_DA7
+       MXC_DCD_ITEM(0x53fa852c, 0x00000004)    @ NANDF_WE_B
+       MXC_DCD_ITEM(0x53fa8530, 0x00000004)    @ NANDF_RE_B
+       MXC_DCD_ITEM(0x53fa85a0, 0x00000004)    @ NANDF_CLE_B
+       MXC_DCD_ITEM(0x53fa85a4, 0x00000004)    @ NANDF_ALE_B
+       MXC_DCD_ITEM(0x53fa85a8, 0x000000e4)    @ NANDF_WE_B
+       MXC_DCD_ITEM(0x53fa85ac, 0x000000e4)    @ NANDF_RB0
+       MXC_DCD_ITEM(0x53fa85b0, 0x00000004)    @ NANDF_CS0
+dcd_end:
+       .endm
+
+AIPS1_PARAM:           .word   0x77777777
+MXC_REDBOOT_ROM_START: .long   SDRAM_BASE_ADDR + SDRAM_SIZE - REDBOOT_OFFSET
+
+#if SDRAM_CLK > 333
+CCM_CBCDR_VAL1:                .word   0x02888944
+CCM_CBCMR_VAL1:                .word   0x00015154
+CCM_CBCDR_VAL2:                .word   0x00888944
+CCM_CBCMR_VAL2:                .word   0x00016154
+#else
+CCM_CBCDR_VAL1:                .word   0x02888644
+CCM_CBCMR_VAL1:                .word   0x00015154
+CCM_CBCDR_VAL2:                .word   0x00888644
+CCM_CBCMR_VAL2:                .word   0x00016154
+#endif
+
+W_CSCMR1_VAL:          .word   0xa6a2a020
+W_CSCDR1_VAL:          .word   0x00080b18
+W_DP_OP_1000:          .word   DP_OP_1000
+W_DP_MFD_1000:         .word   DP_MFD_1000
+W_DP_MFN_1000:         .word   DP_MFN_1000
+W_DP_OP_800:           .word   DP_OP_800
+W_DP_MFD_800:          .word   DP_MFD_800
+W_DP_MFN_800:          .word   DP_MFN_800
+W_DP_OP_700:           .word   DP_OP_700
+W_DP_MFD_700:          .word   DP_MFD_700
+W_DP_MFN_700:          .word   DP_MFN_700
+W_DP_OP_400:           .word   DP_OP_400
+W_DP_MFD_400:          .word   DP_MFD_400
+W_DP_MFN_400:          .word   DP_MFN_400
+W_DP_OP_532:           .word   DP_OP_532
+W_DP_MFD_532:          .word   DP_MFD_532
+W_DP_MFN_532:          .word   DP_MFN_532
+W_DP_OP_666:           .word   DP_OP_666
+W_DP_MFD_666:          .word   DP_MFD_666
+W_DP_MFN_666:          .word   DP_MFN_666
+W_DP_OP_665:           .word   DP_OP_665
+W_DP_MFD_665:          .word   DP_MFD_665
+W_DP_MFN_665:          .word   DP_MFN_665
+W_DP_OP_216:           .word   DP_OP_216
+W_DP_MFD_216:          .word   DP_MFD_216
+W_DP_MFN_216:          .word   DP_MFN_216
+W_DP_OP_333:           .word   DP_OP_333
+W_DP_MFD_333:          .word   DP_MFD_333
+W_DP_MFN_333:          .word   DP_MFN_333
+W_DP_OP_266:           .word   DP_OP_266
+W_DP_MFD_266:          .word   DP_MFD_266
+W_DP_MFN_266:          .word   DP_MFN_266
+PLATFORM_CLOCK_DIV:    .word   0x00000124
+
+/*----------------------------------------------------------------------*/
+/* end of hal_platform_setup.h                                         */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/packages/hal/arm/mx53/karo/v1_0/include/karo_tx53.h b/packages/hal/arm/mx53/karo/v1_0/include/karo_tx53.h
new file mode 100644 (file)
index 0000000..1bc6d0d
--- /dev/null
@@ -0,0 +1,166 @@
+#ifndef CYGONCE_KARO_TX53_H
+#define CYGONCE_KARO_TX53_H
+
+//=============================================================================
+//
+//     Platform specific support (register layout, etc)
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+
+#include <cyg/hal/hal_soc.h>   // Hardware definitions
+#include <cyg/hal/mx53_iomux.h>
+
+#include CYGHWR_MEMORY_LAYOUT_H
+
+#define GPIO_DR                                                0x00
+#define GPIO_GDIR                                      0x04
+#define GPIO_PSR                                       0x08
+
+#define STK5_LED_MASK                          (1 << 20)
+#define STK5_LED_REG_ADDR                      (GPIO2_BASE_ADDR + GPIO_DR)
+
+#define LED_MAX_NUM                                    1
+
+#define SOC_FEC_MAC_BASE                       (IIM_BASE_ADDR + 0xc24)
+
+#define TX53_SDRAM_SIZE                                SDRAM_SIZE
+
+#define LED_IS_ON(n) ({                                                        \
+       CYG_WORD32 __val;                                                       \
+       HAL_READ_UINT32(STK5_LED_REG_ADDR, __val);      \
+       __val & STK5_LED_MASK;                                          \
+})
+
+#define TURN_LED_ON(n)                                                 \
+       CYG_MACRO_START                                                         \
+       CYG_WORD32 __val;                                                       \
+       HAL_READ_UINT32(STK5_LED_REG_ADDR, __val);      \
+       __val |= STK5_LED_MASK;                                         \
+       HAL_WRITE_UINT32(STK5_LED_REG_ADDR, __val);     \
+       CYG_MACRO_END
+
+#define TURN_LED_OFF(n)                                                        \
+       CYG_MACRO_START                                                         \
+       CYG_WORD32 __val;                                                       \
+       HAL_READ_UINT32(STK5_LED_REG_ADDR, __val);      \
+       __val &= ~STK5_LED_MASK;                                        \
+       HAL_WRITE_UINT32(STK5_LED_REG_ADDR, __val);     \
+       CYG_MACRO_END
+
+#define BOARD_DEBUG_LED(n)                                             \
+       CYG_MACRO_START                                                         \
+       if (n >= 0 && n < LED_MAX_NUM) {                        \
+               if (LED_IS_ON(n))                                               \
+                       TURN_LED_OFF(n);                                        \
+               else                                                                    \
+                       TURN_LED_ON(n);                                         \
+       }                                                                                       \
+       CYG_MACRO_END
+
+#define BLINK_LED(l, n)                                                        \
+       CYG_MACRO_START                                                         \
+       int _i;                                                                         \
+       for (_i = 0; _i < (n); _i++) {                          \
+               BOARD_DEBUG_LED(l);                                             \
+               HAL_DELAY_US(200000);                                   \
+               BOARD_DEBUG_LED(l);                                             \
+               HAL_DELAY_US(300000);                                   \
+       }                                                                                       \
+       HAL_DELAY_US(1000000);                                          \
+       CYG_MACRO_END
+
+#if !defined(__ASSEMBLER__)
+extern int tx53_fuse_voltage(int on);
+#define FUSE_PROG_START()              tx53_fuse_voltage(1)
+#define FUSE_PROG_DONE()               tx53_fuse_voltage(0)
+
+void mxc_ipu_iomux_config(void);
+
+enum {
+       BOARD_TYPE_TX53KARO,
+};
+
+#define gpio_tst_bit(__grp, __gpio)                            \
+       CYG_MACRO_START                                                         \
+       CYG_ADDRESS addr = MX53_GPIO_ADDR(__grp);       \
+       CYG_WORD32 val;                                                         \
+                                                                                               \
+       if (addr == 0)                                                          \
+               return;                                                                 \
+       if (__gpio < 0 || __gpio >= GPIO_NUM_PIN) {     \
+               return 0;                                                               \
+       }                                                                                       \
+       HAL_READ_UINT32(addr + GPIO_PSR, val);          \
+       return !!(val & (1 << __gpio));                         \
+       CYG_MACRO_END
+
+#define gpio_set_bit(__grp, __gpio)                                                            \
+       CYG_MACRO_START                                                                                         \
+       CYG_WORD32 val;                                                                                         \
+       CYG_ADDRESS addr = MX53_GPIO_ADDR(__grp);                                       \
+                                                                                                                               \
+       if (addr == 0)                                                                                          \
+               return;                                                                                                 \
+       if (__gpio < 0 || __gpio >= GPIO_NUM_PIN)                                       \
+               return;                                                                                                 \
+                                                                                                                               \
+       HAL_READ_UINT32(addr + GPIO_DR, val);                                           \
+       HAL_WRITE_UINT32(addr + GPIO_DR, val | (1 << __gpio));          \
+                                                                                                                               \
+       HAL_READ_UINT32(addr + GPIO_GDIR, val);                                         \
+       HAL_WRITE_UINT32(addr + GPIO_GDIR, val | (1 << __gpio));        \
+       CYG_MACRO_END
+
+#define gpio_clr_bit(__grp, __gpio)                                                            \
+       CYG_MACRO_START                                                                                         \
+       CYG_WORD32 val;                                                                                         \
+       CYG_ADDRESS addr = MX53_GPIO_ADDR(__grp);                                       \
+                                                                                                                               \
+       if (addr == 0)                                                                                          \
+               return;                                                                                                 \
+       if (__gpio < 0 || __gpio >= GPIO_NUM_PIN)                                       \
+               return;                                                                                                 \
+                                                                                                                               \
+       HAL_READ_UINT32(addr + GPIO_DR, val);                                           \
+       HAL_WRITE_UINT32(addr + GPIO_DR, val & ~(1 << __gpio));         \
+                                                                                                                               \
+       HAL_READ_UINT32(addr + GPIO_GDIR, val);                                         \
+       HAL_WRITE_UINT32(addr + GPIO_GDIR, val | (1 << __gpio));        \
+       CYG_MACRO_END
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* CYGONCE_KARO_TX53_H */
diff --git a/packages/hal/arm/mx53/karo/v1_0/include/pkgconf/mlt_arm_tx53_romram.h b/packages/hal/arm/mx53/karo/v1_0/include/pkgconf/mlt_arm_tx53_romram.h
new file mode 100644 (file)
index 0000000..fab487a
--- /dev/null
@@ -0,0 +1,46 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_VARIANT_H
+#include CYGBLD_HAL_PLATFORM_H
+#include <cyg/hal/hal_soc.h>           // Hardware definitions
+#include <cyg/hal/hal_misc.h>          // SZ_* definitions
+#include <pkgconf/redboot.h>
+
+#define SDRAM_BASE_ADDR                        CSD0_BASE_ADDR
+#define SDRAM_SIZE                             CYGNUM_HAL_ARM_TX53_SDRAM_SIZE
+
+#define UNCACHED_RAM_BASE_VIRT 0xB0000000
+
+#define SZ_128M                                        0x08000000
+#define SZ_256M                                        0x10000000
+#define RAM_BANK0_BASE                 CSD0_BASE_ADDR
+#define RAM_BANK1_BASE                 CSD1_BASE_ADDR
+#define RAM_BANK0_SIZE                 SZ_1G
+#if SDRAM_SIZE > RAM_BANK0_SIZE
+#define RAM_BANK1_SIZE                 (SDRAM_SIZE - RAM_BANK0_SIZE)
+#endif
+
+#define REDBOOT_IMAGE_SIZE             CYGBLD_REDBOOT_MIN_IMAGE_SIZE
+
+#ifndef REDBOOT_BOTTOM
+#define REDBOOT_OFFSET                 REDBOOT_IMAGE_SIZE
+#define CYGMEM_REGION_ram              SDRAM_BASE_ADDR
+#define CYGMEM_REGION_rom              (CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE)
+#else
+#define REDBOOT_OFFSET                 0x00100000
+#define CYGMEM_REGION_ram              (SDRAM_BASE_ADDR + REDBOOT_OFFSET)
+#define CYGMEM_REGION_rom              SDRAM_BASE_ADDR
+#endif
+
+#define CYGMEM_REGION_ram_SIZE (SDRAM_SIZE - REDBOOT_OFFSET)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_rom_SIZE REDBOOT_OFFSET
+#define CYGMEM_REGION_rom_ATTR CYGMEM_REGION_ATTR_R
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME(__heap1)[];
+#endif
+#define CYGMEM_SECTION_heap1   (CYG_LABEL_NAME(__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (CYGMEM_REGION_rom - (size_t)CYG_LABEL_NAME(__heap1))
diff --git a/packages/hal/arm/mx53/karo/v1_0/include/pkgconf/mlt_arm_tx53_romram.ldi b/packages/hal/arm/mx53/karo/v1_0/include/pkgconf/mlt_arm_tx53_romram.ldi
new file mode 100644 (file)
index 0000000..46cb593
--- /dev/null
@@ -0,0 +1,34 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#define __ASSEMBLER__
+#include CYGHWR_MEMORY_LAYOUT_H
+
+MEMORY
+{
+    ram : ORIGIN = CYGMEM_REGION_ram, LENGTH = CYGMEM_REGION_ram_SIZE
+    rom : ORIGIN = CYGMEM_REGION_rom, LENGTH = CYGMEM_REGION_rom_SIZE
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_rom_vectors (rom, CYGMEM_REGION_rom, LMA_EQ_VMA)
+    SECTION_RELOCS(rom, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1 (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_got (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_extab (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_exidx (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fixed_vectors (ram, CYGMEM_REGION_ram + 0x20, LMA_EQ_VMA)
+    SECTION_data (ram, CYGMEM_REGION_ram + 0x8000, FOLLOWING (.gcc_except_table))
+    SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
diff --git a/packages/hal/arm/mx53/karo/v1_0/include/plf_io.h b/packages/hal/arm/mx53/karo/v1_0/include/plf_io.h
new file mode 100644 (file)
index 0000000..0b164f6
--- /dev/null
@@ -0,0 +1,69 @@
+#ifndef CYGONCE_HAL_ARM_BOARD_PLF_IO_H
+#define CYGONCE_HAL_ARM_BOARD_PLF_IO_H
+
+//=============================================================================
+//
+//      plf_io.h
+//
+//      Platform specific support (register layout, etc)
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#include CYGBLD_HAL_PLF_DEFS_H
+#include <cyg/hal/hal_soc.h>
+
+#define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                        \
+       CYG_MACRO_START                                                                            \
+       {                                                                                                  \
+         extern unsigned int system_rev;                                                                  \
+                        /* Next ATAG_MEM. */                                                              \
+                _p_->hdr.size = (sizeof(struct tag_mem32) + sizeof(struct tag_header))/sizeof(long);      \
+                _p_->hdr.tag = ATAG_MEM;                                                                  \
+                /* Round up so there's only one bit set in the memory size.                               \
+                * Don't double it if it's already a power of two, though.                                 \
+                */                                                                                        \
+                _p_->u.mem.size  = 1<<hal_msbindex(CYGMEM_REGION_ram_SIZE);                               \
+                if (_p_->u.mem.size < CYGMEM_REGION_ram_SIZE)                                             \
+                                _p_->u.mem.size <<= 1;                                                            \
+                _p_->u.mem.start = CYGARC_PHYSICAL_ADDRESS(CYGMEM_REGION_ram);                            \
+                _p_ = (struct tag *)((long *)_p_ + _p_->hdr.size);                                        \
+                _p_->hdr.size = ((sizeof(struct tag_revision)) + sizeof(struct tag_header))/sizeof(long); \
+                _p_->hdr.tag = ATAG_REVISION;                                                             \
+                _p_->u.revision.rev = system_rev;                                                         \
+       }                                                                                                  \
+       CYG_MACRO_END
+
+#endif // CYGONCE_HAL_ARM_BOARD_PLF_IO_H
diff --git a/packages/hal/arm/mx53/karo/v1_0/include/plf_mmap.h b/packages/hal/arm/mx53/karo/v1_0/include/plf_mmap.h
new file mode 100644 (file)
index 0000000..6dc8ea3
--- /dev/null
@@ -0,0 +1,104 @@
+#ifndef CYGONCE_HAL_BOARD_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_BOARD_PLATFORM_PLF_MMAP_H
+//=============================================================================
+//
+//      plf_mmap.h
+//
+//      Platform specific memory map support
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+
+#include <cyg/hal/hal_misc.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE(vaddr, pagesize) CYG_MACRO_START       \
+       (pagesize) = SZ_1M;                                                                             \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+#define HAL_VIRT_TO_PHYS_ADDRESS(vaddr, paddr) \
+       CYG_MACRO_START                                                         \
+       (paddr) = hal_virt_to_phy(vaddr);                       \
+       CYG_MACRO_END
+
+/*
+ * translate the virtual address of ram space to physical address
+ * It is dependent on the implementation of hal_mmu_init
+ */
+#ifndef RAM_BANK0_SIZE
+#warning using SDRAM_SIZE for RAM_BANK0_SIZE
+#define RAM_BANK0_SIZE         SDRAM_SIZE
+#endif
+
+static unsigned long __inline__ hal_virt_to_phy(unsigned long virt)
+{
+       if (((virt & 0xF0000000) == CSD0_BASE_ADDR) ||
+               ((virt & 0xF0000000) == UNCACHED_RAM_BASE_VIRT)) {
+               virt &= ~0xF0000000;
+       }
+       if (virt < SDRAM_SIZE) {
+               return virt | (virt < RAM_BANK0_SIZE ? CSD0_BASE_ADDR : CSD1_BASE_ADDR);
+       }
+       if ((virt & 0xF0000000) == UNCACHED_RAM_BASE_VIRT) {
+          if (virt >= RAM_BANK0_SIZE) {
+                       virt = virt - CSD0_BASE_ADDR + CSD1_BASE_ADDR - RAM_BANK0_SIZE;
+               }
+       }
+       return virt;
+}
+
+/*
+ * remap the physical address of ram space to uncacheable virtual address space
+ * It is dependent on the implementation of hal_mmu_init
+ */
+static unsigned long __inline__ hal_ioremap_nocache(unsigned long phy)
+{
+       /* 0xb0000000 .. (0xb0000000 + SDRAM_SIZE) is
+        * uncacheable memory space which is mapped to SDRAM
+        */
+       if ((phy & 0xF0000000) == CSD0_BASE_ADDR) {
+               phy = (phy - CSD0_BASE_ADDR) | UNCACHED_RAM_BASE_VIRT;
+       }
+       if ((phy & 0xF0000000) == CSD1_BASE_ADDR) {
+               phy = (phy - CSD1_BASE_ADDR + CSD0_BASE_ADDR + RAM_BANK0_SIZE) | UNCACHED_RAM_BASE_VIRT;
+       }
+       return phy;
+}
+
+#endif // CYGONCE_HAL_BOARD_PLATFORM_PLF_MMAP_H
diff --git a/packages/hal/arm/mx53/karo/v1_0/misc/redboot_ROMRAM.ecm b/packages/hal/arm/mx53/karo/v1_0/misc/redboot_ROMRAM.ecm
new file mode 100644 (file)
index 0000000..cc0fefd
--- /dev/null
@@ -0,0 +1,223 @@
+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 };
+
+cdl_configuration eCos {
+    description "RedBoot configuration for Ka-Ro TX53 processor module" ;
+
+    # 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 -hardware CYGPKG_DEVS_MXC_I2C current ;
+    package -hardware CYGPKG_DEVS_IMX_IPU 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 ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+    inferred_value 0
+};
+
+cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 {
+    inferred_value 1
+};
+
+cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
+    user_value 0
+};
+
+cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
+    user_value 1
+};
+
+cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG {
+    user_value 0
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+    inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+    inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+    inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+    inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+    inferred_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+    inferred_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB {
+    inferred_value 0
+};
+
+cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
+    inferred_value 1 "Ka-Ro [exec date -I]"
+};
+
+cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
+    inferred_value 0
+};
+
+cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE {
+    inferred_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT {
+    user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD {
+    user_value 0
+};
+
+cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
+    inferred_value 0
+};
+
+cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE {
+    inferred_value 1
+};
+
+cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE {
+    inferred_value 1024
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+    inferred_value 0x00040000
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE {
+    inferred_value 2048
+};
+
+cdl_component CYGPKG_REDBOOT_DISK {
+    user_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
+    inferred_value 10
+};
+
+cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
+    inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+    inferred_value 0xA0108000
+};
+
+cdl_option CYGBLD_ISO_CTYPE_HEADER {
+    inferred_value 1 <cyg/libc/i18n/ctype.inl>
+};
+
+cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
+    inferred_value 1 <cyg/error/codes.h>
+};
+
+cdl_option CYGBLD_ISO_ERRNO_HEADER {
+    inferred_value 1 <cyg/error/errno.h>
+};
+
+cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
+    inferred_value 1 <cyg/libc/stdlib/atox.inl>
+};
+
+cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
+    inferred_value 1 <cyg/libc/stdlib/abs.inl>
+};
+
+cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
+    inferred_value 1 <cyg/libc/stdlib/div.inl>
+};
+
+cdl_option CYGBLD_ISO_STRERROR_HEADER {
+    inferred_value 1 <cyg/error/strerror.h>
+};
+
+cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
+    inferred_value 1 <cyg/libc/string/string.h>
+};
+
+cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
+    inferred_value 1 <cyg/libc/string/string.h>
+};
+
+cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
+    inferred_value 1 <cyg/libc/string/bsdstring.h>
+};
+
+cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
+    inferred_value 1 <cyg/libc/string/string.h>
+};
+
+cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
+    inferred_value 1 <cyg/libc/string/string.h>
+};
+
+cdl_option CYGSEM_IO_FLASH_READ_INDIRECT {
+    inferred_value 1
+};
+
+cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
+    inferred_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_MXC_NOR {
+    inferred_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_MXC_NAND {
+    inferred_value 1
+};
+
+cdl_option CYGHWR_DEVS_IPU_3_EX {
+    inferred_value 1
+};
+
+cdl_component CYGHWR_FLASH_NAND_BBT_HEADER {
+    inferred_value 1 <cyg/io/tx53_nand_bbt.h>
+};
+
+cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI {
+    inferred_value 0
+};
+
+cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
+    inferred_value 0
+};
+
diff --git a/packages/hal/arm/mx53/karo/v1_0/src/mx53_fastlogo.c b/packages/hal/arm/mx53/karo/v1_0/src/mx53_fastlogo.c
new file mode 100644 (file)
index 0000000..b7033cf
--- /dev/null
@@ -0,0 +1,309 @@
+//==========================================================================
+//
+//      mx53_fastlogo.c
+//
+//      MX53 Fast Logo Implementation
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+
+#include <cyg/io/ipu_common.h>
+
+// DI counter definitions
+#define DI_COUNTER_BASECLK             0
+#define DI_COUNTER_IHSYNC              1
+#define DI_COUNTER_OHSYNC              2
+#define DI_COUNTER_OVSYNC              3
+#define DI_COUNTER_ALINE               4
+#define DI_COUNTER_ACLOCK              5
+
+//extern display_buffer_info_t display_buffer;
+static display_buffer_info_t display_buffer;
+
+void fastlogo_init(display_buffer_info_t *di)
+{
+       display_buffer = *di;
+}
+
+void fastlogo_dma(void)
+{
+       ipu_channel_parameter_t ipu_channel_params;
+
+       ipu_idmac_channel_enable(display_buffer.channel, 0);
+
+       ipu_idmac_params_init(&ipu_channel_params);
+       ipu_channel_params.channel = display_buffer.channel;
+       ipu_channel_params.eba0 = display_buffer.startAddr / 8;
+       ipu_channel_params.fw = display_buffer.width - 1;   /* frame width */
+       ipu_channel_params.fh = display_buffer.height - 1;  /* frame height */
+       ipu_channel_params.sl = (display_buffer.width * display_buffer.bpp) / 8 - 1;
+       ipu_channel_params.npb = 31;    /* 16 pixels per burst */
+       ipu_channel_params.pfs = 7;             /* 1->4:2:2 non-interleaved, 7->rgb */
+
+       switch (display_buffer.bpp) {
+       case 32:
+               ipu_channel_params.bpp = 0;
+               break;
+       case 24:
+               ipu_channel_params.bpp = 1;
+               break;
+       case 18:
+               ipu_channel_params.bpp = 2;
+               break;
+       case 16:
+               ipu_channel_params.bpp = 3;
+               break;
+       default:
+               diag_printf("%s: unsupported bpp value: %d\n", __FUNCTION__,
+                                       display_buffer.bpp);
+               return;
+       }
+
+       switch (display_buffer.dataFormat) {
+       case RGB565:
+               ipu_channel_params.wid0 = 5 - 1;
+               ipu_channel_params.wid1 = 6 - 1;
+               ipu_channel_params.wid2 = 5 - 1;
+               ipu_channel_params.wid3 = 0;
+               ipu_channel_params.ofs0 = 0;
+               ipu_channel_params.ofs1 = 5;
+               ipu_channel_params.ofs2 = 11;
+               ipu_channel_params.ofs3 = 16;
+               break;
+
+       case RGB666:
+               ipu_channel_params.wid0 = 6 - 1;
+               ipu_channel_params.wid1 = 6 - 1;
+               ipu_channel_params.wid2 = 6 - 1;
+               ipu_channel_params.wid3 = 0;
+               ipu_channel_params.ofs0 = 0;
+               ipu_channel_params.ofs1 = 6;
+               ipu_channel_params.ofs2 = 12;
+               ipu_channel_params.ofs3 = 18;
+               break;
+
+       case RGB888:
+               ipu_channel_params.wid0 = 8 - 1;
+               ipu_channel_params.wid1 = 8 - 1;
+               ipu_channel_params.wid2 = 8 - 1;
+               ipu_channel_params.wid3 = 0;
+               ipu_channel_params.ofs0 = 0;
+               ipu_channel_params.ofs1 = 8;
+               ipu_channel_params.ofs2 = 16;
+               ipu_channel_params.ofs3 = 24;
+               break;
+
+       case RGBA8888:
+               ipu_channel_params.wid0 = 8 - 1;
+               ipu_channel_params.wid1 = 8 - 1;
+               ipu_channel_params.wid2 = 8 - 1;
+               ipu_channel_params.wid3 = 8 - 1;
+               ipu_channel_params.ofs0 = 0;
+               ipu_channel_params.ofs1 = 8;
+               ipu_channel_params.ofs2 = 16;
+               ipu_channel_params.ofs3 = 24;
+               break;
+
+       default:
+               diag_printf("%s: unsupported data format: %d\n", __FUNCTION__,
+                                       display_buffer.dataFormat);
+               return;
+       }
+       ipu_channel_params.bm = 0;
+       ipu_channel_params.hf = 0;
+       ipu_channel_params.vf = 0;
+       ipu_channel_params.id = 0;
+       ipu_idmac_interleaved_channel_config(ipu_channel_params);
+
+       ipu_idmac_channel_mode_sel(display_buffer.channel, 0);
+       ipu_idmac_channel_enable(display_buffer.channel, 1);
+}
+
+void fastlogo_dmfc(void)
+{
+       ipu_dmfc_fifo_allocate(display_buffer.channel, 1, 0, 4);
+}
+
+void fastlogo_dc(void)
+{
+       const int display_port = 0;
+
+       //***************************************************/
+       //DI CONFIGURATION
+       //****************************************************/
+       /* MICROCODE */
+       dc_microcode_t microcode;
+       microcode.addr = 4;
+       microcode.stop = 1;
+       microcode.opcode = "WROD";
+       microcode.lf = 0;
+       microcode.af = 0;
+       microcode.operand = 0;
+       microcode.mapping = 2;
+       microcode.waveform = 1;
+       microcode.gluelogic = 0;
+       microcode.sync = 5;
+       ipu_dc_microcode_config(microcode);
+
+       ipu_dc_microcode_event(1, "NEW_DATA", 1, 4);
+
+       /* WRITE_CHAN */
+       ipu_dc_write_channel_config(display_buffer.channel, display_port, 0, 0);
+
+       /* DISP_CONF */
+       ipu_dc_display_config(display_port, 2 /* paralell */, 0,
+                                               display_buffer.width);
+
+       /* output data pixel format */
+       ipu_dc_map(1, RGB888);
+}
+
+void fastlogo_di(void)
+{
+       di_sync_wave_gen_t syncWaveformGen = { 0 };
+       int clkUp, clkDown;
+       int hSyncStartWidth = 36;
+       int hSyncWidth = 96;
+       int hSyncEndWidth = 76;
+       int delayH2V = display_buffer.width;
+       int hDisp = display_buffer.width;
+       int vSyncStartWidth = 11;
+       int vSyncWidth = 2;
+       int vSyncEndWidth = 32;
+       int vDisp = display_buffer.height;
+       int ipuClk = 133000000;         // ipu clk is 133M
+       int typPixClk = 24000000;//25175000;   // typical value of pixel clock
+       int div = (int)((float)ipuClk / (float)typPixClk + 0.5);        // get the nearest value of typical pixel clock
+
+       /* DI0_SCR, set the screen height */
+       ipu_di_screen_set(0, vDisp + vSyncStartWidth + vSyncWidth + vSyncEndWidth - 1);
+
+       /* set DI_PIN15 to be waveform according to DI data wave set 3 */
+       ipu_di_pointer_config(0, 0, div - 1, div - 1, 0, 0, 0, 0, 0, 2, 0, 0);
+
+       /* set the up & down of data wave set 3. */
+       ipu_di_waveform_config(0, 0, 2, 0, div * 2);    // one bit for fraction part
+
+       /* set clk for DI0, generate the base clock of DI0. */
+       clkUp = div - 2;
+       clkDown = clkUp * 2;
+       ipu_di_bsclk_gen(0, div << 4, clkUp, clkDown);
+
+       /*
+         DI0 configuration:
+         hsync    -   DI0 pin 3
+         vsync    -   DI0 pin 2
+         data_en  -   DI0 pin 15
+         clk      -   DI0 disp clk
+         COUNTER 2  for VSYNC
+         COUNTER 3  for HSYNC
+       */
+       /* internal HSYNC */
+       syncWaveformGen.runValue = hDisp + hSyncStartWidth + hSyncWidth + hSyncEndWidth - 1;
+       syncWaveformGen.runResolution = DI_COUNTER_BASECLK + 1;
+       syncWaveformGen.offsetValue = 0;
+       syncWaveformGen.offsetResolution = 0;
+       syncWaveformGen.cntAutoReload = 1;
+       syncWaveformGen.stepRepeat = 0;
+       syncWaveformGen.cntClrSel = 0;
+       syncWaveformGen.cntPolarityGenEn = 0;
+       syncWaveformGen.cntPolarityTrigSel = 0;
+       syncWaveformGen.cntPolarityClrSel = 0;
+       syncWaveformGen.cntUp = 0;
+       syncWaveformGen.cntDown = 1;
+       ipu_di_sync_config(0, DI_COUNTER_IHSYNC, syncWaveformGen);
+
+       /* OUTPUT HSYNC */
+       syncWaveformGen.runValue = hDisp + hSyncStartWidth + hSyncWidth + hSyncEndWidth - 1;
+       syncWaveformGen.runResolution = DI_COUNTER_BASECLK + 1;
+       syncWaveformGen.offsetValue = delayH2V;
+       syncWaveformGen.offsetResolution = DI_COUNTER_BASECLK + 1;
+       syncWaveformGen.cntAutoReload = 1;
+       syncWaveformGen.stepRepeat = 0;
+       syncWaveformGen.cntClrSel = 0;
+       syncWaveformGen.cntPolarityGenEn = 0;
+       syncWaveformGen.cntPolarityTrigSel = 0;
+       syncWaveformGen.cntPolarityClrSel = 0;
+       syncWaveformGen.cntUp = 0;
+       syncWaveformGen.cntDown = div * hSyncWidth;
+       ipu_di_sync_config(0, DI_COUNTER_OHSYNC, syncWaveformGen);
+
+       /* Output Vsync */
+       syncWaveformGen.runValue = vDisp + vSyncStartWidth + vSyncWidth + vSyncEndWidth - 1;
+       syncWaveformGen.runResolution = DI_COUNTER_IHSYNC + 1;
+       syncWaveformGen.offsetValue = 0;
+       syncWaveformGen.offsetResolution = 0;
+       syncWaveformGen.cntAutoReload = 1;
+       syncWaveformGen.stepRepeat = 0;
+       syncWaveformGen.cntClrSel = 0;
+       syncWaveformGen.cntPolarityGenEn = 1;
+       syncWaveformGen.cntPolarityTrigSel = 2;
+       syncWaveformGen.cntPolarityClrSel = 0;
+       syncWaveformGen.cntUp = 0;
+       syncWaveformGen.cntDown = vSyncWidth;
+       ipu_di_sync_config(0, DI_COUNTER_OVSYNC, syncWaveformGen);
+
+       /* Active Lines start points */
+       syncWaveformGen.runValue = 0;
+       syncWaveformGen.runResolution = DI_COUNTER_OHSYNC + 1;
+       syncWaveformGen.offsetValue = vSyncWidth;
+       syncWaveformGen.offsetResolution = DI_COUNTER_OHSYNC + 1;
+       syncWaveformGen.cntAutoReload = 0;
+       syncWaveformGen.stepRepeat = vDisp;
+       syncWaveformGen.cntClrSel = DI_COUNTER_OVSYNC + 1;
+       syncWaveformGen.cntPolarityGenEn = 0;
+       syncWaveformGen.cntPolarityTrigSel = 0;
+       syncWaveformGen.cntPolarityClrSel = 0;
+       syncWaveformGen.cntUp = 0;
+       syncWaveformGen.cntDown = 0;
+       ipu_di_sync_config(0, DI_COUNTER_ALINE, syncWaveformGen);
+
+       /* Active clock start points */
+       syncWaveformGen.runValue = 0;
+       syncWaveformGen.runResolution = DI_COUNTER_BASECLK + 1;
+       syncWaveformGen.offsetValue = hSyncWidth;
+       syncWaveformGen.offsetResolution = DI_COUNTER_BASECLK + 1;
+       syncWaveformGen.cntAutoReload = 0;
+       syncWaveformGen.stepRepeat = hDisp;
+       syncWaveformGen.cntClrSel = DI_COUNTER_ALINE + 1;
+       syncWaveformGen.cntPolarityGenEn = 0;
+       syncWaveformGen.cntPolarityTrigSel = 0;
+       syncWaveformGen.cntPolarityClrSel = 0;
+       syncWaveformGen.cntUp = 0;
+       syncWaveformGen.cntDown = 0;
+       ipu_di_sync_config(0, DI_COUNTER_ACLOCK, syncWaveformGen);
+
+       ipu_di_general_set(0, 1, 2, 1, 0);
+}
diff --git a/packages/hal/arm/mx53/karo/v1_0/src/redboot_cmds.c b/packages/hal/arm/mx53/karo/v1_0/src/redboot_cmds.c
new file mode 100644 (file)
index 0000000..0372649
--- /dev/null
@@ -0,0 +1,216 @@
+//==========================================================================
+//
+//     redboot_cmds.c
+//
+//     Board [platform] specific RedBoot commands
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+#include <redboot.h>
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/plf_mmap.h>
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
+
+#ifdef CYGSEM_REDBOOT_FLASH_CONFIG
+#include <flash_config.h>
+
+#if (REDBOOT_IMAGE_SIZE != CYGBLD_REDBOOT_MIN_IMAGE_SIZE)
+#error REDBOOT_IMAGE_SIZE != CYGBLD_REDBOOT_MIN_IMAGE_SIZE
+#endif
+
+#endif //CYGSEM_REDBOOT_FLASH_CONFIG
+
+#ifdef CYGPKG_IO_FLASH
+#include <cyg/io/flash.h>
+#endif
+
+char HAL_PLATFORM_EXTRA[40] = "PASS x.x [x32 DDR]";
+
+static void runImg(int argc, char *argv[]);
+static void do_mem(int argc, char *argv[]);
+
+RedBoot_cmd("mem",
+                       "Set a memory location",
+                       "[-h|-b] [-n] [-a <address>] <data>",
+                       do_mem
+       );
+
+RedBoot_cmd("run",
+                       "Run an image at a location with MMU off",
+                       "[<virtual addr>]",
+                       runImg
+       );
+
+static void do_mem(int argc, char *argv[])
+{
+       struct option_info opts[4];
+       bool mem_half_word, mem_byte;
+       bool no_verify;
+       bool addr_set;
+       unsigned long address;
+       unsigned int value;
+       int ret;
+       init_opts(&opts[0], 'b', false, OPTION_ARG_TYPE_FLG,
+                       &mem_byte, NULL, "write a byte");
+       init_opts(&opts[1], 'h', false, OPTION_ARG_TYPE_FLG,
+                       &mem_half_word, NULL, "write a half-word");
+       init_opts(&opts[2], 'a', true, OPTION_ARG_TYPE_NUM,
+                       &address, &addr_set, "address to write to");
+       init_opts(&opts[3], 'n', false, OPTION_ARG_TYPE_FLG,
+                       &no_verify, NULL, "noverify");
+
+       ret = scan_opts(argc, argv, 1, opts, sizeof(opts) / sizeof(opts[0]),
+                                       &value, OPTION_ARG_TYPE_NUM, "value to be written");
+       if (ret == 0) {
+               return;
+       }
+       if (!addr_set) {
+               diag_printf("** Error: '-a <address>' must be specified\n");
+               return;
+       }
+       if (ret == argc + 1) {
+               diag_printf("** Error: non-option argument '<value>' must be specified\n");
+               return;
+       }
+       if (mem_byte && mem_half_word) {
+               diag_printf("** Error: Should not specify both byte and half-word access\n");
+       } else if (mem_byte) {
+               value &= 0xff;
+               *(volatile cyg_uint8*)address = (cyg_uint8)value;
+               if (no_verify) {
+                       diag_printf("  Set 0x%08lX to 0x%02X\n", address, value);
+               } else {
+                       diag_printf("  Set 0x%08lX to 0x%02X (result 0x%02X)\n",
+                                               address, value, (int)*(cyg_uint8*)address );
+               }
+       } else if (mem_half_word) {
+               if (address & 1) {
+                       diag_printf("** Error: address for half-word access must be half-word aligned\n");
+               } else {
+                       value &= 0xffff;
+                       *(volatile cyg_uint16*)address = (cyg_uint16)value;
+                       if (no_verify) {
+                               diag_printf("  Set 0x%08lX to 0x%04X\n", address, value);
+                       } else {
+                               diag_printf("  Set 0x%08lX to 0x%04X (result 0x%04X)\n",
+                                                       address, value, (int)*(cyg_uint16*)address);
+                       }
+               }
+       } else {
+               if (address & 3) {
+                       diag_printf("** Error: address for word access must be word aligned\n");
+               } else {
+                       *(volatile cyg_uint32*)address = (cyg_uint32)value;
+                       if (no_verify) {
+                               diag_printf("  Set 0x%08lX to 0x%08X\n", address, value);
+                       } else {
+                               diag_printf("  Set 0x%08lX to 0x%08X (result 0x%08X)\n",
+                                                       address, value, (int)*(cyg_uint32*)address);
+                       }
+               }
+       }
+}
+
+void launchRunImg(unsigned long addr)
+{
+       asm volatile ("mov r1, r0;");
+       HAL_MMU_OFF();
+       asm volatile (
+               "mov r11, #0;"
+               "mov r12, #0;"
+               "mrs r10, cpsr;"
+               "bic r10, r10, #0xF0000000;"
+               "msr cpsr_f, r10;"
+               "mov pc, r1"
+               );
+}
+
+static void runImg(int argc,char *argv[])
+{
+       unsigned int virt_addr, phys_addr;
+
+       // Default physical entry point for Symbian
+       if (entry_address == 0xFFFFFFFF)
+               virt_addr = 0x800000;
+       else
+               virt_addr = entry_address;
+
+       if (!scan_opts(argc, argv, 1, 0, 0, &virt_addr,
+                                       OPTION_ARG_TYPE_NUM, "virtual address"))
+               return;
+
+       if (entry_address != 0xFFFFFFFF)
+               diag_printf("load entry_address=0x%lx\n", entry_address);
+       HAL_VIRT_TO_PHYS_ADDRESS(virt_addr, phys_addr);
+
+       diag_printf("virt_addr=0x%x\n",virt_addr);
+       diag_printf("phys_addr=0x%x\n",phys_addr);
+
+       launchRunImg(phys_addr);
+}
+
+#if defined(CYGSEM_REDBOOT_FLASH_CONFIG) && defined(CYG_HAL_STARTUP_ROMRAM)
+
+RedBoot_cmd("romupdate",
+                       "Update Redboot with currently running image",
+                       "",
+                       romupdate
+       );
+
+#ifdef CYGPKG_IO_FLASH
+void romupdate(int argc, char *argv[])
+{
+       void *err_addr, *base_addr;
+       int stat;
+
+       base_addr = (void*)(MXC_NAND_BASE_DUMMY + CYGBLD_REDBOOT_FLASH_BOOT_OFFSET);
+       diag_printf("Updating RedBoot in NAND flash\n");
+
+       // Erase area to be programmed
+       if ((stat = flash_erase(base_addr, CYGBLD_REDBOOT_MIN_IMAGE_SIZE, &err_addr)) != 0) {
+               diag_printf("Can't erase region at %p: %s\n",
+                                       err_addr, flash_errmsg(stat));
+               return;
+       }
+       // Now program it
+       if ((stat = flash_program(base_addr, ram_end,
+                                                                       CYGBLD_REDBOOT_MIN_IMAGE_SIZE, &err_addr)) != 0) {
+               diag_printf("Can't program region at %p: %s\n",
+                                       err_addr, flash_errmsg(stat));
+       }
+}
+#endif //CYGPKG_IO_FLASH
+#endif /* CYG_HAL_STARTUP_ROMRAM */
diff --git a/packages/hal/arm/mx53/karo/v1_0/src/tx53_misc.c b/packages/hal/arm/mx53/karo/v1_0/src/tx53_misc.c
new file mode 100644 (file)
index 0000000..39de7b5
--- /dev/null
@@ -0,0 +1,804 @@
+//==========================================================================
+//
+//     tx53_misc.c
+//
+//     HAL misc board support code for the tx53
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//========================================================================*/
+
+#include <stdlib.h>
+#include <redboot.h>
+#include <string.h>
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h>                // base types
+#include <cyg/infra/cyg_trac.h>                // tracing macros
+#include <cyg/infra/cyg_ass.h>         // assertion macros
+
+#include <cyg/hal/hal_io.h>                    // IO macros
+#include <cyg/hal/hal_arch.h>          // Register state info
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_intr.h>          // Interrupt names
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_soc.h>           // Hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
+
+#include <cyg/infra/diag.h>                    // diag_printf
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+/* MMU table definitions */
+#define SD_P0          (RAM_BANK0_BASE >> 20)                  /* physical RAM bank 0 address */
+#define SD_C0          SD_P0                                                   /* virtual address for cached 1:1 mapping */
+#define SD_S0          (RAM_BANK0_SIZE >> 20)                  /* RAM bank 0 size */
+#define SD_U0          (UNCACHED_RAM_BASE_VIRT >> 20)
+#ifdef RAM_BANK1_SIZE
+#define SD_P1          (RAM_BANK1_BASE >> 20)                  /* physical RAM bank 1 address */
+#define SD_C1          (SD_P0 + SD_S0)
+#define SD_S1          (RAM_BANK1_SIZE >> 20)                  /* RAM bank 1 size */
+#define SD_U1          (SD_U0 + SD_S0)
+#define SD_HI          (SD_P1 + (SD_S1 - 1))
+#endif
+
+static unsigned long ttb_base = RAM_BANK0_BASE + 0x4000;
+
+void hal_mmu_init(void)
+{
+       unsigned long i;
+       /*
+        * Set the TTB register
+        */
+       asm volatile ("mcr  p15,0,%0,c2,c0,0" : : "r"(ttb_base));
+
+       /*
+        * Set the Domain Access Control Register
+        */
+       i = ARM_ACCESS_DACR_DEFAULT;
+       asm volatile ("mcr  p15,0,%0,c3,c0,0" : : "r"(i) /*:*/);
+
+       /*
+        * First clear all TT entries - ie Set them to Faulting
+        */
+       memset((void *)ttb_base, 0, ARM_FIRST_LEVEL_PAGE_TABLE_SIZE);
+
+       /*                 Physical      Virtual         Size                   Attributes                                access permissions            Function */
+       /*                 Base  Base     MB                     cached?           buffered?                                                                                     */
+       /*                 xxx00000      xxx00000                                                                                */
+       X_ARM_MMU_SECTION(0x000, 0x200, 0x001, ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* Boot Rom */
+//     X_ARM_MMU_SECTION(0x1FF, 0x1FF, 0x001, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* IRAM */
+       X_ARM_MMU_SECTION(0x180, 0x180, 0x080, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* IPUv3D */
+       X_ARM_MMU_SECTION(0x500, 0x500, 0x200, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Internal Registers */
+       X_ARM_MMU_SECTION(SD_P0, 0x000, SD_S0, ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+       X_ARM_MMU_SECTION(SD_P0, SD_C0, SD_S0, ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+       X_ARM_MMU_SECTION(SD_P0, SD_U0, SD_S0, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM (uncached) */
+#ifdef RAM_BANK1_SIZE
+       X_ARM_MMU_SECTION(SD_P1, SD_S0, SD_S1, ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+       X_ARM_MMU_SECTION(SD_P1, SD_C1, SD_S1, ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+       X_ARM_MMU_SECTION(SD_P1, SD_U1, SD_S1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+       /* make sure the last MiB in the upper bank of SDRAM (where RedBoot resides)
+        * has a unity mapping (required when switching MMU on) */
+       X_ARM_MMU_SECTION(SD_HI, SD_HI, 0x001, ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RO_RO); /* SDRAM bank1 identity mapping */
+#endif
+       X_ARM_MMU_SECTION(0xF40, 0xF40, 0x040, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* CS1 EIM control & NFC buffer */
+}
+
+static inline void set_reg(CYG_ADDRESS addr, CYG_WORD32 set, CYG_WORD32 clr)
+{
+       CYG_WORD32 val;
+
+       HAL_READ_UINT32(addr, val);
+       val = (val & ~clr) | set;
+       HAL_WRITE_UINT32(addr, val);
+}
+
+static inline void setup_gpio(int grp, int bit)
+{
+       CYG_ADDRESS base = MX53_GPIO_ADDR(grp);
+
+       if (base == 0)
+               return;
+       set_reg(base + GPIO_DR, 0, 1 << bit);
+       set_reg(base + GPIO_GDIR, 1 << bit, 0);
+}
+
+//
+// Platform specific initialization
+//
+#define PAD_CTL_UART_OUT               MUX_PAD_CTRL(PAD_CTL_PKE | PAD_CTL_PUE | \
+                                                       PAD_CTL_PUS_100K_DOWN | PAD_CTL_DSE_HIGH | \
+                                                       PAD_CTL_SRE_FAST)
+#define PAD_CTL_UART_IN                (MUX_PAD_CTRL(PAD_CTL_HYS) | PAD_CTL_UART_OUT)
+
+static iomux_v3_cfg_t tx53_uart_pads[] = {
+       MX53_PAD_PATA_DIOW__UART1_TXD_MUX | PAD_CTL_UART_OUT,
+       MX53_PAD_PATA_DMACK__UART1_RXD_MUX | PAD_CTL_UART_IN,
+
+       MX53_PAD_PATA_DMARQ__UART2_TXD_MUX | PAD_CTL_UART_OUT,
+       MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX | PAD_CTL_UART_IN,
+
+       MX53_PAD_PATA_CS_0__UART3_TXD_MUX | PAD_CTL_UART_OUT,
+       MX53_PAD_PATA_CS_1__UART3_RXD_MUX | PAD_CTL_UART_IN,
+};
+
+static void uart_gpio_init(void)
+{
+       mx53_iomux_setup_pads(tx53_uart_pads, CYG_NELEM(tx53_uart_pads));
+}
+
+/* GPIOs to set up for TX53/Starterkit-5:
+   Function  FCT  GPIO        Pad    IOMUXC SW_PAD  SW_INP mode
+                                     OFFSET  CTRL    SEL
+FEC_REF_CLK   0   1,23 FEC_REF_CLK   0x24c   0x5c8
+FEC_MDC       0   1,31 FEC_MDC       0x26c   0x5e8
+FEC_MDIO      0   1,22 FEC_MDIO      0x248   0x5c4  0x804  1
+FEC_RXD0      0   1,27 FEC_RXD0      0x25c   0x5d8
+FEC_RXD1      0   1,26 FEC_RXD1      0x258   0x5d4
+FEC_RX_ER     0   1,24 FEC_RX_ER     0x250   0x5cc
+FEC_TX_EN     0   1,28 FEC_TX_EN     0x260   0x5dc
+FEC_TXD0      0   1,30 FEC_TXD0      0x268   0x5e4
+FEC_TXD1      0   1,29 FEC_TXD1      0x264   0x5e0
+FEC_CRS_DV    0   1,25 FEC_CRS_DV    0x254   0x5d0
+
+FEC_RESET#    1   7,6  PATA_DA_0     0x290   0x610
+FEC_ENABLE    1   3,20 EIM_D20       0x128   0x470
+*/
+static iomux_v3_cfg_t tx53_fec_pads[] = {
+       /* setup FEC PHY pins for GPIO function (with SION set) */
+       MX53_PAD_FEC_REF_CLK__GPIO_1_23 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_MDC__GPIO_1_31 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_MDIO__GPIO_1_22 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_RXD0__GPIO_1_27 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_RXD1__GPIO_1_26 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_RX_ER__GPIO_1_24 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_TX_EN__GPIO_1_28 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_TXD0__GPIO_1_30 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_TXD1__GPIO_1_29 | IOMUX_CONFIG_SION,
+       MX53_PAD_FEC_CRS_DV__GPIO_1_25 | IOMUX_CONFIG_SION,
+
+       /* PHY reset */
+       MX53_PAD_PATA_DA_0__GPIO_7_6 | IOMUX_CONFIG_SION,
+       /* PHY power */
+       MX53_PAD_EIM_D20__GPIO_3_20 | IOMUX_CONFIG_SION,
+};
+
+static iomux_v3_cfg_t tx53_i2c_pads[] = {
+       MX53_PAD_EIM_D21__I2C1_SCL | MUX_PAD_CTRL(PAD_CTL_DSE_HIGH |
+                                                                                       PAD_CTL_HYS |
+                                                                                       PAD_CTL_ODE) |
+                                                               IOMUX_CONFIG_SION,
+       MX53_PAD_EIM_D28__I2C1_SDA | MUX_PAD_CTRL(PAD_CTL_DSE_HIGH |
+                                                                                       PAD_CTL_HYS |
+                                                                                       PAD_CTL_ODE) |
+                                                               IOMUX_CONFIG_SION,
+};
+
+static void fec_gpio_init(void)
+{
+       /* setup GPIO data register to 0 and DDIR output for FEC PHY pins */
+       setup_gpio(1, 23);
+       setup_gpio(1, 31);
+       setup_gpio(1, 22);
+       setup_gpio(1, 25);
+       setup_gpio(1, 27);
+       setup_gpio(1, 26);
+       setup_gpio(1, 24);
+       setup_gpio(1, 28);
+       setup_gpio(1, 30);
+       setup_gpio(1, 29);
+
+       setup_gpio(7, 6);
+       setup_gpio(3, 20);
+
+       /* setup input mux for FEC pins */
+       mx53_iomux_setup_pads(tx53_fec_pads, CYG_NELEM(tx53_fec_pads));
+       mx53_iomux_setup_pads(tx53_i2c_pads, CYG_NELEM(tx53_i2c_pads));
+}
+
+#ifdef CYGHWR_MX53_LCD_LOGO
+static iomux_v3_cfg_t tx53_lcd_pads[] = {
+#define PAD_CTL_LCD            MUX_PAD_CTRL(PAD_CTL_DSE_HIGH | PAD_CTL_DSE_HIGH)
+       MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0 | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT1, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT2, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT3, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT4, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT5, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT6, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT7, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT8, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT9, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT10, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT12, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT13, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT14, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT15, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT16, | PAD_CTL_LCD,
+       MX53_PAD_DISP0_DAT17, | PAD_CTL_LCD,
+
+       /* HSYNC, VSYNC */
+       MX53_PAD_DI0_PIN2__IPU_DI0_PIN2 | PAD_CTL_LCD,
+       MX53_PAD_DI0_PIN3__IPU_DI0_PIN3 | PAD_CTL_LCD,
+       /* OE_ACD */
+       MX53_PAD_DI0_PIN15__IPU_DI0_PIN15 | MUX_PAD_CRTL(PAD_CTL_LCD | PAD_CTL_PKE),
+       MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK | MUX_PAD_CTRL(PAD_CTL_LCD),
+
+       /* LCD Power Enable */
+       MX53_PAD_EIM_EB3__GPIO_2_31,
+       /* LCD Reset */
+       MX53_PAD_EIM_D29__GPIO_3_29,
+       /* LCD backlight */
+       MX53_PAD_GPIO_1__GPIO_1_1,
+};
+
+void mxc_ipu_iomux_config(void)
+{
+       /* LCD Power Enable GPIO_2_31 (active High) */
+       gpio_clr_bit(2, 31);
+
+       /* LCD Reset GPIO_3_29 (active Low) */
+       gpio_clr_bit(3, 29);
+
+       /* LCD Backlight GPIO_1_1 (PWM 0: full brightness 1: off) */
+       gpio_set_bit(1, 1);
+
+       mx53_iomux_setup_pads(tx53_lcd_pads, CYG_NELEM(tx53_lcd_pads));
+}
+RedBoot_init(mxc_ipu_iomux_config, RedBoot_INIT_SECOND);
+#endif
+
+//
+// Platform specific initialization
+//
+
+void plf_hardware_init(void)
+{
+#ifdef RAM_BANK1_SIZE
+       /* destroy mapping for high area in SDRAM */
+       X_ARM_MMU_SECTION(SD_HI, 0, 0, 0, 0, ARM_ACCESS_PERM_NONE_NONE);
+#endif
+       uart_gpio_init();
+       fec_gpio_init();
+
+       /* NFC setup */
+       writel(readl(NFC_FLASH_CONFIG3_REG) |
+                       (1 << 15) | /* assert RBB_MODE  (see Errata: ENGcm09970) */
+                       (1 << 20) | /* assert NO_SDMA */
+                       (1 << 3), /* set bus width to 8bit */
+                       NFC_FLASH_CONFIG3_REG);
+}
+
+#define SOC_I2C1_BASE          UL(0x63fc8000)
+
+/* Address offsets of the I2C registers */
+#define MXC_IADR                               0x00    /* Address Register */
+#define MXC_IFDR                               0x04    /* Freq div register */
+#define MXC_I2CR                               0x08    /* Control regsiter */
+#define MXC_I2SR                               0x0C    /* Status register */
+#define MXC_I2DR                               0x10    /* Data I/O register */
+
+/* Bit definitions of I2CR */
+#define MXC_I2CR_IEN                   0x0080
+#define MXC_I2CR_IIEN                  0x0040
+#define MXC_I2CR_MSTA                  0x0020
+#define MXC_I2CR_MTX                   0x0010
+#define MXC_I2CR_TXAK                  0x0008
+#define MXC_I2CR_RSTA                  0x0004
+
+/* Bit definitions of I2SR */
+#define MXC_I2SR_ICF                   0x0080
+#define MXC_I2SR_IAAS                  0x0040
+#define MXC_I2SR_IBB                   0x0020
+#define MXC_I2SR_IAL                   0x0010
+#define MXC_I2SR_SRW                   0x0004
+#define MXC_I2SR_IIF                   0x0002
+#define MXC_I2SR_RXAK                  0x0001
+
+#define LP3972_SLAVE_ADDR      0x34
+
+static inline cyg_uint8 i2c_addr(cyg_uint8 addr, int rw)
+{
+       return (addr << 1) | !!rw;
+}
+
+static inline cyg_uint8 tx53_i2c_read(cyg_uint8 reg)
+{
+       cyg_uint16 val;
+       HAL_READ_UINT16(SOC_I2C1_BASE + reg, val);
+       return val;
+}
+
+static inline void tx53_i2c_write(cyg_uint8 reg, cyg_uint8 val)
+{
+       HAL_WRITE_UINT16(SOC_I2C1_BASE + reg, val);
+}
+
+static inline void tx53_i2c_set_reg(cyg_uint8 reg, cyg_uint8 set, cyg_uint8 clr)
+{
+       cyg_uint8 val = tx53_i2c_read(reg);
+       val = (val & ~clr) | set;
+       tx53_i2c_write(reg, val);
+}
+
+static void tx53_i2c_disable(void)
+{
+       /* disable I2C controller */
+       tx53_i2c_set_reg(MXC_I2CR, 0, MXC_I2CR_IEN);
+       /* disable I2C clock */
+       set_reg(CCM_BASE_ADDR + CLKCTL_CGPR, 0, (1 << 4));
+}
+
+static int tx53_i2c_init(void)
+{
+       int ret;
+
+       /* enable I2C clock */
+       set_reg(CCM_BASE_ADDR + CLKCTL_CGPR, (1 << 4), 0);
+
+       /* setup I2C clock divider */
+       tx53_i2c_write(MXC_IFDR, 0x2c);
+       tx53_i2c_write(MXC_I2SR, 0);
+
+       /* enable I2C controller in master mode */
+       tx53_i2c_write(MXC_I2CR, MXC_I2CR_IEN);
+
+       ret = tx53_i2c_read(MXC_I2SR);
+       if (ret & MXC_I2SR_IBB) {
+               diag_printf("I2C bus busy\n");
+               tx53_i2c_disable();
+               return -EIO;
+       }
+       return 0;
+}
+
+static int tx53_i2c_wait_busy(int set)
+{
+       int ret;
+       const int max_loops = 100;
+       int retries = max_loops;
+
+       cyg_uint8 mask = set ? MXC_I2SR_IBB : 0;
+
+       while ((ret = mask ^ (tx53_i2c_read(MXC_I2SR) & MXC_I2SR_IBB)) && --retries > 0) {
+               HAL_DELAY_US(3);
+       }
+       if (ret != 0) {
+               diag_printf("i2c: Waiting for IBB to %s timed out\n", set ? "set" : "clear");
+               return -ETIMEDOUT;
+       }
+       return ret;
+}
+
+static int tx53_i2c_wait_tc(void)
+{
+       int ret;
+       const int max_loops = 1000;
+       int retries = max_loops;
+
+       while (!((ret = tx53_i2c_read(MXC_I2SR)) & MXC_I2SR_IIF) && --retries > 0) {
+               HAL_DELAY_US(3);
+       }
+       tx53_i2c_write(MXC_I2SR, 0);
+       if (!(ret & MXC_I2SR_IIF)) {
+               diag_printf("i2c: Wait for transfer completion timed out\n");
+               return -ETIMEDOUT;
+       }
+       if (ret & MXC_I2SR_ICF) {
+               if (tx53_i2c_read(MXC_I2CR) & MXC_I2CR_MTX) {
+                       if (!(ret & MXC_I2SR_RXAK)) {
+                               ret = 0;
+                       } else {
+                               diag_printf("i2c: No ACK received after writing data\n");
+                               return -ENXIO;
+                       }
+               }
+       }
+       return ret;
+}
+
+static int tx53_i2c_stop(void)
+{
+       int ret;
+
+       tx53_i2c_set_reg(MXC_I2CR, 0, MXC_I2CR_MSTA | MXC_I2CR_MTX);
+       ret = tx53_i2c_wait_busy(0);
+       return ret;
+}
+
+static int tx53_i2c_start(cyg_uint8 addr, int rw)
+{
+       int ret;
+
+       ret = tx53_i2c_init();
+       if (ret < 0) {
+               diag_printf("I2C bus init failed; cannot switch fuse programming voltage\n");
+               return ret;
+       }
+       tx53_i2c_set_reg(MXC_I2CR, MXC_I2CR_MSTA, 0);
+       ret = tx53_i2c_wait_busy(1);
+       if (ret == 0) {
+               tx53_i2c_set_reg(MXC_I2CR, MXC_I2CR_MTX, 0);
+               tx53_i2c_write(MXC_I2DR, i2c_addr(addr, rw));
+               ret = tx53_i2c_wait_tc();
+               if (ret < 0) {
+                       tx53_i2c_stop();
+               }
+       }
+       return ret;
+}
+
+static int tx53_i2c_repeat_start(cyg_uint8 addr, int rw)
+{
+       int ret;
+
+       tx53_i2c_set_reg(MXC_I2CR, MXC_I2CR_RSTA, 0);
+       HAL_DELAY_US(3);
+       tx53_i2c_write(MXC_I2DR, i2c_addr(addr, rw));
+       ret = tx53_i2c_wait_tc();
+       if (ret < 0) {
+               tx53_i2c_stop();
+       }
+       return ret;
+}
+
+static int tx53_i2c_read_byte(void)
+{
+       int ret;
+
+       tx53_i2c_set_reg(MXC_I2CR, MXC_I2CR_TXAK, MXC_I2CR_MTX);
+       (void)tx53_i2c_read(MXC_I2DR); /* dummy read after address cycle */
+       ret = tx53_i2c_wait_tc();
+       tx53_i2c_stop();
+       if (ret < 0) {
+               return ret;
+       }
+       ret = tx53_i2c_read(MXC_I2DR);
+       return ret;
+}
+
+static int tx53_i2c_write_byte(cyg_uint8 data, int last)
+{
+       int ret;
+
+       tx53_i2c_set_reg(MXC_I2CR, MXC_I2CR_MTX, 0);
+       tx53_i2c_write(MXC_I2DR, data);
+       if ((ret = tx53_i2c_wait_tc()) < 0 || last) {
+               tx53_i2c_stop();
+       }
+       return ret;
+}
+
+static int tx53_i2c_reg_read(cyg_uint8 slave_addr, cyg_uint8 reg)
+{
+       int ret;
+
+       ret = tx53_i2c_start(slave_addr, 0);
+       if (ret < 0) {
+               return ret;
+       }
+       ret = tx53_i2c_write_byte(reg, 0);
+       if (ret < 0) {
+               return ret;
+       }
+       ret = tx53_i2c_repeat_start(slave_addr, 1);
+       if (ret < 0) {
+               return ret;
+       }
+       ret = tx53_i2c_read_byte();
+       tx53_i2c_disable();
+       return ret;
+}
+
+static int tx53_i2c_reg_write(cyg_uint8 slave_addr, cyg_uint8 reg, cyg_uint8 val)
+{
+       int ret;
+
+       ret = tx53_i2c_start(slave_addr, 0);
+       if (ret < 0) {
+               return ret;
+       }
+       ret = tx53_i2c_write_byte(reg, 0);
+       if (ret < 0) {
+               return ret;
+       }
+       ret = tx53_i2c_write_byte(val, 1);
+       tx53_i2c_disable();
+       return ret;
+}
+
+int tx53_mac_addr_program(unsigned char mac_addr[ETHER_ADDR_LEN])
+{
+       int ret = 0;
+       int i;
+
+       for (i = 0; i < ETHER_ADDR_LEN; i++) {
+               unsigned char fuse = readl(SOC_FEC_MAC_BASE + (i << 2));
+
+               if ((fuse | mac_addr[i]) != mac_addr[i]) {
+                       diag_printf("MAC address fuse cannot be programmed: fuse[%d]=0x%02x -> 0x%02x\n",
+                                               i, fuse, mac_addr[i]);
+                       return -1;
+               }
+               if (fuse != mac_addr[i]) {
+                       ret = 1;
+               }
+       }
+       if (ret == 0) {
+               return ret;
+       }
+
+       for (i = 0; i < ETHER_ADDR_LEN; i++) {
+               unsigned char fuse = readl(SOC_FEC_MAC_BASE + (i << 2));
+               int row = SOC_MAC_ADDR_FUSE + i;
+
+               if (fuse == mac_addr[i]) {
+                       continue;
+               }
+               fuse_blow_row(SOC_MAC_ADDR_FUSE_BANK, row, mac_addr[i]);
+               ret = sense_fuse(SOC_MAC_ADDR_FUSE_BANK, row, 0);
+               if (ret != mac_addr[i]) {
+                       diag_printf("Failed to verify fuse bank %d row %d; expected %02x got %02x\n",
+                                               SOC_MAC_ADDR_FUSE_BANK, row, mac_addr[i], ret);
+                       goto out;
+               }
+       }
+#ifdef SOC_MAC_ADDR_LOCK_BIT
+       fuse_blow_row(SOC_MAC_ADDR_FUSE_BANK, SOC_MAC_ADDR_LOCK_FUSE,
+                               (1 << SOC_MAC_ADDR_LOCK_BIT));
+#endif
+out:
+       return ret;
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+
+typedef void code_fun(void);
+
+void tx53_program_new_stack(void *func)
+{
+       register CYG_ADDRESS stack_ptr asm("sp");
+       register CYG_ADDRESS old_stack asm("r4");
+       register code_fun *new_func asm("r0");
+
+       old_stack = stack_ptr;
+       stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+       new_func = (code_fun*)func;
+       new_func();
+       stack_ptr = old_stack;
+}
+
+#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+#define PMIC_NAME                      "LP3972"
+#elif CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+#define PMIC_NAME                      "LT3598"
+#else
+#error Bad CYGNUM_HAL_ARM_TX53_SDRAM_TYPE
+#endif
+
+static int pmic_reg_read(cyg_uint8 reg)
+{
+       int ret;
+
+       ret = tx53_i2c_reg_read(LP3972_SLAVE_ADDR, reg);
+       if (ret < 0)
+               diag_printf("Failed to read %s reg 0x%02x %d\n", PMIC_NAME,
+                                       reg, ret);
+       return ret;
+}
+
+static int pmic_reg_write(cyg_uint8 reg, cyg_uint8 val)
+{
+       int ret;
+
+       ret = tx53_i2c_reg_write(LP3972_SLAVE_ADDR, reg, val);
+       if (ret)
+               diag_printf("Failed to write 0x%02x to %s reg 0x%02x: %d\n",
+                                       val, PMIC_NAME, reg, ret);
+       return ret;
+}
+
+#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
+int tx53_fuse_voltage(int on)
+{
+       int ret;
+
+       ret = pmic_reg_read(0x81);
+       if (ret < 0)
+               return ret;
+
+       /* Try to enable FUSE_VDD by asserting LP3972 GPIO1 */
+       ret = (ret & ~0x3) | (on ? 1 : 3);
+       ret = pmic_reg_write(0x81, ret);
+       if (ret) {
+               return ret;
+       }
+       ret = pmic_reg_read(0x81);
+       if ((ret & 0x3) != (on ? 0x1 : 0x3)) {
+               return -EIO;
+       }
+       return 0;
+}
+
+#define CORE_VOLTAGE_HIGH              0x1b
+#define CORE_VOLTAGE_LOW               0x03
+#if CYGNUM_HAL_ARM_TX53_SDRAM_SIZE == SZ_512M
+#define SDRAM_SIZE_STR                 '0'
+#else
+#if CYGNUM_HAL_ARM_TX53_CPU_CLK == 1000
+#define SDRAM_SIZE_STR                 '2'
+#else
+#define SDRAM_SIZE_STR                 '1'
+#endif /* CYGNUM_HAL_ARM_TX53_CPU_CLK == 1000 */
+#endif /* CYGNUM_HAL_ARM_TX53_SDRAM_SIZE == SZ512M */
+
+#elif CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
+int tx53_fuse_voltage(int on)
+{
+       int ret;
+
+       if (on) {
+               ret = pmic_reg_read(0x33);
+               if (ret < 0)
+                       return ret;
+               if ((ret & 0xe0) != 0xe0) {
+                       ret = pmic_reg_write(0x33, ret | 0xe0);
+                       if (ret)
+                               return ret;
+
+                       ret = pmic_reg_read(0x33);
+                       if (ret < 0)
+                               return ret;
+
+                       if ((ret & 0xe0) != 0xe0) {
+                               diag_printf("Could not adjust LT3589 LDO4 output voltage\n");
+                               return -EIO;
+                       }
+               }
+
+               ret = pmic_reg_read(0x12);
+               if (ret < 0)
+                       return ret;
+
+               if (!(ret & (1 << 6))) {
+                       ret |= 1 << 6; /* LDO4 Startup: don't wait for output < 300mV */
+                       ret = pmic_reg_write(0x12, ret);
+                       if (ret)
+                               return -EIO;
+                       ret = pmic_reg_read(0x12);
+                       if (!(ret & (1 << 6))) {
+                               diag_printf("Could not set LT3589 LDO4 Startup control\n");
+                               return -EIO;
+                       }
+               }
+       }
+       /* enable SW regulator control and all regulators (except LDO4, if !on) */
+       ret = pmic_reg_write(0x10, 0xbf | (!!on << 6));
+       if (ret)
+               return ret;
+
+       ret = pmic_reg_read(0x10);
+       if (ret < 0)
+               return ret;
+
+       if (!(ret & (1 << 6)) ^ !on) {
+               diag_printf("Could not enable LT3589 LDO4 output\n");
+               return -EIO;
+       }
+       return 0;
+}
+
+#define CORE_VOLTAGE_HIGH              0x1c
+#define CORE_VOLTAGE_LOW               0x17
+#if CYGNUM_HAL_ARM_TX53_SDRAM_SIZE == SZ_512M
+#define SDRAM_SIZE_STR                 '0'
+#else
+#define SDRAM_SIZE_STR                 '1'
+#endif
+#endif
+
+void increase_core_voltage(bool high)
+{
+       int ret;
+       const int volt = high ? CORE_VOLTAGE_HIGH : CORE_VOLTAGE_LOW;
+
+       ret = pmic_reg_read(0x23);
+       if (ret < 0) {
+               diag_printf("Failed to read core voltage: %d\n", ret);
+               return;
+       }
+
+       ret = pmic_reg_write(0x23, volt);
+       if (ret < 0) {
+               diag_printf("Failed to write core voltage: %d\n", ret);
+       }
+}
+
+static void display_board_type(void)
+{
+       char cpu_freq;
+       const char *ddr_type = _stringify(CYGNUM_HAL_ARM_TX53_SDRAM_TYPE);
+
+       switch (CYGNUM_HAL_ARM_TX53_CPU_CLK) {
+       case 800:
+               cpu_freq = '8';
+               break;
+
+       case 1000:
+               cpu_freq = '1';
+               break;
+
+       default:
+               cpu_freq = '?';
+       }
+
+       diag_printf("\nBoard Type: Ka-Ro TX53-%c%c%s%c\n",
+                               cpu_freq, CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 ? '0' : 'x',
+                               ddr_type, SDRAM_SIZE_STR);
+}
+
+static void display_board_info(void)
+{
+       display_board_type();
+}
+RedBoot_init(display_board_info, RedBoot_INIT_LAST);
+
+void mxc_i2c_init(unsigned int module_base)
+{
+       switch (module_base) {
+       case I2C1_BASE_ADDR:
+               writel(0x15, IOMUXC_BASE_ADDR + 0x12c);
+               writel(0x10c, IOMUXC_BASE_ADDR + 0x474);
+               writel(0x1, IOMUXC_BASE_ADDR + 0x814);
+
+               writel(0x15, IOMUXC_BASE_ADDR + 0x14c);
+               writel(0x10c, IOMUXC_BASE_ADDR + 0x494);
+               writel(0x1, IOMUXC_BASE_ADDR + 0x818);
+               break;
+
+       case I2C3_BASE_ADDR:
+               writel(0x11, IOMUXC_BASE_ADDR + 0x120);
+               writel(0x1fc, IOMUXC_BASE_ADDR + 0x468);
+
+               writel(0x11, IOMUXC_BASE_ADDR + 0x118);
+               writel(0x1fc, IOMUXC_BASE_ADDR + 0x460);
+               break;
+
+       default:
+               diag_printf("Invalid I2C base: 0x%x\n", module_base);
+       }
+}
diff --git a/packages/hal/arm/mx53/var/v2_0/cdl/hal_arm_soc.cdl b/packages/hal/arm/mx53/var/v2_0/cdl/hal_arm_soc.cdl
new file mode 100644 (file)
index 0000000..4301d79
--- /dev/null
@@ -0,0 +1,161 @@
+# ====================================================================
+#####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+## WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with eCos; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+##
+## As a special exception, if other files instantiate templates or use macros
+## or inline functions from this file, or you compile this file and link it
+## with other works to produce a work based on this file, this file does not
+## by itself cause the resulting work to be covered by the GNU General Public
+## License. However the source code for this file must still be made available
+## in accordance with section (3) of the GNU General Public License.
+##
+## This exception does not invalidate any other reasons why a work based on
+## this file might be covered by the GNU General Public License.
+##
+## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+## at http://sources.redhat.com/ecos/ecos-license/
+## -------------------------------------------
+#####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      gthomas
+# Original data:  gthomas
+# Contributors:
+# Date:           2000-05-08
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_MX53 {
+    display       "Freescale SoC architecture"
+    parent        CYGPKG_HAL_ARM
+    hardware
+    include_dir   cyg/hal
+    define_header hal_arm_soc.h
+    description   "
+        This HAL variant package provides generic
+        support for the Freescale SoC. It is also
+        necessary to select a specific target platform HAL
+        package."
+
+    implements    CYGINT_HAL_ARM_ARCH_ARM9
+    implements    CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+
+    # Let the architectural HAL see this variant's interrupts file -
+    # the SoC has no variation between targets here.
+    define_proc {
+        puts $::cdl_header "#define CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+
+        puts $::cdl_header "#define CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES 1000000"
+    }
+
+    compile       soc_diag.c soc_misc.c
+    compile -library=libextras.a cmds.c
+
+    cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK {
+        display       "Processor clock rate"
+        active_if     { CYG_HAL_STARTUP == "ROM" }
+        flavor        data
+        legal_values  150000 200000
+        default_value { CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ?
+                        CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000}
+        description   "
+           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."
+    }
+
+    # Real-time clock/counter specifics
+    cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+        display       "Real-time clock constants"
+        flavor        none
+        no_define
+
+        cdl_option CYGNUM_HAL_RTC_NUMERATOR {
+            display       "Real-time clock numerator"
+            flavor        data
+            calculated    1000000000
+        }
+        cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+            display       "Real-time clock denominator"
+            flavor        data
+            default_value 100
+            description   "
+              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_PERIOD {
+            display       "Real-time clock period"
+            flavor        data
+            calculated    (3686400/CYGNUM_HAL_RTC_DENOMINATOR)        ;# Clock for OS Timer is 3.6864MHz
+        }
+    }
+
+    # Control over hardware layout.
+    cdl_interface     CYGHWR_HAL_ARM_SOC_UART1 {
+        display   "UART1 available as diagnostic/debug channel"
+        description "
+         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 {
+        display   "UART2 available as diagnostic/debug channel"
+        description "
+         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 {
+        display   "UART3 available as diagnostic/debug channel"
+        description "
+         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 {
+        display   "UART4 available as diagnostic/debug channel"
+        description "
+         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 {
+        display   "UART5 available as diagnostic/debug channel"
+        description "
+         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."
+    }
+}
diff --git a/packages/hal/arm/mx53/var/v2_0/include/hal_cache.h b/packages/hal/arm/mx53/var/v2_0/include/hal_cache.h
new file mode 100644 (file)
index 0000000..81aad64
--- /dev/null
@@ -0,0 +1,350 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+//      hal_cache.h
+//
+//      HAL cache control API
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#include <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_soc.h>            // Variant specific hardware definitions
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+// Enable the data cache
+#define HAL_DCACHE_ENABLE_L1()                                                                                 \
+       CYG_MACRO_START                                                                                                         \
+       asm volatile (                                                                                                          \
+               "mrc p15, 0, r1, c1, c0, 0;"                                                                    \
+               "orr r1, r1, #0x0007;" /* enable DCache (also ensures                   \
+                                                                  that MMU and alignment faults                \
+                                                                  are enabled)                                  */             \
+               "mcr p15, 0, r1, c1, c0, 0"                                                                             \
+               :                                                                                                                               \
+               :                                                                                                                               \
+               : "r1" /* Clobber list */                                                                               \
+               );                                                                                                                              \
+       CYG_MACRO_END
+
+// Clean+invalidate the both D+I caches at L1 and L2 levels
+#define HAL_CACHE_FLUSH_ALL()                                                                                  \
+       CYG_MACRO_START                                                                                                         \
+       asm volatile (                                                                                                          \
+               "stmfd  sp!, {r0-r5, r7, r9-r11};"                                                              \
+               "mrc    p15, 1, r0, c0, c0, 1;" /* read clidr */                                \
+               "ands   r3, r0, #0x7000000;"    /* extract loc from clidr */    \
+               "mov    r3, r3, lsr #23;"       /* left align loc bit field */          \
+               "beq    555f;"          /* if loc is 0, then no need to clean */        \
+               "mov    r10, #0;"       /* start clean at cache level 0 */                      \
+       "111:"                                                                                                                          \
+               "add    r2, r10, r10, lsr #1;"  /* work out 3x current cache level */ \
+               "mov    r1, r0, lsr r2;"/* extract cache type bits from clidr */ \
+               "and    r1, r1, #7;"    /* mask of the bits for current cache only */ \
+               "cmp    r1, #2;"                /* see what cache we have at this level*/ \
+               "blt    444f;"                  /* skip if no cache, or just i-cache */ \
+               "mcr    p15, 2, r10, c0, c0, 0;" /* select current cache level in cssr */ \
+               "mcr    p15, 0, r10, c7, c5, 4;" /* isb to synch the new cssr & csidr */ \
+               "mrc    p15, 1, r1, c0, c0, 0;" /* read the new csidr */                \
+               "and    r2, r1, #7;"    /* extract the length of the cache lines */ \
+               "add    r2, r2, #4;"    /* add 4 (line length offset) */                \
+               "ldr    r4, =0x3ff;"                                                                                    \
+               "ands   r4, r4, r1, lsr #3;"    /* find maximum number on the way size */ \
+               "clz    r5, r4;"                /* find bit position of way size increment*/ \
+               "ldr    r7, =0x7fff;"                                                                                   \
+               "ands   r7, r7, r1, lsr #13;"   /* extract max number of the index size */ \
+       "222:"                                                                                                                          \
+               "mov    r9, r4;"        /* create working copy of max way size */       \
+       "333:"                                                                                                                          \
+               "orr    r11, r10, r9, lsl r5;"  /* factor way and cache number into r11 */ \
+               "orr    r11, r11, r7, lsl r2;"  /* factor index number into r11 */ \
+               "mcr    p15, 0, r11, c7, c14, 2;" /* clean & invalidate by set/way */ \
+               "subs   r9, r9, #1;"    /* decrement the way */                                 \
+               "bge    333b;"                                                                                                  \
+               "subs   r7, r7, #1;"    /* decrement the index */                               \
+               "bge    222b;"                                                                                                  \
+       "444:"                                                                                                                          \
+               "add    r10, r10, #2;"  /* increment cache number */                    \
+               "cmp    r3, r10;"                                                                                               \
+               "bgt    111b;"                                                                                                  \
+       "555:"                                                                                                                          \
+               "mov    r10, #0;"                /* swith back to cache level 0 */              \
+               "mcr    p15, 2, r10, c0, c0, 0;" /* select current cache level in cssr */ \
+               "mcr    p15, 0, r10, c7, c5, 4;" /* isb to synch the new cssr & csidr */ \
+               "ldmfd  sp!, {r0-r5, r7, r9-r11};"                                                              \
+       "666:"                                                                                                                          \
+               "mov    r0, #0x0;"                                                                                              \
+               "mcr    p15, 0, r0, c7, c5, 0;" /* invalidate I+BTB */                  \
+               "mcr    p15, 0, r0, c7, c10, 4;" /* drain WB */                                 \
+               :                                                                                                                               \
+               :                                                                                                                               \
+               : "r0" /* Clobber list */                                                                               \
+               );                                                                                                                              \
+       CYG_MACRO_END
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE_L1()                                                                                        \
+       CYG_MACRO_START                                                                                                         \
+       asm volatile (                                                                                                          \
+               "mrc p15, 0, r1, c1, c0, 0;"                                                                    \
+               "bic r1, r1, #0x0004;"  /* disable DCache by clearing C bit,    \
+                                                                  but not MMU and alignment faults */  \
+               "mcr p15, 0, r1, c1, c0, 0"                                                                             \
+               :                                                                                                                               \
+               :                                                                                                                               \
+               : "r1" /* Clobber list */                                                                               \
+       );                                                                                                                                      \
+       CYG_MACRO_END
+
+// Query the state of the data cache
+#define HAL_DCACHE_IS_ENABLED(_state_)                                                                 \
+       CYG_MACRO_START                                                                                                         \
+       register int reg;                                                                                                       \
+       asm volatile (                                                                                                          \
+               "mrc p15, 0, %0, c1, c0, 0;"                                                                    \
+               : "=r"(reg)                                                                                                             \
+               :                                                                                                                               \
+               );                                                                                                                              \
+       (_state_) = (0 != (4 & reg)); /* Bit 2 is DCache enable */                      \
+       CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache
+
+// Enable the instruction cache
+#define HAL_ICACHE_ENABLE_L1()                                                                                 \
+       CYG_MACRO_START                                                                                                         \
+       asm volatile (                                                                                                          \
+               "mrc p15, 0, r1, c1, c0, 0;"                                                                    \
+               "orr r1, r1, #0x1000;"                                                                                  \
+               "orr r1, r1, #0x0003;"  /* enable ICache (also ensures                  \
+                                                                  that MMU and alignment faults                \
+                                                                  are enabled)                                  */             \
+               "mcr p15, 0, r1, c1, c0, 0"                                                                             \
+               :                                                                                                                               \
+               :                                                                                                                               \
+               : "r1" /* Clobber list */                                                                               \
+               );                                                                                                                              \
+       CYG_MACRO_END
+
+// Query the state of the instruction cache
+#define HAL_ICACHE_IS_ENABLED(_state_)                                                                 \
+       CYG_MACRO_START                                                                                                         \
+       register cyg_uint32 reg;                                                                                        \
+       asm volatile (                                                                                                          \
+               "mrc p15, 0, %0, c1, c0, 0"                                                                             \
+               : "=r"(reg)                                                                                                             \
+               :                                                                                                                               \
+               );                                                                                                                              \
+       (_state_) = (0 != (0x1000 & reg)); /* Bit 12 is ICache enable */        \
+       CYG_MACRO_END
+
+// Disable the instruction cache
+#define HAL_ICACHE_DISABLE_L1()                                                                                        \
+CYG_MACRO_START                                                                                                                        \
+       asm volatile (                                                                                                          \
+               /* prepare to disable ICache (but not MMU, etc) */                              \
+               "mrc p15, 0, r2, c1, c0, 0;"                                                                    \
+               "mov r1, #0;"                                                                                                   \
+               "bic r2, r2, #0x1000;"                                                                                  \
+               /* align to cache line */                                                                               \
+               "b 1f;"                                                                                                                 \
+               ".align 5;"                                                                                                             \
+       "1:;"                                                                                                                           \
+               /* flush icache */                                                                                              \
+               "mcr p15, 0, r1, c7, c5, 0;"  /* flush ICache */                                \
+               "mcr p15, 0, r1, c8, c5, 0;"  /* flush ITLB only */                             \
+               "mcr p15, 0, r1, c7, c5, 4;"  /* flush prefetch buffer */               \
+               /* disable icache */                                                                                    \
+               "mcr p15, 0, r2, c1, c0, 0;"                                                                    \
+               "nop;" /* next few instructions may be via cache        */                      \
+               "nop;"                                                                                                                  \
+               "nop;"                                                                                                                  \
+               "nop;"                                                                                                                  \
+               "nop;"                                                                                                                  \
+               "nop;"                                                                                                                  \
+               :                                                                                                                               \
+               :                                                                                                                               \
+               : "r1","r2" /* Clobber list */                                                                  \
+               );                                                                                                                              \
+CYG_MACRO_END
+
+// Invalidate the entire cache
+#define HAL_ICACHE_INVALIDATE_ALL_L1()
+#ifdef TODO
+#define HAL_ICACHE_INVALIDATE_ALL_L1()                                                         \
+       CYG_MACRO_START                                                                                                 \
+       /* this macro can discard dirty cache lines (N/A for ICache) */ \
+       asm volatile (                                                                                                  \
+               "mov r1, #0;"                                                                                           \
+               "mcr p15, 0, r1, c7, c5, 0;"  /* flush ICache */                        \
+               "mcr p15, 0, r1, c8, c5, 0;"  /* flush ITLB only */                     \
+               "mcr p15, 0, r1, c7, c5, 4;"  /* flush prefetch buffer */       \
+               "nop;" /* next few instructions may be via cache        */              \
+               "nop;"                                                                                                          \
+               "nop;"                                                                                                          \
+               "nop;"                                                                                                          \
+               "nop;"                                                                                                          \
+               "nop;"                                                                                                          \
+               :                                                                                                                       \
+               :                                                                                                                       \
+               : "r1" /* Clobber list */                                                                       \
+               );                                                                                                                      \
+       CYG_MACRO_END
+#endif
+
+// Synchronize the contents of the cache with memory.
+// (which includes flushing out pending writes)
+#define HAL_ICACHE_SYNC()
+#ifdef TODO
+#define HAL_ICACHE_SYNC()                                                                      \
+       CYG_MACRO_START                                                                                 \
+       HAL_DCACHE_SYNC(); /* ensure data gets to RAM */                \
+       HAL_ICACHE_INVALIDATE_ALL(); /* forget all we know */   \
+       CYG_MACRO_END
+#endif
+
+#ifdef L2CC_ENABLED
+// Query the state of the L2 cache
+#define HAL_L2CACHE_IS_ENABLED(_state_)                                                                \
+       CYG_MACRO_START                                                                                                 \
+       register int reg;                                                                                               \
+       asm volatile (                                                                                                  \
+               "nop;"                                                                                                          \
+               "nop;"                                                                                                          \
+               "nop;"                                                                                                          \
+               "nop;"                                                                                                          \
+               "mrc p15, 0, %0, c1, c0, 1;"                                                            \
+               : "=r"(reg)                                                                                                     \
+               );                                                                                                                      \
+       (_state_) = (0 != (2 & reg)); /* Bit 1 is L2 Cache enable */    \
+       CYG_MACRO_END
+
+#define HAL_ENABLE_L2()                                                        \
+       CYG_MACRO_START                                                         \
+       asm volatile(                                                           \
+               "mrc 15, 0, r0, c1, c0, 1;"                             \
+               "orr r0, r0, #0x2;"                                             \
+               "mcr 15, 0, r0, c1, c0, 1;"                             \
+               :                                                                               \
+               :                                                                               \
+               : "r0"                                                                  \
+               );                                                                              \
+       CYG_MACRO_END
+
+#define HAL_DISABLE_L2()                                               \
+       CYG_MACRO_START                                                         \
+       asm volatile(                                                           \
+               "mrc 15, 0, r0, c1, c0, 1;"                             \
+               "bic r0, r0, #0x2;"                                             \
+               "mcr 15, 0, r0, c1, c0, 1;"                             \
+               :                                                                               \
+               :                                                                               \
+               : "r0"                                                                  \
+               );                                                                              \
+       CYG_MACRO_END
+
+#else //L2CC_ENABLED
+
+#define HAL_ENABLE_L2()                                                        CYG_EMPTY_STATEMENT
+#define HAL_DISABLE_L2()                                               CYG_EMPTY_STATEMENT
+#endif //L2CC_ENABLED
+
+/*********************** Exported macros *******************/
+
+#define HAL_DCACHE_ENABLE() {                                  \
+               HAL_ENABLE_L2();                                                \
+               HAL_DCACHE_ENABLE_L1();                                 \
+}
+
+#define HAL_DCACHE_DISABLE() {                                 \
+               HAL_CACHE_FLUSH_ALL();                                  \
+               HAL_DCACHE_DISABLE_L1();                                \
+}
+
+#define HAL_DCACHE_INVALIDATE_ALL() {                  \
+               HAL_CACHE_FLUSH_ALL();                                  \
+}
+
+// not needed
+#define HAL_DCACHE_SYNC()                                              \
+               HAL_CACHE_FLUSH_ALL();                                  \
+
+#define HAL_ICACHE_INVALIDATE_ALL() {                  \
+               HAL_CACHE_FLUSH_ALL();                                  \
+}
+
+#define HAL_ICACHE_DISABLE() {                                 \
+               HAL_ICACHE_DISABLE_L1();                                \
+}
+
+#define HAL_ICACHE_ENABLE() {                                  \
+               HAL_ICACHE_ENABLE_L1();                                 \
+}
+
+#define CYGARC_HAL_MMU_OFF(__paddr__)                                          \
+               "mrc p15, 0, r0, c1, c0, 0;" /* read c1 */                      \
+               "bic r0, r0, #0x7;" /* disable DCache and MMU */        \
+               "bic r0, r0, #0x1000;" /* disable ICache */                     \
+               "mcr p15, 0, r0, c1, c0, 0;" /*  */                                     \
+               "nop;" /* flush i+d-TLBs */                                                     \
+               "nop;" /* flush i+d-TLBs */                                                     \
+               "nop;" /* flush i+d-TLBs */
+
+#define HAL_MMU_OFF()                                                  \
+       CYG_MACRO_START                                                         \
+       asm volatile (                                                          \
+               CYGARC_HAL_MMU_OFF()                                    \
+               );                                                                              \
+       CYG_MACRO_END
+
+#if 1
+/* There is no direct access to the flash area, thus there is no need for these macros */
+#define HAL_FLASH_CACHES_OFF(d,i)                              \
+       CYG_MACRO_START                                                         \
+       /* prevent 'unused variable' warnings */        \
+       (void)d;                                                                        \
+       (void)i;                                                                        \
+       CYG_MACRO_END
+
+#define HAL_FLASH_CACHES_ON(d,i)                       CYG_EMPTY_STATEMENT
+#endif
+
+#endif // ifndef CYGONCE_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/packages/hal/arm/mx53/var/v2_0/include/hal_diag.h b/packages/hal/arm/mx53/var/v2_0/include/hal_diag.h
new file mode 100644 (file)
index 0000000..e491908
--- /dev/null
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+//      hal_diag.h
+//
+//      HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+
+#include <cyg/hal/hal_if.h>
+
+#define HAL_DIAG_INIT() hal_if_diag_init()
+#define HAL_DIAG_WRITE_CHAR(_c_) hal_if_diag_write_char(_c_)
+#define HAL_DIAG_READ_CHAR(_c_) hal_if_diag_read_char(&_c_)
+
+#else // everything by steam
+
+/*---------------------------------------------------------------------------*/
+/* functions implemented in hal_diag.c                                       */
+
+externC void hal_diag_init(void);
+externC void hal_diag_write_char(char c);
+externC void hal_diag_read_char(char *c);
+
+/*---------------------------------------------------------------------------*/
+
+#define HAL_DIAG_INIT() hal_diag_init()
+
+#define HAL_DIAG_WRITE_CHAR(_c_) hal_diag_write_char(_c_)
+
+#define HAL_DIAG_READ_CHAR(_c_) hal_diag_read_char(&_c_)
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+/*---------------------------------------------------------------------------*/
+// LED
+
+externC void hal_diag_led(int n);
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h                                                         */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/packages/hal/arm/mx53/var/v2_0/include/hal_mm.h b/packages/hal/arm/mx53/var/v2_0/include/hal_mm.h
new file mode 100644 (file)
index 0000000..f24b037
--- /dev/null
@@ -0,0 +1,170 @@
+#ifndef CYGONCE_HAL_MM_H
+#define CYGONCE_HAL_MM_H
+
+//=============================================================================
+//
+//      hal_mm.h
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+// -------------------------------------------------------------------------
+// MMU initialization:
+//
+// These structures are laid down in memory to define the translation
+// table.
+//
+
+/*
+ * Translation Table Base Bit Masks
+ */
+#define ARM_TRANSLATION_TABLE_MASK                              0xFFFFC000
+
+/*
+ * Domain Access Control Bit Masks
+ */
+#define ARM_ACCESS_TYPE_NO_ACCESS(domain_num)   (0x0 << ((domain_num) * 2))
+#define ARM_ACCESS_TYPE_CLIENT(domain_num)              (0x1 << ((domain_num) * 2))
+#define ARM_ACCESS_TYPE_MANAGER(domain_num)             (0x3 << ((domain_num) * 2))
+
+struct ARM_MMU_FIRST_LEVEL_FAULT {
+       unsigned int id : 2;
+       unsigned int sbz : 30;
+};
+
+#define ARM_MMU_FIRST_LEVEL_FAULT_ID 0x0
+
+struct ARM_MMU_FIRST_LEVEL_PAGE_TABLE {
+       unsigned int id : 2;
+       unsigned int imp : 2;
+       unsigned int domain : 4;
+       unsigned int sbz : 1;
+       unsigned int base_address : 23;
+};
+
+#define ARM_MMU_FIRST_LEVEL_PAGE_TABLE_ID 0x1
+
+struct ARM_MMU_FIRST_LEVEL_SECTION {
+       unsigned int id : 2;
+       unsigned int b : 1;
+       unsigned int c : 1;
+       unsigned int imp : 1;
+       unsigned int domain : 4;
+       unsigned int sbz0 : 1;
+       unsigned int ap : 2;
+       unsigned int sbz1 : 8;
+       unsigned int base_address : 12;
+};
+
+#define ARM_MMU_FIRST_LEVEL_SECTION_ID 0x2
+
+struct ARM_MMU_FIRST_LEVEL_RESERVED {
+       unsigned int id : 2;
+       unsigned int sbz : 30;
+};
+
+#define ARM_MMU_FIRST_LEVEL_RESERVED_ID 0x3
+
+#define ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS(ttb_base, table_index)  \
+       ((unsigned long *)(ttb_base) + (table_index))
+
+#define ARM_FIRST_LEVEL_PAGE_TABLE_SIZE 0x4000
+
+#define ARM_MMU_SECTION(ttb_base, actual_base, virtual_base,                   \
+                                               cacheable, bufferable, perm)                                    \
+       CYG_MACRO_START                                                                                                         \
+       register union ARM_MMU_FIRST_LEVEL_DESCRIPTOR desc;                                     \
+                                                                                                                                               \
+       desc.word = 0;                                                                                                          \
+       desc.section.id = ARM_MMU_FIRST_LEVEL_SECTION_ID;                                       \
+       desc.section.domain = 0;                                                                                        \
+       desc.section.c = cacheable;                                                                                     \
+       desc.section.b = bufferable;                                                                            \
+       desc.section.ap = perm;                                                                                         \
+       desc.section.base_address = actual_base;                                                        \
+       *ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS(ttb_base, virtual_base) = desc.word; \
+       CYG_MACRO_END
+
+#define X_ARM_MMU_SECTION(abase,vbase,size,cache,buff,access)                  \
+       CYG_MACRO_START                                                                                                         \
+               int i; int j = abase; int k = vbase;                                                    \
+               for (i = size; i > 0 ; i--, j++, k++) {                                                 \
+                       ARM_MMU_SECTION(ttb_base, j, k, cache, buff, access);           \
+               }                                                                                                                               \
+       CYG_MACRO_END
+
+union ARM_MMU_FIRST_LEVEL_DESCRIPTOR {
+       unsigned long word;
+       struct ARM_MMU_FIRST_LEVEL_FAULT fault;
+       struct ARM_MMU_FIRST_LEVEL_PAGE_TABLE page_table;
+       struct ARM_MMU_FIRST_LEVEL_SECTION section;
+       struct ARM_MMU_FIRST_LEVEL_RESERVED reserved;
+};
+
+#define ARM_UNCACHEABLE                                                        0
+#define ARM_CACHEABLE                                                  1
+#define ARM_UNBUFFERABLE                                               0
+#define ARM_BUFFERABLE                                                 1
+
+#define ARM_ACCESS_PERM_NONE_NONE                              0
+#define ARM_ACCESS_PERM_RO_NONE                                        0
+#define ARM_ACCESS_PERM_RO_RO                                  0
+#define ARM_ACCESS_PERM_RW_NONE                                        1
+#define ARM_ACCESS_PERM_RW_RO                                  2
+#define ARM_ACCESS_PERM_RW_RW                                  3
+
+/*
+ * Initialization for the Domain Access Control Register
+ */
+#define ARM_ACCESS_DACR_DEFAULT                 (                      \
+               ARM_ACCESS_TYPE_MANAGER(0)        |                     \
+               ARM_ACCESS_TYPE_NO_ACCESS(1)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(2)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(3)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(4)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(5)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(6)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(7)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(8)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(9)  |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(10) |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(11) |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(12) |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(13) |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(14) |                 \
+               ARM_ACCESS_TYPE_NO_ACCESS(15) )
+
+// ------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_MM_H
+// End of hal_mm.h
diff --git a/packages/hal/arm/mx53/var/v2_0/include/hal_soc.h b/packages/hal/arm/mx53/var/v2_0/include/hal_soc.h
new file mode 100644 (file)
index 0000000..94ac0c1
--- /dev/null
@@ -0,0 +1,624 @@
+//==========================================================================
+//
+//      hal_soc.h
+//
+//      SoC chip definitions
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+// Copyright (C) 2002 Gary Thomas
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//========================================================================*/
+
+#ifndef __HAL_SOC_H__
+#define __HAL_SOC_H__
+
+#ifdef __ASSEMBLER__
+#define UL(a)                          (a)
+#define VA(a)                          (a)
+#define REG8(a)                                (a)
+#define REG16(a)                       (a)
+#define REG32(a)                       (a)
+
+#else /* __ASSEMBLER__ */
+#define UL(a)                          (a##UL)
+#define VA(a)                          ((void *)(a))
+
+extern char HAL_PLATFORM_EXTRA[40];
+externC void plf_hardware_init(void);
+extern void increase_core_voltage(bool i);
+
+#define REG8(a)                                (*(volatile unsigned char *)(a))
+#define REG16(a)                       (*(volatile unsigned short *)(a))
+#define REG32(a)                       (*(volatile unsigned int *)(a))
+
+#define readb(a)                       (*(volatile unsigned char *)(a))
+#define readw(a)                       (*(volatile unsigned short *)(a))
+#define readl(a)                       (*(volatile unsigned int *)(a))
+#define writeb(v,a)                    (*(volatile unsigned char *)(a) = (v))
+#define writew(v,a)                    (*(volatile unsigned short *)(a) = (v))
+#define writel(v,a)                    (*(volatile unsigned int *)(a) = (v))
+
+#endif /* __ASSEMBLER__ */
+
+#include <cyg/hal/mx53_iomux.h>
+
+/*
+ * Default Memory Layout Definitions
+ */
+
+#define MXC_NAND_BASE_DUMMY 0
+
+/*
+ * UART Chip level Configuration that a user may not have to edit. These
+ * configuration vary depending on how the UART module is integrated with
+ * the ARM core
+ */
+#define MXC_UART_NR 3
+/*!
+ * This option is used to set or clear the RXDMUXSEL bit in control reg 3.
+ * Certain platforms need this bit to be set in order to receive Irda data.
+ */
+#define MXC_UART_IR_RXDMUX                     0x0004
+/*!
+ * This option is used to set or clear the RXDMUXSEL bit in control reg 3.
+ * Certain platforms need this bit to be set in order to receive UART data.
+ */
+#define MXC_UART_RXDMUX                                0x0004
+
+/*
+   * ROM address
+   */
+#define ROM_BASE_ADDR                          UL(0x00000000)
+//#define ROM_BASE_ADDR_VIRT                   VA(0x20000000)
+
+//#define ROM_SI_REV_OFFSET                    0x48
+
+#define PLATFORM_BASE_ADDR                     ARM_ELBOW_BASE_ADDR
+#define PLATFORM_ICGC                          0x14
+
+/*
+ * GPU control registers
+ */
+#define IPU_CTRL_BASE_ADDR                     UL(0x18000000)
+#define GPU_2D_BASE_ADDR                       UL(0x20000000)
+#define GPU_3D_BASE_ADDR                       UL(0x30000000)
+
+#define TZIC_BASE_ADDR                         UL(0x0FFFC000)
+
+#define DEBUG_BASE_ADDR                                UL(0x40000000)
+#define DEBUG_ROM_ADDR                         (DEBUG_BASE_ADDR + 0x0)
+#define ETB_BASE_ADDR                          (DEBUG_BASE_ADDR + 0x00001000)
+#define ETM_BASE_ADDR                          (DEBUG_BASE_ADDR + 0x00002000)
+#define TPIU_BASE_ADDR                         (DEBUG_BASE_ADDR + 0x00003000)
+#define CTI0_BASE_ADDR                         (DEBUG_BASE_ADDR + 0x00004000)
+#define CTI1_BASE_ADDR                         (DEBUG_BASE_ADDR + 0x00005000)
+#define CTI2_BASE_ADDR                         (DEBUG_BASE_ADDR + 0x00006000)
+#define CTI3_BASE_ADDR                         (DEBUG_BASE_ADDR + 0x00007000)
+#define CORTEX_DBG_BASE_ADDR           (DEBUG_BASE_ADDR + 0x00008000)
+
+/*
+ * SPBA global module enabled #0
+ */
+#define SPBA0_BASE_ADDR                                UL(0x50000000)
+
+#define MMC_SDHC1_BASE_ADDR                    (SPBA0_BASE_ADDR + 0x00004000)
+#define ESDHC1_REG_BASE                                MMC_SDHC1_BASE_ADDR
+#define MMC_SDHC2_BASE_ADDR                    (SPBA0_BASE_ADDR + 0x00008000)
+#define UART3_BASE_ADDR                                (SPBA0_BASE_ADDR + 0x0000C000)
+//eCSPI1
+#define CSPI1_BASE_ADDR                                (SPBA0_BASE_ADDR + 0x00010000)
+#define SSI2_BASE_ADDR                         (SPBA0_BASE_ADDR + 0x00014000)
+#define ESAI1_BASE_ADDR                                (SPBA0_BASE_ADDR + 0x00018000)
+#define MMC_SDHC3_BASE_ADDR                    (SPBA0_BASE_ADDR + 0x00020000)
+#define MMC_SDHC4_BASE_ADDR                    (SPBA0_BASE_ADDR + 0x00024000)
+#define SPDIF_BASE_ADDR                                (SPBA0_BASE_ADDR + 0x00028000)
+#define ASRC_BASE_ADDR                         (SPBA0_BASE_ADDR + 0x0002C000)
+#define ATA_DMA_BASE_ADDR                      (SPBA0_BASE_ADDR + 0x00030000)
+#define SPBA_CTRL_BASE_ADDR                    (SPBA0_BASE_ADDR + 0x0003C000)
+
+/*
+ * AIPS 1
+ */
+#define AIPS1_BASE_ADDR                                UL(0x53F00000)
+#define AIPS1_CTRL_BASE_ADDR           AIPS1_BASE_ADDR
+#define USBOH3_BASE_ADDR                       (AIPS1_BASE_ADDR + 0x00080000)
+#define GPIO1_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x00084000)
+#define GPIO2_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x00088000)
+#define GPIO3_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x0008C000)
+#define GPIO4_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x00090000)
+#define KPP_BASE_ADDR                          (AIPS1_BASE_ADDR + 0x00094000)
+#define WDOG1_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x00098000)
+#define WDOG_BASE_ADDR                         WDOG1_BASE_ADDR
+#define WDOG2_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x0009C000)
+#define GPT_BASE_ADDR                          (AIPS1_BASE_ADDR + 0x000A0000)
+#define SRTC_BASE_ADDR                         (AIPS1_BASE_ADDR + 0x000A4000)
+#define IOMUXC_BASE_ADDR                       (AIPS1_BASE_ADDR + 0x000A8000)
+#define EPIT1_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x000AC000)
+#define EPIT2_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x000B0000)
+#define PWM1_BASE_ADDR                         (AIPS1_BASE_ADDR + 0x000B4000)
+#define PWM2_BASE_ADDR                         (AIPS1_BASE_ADDR + 0x000B8000)
+#define UART1_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x000BC000)
+#define UART2_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x000C0000)
+
+#define SRC_BASE_ADDR                          (AIPS1_BASE_ADDR + 0x000D0000)
+#define CCM_BASE_ADDR                          (AIPS1_BASE_ADDR + 0x000D4000)
+#define GPC_BASE_ADDR                          (AIPS1_BASE_ADDR + 0x000D8000)
+#define GPIO5_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x000DC000)
+#define GPIO6_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x000E0000)
+#define GPIO7_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x000E4000)
+#define PATA_BASE_ADDR                         (AIPS1_BASE_ADDR + 0x000E8000)
+#define I2C3_BASE_ADDR                         (AIPS1_BASE_ADDR + 0x000EC000)
+
+#define UART4_BASE_ADDR                                (AIPS1_BASE_ADDR + 0x000F0000)
+
+/*
+ * AIPS 2
+ */
+#define AIPS2_BASE_ADDR                                UL(0x63F00000)
+#define AIPS2_CTRL_BASE_ADDR           AIPS2_BASE_ADDR
+#define PLL1_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x00080000)
+#define PLL2_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x00084000)
+#define PLL3_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x00088000)
+#define PLL4_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x0008C000)
+#define UART5_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x00090000)
+#define AHBMAX_BASE_ADDR                       (AIPS2_BASE_ADDR + 0x00094000)
+#define MAX_BASE_ADDR                          AHBMAX_BASE_ADDR
+#define IIM_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x00098000)
+#define CSU_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x0009C000)
+#define ARM_ELBOW_BASE_ADDR                    (AIPS2_BASE_ADDR + 0x000A0000)
+#define OWIRE_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x000A4000)
+#define FIRI_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000A8000)
+// eCSPI2
+#define CSPI2_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x000AC000)
+#define SDMA_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000B0000)
+#define SCC_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000B4000)
+#define ROMCP_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x000B8000)
+#define RTIC_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000BC000)
+// actually cspi1
+#define CSPI3_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x000C0000)
+#define I2C2_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000C4000)
+#define I2C1_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000C8000)
+#define I2C_BASE_ADDR                          I2C1_BASE_ADDR
+#define SSI1_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000CC000)
+#define AUDMUX_BASE_ADDR                       (AIPS2_BASE_ADDR + 0x000D0000)
+
+#define M4IF_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000D8000)
+#define ESDCTL_BASE_ADDR                       (AIPS2_BASE_ADDR + 0x000D9000)
+#define WEIM_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000DA000)
+#define NFC_IP_BASE                                    (AIPS2_BASE_ADDR + 0x000DB000)
+#define EMI_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000DBF00)
+//#define MIPI_HSC_BASE_ADDR                   (AIPS2_BASE_ADDR + 0x000DC000)
+//#define ATA_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x000E0000)
+//#define SIM_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x000E4000)
+#define SSI3_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000E8000)
+#define FEC_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000EC000)
+#define SOC_FEC_BASE                           FEC_BASE_ADDR
+#define TVE_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000F0000)
+#define VPU_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000F4000)
+#define SAHARA_BASE_ADDR                       (AIPS2_BASE_ADDR + 0x000F8000)
+
+/*
+ * Memory regions and CS
+ */
+#define CSD0_BASE_ADDR                         UL(0x70000000)
+#define CSD1_BASE_ADDR                         UL(0xB0000000)
+#define CS0_BASE_ADDR                          UL(0xF0000000)
+#define CS1_BASE_ADDR                          UL(0xF4000000)
+
+/*
+ * NFC internal RAM
+ */
+#define NFC_BASE_ADDR_AXI                      UL(0xF7FF0000)
+#define NFC_BASE                                       NFC_BASE_ADDR_AXI
+
+/*
+ * IRAM
+ */
+#define IRAM_BASE_ADDR                         UL(0xF8000000)  /* 128K internal ram */
+
+/*
+ * Graphics Memory of GPU
+ */
+#define GPU_MEM_BASE_ADDR                      UL(0xF8020000)
+
+/*
+ * Number of GPIO ports as defined in the IC Spec
+ */
+#define GPIO_PORT_NUM                          7
+/*
+ * Number of GPIO pins per port
+ */
+#define GPIO_NUM_PIN                           32
+
+/* CCM */
+#define CLKCTL_CCR                                     0x00
+#define CLKCTL_CCDR                                    0x04
+#define CLKCTL_CSR                                     0x08
+#define CLKCTL_CCSR                                    0x0C
+#define CLKCTL_CACRR                           0x10
+#define CLKCTL_CBCDR                           0x14
+#define CLKCTL_CBCMR                           0x18
+#define CLKCTL_CSCMR1                          0x1C
+#define CLKCTL_CSCMR2                          0x20
+#define CLKCTL_CSCDR1                          0x24
+#define CLKCTL_CS1CDR                          0x28
+#define CLKCTL_CS2CDR                          0x2C
+#define CLKCTL_CDCDR                           0x30
+#define CLKCTL_CHSCCDR                         0x34
+#define CLKCTL_CSCDR2                          0x38
+#define CLKCTL_CSCDR3                          0x3C
+#define CLKCTL_CSCDR4                          0x40
+#define CLKCTL_CWDR                                    0x44
+#define CLKCTL_CDHIPR                          0x48
+#define CLKCTL_CDCR                                    0x4C
+#define CLKCTL_CTOR                                    0x50
+#define CLKCTL_CLPCR                           0x54
+#define CLKCTL_CISR                                    0x58
+#define CLKCTL_CIMR                                    0x5C
+#define CLKCTL_CCOSR                           0x60
+#define CLKCTL_CGPR                                    0x64
+#define CLKCTL_CCGR0                           0x68
+#define CLKCTL_CCGR1                           0x6C
+#define CLKCTL_CCGR2                           0x70
+#define CLKCTL_CCGR3                           0x74
+#define CLKCTL_CCGR4                           0x78
+#define CLKCTL_CCGR5                           0x7C
+#define CLKCTL_CCGR6                           0x80
+#define CLKCTL_CCGR7                           0x84
+#define CLKCTL_CMEOR                           0x88
+
+#define FREQ_24MHZ                                     24000000
+#define FREQ_32768HZ                           (32768 * 1024)
+#define FREQ_38400HZ                           (38400 * 1024)
+#define FREQ_32000HZ                           (32000 * 1024)
+#define PLL_REF_CLK                                    FREQ_24MHZ
+#define CKIH                                           22579200
+//#define PLL_REF_CLK  FREQ_32768HZ
+//#define PLL_REF_CLK  FREQ_32000HZ
+
+/* WEIM registers */
+#define CSGCR1                                         0x00
+#define CSGCR2                                         0x04
+#define CSRCR1                                         0x08
+#define CSRCR2                                         0x0C
+#define CSWCR1                                         0x10
+
+/* M4IF */
+#define M4IF_FBPM0                                     0x40
+#define M4IF_FBPM1                                     0x44
+#define M4IF_FIDBP                                     0x48
+#define M4IF_MIF4                                      0x48
+#define M4IF_FPWC                                      0x9C
+
+/* ESDCTL */
+#define ESDCTL_ESDCTL0                         0x00
+#define ESDCTL_ESDCFG0                         0x04
+#define ESDCTL_ESDCTL1                         0x08
+#define ESDCTL_ESDCFG1                         0x0C
+#define ESDCTL_ESDMISC                         0x10
+#define ESDCTL_ESDSCR                          0x14
+#define ESDCTL_ESDCDLY1                                0x20
+#define ESDCTL_ESDCDLY2                                0x24
+#define ESDCTL_ESDCDLY3                                0x28
+#define ESDCTL_ESDCDLY4                                0x2C
+#define ESDCTL_ESDCDLY5                                0x30
+#define ESDCTL_ESDCDLYGD                       0x34
+
+/* DPLL */
+#define PLL_DP_CTL                                     0x00
+#define PLL_DP_CONFIG                          0x04
+#define PLL_DP_OP                                      0x08
+#define PLL_DP_MFD                                     0x0C
+#define PLL_DP_MFN                                     0x10
+#define PLL_DP_MFNMINUS                                0x14
+#define PLL_DP_MFNPLUS                         0x18
+#define PLL_DP_HFS_OP                          0x1C
+#define PLL_DP_HFS_MFD                         0x20
+#define PLL_DP_HFS_MFN                         0x24
+#define PLL_DP_TOGC                                    0x28
+#define PLL_DP_DESTAT                          0x2C
+
+#define CHIP_REV_1_0                           0x0              /* PASS 1.0 */
+#define CHIP_REV_1_1                           0x1              /* PASS 1.1 */
+#define CHIP_REV_2_0                           0x2              /* PASS 2.0 */
+#define CHIP_LATEST                                    CHIP_REV_1_1
+
+#define IIM_STAT_OFF                           0x00
+#define IIM_STAT_BUSY                          (1 << 7)
+#define IIM_STAT_PRGD                          (1 << 1)
+#define IIM_STAT_SNSD                          (1 << 0)
+#define IIM_STATM_OFF                          0x04
+#define IIM_ERR_OFF                                    0x08
+#define IIM_ERR_PRGE                           (1 << 7)
+#define IIM_ERR_WPE                                    (1 << 6)
+#define IIM_ERR_OPE                                    (1 << 5)
+#define IIM_ERR_RPE                                    (1 << 4)
+#define IIM_ERR_WLRE                           (1 << 3)
+#define IIM_ERR_SNSE                           (1 << 2)
+#define IIM_ERR_PARITYE                                (1 << 1)
+#define IIM_EMASK_OFF                          0x0C
+#define IIM_FCTL_OFF                           0x10
+#define IIM_UA_OFF                                     0x14
+#define IIM_LA_OFF                                     0x18
+#define IIM_SDAT_OFF                           0x1C
+#define IIM_PREV_OFF                           0x20
+#define IIM_SREV_OFF                           0x24
+#define IIM_PREG_P_OFF                         0x28
+#define IIM_SCS0_OFF                           0x2C
+#define IIM_SCS1_P_OFF                         0x30
+#define IIM_SCS2_OFF                           0x34
+#define IIM_SCS3_P_OFF                         0x38
+
+#define IIM_PROD_REV_SH                                3
+#define IIM_PROD_REV_LEN                       5
+#define IIM_SREV_REV_SH                                4
+#define IIM_SREV_REV_LEN                       4
+#define PROD_SIGNATURE_MX53                    0x1
+
+#define EPIT_BASE_ADDR                         EPIT1_BASE_ADDR
+#define EPITCR                                         0x00
+#define EPITSR                                         0x04
+#define EPITLR                                         0x08
+#define EPITCMPR                                       0x0C
+#define EPITCNR                                                0x10
+
+#define GPTCR                                          0x00
+#define GPTPR                                          0x04
+#define GPTSR                                          0x08
+#define GPTIR                                          0x0C
+#define GPTOCR1                                                0x10
+#define GPTOCR2                                                0x14
+#define GPTOCR3                                                0x18
+#define GPTICR1                                                0x1C
+#define GPTICR2                                                0x20
+#define GPTCNT                                         0x24
+
+/* Assuming 24MHz input clock with doubler ON */
+/*                                                                       MFI             PDF */
+#define DP_OP_1000                                     ((10 << 4) + ((1 - 1) << 0))
+#define DP_MFD_1000                                    (12 - 1)
+#define DP_MFN_1000                                    5
+
+#define DP_OP_850                                      ((8 << 4) + ((1 - 1) << 0))
+#define DP_MFD_850                                     (48 - 1)
+#define DP_MFN_850                                     41
+
+#define DP_OP_800                                      ((8 << 4) + ((1 - 1) << 0))
+#define DP_MFD_800                                     (3 - 1)
+#define DP_MFN_800                                     1
+
+#define DP_OP_700                                      ((7 << 4) + ((1 - 1) << 0))
+#define DP_MFD_700                                     (24 - 1)
+#define DP_MFN_700                                     7
+
+#define DP_OP_400                                      ((8 << 4) + ((2 - 1) << 0))
+#define DP_MFD_400                                     (3 - 1)
+#define DP_MFN_400                                     1
+
+#define DP_OP_532                                      ((5 << 4) + ((1 - 1) << 0))
+#define DP_MFD_532                                     (24 - 1)
+#define DP_MFN_532                                     13
+
+#define DP_OP_665                                      ((6 << 4) + ((1 - 1) << 0))
+#define DP_MFD_665                                     (96 - 1)
+#define DP_MFN_665                                     89
+
+#define DP_OP_666                                      ((6 << 4) + ((1 - 1) << 0))
+#define DP_MFD_666                                     (16 - 1)
+#define DP_MFN_666                                     15
+
+#define DP_OP_333                                      ((6 << 4) + ((2 - 1) << 0))
+#define DP_MFD_333                                     (16 - 1)
+#define DP_MFN_333                                     15
+
+#define DP_OP_266                                      ((5 << 4) + ((2 - 1) << 0))
+#define DP_MFD_266                                     (24 - 1)
+#define DP_MFN_266                                     13
+
+#define DP_OP_216                                      ((9 << 4) + ((4 - 1) << 0))
+#define DP_MFD_216                                     (1 - 1)
+#define DP_MFN_216                                     0
+
+#define PROD_SIGNATURE_SUPPORTED  PROD_SIGNATURE_MX51
+
+#define CHIP_VERSION_NONE                      0xFFFFFFFF              // invalid product ID
+#define CHIP_VERSION_UNKNOWN           0xDEADBEEF              // invalid chip rev
+
+#define PART_NUMBER_OFFSET                     12
+#define MAJOR_NUMBER_OFFSET                    4
+#define MINOR_NUMBER_OFFSET                    0
+
+//#define BARKER_CODE_SWAP_LOC         0x404
+#define BARKER_CODE_VAL                                0xB1
+#define NFC_V3_0
+
+// This defines the register base for the NAND AXI registers
+#define NAND_REG_BASE                          (NFC_BASE_ADDR_AXI + 0x1E00)
+
+#define NAND_CMD_REG                           (NAND_REG_BASE + 0x00)
+#define NAND_ADD0_REG                          (NAND_REG_BASE + 0x04)
+#define NAND_ADD1_REG                          (NAND_REG_BASE + 0x08)
+#define NAND_ADD2_REG                          (NAND_REG_BASE + 0x0C)
+#define NAND_ADD3_REG                          (NAND_REG_BASE + 0x10)
+#define NAND_ADD4_REG                          (NAND_REG_BASE + 0x14)
+#define NAND_ADD5_REG                          (NAND_REG_BASE + 0x18)
+#define NAND_ADD6_REG                          (NAND_REG_BASE + 0x1C)
+#define NAND_ADD7_REG                          (NAND_REG_BASE + 0x20)
+#define NAND_ADD8_REG                          (NAND_REG_BASE + 0x24)
+#define NAND_ADD9_REG                          (NAND_REG_BASE + 0x28)
+#define NAND_ADD10_REG                         (NAND_REG_BASE + 0x2C)
+#define NAND_ADD11_REG                         (NAND_REG_BASE + 0x30)
+
+#define NAND_CONFIGURATION1_REG                (NAND_REG_BASE + 0x34)
+#define NAND_CONFIGURATION1_NFC_RST    (1 << 2)
+#define NAND_CONFIGURATION1_NF_CE      (1 << 1)
+#define NAND_CONFIGURATION1_SP_EN      (1 << 0)
+
+#define NAND_ECC_STATUS_RESULT_REG     (NAND_REG_BASE + 0x38)
+
+#define NAND_STATUS_SUM_REG                    (NAND_REG_BASE + 0x3C)
+
+#define NAND_LAUNCH_REG                                (NAND_REG_BASE + 0x40)
+#define NAND_LAUNCH_FCMD                       (1 << 0)
+#define NAND_LAUNCH_FADD                       (1 << 1)
+#define NAND_LAUNCH_FDI                                (1 << 2)
+#define NAND_LAUNCH_AUTO_PROG          (1 << 6)
+#define NAND_LAUNCH_AUTO_READ          (1 << 7)
+#define NAND_LAUNCH_AUTO_READ_CONT     (1 << 8)
+#define NAND_LAUNCH_AUTO_ERASE         (1 << 9)
+#define NAND_LAUNCH_COPY_BACK0         (1 << 10)
+#define NAND_LAUNCH_COPY_BACK1         (1 << 11)
+#define NAND_LAUNCH_AUTO_STAT          (1 << 12)
+
+#define NFC_WR_PROT_REG                                (NFC_IP_BASE + 0x00)
+#define UNLOCK_BLK_ADD0_REG                    (NFC_IP_BASE + 0x04)
+#define UNLOCK_BLK_ADD1_REG                    (NFC_IP_BASE + 0x08)
+#define UNLOCK_BLK_ADD2_REG                    (NFC_IP_BASE + 0x0C)
+#define UNLOCK_BLK_ADD3_REG                    (NFC_IP_BASE + 0x10)
+#define UNLOCK_BLK_ADD4_REG                    (NFC_IP_BASE + 0x14)
+#define UNLOCK_BLK_ADD5_REG                    (NFC_IP_BASE + 0x18)
+#define UNLOCK_BLK_ADD6_REG                    (NFC_IP_BASE + 0x1C)
+#define UNLOCK_BLK_ADD7_REG                    (NFC_IP_BASE + 0x20)
+
+#define NFC_FLASH_CONFIG2_REG          (NFC_IP_BASE + 0x24)
+#define NFC_FLASH_CONFIG2_ECC_EN       (1 << 3)
+
+#define NFC_FLASH_CONFIG3_REG          (NFC_IP_BASE + 0x28)
+
+#define NFC_IPC_REG                                    (NFC_IP_BASE + 0x2C)
+#define NFC_IPC_INT                                    (1 << 31)
+#define NFC_IPC_AUTO_DONE                      (1 << 30)
+#define NFC_IPC_LPS                                    (1 << 29)
+#define NFC_IPC_RB_B                           (1 << 28)
+#define NFC_IPC_CACK                           (1 << 1)
+#define NFC_IPC_CREQ                           (1 << 0)
+#define NFC_AXI_ERR_ADD_REG                    (NFC_IP_BASE + 0x30)
+
+#define MXC_MMC_BASE_DUMMY                     0x00000000
+
+#define NAND_FLASH_BOOT                                (1 << 28)
+#define FROM_NAND_FLASH                                NAND_FLASH_BOOT
+
+#define SDRAM_NON_FLASH_BOOT           (1 << 29)
+
+#define MMC_FLASH_BOOT                         (1 << 30)
+#define FROM_MMC_FLASH                         MMC_FLASH_BOOT
+
+#define SPI_NOR_FLASH_BOOT                     0x80000000
+#define FROM_SPI_NOR_FLASH                     SPI_NOR_FLASH_BOOT
+
+#define IS_BOOTING_FROM_NAND()         1
+#define IS_BOOTING_FROM_SPI_NOR()      0
+#define IS_BOOTING_FROM_NOR()          0
+#define IS_BOOTING_FROM_SDRAM()                0
+#define IS_BOOTING_FROM_MMC()          0
+
+#define IS_FIS_FROM_NAND()                     1
+#define IS_FIS_FROM_NOR()                      0
+
+#define SOC_MAC_ADDR_FUSE_BANK         1
+#define SOC_MAC_ADDR_FUSE                      9
+#define SOC_MAC_ADDR_LOCK_FUSE         0
+#define SOC_MAC_ADDR_LOCK_BIT          4
+
+/*
+ * This macro is used to get certain bit field from a number
+ */
+#define MXC_GET_FIELD(val, len, sh)    ((val >> sh) & ((1 << len) - 1))
+
+/*
+ * This macro is used to set certain bit field inside a number
+ */
+#define MXC_SET_FIELD(val, len, sh, nval)      ((val & ~(((1 << len) - 1) << sh)) | (nval << sh))
+
+#define L2CC_ENABLED
+#define UART_WIDTH_32            /* internal UART is 32bit access only */
+
+#if !defined(__ASSEMBLER__)
+extern void fuse_blow_row(int bank, int row, int value);
+extern unsigned int sense_fuse(int bank, int row, int bit);
+
+void cyg_hal_plf_serial_init(void);
+void cyg_hal_plf_serial_stop(void);
+void hal_delay_us(unsigned int usecs);
+#define HAL_DELAY_US(n)                hal_delay_us(n)
+extern int _mxc_fis;
+extern unsigned int system_rev;
+
+enum plls {
+       PLL1,
+       PLL2,
+       PLL3,
+       PLL4,
+};
+
+enum main_clocks {
+       CPU_CLK,
+       AHB_CLK,
+       IPG_CLK,
+       IPG_PER_CLK,
+       DDR_CLK,
+       NFC_CLK,
+       USB_CLK,
+       AXI_A_CLK,
+       AXI_B_CLK,
+       EMI_SLOW_CLK,
+};
+
+enum peri_clocks {
+       UART1_BAUD,
+       UART2_BAUD,
+       UART3_BAUD,
+       SSI1_BAUD,
+       SSI2_BAUD,
+       CSI_BAUD,
+       MSTICK1_CLK,
+       MSTICK2_CLK,
+       SPI1_CLK = CSPI1_BASE_ADDR,
+       SPI2_CLK = CSPI2_BASE_ADDR,
+};
+
+extern unsigned int pll_clock(enum plls pll);
+
+extern unsigned int get_main_clock(enum main_clocks clk);
+
+extern unsigned int get_peri_clock(enum peri_clocks clk);
+
+typedef unsigned int nfc_setup_func_t(unsigned int, unsigned int, unsigned int, unsigned int);
+
+extern void increase_core_voltage(bool);
+
+#endif //#if !defined(__ASSEMBLER__)
+
+#endif /* __HAL_SOC_H__ */
diff --git a/packages/hal/arm/mx53/var/v2_0/include/hal_var_ints.h b/packages/hal/arm/mx53/var/v2_0/include/hal_var_ints.h
new file mode 100644 (file)
index 0000000..06364ce
--- /dev/null
@@ -0,0 +1,220 @@
+#ifndef CYGONCE_HAL_VAR_INTS_H
+#define CYGONCE_HAL_VAR_INTS_H
+//==========================================================================
+//
+//      hal_var_ints.h
+//
+//      HAL Interrupt and clock support
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+
+#include <cyg/hal/hal_soc.h>            // registers
+
+#define CYGNUM_HAL_INTERRUPT_GPIO0      0
+#define CYGNUM_HAL_INTERRUPT_GPIO1      1
+#define CYGNUM_HAL_INTERRUPT_GPIO2      2
+#define CYGNUM_HAL_INTERRUPT_GPIO3      3
+#define CYGNUM_HAL_INTERRUPT_GPIO4      4
+#define CYGNUM_HAL_INTERRUPT_GPIO5      5
+#define CYGNUM_HAL_INTERRUPT_GPIO6      6
+#define CYGNUM_HAL_INTERRUPT_GPIO7      7
+#define CYGNUM_HAL_INTERRUPT_GPIO8      8
+#define CYGNUM_HAL_INTERRUPT_GPIO9      9
+#define CYGNUM_HAL_INTERRUPT_GPIO10     10
+#define CYGNUM_HAL_INTERRUPT_GPIO       11      // Don't use directly!
+#define CYGNUM_HAL_INTERRUPT_LCD        12
+#define CYGNUM_HAL_INTERRUPT_UDC        13
+#define CYGNUM_HAL_INTERRUPT_UART1      15
+#define CYGNUM_HAL_INTERRUPT_UART2      16
+#define CYGNUM_HAL_INTERRUPT_UART3      17
+#define CYGNUM_HAL_INTERRUPT_UART4      17
+#define CYGNUM_HAL_INTERRUPT_MCP        18
+#define CYGNUM_HAL_INTERRUPT_SSP        19
+#define CYGNUM_HAL_INTERRUPT_TIMER0     26
+#define CYGNUM_HAL_INTERRUPT_TIMER1     27
+#define CYGNUM_HAL_INTERRUPT_TIMER2     28
+#define CYGNUM_HAL_INTERRUPT_TIMER3     29
+#define CYGNUM_HAL_INTERRUPT_HZ                 30
+#define CYGNUM_HAL_INTERRUPT_ALARM      31
+
+// GPIO bits 31..11 can generate interrupts as well, but they all
+// end up clumped into interrupt signal #11.  Using the symbols
+// below allow for detection of these separately.
+
+#define CYGNUM_HAL_INTERRUPT_GPIO11     (32 + 11)
+#define CYGNUM_HAL_INTERRUPT_GPIO12     (32 + 12)
+#define CYGNUM_HAL_INTERRUPT_GPIO13     (32 + 13)
+#define CYGNUM_HAL_INTERRUPT_GPIO14     (32 + 14)
+#define CYGNUM_HAL_INTERRUPT_GPIO15     (32 + 15)
+#define CYGNUM_HAL_INTERRUPT_GPIO16     (32 + 16)
+#define CYGNUM_HAL_INTERRUPT_GPIO17     (32 + 17)
+#define CYGNUM_HAL_INTERRUPT_GPIO18     (32 + 18)
+#define CYGNUM_HAL_INTERRUPT_GPIO19     (32 + 19)
+#define CYGNUM_HAL_INTERRUPT_GPIO20     (32 + 20)
+#define CYGNUM_HAL_INTERRUPT_GPIO21     (32 + 21)
+#define CYGNUM_HAL_INTERRUPT_GPIO22     (32 + 22)
+#define CYGNUM_HAL_INTERRUPT_GPIO23     (32 + 23)
+#define CYGNUM_HAL_INTERRUPT_GPIO24     (32 + 24)
+#define CYGNUM_HAL_INTERRUPT_GPIO25     (32 + 25)
+#define CYGNUM_HAL_INTERRUPT_GPIO26     (32 + 26)
+#define CYGNUM_HAL_INTERRUPT_GPIO27     (32 + 27)
+
+#define CYGNUM_HAL_INTERRUPT_NONE       -1
+
+#define CYGNUM_HAL_ISR_MIN                       0
+#define CYGNUM_HAL_ISR_MAX                      (27 + 32)
+
+#define CYGNUM_HAL_ISR_COUNT            (CYGNUM_HAL_ISR_MAX + 1)
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC        CYGNUM_HAL_INTERRUPT_TIMER0
+
+// The vector used by the Ethernet
+#define CYGNUM_HAL_INTERRUPT_ETH        CYGNUM_HAL_INTERRUPT_GPIO0
+
+#define MX53_GPIO_NR(grp, pin)         ((grp) << 5 | (pin))
+
+#define MX53_GPIO_ADDR(__bank) ({                                              \
+       CYG_ADDRESS __addr;                                                                     \
+       switch (__bank) {                                                                       \
+       case 1:                                                                                         \
+               __addr = GPIO1_BASE_ADDR;                                               \
+               break;                                                                                  \
+       case 2:                                                                                         \
+               __addr = GPIO2_BASE_ADDR;                                               \
+               break;                                                                                  \
+       case 3:                                                                                         \
+               __addr = GPIO3_BASE_ADDR;                                               \
+               break;                                                                                  \
+       case 4:                                                                                         \
+               __addr = GPIO4_BASE_ADDR;                                               \
+               break;                                                                                  \
+       case 5:                                                                                         \
+               __addr = GPIO5_BASE_ADDR;                                               \
+               break;                                                                                  \
+       case 6:                                                                                         \
+               __addr = GPIO6_BASE_ADDR;                                               \
+               break;                                                                                  \
+       case 7:                                                                                         \
+               __addr = GPIO7_BASE_ADDR;                                               \
+               break;                                                                                  \
+       default:                                                                                        \
+               __addr = (CYG_ADDRESS)0;                                                \
+       }                                                                                                       \
+       __addr;                                                                                         \
+})
+
+#define gpio_direction_input(__gpio_nr)                                                                        \
+       CYG_MACRO_START                                                                                                         \
+       CYG_ADDRESS addr = MX53_GPIO_ADDR((__gpio_nr) / GPIO_NUM_PIN);          \
+       CYG_WORD32 val;                                                                                                         \
+                                                                                                                                               \
+       if (addr == 0)                                                                                                          \
+               return;                                                                                                                 \
+                                                                                                                                               \
+       HAL_READ_UINT32(addr + GPIO_GDIR, val);                                                         \
+       HAL_WRITE_UINT32(addr + GPIO_GDIR, val | (1 << ((__gpio_nr) % GPIO_NUM_PIN))); \
+       CYG_MACRO_END
+
+#define gpio_set_value(__gpio_nr, __value)                                                     \
+       CYG_MACRO_START                                                                                                 \
+       CYG_ADDRESS addr = MX53_GPIO_ADDR((__gpio_nr) / GPIO_NUM_PIN);  \
+       CYG_WORD32 val;                                                                                                 \
+                                                                                                                                       \
+       if (addr == 0)                                                                                                  \
+               return;                                                                                                         \
+                                                                                                                                       \
+       HAL_READ_UINT32(addr + GPIO_DR, val);                                                   \
+       if (__value)                                                                                                    \
+               val |= 1 << ((__gpio_nr) % GPIO_NUM_PIN);                                       \
+       else                                                                                                                    \
+               val &= ~(1 << ((__gpio_nr) % GPIO_NUM_PIN));                            \
+       HAL_WRITE_UINT32(addr + GPIO_DR, val);                                                  \
+       CYG_MACRO_END
+
+#define gpio_direction_output(__gpio_nr, __value)                                      \
+       CYG_MACRO_START                                                                                                 \
+       CYG_ADDRESS addr = MX53_GPIO_ADDR((__gpio_nr) / GPIO_NUM_PIN);  \
+       int __gpio = (__gpio_nr) % GPIO_NUM_PIN;                                                \
+       CYG_WORD32 val;                                                                                                 \
+                                                                                                                                       \
+       if (addr == 0)                                                                                                  \
+               return;                                                                                                         \
+                                                                                                                                       \
+       if ((__value) >= 0) {                                                                                   \
+               HAL_READ_UINT32(addr + GPIO_DR, val);                                           \
+               if (__value)                                                                                            \
+                       val |= 1 << __gpio;                                                                             \
+               else                                                                                                            \
+                       val &= ~(1 << __gpio);                                                                  \
+               HAL_WRITE_UINT32(addr + GPIO_DR, val);                                          \
+       }                                                                                                                               \
+       HAL_READ_UINT32(addr + GPIO_GDIR, val);                                                 \
+       HAL_WRITE_UINT32(addr + GPIO_GDIR, val | (1 << __gpio));                \
+       CYG_MACRO_END
+
+#define gpio_get_value(__gpio_nr) ({                                                            \
+       CYG_ADDRESS __addr = MX53_GPIO_ADDR((__gpio_nr) / GPIO_NUM_PIN); \
+       CYG_WORD32 __val;                                                                                                \
+                                                                                                                                        \
+       if (__addr == 0)                                                                                                 \
+               return;                                                                                                          \
+                                                                                                                                        \
+       HAL_READ_UINT32(__addr + GPIO_PSR, __val);                                               \
+       !!(__val & (1 << ((__gpio_nr) % GPIO_NUM_PIN)));                                 \
+       })
+
+// method for reading clock interrupt latency
+#ifdef CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
+externC void hal_clock_latency(cyg_uint32 *);
+# define HAL_CLOCK_LATENCY(_pvalue_) \
+                hal_clock_latency((cyg_uint32 *)(_pvalue_))
+#endif
+
+//----------------------------------------------------------------------------
+// Reset.
+#define HAL_PLATFORM_RESET()                                                                                   \
+               CYG_MACRO_START                                                                                                 \
+                               writel(readl(NFC_FLASH_CONFIG3_REG) & ~0x73, NFC_FLASH_CONFIG3_REG); \
+               *(volatile unsigned short *)WDOG_BASE_ADDR &= ~(1 << 4);                \
+                               /* hang here forever if reset fails */                                  \
+                               while (1){}                                                                                             \
+               CYG_MACRO_END
+
+// Fallback (never really used)
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+#endif // CYGONCE_HAL_VAR_INTS_H
diff --git a/packages/hal/arm/mx53/var/v2_0/include/mx53_iomux.h b/packages/hal/arm/mx53/var/v2_0/include/mx53_iomux.h
new file mode 100644 (file)
index 0000000..543a9c1
--- /dev/null
@@ -0,0 +1,1321 @@
+/***************************************************************************
+*
+*     MX53_IOMUX.H
+*
+*     Macros definitions for MX53 IOMUX.
+*
+***************************************************************************
+*
+* Author(s) :  Lothar Waßmann <LW@KARO-electronics.de>
+* Create Date: 2011-03-25
+* Description :  i.MX53 IOMUX defines
+*
+***************************************************************************/
+
+#ifndef _MX53_IOMUX_H_
+#define _MX53_IOMUX_H_
+
+#ifndef __ASSEMBLER__
+
+#include <cyg/hal/hal_soc.h>
+
+/*
+ *     build IOMUX_PAD structure
+ *
+ * This iomux scheme is based around pads, which are the physical balls
+ * on the processor.
+ *
+ * - Each pad has a pad control register (IOMUXC_SW_PAD_CTRL_x) which controls
+ *   things like driving strength and pullup/pulldown.
+ * - Each pad can have but not necessarily does have an output routing register
+ *   (IOMUXC_SW_MUX_CTL_PAD_x).
+ * - Each pad can have but not necessarily does have an input routing register
+ *   (IOMUXC_x_SELECT_INPUT)
+ *
+ * The three register sets do not have a fixed offset to each other,
+ * hence we order this table by pad control registers (which all pads
+ * have) and put the optional i/o routing registers into additional
+ * fields.
+ *
+ * The naming convention for the pad modes is MX35_PAD_<padname>__<padmode>
+ * If <padname> or <padmode> refers to a GPIO, it is named
+ * GPIO_<unit>_<num>
+ *
+ * IOMUX/PAD Bit field definitions
+ *
+ * MUX_CTRL_OFS:                   0..11 (12)
+ * PAD_CTRL_OFS:                  12..23 (12)
+ * SEL_INPUT_OFS:                 24..35 (12)
+ * MUX_MODE + SION:               36..40  (5)
+ * PAD_CTRL + NO_PAD_CTRL: 41..57 (17)
+ * SEL_INP:                               58..61  (4)
+ * reserved:                        63    (1)
+*/
+
+typedef cyg_uint64 iomux_v3_cfg_t;
+
+#define MUX_CTRL_OFS_SHIFT             0
+#define MUX_CTRL_OFS_MASK              ((iomux_v3_cfg_t)0xfff << MUX_CTRL_OFS_SHIFT)
+#define MUX_PAD_CTRL_OFS_SHIFT 12
+#define MUX_PAD_CTRL_OFS_MASK  ((iomux_v3_cfg_t)0xfff << MUX_PAD_CTRL_OFS_SHIFT)
+#define MUX_SEL_INPUT_OFS_SHIFT        24
+#define MUX_SEL_INPUT_OFS_MASK ((iomux_v3_cfg_t)0xfff << MUX_SEL_INPUT_OFS_SHIFT)
+
+#define MUX_MODE_SHIFT                 36
+#define MUX_MODE_MASK                  ((iomux_v3_cfg_t)0x1f << MUX_MODE_SHIFT)
+#define MUX_SION_SHIFT                 40
+#define MUX_SION_MASK                  ((iomux_v3_cfg_t)0x1 << MUX_SION_SHIFT)
+#define MUX_PAD_CTRL_SHIFT             41
+#define MUX_PAD_CTRL_MASK              ((iomux_v3_cfg_t)0xffff << MUX_PAD_CTRL_SHIFT)
+#define PAD_CTRL_VALID                 ((iomux_v3_cfg_t)1 << (MUX_PAD_CTRL_SHIFT + 16))
+#define MUX_SEL_INPUT_SHIFT            58
+#define MUX_SEL_INPUT_MASK             ((iomux_v3_cfg_t)0xf << MUX_SEL_INPUT_SHIFT)
+
+#define MUX_PAD_CTRL(x)                        ((((iomux_v3_cfg_t)(x) << MUX_PAD_CTRL_SHIFT) & \
+                                                                                                               MUX_PAD_CTRL_MASK) | PAD_CTRL_VALID)
+
+#define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs, \
+                               _sel_input, _pad_ctrl)                                                                  \
+       (((iomux_v3_cfg_t)(_mux_ctrl_ofs) << MUX_CTRL_OFS_SHIFT) |                      \
+               ((iomux_v3_cfg_t)(_mux_mode) << MUX_MODE_SHIFT) |                               \
+               ((iomux_v3_cfg_t)(_pad_ctrl_ofs) << MUX_PAD_CTRL_OFS_SHIFT) |   \
+               ((iomux_v3_cfg_t)(_pad_ctrl) << MUX_PAD_CTRL_SHIFT) |                   \
+               ((iomux_v3_cfg_t)(_sel_input_ofs) << MUX_SEL_INPUT_OFS_SHIFT) | \
+               ((iomux_v3_cfg_t)(_sel_input) << MUX_SEL_INPUT_SHIFT))
+
+#define IOMUX_MUX_MODE(pad)            ((cyg_uint32)(((pad) & MUX_MODE_MASK) >> MUX_MODE_SHIFT))
+#define IOMUX_MUX_SION(pad)            ((cyg_uint32)(((pad) & MUX_SION_MASK) >> MUX_SION_SHIFT))
+#define IOMUX_PAD_CTRL_VALID(pad)      !!((pad) & PAD_CTRL_VALID)
+#define IOMUX_PAD_CTRL(pad)            ((cyg_uint32)(((pad) & MUX_PAD_CTRL_MASK) >> MUX_PAD_CTRL_SHIFT))
+#define IOMUX_INP_SEL(pad)             ((cyg_uint32)(((pad) & MUX_SEL_INPUT_MASK) >> MUX_SEL_INPUT_SHIFT))
+
+#define IOMUX_MUX_CTRL_OFS(pad)        ((cyg_uint32)(((pad) & MUX_CTRL_OFS_MASK) >> MUX_CTRL_OFS_SHIFT))
+#define IOMUX_PAD_CTRL_OFS(pad)        ((cyg_uint32)(((pad) & MUX_PAD_CTRL_OFS_MASK) >> MUX_PAD_CTRL_OFS_SHIFT))
+#define IOMUX_INP_SEL_OFS(pad) ((cyg_uint32)(((pad) & MUX_SEL_INPUT_OFS_MASK) >> MUX_SEL_INPUT_OFS_SHIFT))
+
+/*
+ * Use to set PAD control
+ */
+
+#define PAD_CTL_DVS                            (1 << 13)
+#define PAD_CTL_HYS                            (1 << 8)
+
+#define PAD_CTL_PKE                            (1 << 7)
+#define PAD_CTL_PUE                            (1 << 6)
+#define PAD_CTL_PUS_100K_DOWN  (0 << 4)
+#define PAD_CTL_PUS_47K_UP             (1 << 4)
+#define PAD_CTL_PUS_100K_UP            (2 << 4)
+#define PAD_CTL_PUS_22K_UP             (3 << 4)
+
+#define PAD_CTL_ODE                            (1 << 3)
+
+#define PAD_CTL_DSE_LOW                        (0 << 1)
+#define PAD_CTL_DSE_MED                        (1 << 1)
+#define PAD_CTL_DSE_HIGH               (2 << 1)
+#define PAD_CTL_DSE_MAX                        (3 << 1)
+
+#define PAD_CTL_SRE_FAST               (1 << 0)
+#define PAD_CTL_SRE_SLOW               (0 << 0)
+
+#define IOMUX_CONFIG_SION              ((iomux_v3_cfg_t)0x1 << MUX_SION_SHIFT)
+
+#define MX51_NUM_GPIO_PORT             4
+
+#define GPIO_PIN_MASK                  0x1f
+
+#define GPIO_PORT_SHIFT                        5
+#define GPIO_PORT_MASK                 (0x7 << GPIO_PORT_SHIFT)
+
+#define GPIO_PORTA                             (0 << GPIO_PORT_SHIFT)
+#define GPIO_PORTB                             (1 << GPIO_PORT_SHIFT)
+#define GPIO_PORTC                             (2 << GPIO_PORT_SHIFT)
+#define GPIO_PORTD                             (3 << GPIO_PORT_SHIFT)
+#define GPIO_PORTE                             (4 << GPIO_PORT_SHIFT)
+#define GPIO_PORTF                             (5 << GPIO_PORT_SHIFT)
+
+extern int mx53_iomux_setup(iomux_v3_cfg_t pad);
+extern int mx53_iomux_setup_pads(iomux_v3_cfg_t *pad, int num_pads);
+
+#define NON_PAD_I                              0x00
+
+#define MX53_UART_PAD_CTRL             (PAD_CTL_PKE | PAD_CTL_PUE |                    \
+                                                               PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+#define MX53_SDHC_PAD_CTRL             (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \
+                                                               PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_HIGH | \
+                                                               PAD_CTL_SRE_FAST)
+
+#define MX53_PAD_GPIO_19__KPP_COL_5            IOMUX_PAD(0x348, 0x20, 0, 0x840, 0, 0)
+#define MX53_PAD_GPIO_19__GPIO_4_5             IOMUX_PAD(0x348, 0x20, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_19__CCM_CLKO             IOMUX_PAD(0x348, 0x20, 2, 0, 0, 0)
+#define MX53_PAD_GPIO_19__SPDIF_OUT1   IOMUX_PAD(0x348, 0x20, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_19__RTC_CE_RTC_EXT_TRIG2 IOMUX_PAD(0x348, 0x20, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_19__ECSPI1_RDY   IOMUX_PAD(0x348, 0x20, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_19__FEC_TDATA_3  IOMUX_PAD(0x348, 0x20, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_19__SRC_INT_BOOT IOMUX_PAD(0x348, 0x20,7, 0, 0, 0)
+#define MX53_PAD_KEY_COL0__KPP_COL_0   IOMUX_PAD(0x34C, 0x24, o, 0, 0, 0)
+#define MX53_PAD_KEY_COL0__GPIO_4_6            IOMUX_PAD(0x34C, 0x24, 1, 0, 0, 0)
+#define MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC     IOMUX_PAD(0x34C, 0x24, 2, 0x758, 0, 0)
+#define MX53_PAD_KEY_COL0__UART4_TXD_MUX       IOMUX_PAD(0x34C, 0x24, 4, 0, 0, 0)
+#define MX53_PAD_KEY_COL0__ECSPI1_SCLK IOMUX_PAD(0x34C, 0x24, 5, 0x79C, 0, 0)
+#define MX53_PAD_KEY_COL0__FEC_RDATA_3 IOMUX_PAD(0x34C, 0x24, 6, 0, 0, 0)
+#define MX53_PAD_KEY_COL0__SRC_ANY_PU_RST      IOMUX_PAD(0x34C, 0x24, 7, 0, 0, 0)
+#define MX53_PAD_KEY_ROW0__KPP_ROW_0   IOMUX_PAD(0x350, 0x28, 0, 0, 0, 0)
+#define MX53_PAD_KEY_ROW0__GPIO_4_7            IOMUX_PAD(0x350, 0x28, 1, 0, 0, 0)
+#define MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD     IOMUX_PAD(0x350, 0x28, 2, 0x74C, 0, 0)
+#define MX53_PAD_KEY_ROW0__UART4_RXD_MUX       IOMUX_PAD(0x350, 0x28, 4, 0x890, 1, 0)
+#define MX53_PAD_KEY_ROW0__ECSPI1_MOSI IOMUX_PAD(0x350, 0x28, 5, 0x7A4, 0, 0)
+#define MX53_PAD_KEY_ROW0__FEC_TX_ER   IOMUX_PAD(0x350, 0x28, 6, 0, 0, 0)
+#define MX53_PAD_KEY_COL1__KPP_COL_1   IOMUX_PAD(0x354, 0x2C, 0, 0, 0, 0)
+#define MX53_PAD_KEY_COL1__GPIO_4_8            IOMUX_PAD(0x354, 0x2C, 1, 0, 0, 0)
+#define MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS    IOMUX_PAD(0x354, 0x2C, 2, 0x75C, 0, 0)
+#define MX53_PAD_KEY_COL1__UART5_TXD_MUX       IOMUX_PAD(0x354, 0x2C, 4, 0, 0, 0)
+#define MX53_PAD_KEY_COL1__ECSPI1_MISO IOMUX_PAD(0x354, 0x2C, 5, 0x7A0, 0, 0)
+#define MX53_PAD_KEY_COL1__FEC_RX_CLK  IOMUX_PAD(0x354, 0x2C, 6, 0x808, 0, 0)
+#define MX53_PAD_KEY_COL1__USBPHY1_TXREADY     IOMUX_PAD(0x354, 0x2C, 7, 0, 0, 0)
+#define MX53_PAD_KEY_ROW1__KPP_ROW_1   IOMUX_PAD(0x358, 0x30, 0, 0, 0, 0)
+#define MX53_PAD_KEY_ROW1__GPIO_4_9            IOMUX_PAD(0x358, 0x30, 1, 0, 0, 0)
+#define MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD     IOMUX_PAD(0x358, 0x30, 2, 0x748, 0, 0)
+#define MX53_PAD_KEY_ROW1__UART5_RXD_MUX       IOMUX_PAD(0x358, 0x30, 4, 0x898, 1, 0)
+#define MX53_PAD_KEY_ROW1__ECSPI1_SS0  IOMUX_PAD(0x358, 0x30, 5, 0x7A8, 0, 0)
+#define MX53_PAD_KEY_ROW1__FEC_COL             IOMUX_PAD(0x358, 0x30, 6, 0x800, 0, 0)
+#define MX53_PAD_KEY_ROW1__USBPHY1_RXVALID     IOMUX_PAD(0x358, 0x30, 7, 0, 0, 0)
+#define MX53_PAD_KEY_COL2__KPP_COL_2   IOMUX_PAD(0x35C, 0x34, 0, 0, 0, 0)
+#define MX53_PAD_KEY_COL2__GPIO_4_10           IOMUX_PAD(0x35C, 0x34, 1, 0, 0, 0)
+#define MX53_PAD_KEY_COL2__CAN1_TXCAN  IOMUX_PAD(0x35C, 0x34, 2, 0, 0, 0)
+#define MX53_PAD_KEY_COL2__FEC_MDIO            IOMUX_PAD(0x35C, 0x34, 4, 0x804, 0, 0)
+#define MX53_PAD_KEY_COL2__ECSPI1_SS1  IOMUX_PAD(0x35C, 0x34, 5, 0x7AC, 0, 0)
+#define MX53_PAD_KEY_COL2__FEC_RDATA_2 IOMUX_PAD(0x35C, 0x34, 6, 0, 0, 0)
+#define MX53_PAD_KEY_COL2__USBPHY1_RXACTIVE    IOMUX_PAD(0x35C, 0x34, 7, 0, 0, 0)
+#define MX53_PAD_KEY_ROW2__KPP_ROW_2   IOMUX_PAD(0x360, 0x38, 0, 0, 0, 0)
+#define MX53_PAD_KEY_ROW2__GPIO_4_11   IOMUX_PAD(0x360, 0x38, 1, 0, 0, 0)
+#define MX53_PAD_KEY_ROW2__CAN1_RXCAN  IOMUX_PAD(0x360, 0x38, 2, 0x760, 0, 0)
+#define MX53_PAD_KEY_ROW2__FEC_MDC             IOMUX_PAD(0x360, 0x38, 4, 0, 0, 0)
+#define MX53_PAD_KEY_ROW2__ECSPI1_SS2  IOMUX_PAD(0x360, 0x38, 5, 0x7B0, 0, 0)
+#define MX53_PAD_KEY_ROW2__FEC_TDATA_2 IOMUX_PAD(0x360, 0x38, 6, 0, 0, 0)
+#define MX53_PAD_KEY_ROW2__USBPHY1_RXERROR     IOMUX_PAD(0x360, 0x38, 7, 0, 0, 0)
+#define MX53_PAD_KEY_COL3__KPP_COL_3   IOMUX_PAD(0x364, 0x3C, 0, 0, 0, 0)
+#define MX53_PAD_KEY_COL3__GPIO_4_12           IOMUX_PAD(0x364, 0x3C, 1, 0, 0, 0)
+#define MX53_PAD_KEY_COL3__USBOH3_H2_DP        IOMUX_PAD(0x364, 0x3C, 2, 0, 0, 0)
+#define MX53_PAD_KEY_COL3__SPDIF_IN1   IOMUX_PAD(0x364, 0x3C, 3, 0x870, 0, 0)
+#define MX53_PAD_KEY_COL3__I2C2_SCL            IOMUX_PAD(0x364, 0x3C, 4 | IOMUX_CONFIG_SION, 0x81C, 0, 0)
+#define MX53_PAD_KEY_COL3__ECSPI1_SS3  IOMUX_PAD(0x364, 0x3C, 5, 0x7B4, 0, 0)
+#define MX53_PAD_KEY_COL3__FEC_CRS             IOMUX_PAD(0x364, 0x3C, 6, 0, 0, 0)
+#define MX53_PAD_KEY_COL3__USBPHY1_SIECLOCK    IOMUX_PAD(0x364, 0x3C, 7, 0, 0, 0)
+#define MX53_PAD_KEY_ROW3__KPP_ROW_3   IOMUX_PAD(0x368, 0x40, 0, 0, 0, 0)
+#define MX53_PAD_KEY_ROW3__GPIO_4_13   IOMUX_PAD(0x368, 0x40, 1, 0, 0, 0)
+#define MX53_PAD_KEY_ROW3__USBOH3_H2_DM        IOMUX_PAD(0x368, 0x40, 2, 0, 0, 0)
+#define MX53_PAD_KEY_ROW3__CCM_ASRC_EXT_CLK    IOMUX_PAD(0x368, 0x40, 3, 0x768, 0, 0)
+#define MX53_PAD_KEY_ROW3__I2C2_SDA            IOMUX_PAD(0x368, 0x40, 4 | IOMUX_CONFIG_SION, 0x820, 0, 0)
+#define MX53_PAD_KEY_ROW3__OSC32K_32K_OUT      IOMUX_PAD(0x368, 0x40, 5, 0, 0, 0)
+#define MX53_PAD_KEY_ROW3__CCM_PLL4_BYP        IOMUX_PAD(0x368, 0x40, 6, 0x77C, 0, 0)
+#define MX53_PAD_KEY_ROW3__USBPHY1_LINESTATE_0 IOMUX_PAD(0x368, 0x40, 7, 0, 0, 0)
+#define MX53_PAD_KEY_COL4__KPP_COL_4   IOMUX_PAD(0x36C, 0x44, 0, 0, 0, 0)
+#define MX53_PAD_KEY_COL4__GPIO_4_14           IOMUX_PAD(0x36C, 0x44, 1, 0, 0, 0)
+#define MX53_PAD_KEY_COL4__CAN2_TXCAN  IOMUX_PAD(0x36C, 0x44, 2, 0, 0, 0)
+#define MX53_PAD_KEY_COL4__IPU_SISG_4  IOMUX_PAD(0x36C, 0x44, 3, 0, 0, 0)
+#define MX53_PAD_KEY_COL4__UART5_RTS   IOMUX_PAD(0x36C, 0x44, 4, 0x894, 0, 0)
+#define MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC    IOMUX_PAD(0x36C, 0x44, 5, 0x89C, 0, 0)
+#define MX53_PAD_KEY_COL4__USBPHY1_LINESTATE_1 IOMUX_PAD(0x36C, 0x44, 7, 0, 0, 0)
+#define MX53_PAD_KEY_ROW4__KPP_ROW_4   IOMUX_PAD(0x370, 0x48, 0, 0, 0, 0)
+#define MX53_PAD_KEY_ROW4__GPIO_4_15   IOMUX_PAD(0x370, 0x48, 1, 0, 0, 0)
+#define MX53_PAD_KEY_ROW4__CAN2_RXCAN  IOMUX_PAD(0x370, 0x48, 2, 0x764, 0, 0)
+#define MX53_PAD_KEY_ROW4__IPU_SISG_5  IOMUX_PAD(0x370, 0x48, 3, 0, 0, 0)
+#define MX53_PAD_KEY_ROW4__UART5_CTS   IOMUX_PAD(0x370, 0x48, 4, 0x894, 1, 0)
+#define MX53_PAD_KEY_ROW4__USBOH3_USBOTG_PWR   IOMUX_PAD(0x370, 0x48, 5, 0, 0, 0)
+#define MX53_PAD_KEY_ROW4__USBPHY1_VBUSVALID   IOMUX_PAD(0x370, 0x48, 7, 0, 0, 0)
+#define MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK        IOMUX_PAD(0x378, 0x4C, 0, 0, 0, 0)
+#define MX53_PAD_DI0_DISP_CLK__GPIO_4_16               IOMUX_PAD(0x378, 0x4C, 1, 0, 0, 0)
+#define MX53_PAD_DI0_DISP_CLK__USBOH3_USBH2_DIR        IOMUX_PAD(0x378, 0x4C, 2, 0, 0, 0)
+#define MX53_PAD_DI0_DISP_CLK__SDMA_DEBUG_CORE_STATE_0 IOMUX_PAD(0x378, 0x4C, 5, 0, 0, 0)
+#define MX53_PAD_DI0_DISP_CLK__EMI_EMI_DEBUG_0 IOMUX_PAD(0x378, 0x4C, 6, 0, 0, 0)
+#define MX53_PAD_DI0_DISP_CLK__USBPHY1_AVALID  IOMUX_PAD(0x378, 0x4C, 7, 0, 0, 0)
+#define MX53_PAD_DI0_PIN15__IPU_DI0_PIN15              IOMUX_PAD(0x37C, 0x50, 0, 0, 0, 0)
+#define MX53_PAD_DI0_PIN15__GPIO_4_17          IOMUX_PAD(0x37C, 0x50, 1, 0, 0, 0)
+#define MX53_PAD_DI0_PIN15__AUDMUX_AUD6_TXC    IOMUX_PAD(0x37C, 0x50, 2, 0, 0, 0)
+#define MX53_PAD_DI0_PIN15__SDMA_DEBUG_CORE_STATE_1    IOMUX_PAD(0x37C, 0x50, 5, 0, 0, 0)
+#define MX53_PAD_DI0_PIN15__EMI_EMI_DEBUG_1    IOMUX_PAD(0x37C, 0x50, 6, 0, 0, 0)
+#define MX53_PAD_DI0_PIN15__USBPHY1_BVALID             IOMUX_PAD(0x37C, 0x50, 7, 0, 0, 0)
+#define MX53_PAD_DI0_PIN2__IPU_DI0_PIN2                IOMUX_PAD(0x380, 0x54, 0, 0, 0, 0)
+#define MX53_PAD_DI0_PIN2__GPIO_4_18                   IOMUX_PAD(0x380, 0x54, 1, 0, 0, 0)
+#define MX53_PAD_DI0_PIN2__AUDMUX_AUD6_TXD     IOMUX_PAD(0x380, 0x54, 2, 0, 0, 0)
+#define MX53_PAD_DI0_PIN2__SDMA_DEBUG_CORE_STATE_2     IOMUX_PAD(0x380, 0x54, 5, 0, 0, 0)
+#define MX53_PAD_DI0_PIN2__EMI_EMI_DEBUG_2             IOMUX_PAD(0x380, 0x54, 6, 0, 0, 0)
+#define MX53_PAD_DI0_PIN2__USBPHY1_ENDSESSION  IOMUX_PAD(0x380, 0x54, 7, 0, 0, 0)
+#define MX53_PAD_DI0_PIN3__IPU_DI0_PIN3                IOMUX_PAD(0x384, 0x58, 0, 0, 0, 0)
+#define MX53_PAD_DI0_PIN3__GPIO_4_19                   IOMUX_PAD(0x384, 0x58, 1, 0, 0, 0)
+#define MX53_PAD_DI0_PIN3__AUDMUX_AUD6_TXFS    IOMUX_PAD(0x384, 0x58, 2, 0, 0, 0)
+#define MX53_PAD_DI0_PIN3__SDMA_DEBUG_CORE_STATE_3     IOMUX_PAD(0x384, 0x58, 5, 0, 0, 0)
+#define MX53_PAD_DI0_PIN3__EMI_EMI_DEBUG_3             IOMUX_PAD(0x384, 0x58, 6, 0, 0, 0)
+#define MX53_PAD_DI0_PIN3__USBPHY1_IDDIG               IOMUX_PAD(0x384, 0x58, 7, 0, 0, 0)
+#define MX53_PAD_DI0_PIN4__IPU_DI0_PIN4                IOMUX_PAD(0x388, 0x5C, 0, 0, 0, 0)
+#define MX53_PAD_DI0_PIN4__GPIO_4_20                   IOMUX_PAD(0x388, 0x5C, 1, 0, 0, 0)
+#define MX53_PAD_DI0_PIN4__AUDMUX_AUD6_RXD     IOMUX_PAD(0x388, 0x5C, 2, 0, 0, 0)
+#define MX53_PAD_DI0_PIN4__ESDHC1_WP           IOMUX_PAD(0x388, 0x5C, 3, 0x7FC, 0, 0)
+#define MX53_PAD_DI0_PIN4__SDMA_DEBUG_YIELD    IOMUX_PAD(0x388, 0x5C, 5, 0, 0, 0)
+#define MX53_PAD_DI0_PIN4__EMI_EMI_DEBUG_4             IOMUX_PAD(0x388, 0x5C, 6, 0, 0, 0)
+#define MX53_PAD_DI0_PIN4__USBPHY1_HOSTDISCONNECT      IOMUX_PAD(0x388, 0x5C, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0   IOMUX_PAD(0x38C, 0x60, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT0__GPIO_4_21         IOMUX_PAD(0x38C, 0x60, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT0__CSPI_SCLK         IOMUX_PAD(0x38C, 0x60, 2, 0x780, 0, 0)
+#define MX53_PAD_DISP0_DAT0__USBOH3_USBH2_DATA_0       IOMUX_PAD(0x38C, 0x60, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT0__SDMA_DEBUG_CORE_RUN       IOMUX_PAD(0x38C, 0x60, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT0__EMI_EMI_DEBUG_5   IOMUX_PAD(0x38C, 0x60, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT0__USBPHY2_TXREADY   IOMUX_PAD(0x38C, 0x60, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1   IOMUX_PAD(0x390, 0x64, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT1__GPIO_4_22         IOMUX_PAD(0x390, 0x64, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT1__CSPI_MOSI         IOMUX_PAD(0x390, 0x64, 2, 0x788, 0, 0)
+#define MX53_PAD_DISP0_DAT1__USBOH3_USBH2_DATA_1       IOMUX_PAD(0x390, 0x64, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT1__SDMA_DEBUG_EVENT_CHANNEL_SEL      IOMUX_PAD(0x390, 0x64, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT1__EMI_EMI_DEBUG_6   IOMUX_PAD(0x390, 0x64, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT1__USBPHY2_RXVALID   IOMUX_PAD(0x390, 0x64, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2   IOMUX_PAD(0x394, 0x68, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT2__GPIO_4_23         IOMUX_PAD(0x394, 0x68, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT2__CSPI_MISO         IOMUX_PAD(0x394, 0x68, 2, 0x784, 0, 0)
+#define MX53_PAD_DISP0_DAT2__USBOH3_USBH2_DATA_2       IOMUX_PAD(0x394, 0x68, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT2__SDMA_DEBUG_MODE   IOMUX_PAD(0x394, 0x68, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT2__EMI_EMI_DEBUG_7   IOMUX_PAD(0x394, 0x68, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT2__USBPHY2_RXACTIVE  IOMUX_PAD(0x394, 0x68, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3   IOMUX_PAD(0x398, 0x6C, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT3__GPIO_4_24         IOMUX_PAD(0x398, 0x6C, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT3__CSPI_SS0          IOMUX_PAD(0x398, 0x6C, 2, 0x78C, 0, 0)
+#define MX53_PAD_DISP0_DAT3__USBOH3_USBH2_DATA_3       IOMUX_PAD(0x398, 0x6C, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT3__SDMA_DEBUG_BUS_ERROR      IOMUX_PAD(0x398, 0x6C, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT3__EMI_EMI_DEBUG_8   IOMUX_PAD(0x398, 0x6C, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT3__USBPHY2_RXERROR   IOMUX_PAD(0x398, 0x6C, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4   IOMUX_PAD(0x39C, 0x70, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT4__GPIO_4_25         IOMUX_PAD(0x39C, 0x70, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT4__CSPI_SS1          IOMUX_PAD(0x39C, 0x70, 2, 0x790, 0, 0)
+#define MX53_PAD_DISP0_DAT4__USBOH3_USBH2_DATA_4       IOMUX_PAD(0x39C, 0x70, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT4__SDMA_DEBUG_BUS_RWB        IOMUX_PAD(0x39C, 0x70, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT4__EMI_EMI_DEBUG_9   IOMUX_PAD(0x39C, 0x70, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT4__USBPHY2_SIECLOCK  IOMUX_PAD(0x39C, 0x70, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5   IOMUX_PAD(0x3A0, 0x74, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT5__GPIO_4_26         IOMUX_PAD(0x3A0, 0x74, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT5__CSPI_SS2          IOMUX_PAD(0x3A0, 0x74, 2, 0x794, 0, 0)
+#define MX53_PAD_DISP0_DAT5__USBOH3_USBH2_DATA_5       IOMUX_PAD(0x3A0, 0x74, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT5__SDMA_DEBUG_MATCHED_DMBUS  IOMUX_PAD(0x3A0, 0x74, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT5__EMI_EMI_DEBUG_10  IOMUX_PAD(0x3A0, 0x74, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT5__USBPHY2_LINESTATE_0       IOMUX_PAD(0x3A0, 0x74, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6   IOMUX_PAD(0x3A4, 0x78, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT6__GPIO_4_27         IOMUX_PAD(0x3A4, 0x78, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT6__CSPI_SS3          IOMUX_PAD(0x3A4, 0x78, 2, 0x798, 0, 0)
+#define MX53_PAD_DISP0_DAT6__USBOH3_USBH2_DATA_6       IOMUX_PAD(0x3A4, 0x78, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT6__SDMA_DEBUG_RTBUFFER_WRITE IOMUX_PAD(0x3A4, 0x78, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT6__EMI_EMI_DEBUG_11  IOMUX_PAD(0x3A4, 0x78, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT6__USBPHY2_LINESTATE_1       IOMUX_PAD(0x3A4, 0x78, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7   IOMUX_PAD(0x3A8, 0x7C, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT7__GPIO_4_28         IOMUX_PAD(0x3A8, 0x7C, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT7__CSPI_RDY          IOMUX_PAD(0x3A8, 0x7C, 2, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT7__USBOH3_USBH2_DATA_7       IOMUX_PAD(0x3A8, 0x7C, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT7__SDMA_DEBUG_EVENT_CHANNEL_0        IOMUX_PAD(0x3A8, 0x7C, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT7__EMI_EMI_DEBUG_12  IOMUX_PAD(0x3A8, 0x7C, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT7__USBPHY2_VBUSVALID IOMUX_PAD(0x3A8, 0x7C, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8   IOMUX_PAD(0x3AC, 0x80, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT8__GPIO_4_29         IOMUX_PAD(0x3AC, 0x80, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT8__PWM1_PWMO         IOMUX_PAD(0x3AC, 0x80, 2, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT8__WDOG1_WDOG_B      IOMUX_PAD(0x3AC, 0x80, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT8__SDMA_DEBUG_EVENT_CHANNEL_1        IOMUX_PAD(0x3AC, 0x80, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT8__EMI_EMI_DEBUG_13  IOMUX_PAD(0x3AC, 0x80, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT8__USBPHY2_AVALID    IOMUX_PAD(0x3AC, 0x80, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9   IOMUX_PAD(0x3B0, 0x84, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT9__GPIO_4_30         IOMUX_PAD(0x3B0, 0x84, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT9__PWM2_PWMO         IOMUX_PAD(0x3B0, 0x84, 2, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT9__WDOG2_WDOG_B      IOMUX_PAD(0x3B0, 0x84, 3, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT9__SDMA_DEBUG_EVENT_CHANNEL_2                IOMUX_PAD(0x3B0, 0x84, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT9__EMI_EMI_DEBUG_14  IOMUX_PAD(0x3B0, 0x84, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT9__USBPHY2_VSTATUS_0 IOMUX_PAD(0x3B0, 0x84, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10 IOMUX_PAD(0x3B4, 0x88, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT10__GPIO_4_31                IOMUX_PAD(0x3B4, 0x88, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT10__USBOH3_USBH2_STP IOMUX_PAD(0x3B4, 0x88, 2, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT10__SDMA_DEBUG_EVENT_CHANNEL_3       IOMUX_PAD(0x3B4, 0x88, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT10__EMI_EMI_DEBUG_15 IOMUX_PAD(0x3B4, 0x88, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT10__USBPHY2_VSTATUS_1        IOMUX_PAD(0x3B4, 0x88, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11 IOMUX_PAD(0x3B8, 0x8C, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT11__GPIO_5_5         IOMUX_PAD(0x3B8, 0x8C, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT11__USBOH3_USBH2_NXT IOMUX_PAD(0x3B8, 0x8C, 2, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT11__SDMA_DEBUG_EVENT_CHANNEL_4       IOMUX_PAD(0x3B8, 0x8C, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT11__EMI_EMI_DEBUG_16 IOMUX_PAD(0x3B8, 0x8C, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT11__USBPHY2_VSTATUS_2        IOMUX_PAD(0x3B8, 0x8C, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12 IOMUX_PAD(0x3BC, 0x90, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT12__GPIO_5_6         IOMUX_PAD(0x3BC, 0x90, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT12__USBOH3_USBH2_CLK IOMUX_PAD(0x3BC, 0x90, 2, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT12__SDMA_DEBUG_EVENT_CHANNEL_5       IOMUX_PAD(0x3BC, 0x90, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT12__EMI_EMI_DEBUG_17 IOMUX_PAD(0x3BC, 0x90, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT12__USBPHY2_VSTATUS_3        IOMUX_PAD(0x3BC, 0x90, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13 IOMUX_PAD(0x3C0, 0x94, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT13__GPIO_5_7         IOMUX_PAD(0x3C0, 0x94, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT13__AUDMUX_AUD5_RXFS IOMUX_PAD(0x3C0, 0x94, 3, 0x754, 0, 0)
+#define MX53_PAD_DISP0_DAT13__SDMA_DEBUG_EVT_CHN_LINES_0       IOMUX_PAD(0x3C0, 0x94, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT13__EMI_EMI_DEBUG_18 IOMUX_PAD(0x3C0, 0x94, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT13__USBPHY2_VSTATUS_4        IOMUX_PAD(0x3C0, 0x94, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14 IOMUX_PAD(0x3C4, 0x98, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT14__GPIO_5_8         IOMUX_PAD(0x3C4, 0x98, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT14__AUDMUX_AUD5_RXC  IOMUX_PAD(0x3C4, 0x98, 3, 0x750, 0, 0)
+#define MX53_PAD_DISP0_DAT14__SDMA_DEBUG_EVT_CHN_LINES_1       IOMUX_PAD(0x3C4, 0x98, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT14__EMI_EMI_DEBUG_19 IOMUX_PAD(0x3C4, 0x98, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT14__USBPHY2_VSTATUS_5        IOMUX_PAD(0x3C4, 0x98, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15 IOMUX_PAD(0x3C8, 0x9C, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT15__GPIO_5_9         IOMUX_PAD(0x3C8, 0x9C, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT15__ECSPI1_SS1               IOMUX_PAD(0x3C8, 0x9C, 2, 0x7AC, 1, 0)
+#define MX53_PAD_DISP0_DAT15__ECSPI2_SS1               IOMUX_PAD(0x3C8, 0x9C, 3, 0x7C8, 0, 0)
+#define MX53_PAD_DISP0_DAT15__SDMA_DEBUG_EVT_CHN_LINES_2       IOMUX_PAD(0x3C8, 0x9C, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT15__EMI_EMI_DEBUG_20 IOMUX_PAD(0x3C8, 0x9C, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT15__USBPHY2_VSTATUS_6        IOMUX_PAD(0x3C8, 0x9C, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16 IOMUX_PAD(0x3CC, 0xA0, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT16__GPIO_5_10                IOMUX_PAD(0x3CC, 0xA0, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT16__ECSPI2_MOSI              IOMUX_PAD(0x3CC, 0xA0, 2, 0x7C0, 0, 0)
+#define MX53_PAD_DISP0_DAT16__AUDMUX_AUD5_TXC  IOMUX_PAD(0x3CC, 0xA0, 3, 0x758, 1, 0)
+#define MX53_PAD_DISP0_DAT16__SDMA_EXT_EVENT_0 IOMUX_PAD(0x3CC, 0xA0, 4, 0x868, 0, 0)
+#define MX53_PAD_DISP0_DAT16__SDMA_DEBUG_EVT_CHN_LINES_3       IOMUX_PAD(0x3CC, 0xA0, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT16__EMI_EMI_DEBUG_21 IOMUX_PAD(0x3CC, 0xA0, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT16__USBPHY2_VSTATUS_7        IOMUX_PAD(0x3CC, 0xA0, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17 IOMUX_PAD(0x3D0, 0xA4, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT17__GPIO_5_11                IOMUX_PAD(0x3D0, 0xA4, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT17__ECSPI2_MISO              IOMUX_PAD(0x3D0, 0xA4, 2, 0x7BC, 0, 0)
+#define MX53_PAD_DISP0_DAT17__AUDMUX_AUD5_TXD  IOMUX_PAD(0x3D0, 0xA4, 3, 0x74C, 1, 0)
+#define MX53_PAD_DISP0_DAT17__SDMA_EXT_EVENT_1 IOMUX_PAD(0x3D0, 0xA4, 4, 0x86C, 0, 0)
+#define MX53_PAD_DISP0_DAT17__SDMA_DEBUG_EVT_CHN_LINES_4       IOMUX_PAD(0x3D0, 0xA4, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT17__EMI_EMI_DEBUG_22 IOMUX_PAD(0x3D0, 0xA4, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18 IOMUX_PAD(0x3D4, 0xA8, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT18__GPIO_5_12                IOMUX_PAD(0x3D4, 0xA8, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT18__ECSPI2_SS0               IOMUX_PAD(0x3D4, 0xA8, 2, 0x7C4, 0, 0)
+#define MX53_PAD_DISP0_DAT18__AUDMUX_AUD5_TXFS IOMUX_PAD(0x3D4, 0xA8, 3, 0x75C, 1, 0)
+#define MX53_PAD_DISP0_DAT18__AUDMUX_AUD4_RXFS IOMUX_PAD(0x3D4, 0xA8, 4, 0x73C, 0, 0)
+#define MX53_PAD_DISP0_DAT18__SDMA_DEBUG_EVT_CHN_LINES_5       IOMUX_PAD(0x3D4, 0xA8, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT18__EMI_EMI_DEBUG_23 IOMUX_PAD(0x3D4, 0xA8, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT18__EMI_WEIM_CS_2    IOMUX_PAD(0x3D4, 0xA8, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19 IOMUX_PAD(0x3D8, 0xAC, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT19__GPIO_5_13                IOMUX_PAD(0x3D8, 0xAC, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT19__ECSPI2_SCLK              IOMUX_PAD(0x3D8, 0xAC, 2, 0x7B8, 0, 0)
+#define MX53_PAD_DISP0_DAT19__AUDMUX_AUD5_RXD  IOMUX_PAD(0x3D8, 0xAC, 3, 0x748, 1, 0)
+#define MX53_PAD_DISP0_DAT19__AUDMUX_AUD4_RXC  IOMUX_PAD(0x3D8, 0xAC, 4, 0x738, 0, 0)
+#define MX53_PAD_DISP0_DAT19__SDMA_DEBUG_EVT_CHN_LINES_6       IOMUX_PAD(0x3D8, 0xAC, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT19__EMI_EMI_DEBUG_24 IOMUX_PAD(0x3D8, 0xAC, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT19__EMI_WEIM_CS_3    IOMUX_PAD(0x3D8, 0xAC, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20 IOMUX_PAD(0x3DC, 0xB0, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT20__GPIO_5_14                IOMUX_PAD(0x3DC, 0xB0, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT20__ECSPI1_SCLK              IOMUX_PAD(0x3DC, 0xB0, 2, 0x79C, 1, 0)
+#define MX53_PAD_DISP0_DAT20__AUDMUX_AUD4_TXC  IOMUX_PAD(0x3DC, 0xB0, 3, 0x740, 0, 0)
+#define MX53_PAD_DISP0_DAT20__SDMA_DEBUG_EVT_CHN_LINES_7       IOMUX_PAD(0x3DC, 0xB0, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT20__EMI_EMI_DEBUG_25 IOMUX_PAD(0x3DC, 0xB0, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT20__SATA_PHY_TDI             IOMUX_PAD(0x3DC, 0xB0, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21 IOMUX_PAD(0x3E0, 0xB4, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT21__GPIO_5_15                IOMUX_PAD(0x3E0, 0xB4, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT21__ECSPI1_MOSI              IOMUX_PAD(0x3E0, 0xB4, 2, 0x7A4, 1, 0)
+#define MX53_PAD_DISP0_DAT21__AUDMUX_AUD4_TXD  IOMUX_PAD(0x3E0, 0xB4, 3, 0x734, 0, 0)
+#define MX53_PAD_DISP0_DAT21__SDMA_DEBUG_BUS_DEVICE_0  IOMUX_PAD(0x3E0, 0xB4, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT21__EMI_EMI_DEBUG_26 IOMUX_PAD(0x3E0, 0xB4, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT21__SATA_PHY_TDO     IOMUX_PAD(0x3E0, 0xB4, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22 IOMUX_PAD(0x3E4, 0xB8, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT22__GPIO_5_16                IOMUX_PAD(0x3E4, 0xB8, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT22__ECSPI1_MISO              IOMUX_PAD(0x3E4, 0xB8, 2, 0x7A0, 1, 0)
+#define MX53_PAD_DISP0_DAT22__AUDMUX_AUD4_TXFS IOMUX_PAD(0x3E4, 0xB8, 3, 0x744, 0, 0)
+#define MX53_PAD_DISP0_DAT22__SDMA_DEBUG_BUS_DEVICE_1  IOMUX_PAD(0x3E4, 0xB8, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT22__EMI_EMI_DEBUG_27 IOMUX_PAD(0x3E4, 0xB8, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT22__SATA_PHY_TCK     IOMUX_PAD(0x3E4, 0xB8, 7, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23 IOMUX_PAD(0x3E8, 0xBC, 0, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT23__GPIO_5_17                IOMUX_PAD(0x3E8, 0xBC, 1, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT23__ECSPI1_SS0               IOMUX_PAD(0x3E8, 0xBC, 2, 0x7A8, 1, 0)
+#define MX53_PAD_DISP0_DAT23__AUDMUX_AUD4_RXD  IOMUX_PAD(0x3E8, 0xBC, 3, 0x730, 0, 0)
+#define MX53_PAD_DISP0_DAT23__SDMA_DEBUG_BUS_DEVICE_2  IOMUX_PAD(0x3E8, 0xBC, 5, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT23__EMI_EMI_DEBUG_28 IOMUX_PAD(0x3E8, 0xBC, 6, 0, 0, 0)
+#define MX53_PAD_DISP0_DAT23__SATA_PHY_TMS     IOMUX_PAD(0x3E8, 0xBC, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_PIXCLK__IPU_CSI0_PIXCLK  IOMUX_PAD(0x3EC, 0xC0, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_PIXCLK__GPIO_5_18                IOMUX_PAD(0x3EC, 0xC0, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_PIXCLK__SDMA_DEBUG_PC_0  IOMUX_PAD(0x3EC, 0xC0, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_PIXCLK__EMI_EMI_DEBUG_29 IOMUX_PAD(0x3EC, 0xC0, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_MCLK__IPU_CSI0_HSYNC             IOMUX_PAD(0x3F0, 0xC4, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_MCLK__GPIO_5_19                  IOMUX_PAD(0x3F0, 0xC4, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_MCLK__CCM_CSI0_MCLK              IOMUX_PAD(0x3F0, 0xC4, 2, 0, 0, 0)
+#define MX53_PAD_CSI0_MCLK__SDMA_DEBUG_PC_1    IOMUX_PAD(0x3F0, 0xC4, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_MCLK__EMI_EMI_DEBUG_30   IOMUX_PAD(0x3F0, 0xC4, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_MCLK__TPIU_TRCTL                 IOMUX_PAD(0x3F0, 0xC4, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DATA_EN__IPU_CSI0_DATA_EN        IOMUX_PAD(0x3F4, 0xC8, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DATA_EN__GPIO_5_20               IOMUX_PAD(0x3F4, 0xC8, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DATA_EN__SDMA_DEBUG_PC_2 IOMUX_PAD(0x3F4, 0xC8, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DATA_EN__EMI_EMI_DEBUG_31        IOMUX_PAD(0x3F4, 0xC8, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DATA_EN__TPIU_TRCLK              IOMUX_PAD(0x3F4, 0xC8, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_VSYNC__IPU_CSI0_VSYNC    IOMUX_PAD(0x3F8, 0xCC, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_VSYNC__GPIO_5_21                 IOMUX_PAD(0x3F8, 0xCC, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_VSYNC__SDMA_DEBUG_PC_3   IOMUX_PAD(0x3F8, 0xCC, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_VSYNC__EMI_EMI_DEBUG_32  IOMUX_PAD(0x3F8, 0xCC, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_VSYNC__TPIU_TRACE_0              IOMUX_PAD(0x3F8, 0xCC, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT4__IPU_CSI0_D_4               IOMUX_PAD(0x3FC, 0xD0, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT4__GPIO_5_22                  IOMUX_PAD(0x3FC, 0xD0, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT4__KPP_COL_5                  IOMUX_PAD(0x3FC, 0xD0, 2, 0x840, 1, 0)
+#define MX53_PAD_CSI0_DAT4__ECSPI1_SCLK                IOMUX_PAD(0x3FC, 0xD0, 3, 0x79C, 2, 0)
+#define MX53_PAD_CSI0_DAT4__USBOH3_USBH3_STP   IOMUX_PAD(0x3FC, 0xD0, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT4__AUDMUX_AUD3_TXC    IOMUX_PAD(0x3FC, 0xD0, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT4__EMI_EMI_DEBUG_33   IOMUX_PAD(0x3FC, 0xD0, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT4__TPIU_TRACE_1               IOMUX_PAD(0x3FC, 0xD0, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT5__IPU_CSI0_D_5               IOMUX_PAD(0x400, 0xD4, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT5__GPIO_5_23                  IOMUX_PAD(0x400, 0xD4, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT5__KPP_ROW_5                  IOMUX_PAD(0x400, 0xD4, 2, 0x84C, 0, 0)
+#define MX53_PAD_CSI0_DAT5__ECSPI1_MOSI                IOMUX_PAD(0x400, 0xD4, 3, 0x7A4, 2, 0)
+#define MX53_PAD_CSI0_DAT5__USBOH3_USBH3_NXT   IOMUX_PAD(0x400, 0xD4, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT5__AUDMUX_AUD3_TXD    IOMUX_PAD(0x400, 0xD4, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT5__EMI_EMI_DEBUG_34   IOMUX_PAD(0x400, 0xD4, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT5__TPIU_TRACE_2               IOMUX_PAD(0x400, 0xD4, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT6__IPU_CSI0_D_6               IOMUX_PAD(0x404, 0xD8, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT6__GPIO_5_24                  IOMUX_PAD(0x404, 0xD8, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT6__KPP_COL_6                  IOMUX_PAD(0x404, 0xD8, 2, 0x844, 0, 0)
+#define MX53_PAD_CSI0_DAT6__ECSPI1_MISO                IOMUX_PAD(0x404, 0xD8, 3, 0x7A0, 2, 0)
+#define MX53_PAD_CSI0_DAT6__USBOH3_USBH3_CLK   IOMUX_PAD(0x404, 0xD8, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT6__AUDMUX_AUD3_TXFS   IOMUX_PAD(0x404, 0xD8, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT6__EMI_EMI_DEBUG_35   IOMUX_PAD(0x404, 0xD8, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT6__TPIU_TRACE_3               IOMUX_PAD(0x404, 0xD8, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT7__IPU_CSI0_D_7               IOMUX_PAD(0x408, 0xDC, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT7__GPIO_5_25                  IOMUX_PAD(0x408, 0xDC, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT7__KPP_ROW_6                  IOMUX_PAD(0x408, 0xDC, 2, 0x850, 0, 0)
+#define MX53_PAD_CSI0_DAT7__ECSPI1_SS0                 IOMUX_PAD(0x408, 0xDC, 3, 0x7A8, 2, 0)
+#define MX53_PAD_CSI0_DAT7__USBOH3_USBH3_DIR   IOMUX_PAD(0x408, 0xDC, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT7__AUDMUX_AUD3_RXD    IOMUX_PAD(0x408, 0xDC, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT7__EMI_EMI_DEBUG_36   IOMUX_PAD(0x408, 0xDC, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT7__TPIU_TRACE_4               IOMUX_PAD(0x408, 0xDC, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT8__IPU_CSI0_D_8               IOMUX_PAD(0x40C, 0xE0, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT8__GPIO_5_26                  IOMUX_PAD(0x40C, 0xE0, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT8__KPP_COL_7                  IOMUX_PAD(0x40C, 0xE0, 2, 0x848, 0, 0)
+#define MX53_PAD_CSI0_DAT8__ECSPI2_SCLK                IOMUX_PAD(0x40C, 0xE0, 3, 0x7B8, 1, 0)
+#define MX53_PAD_CSI0_DAT8__USBOH3_USBH3_OC    IOMUX_PAD(0x40C, 0xE0, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT8__I2C1_SDA                   IOMUX_PAD(0x40C, 0xE0, 5 | IOMUX_CONFIG_SION, 0x818, 0, 0)
+#define MX53_PAD_CSI0_DAT8__EMI_EMI_DEBUG_37   IOMUX_PAD(0x40C, 0xE0, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT8__TPIU_TRACE_5               IOMUX_PAD(0x40C, 0xE0, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT9__IPU_CSI0_D_9               IOMUX_PAD(0x410, 0xE4, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT9__GPIO_5_27                  IOMUX_PAD(0x410, 0xE4, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT9__KPP_ROW_7                  IOMUX_PAD(0x410, 0xE4, 2, 0x854, 0, 0)
+#define MX53_PAD_CSI0_DAT9__ECSPI2_MOSI                IOMUX_PAD(0x410, 0xE4, 3, 0x7C0, 1, 0)
+#define MX53_PAD_CSI0_DAT9__USBOH3_USBH3_PWR   IOMUX_PAD(0x410, 0xE4, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT9__I2C1_SCL                   IOMUX_PAD(0x410, 0xE4, 5 | IOMUX_CONFIG_SION, 0x814, 0, 0)
+#define MX53_PAD_CSI0_DAT9__EMI_EMI_DEBUG_38   IOMUX_PAD(0x410, 0xE4, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT9__TPIU_TRACE_6               IOMUX_PAD(0x410, 0xE4, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT10__IPU_CSI0_D_10             IOMUX_PAD(0x414, 0xE8, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT10__GPIO_5_28                 IOMUX_PAD(0x414, 0xE8, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT10__UART1_TXD_MUX             IOMUX_PAD(0x414, 0xE8, 2, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT10__ECSPI2_MISO               IOMUX_PAD(0x414, 0xE8, 3, 0x7BC, 1, 0)
+#define MX53_PAD_CSI0_DAT10__AUDMUX_AUD3_RXC   IOMUX_PAD(0x414, 0xE8, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT10__SDMA_DEBUG_PC_4   IOMUX_PAD(0x414, 0xE8, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT10__EMI_EMI_DEBUG_39  IOMUX_PAD(0x414, 0xE8, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT10__TPIU_TRACE_7              IOMUX_PAD(0x414, 0xE8, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT11__IPU_CSI0_D_11             IOMUX_PAD(0x418, 0xEC, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT11__GPIO_5_29                 IOMUX_PAD(0x418, 0xEC, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT11__UART1_RXD_MUX             IOMUX_PAD(0x418, 0xEC, 2, 0x878, 1, 0)
+#define MX53_PAD_CSI0_DAT11__ECSPI2_SS0                IOMUX_PAD(0x418, 0xEC, 3, 0x7C4, 1, 0)
+#define MX53_PAD_CSI0_DAT11__AUDMUX_AUD3_RXFS  IOMUX_PAD(0x418, 0xEC, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT11__SDMA_DEBUG_PC_5   IOMUX_PAD(0x418, 0xEC, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT11__EMI_EMI_DEBUG_40  IOMUX_PAD(0x418, 0xEC, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT11__TPIU_TRACE_8              IOMUX_PAD(0x418, 0xEC, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT12__IPU_CSI0_D_12             IOMUX_PAD(0x41C, 0xF0, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT12__GPIO_5_30                 IOMUX_PAD(0x41C, 0xF0, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT12__UART4_TXD_MUX             IOMUX_PAD(0x41C, 0xF0, 2, 0, 2, 0)
+#define MX53_PAD_CSI0_DAT12__USBOH3_USBH3_DATA_0       IOMUX_PAD(0x41C, 0xF0, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT12__SDMA_DEBUG_PC_6   IOMUX_PAD(0x41C, 0xF0, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT12__EMI_EMI_DEBUG_41  IOMUX_PAD(0x41C, 0xF0, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT12__TPIU_TRACE_9              IOMUX_PAD(0x41C, 0xF0, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT13__IPU_CSI0_D_13             IOMUX_PAD(0x420, 0xF4, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT13__GPIO_5_31                 IOMUX_PAD(0x420, 0xF4, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT13__UART4_RXD_MUX             IOMUX_PAD(0x420, 0xF4, 2, 0x890, 3, 0)
+#define MX53_PAD_CSI0_DAT13__USBOH3_USBH3_DATA_1       IOMUX_PAD(0x420, 0xF4, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT13__SDMA_DEBUG_PC_7   IOMUX_PAD(0x420, 0xF4, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT13__EMI_EMI_DEBUG_42  IOMUX_PAD(0x420, 0xF4, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT13__TPIU_TRACE_10             IOMUX_PAD(0x420, 0xF4, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT14__IPU_CSI0_D_14             IOMUX_PAD(0x424, 0xF8, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT14__GPIO_6_0                  IOMUX_PAD(0x424, 0xF8, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT14__UART5_TXD_MUX             IOMUX_PAD(0x424, 0xF8, 2, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT14__USBOH3_USBH3_DATA_2       IOMUX_PAD(0x424, 0xF8, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT14__SDMA_DEBUG_PC_8   IOMUX_PAD(0x424, 0xF8, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT14__EMI_EMI_DEBUG_43  IOMUX_PAD(0x424, 0xF8, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT14__TPIU_TRACE_11             IOMUX_PAD(0x424, 0xF8, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT15__IPU_CSI0_D_15             IOMUX_PAD(0x428, 0xFC, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT15__GPIO_6_1                  IOMUX_PAD(0x428, 0xFC, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT15__UART5_RXD_MUX             IOMUX_PAD(0x428, 0xFC, 2, 0x898, 3, 0)
+#define MX53_PAD_CSI0_DAT15__USBOH3_USBH3_DATA_3       IOMUX_PAD(0x428, 0xFC, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT15__SDMA_DEBUG_PC_9   IOMUX_PAD(0x428, 0xFC, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT15__EMI_EMI_DEBUG_44  IOMUX_PAD(0x428, 0xFC, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT15__TPIU_TRACE_12             IOMUX_PAD(0x428, 0xFC, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT16__IPU_CSI0_D_16             IOMUX_PAD(0x42C, 0x100, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT16__GPIO_6_2                  IOMUX_PAD(0x42C, 0x100, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT16__UART4_RTS                 IOMUX_PAD(0x42C, 0x100, 2, 0x88C, 0, 0)
+#define MX53_PAD_CSI0_DAT16__USBOH3_USBH3_DATA_4       IOMUX_PAD(0x42C, 0x100, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT16__SDMA_DEBUG_PC_10  IOMUX_PAD(0x42C, 0x100, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT16__EMI_EMI_DEBUG_45  IOMUX_PAD(0x42C, 0x100, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT16__TPIU_TRACE_13             IOMUX_PAD(0x42C, 0x100, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT17__IPU_CSI0_D_17             IOMUX_PAD(0x430, 0x104, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT17__GPIO_6_3                  IOMUX_PAD(0x430, 0x104, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT17__UART4_CTS                 IOMUX_PAD(0x430, 0x104, 2, 0x88C, 1, 0)
+#define MX53_PAD_CSI0_DAT17__USBOH3_USBH3_DATA_5       IOMUX_PAD(0x430, 0x104, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT17__SDMA_DEBUG_PC_11  IOMUX_PAD(0x430, 0x104, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT17__EMI_EMI_DEBUG_46  IOMUX_PAD(0x430, 0x104, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT17__TPIU_TRACE_14             IOMUX_PAD(0x430, 0x104, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT18__IPU_CSI0_D_18             IOMUX_PAD(0x434, 0x108, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT18__GPIO_6_4          IOMUX_PAD(0x434, 0x108, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT18__UART5_RTS         IOMUX_PAD(0x434, 0x108, 2, 0x894, 2, 0)
+#define MX53_PAD_CSI0_DAT18__USBOH3_USBH3_DATA_6       IOMUX_PAD(0x434, 0x108, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT18__SDMA_DEBUG_PC_12  IOMUX_PAD(0x434, 0x108, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT18__EMI_EMI_DEBUG_47  IOMUX_PAD(0x434, 0x108, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT18__TPIU_TRACE_15             IOMUX_PAD(0x434, 0x108, 7, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT19__IPU_CSI0_D_19             IOMUX_PAD(0x438, 0x10C, 0, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT19__GPIO_6_5          IOMUX_PAD(0x438, 0x10C, 1, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT19__UART5_CTS         IOMUX_PAD(0x438, 0x10C, 2, 0x894, 3, 0)
+#define MX53_PAD_CSI0_DAT19__USBOH3_USBH3_DATA_7       IOMUX_PAD(0x438, 0x10C, 4, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT19__SDMA_DEBUG_PC_13  IOMUX_PAD(0x438, 0x10C, 5, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT19__EMI_EMI_DEBUG_48  IOMUX_PAD(0x438, 0x10C, 6, 0, 0, 0)
+#define MX53_PAD_CSI0_DAT19__USBPHY2_BISTOK    IOMUX_PAD(0x438, 0x10C, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A25__EMI_WEIM_A_25                IOMUX_PAD(0x458, 0x110, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A25__GPIO_5_2                     IOMUX_PAD(0x458, 0x110, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A25__ECSPI2_RDY           IOMUX_PAD(0x458, 0x110, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A25__IPU_DI1_PIN12                IOMUX_PAD(0x458, 0x110, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A25__CSPI_SS1                     IOMUX_PAD(0x458, 0x110, 4, 0x790, 1, 0)
+#define MX53_PAD_EIM_A25__IPU_DI0_D1_CS                IOMUX_PAD(0x458, 0x110, 6, 0, 0, 0)
+#define MX53_PAD_EIM_A25__USBPHY1_BISTOK               IOMUX_PAD(0x458, 0x110, 7, 0, 0, 0)
+#define MX53_PAD_EIM_EB2__EMI_WEIM_EB_2                IOMUX_PAD(0x45C, 0x114, 0, 0, 0, 0)
+#define MX53_PAD_EIM_EB2__GPIO_2_30                    IOMUX_PAD(0x45C, 0x114, 1, 0, 0, 0)
+#define MX53_PAD_EIM_EB2__CCM_DI1_EXT_CLK              IOMUX_PAD(0x45C, 0x114, 2, 0x76C, 0, 0)
+#define MX53_PAD_EIM_EB2__IPU_SER_DISP1_CS             IOMUX_PAD(0x45C, 0x114, 3, 0, 0, 0)
+#define MX53_PAD_EIM_EB2__ECSPI1_SS0           IOMUX_PAD(0x45C, 0x114, 4, 0x7A8, 3, 0)
+#define MX53_PAD_EIM_EB2__I2C2_SCL                     IOMUX_PAD(0x45C, 0x114, 5 | IOMUX_CONFIG_SION, 0x81C, 1, 0)
+#define MX53_PAD_EIM_D16__EMI_WEIM_D_16                IOMUX_PAD(0x460, 0x118, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D16__GPIO_3_16                    IOMUX_PAD(0x460, 0x118, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D16__IPU_DI0_PIN5         IOMUX_PAD(0x460, 0x118, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D16__IPU_DISPB1_SER_CLK   IOMUX_PAD(0x460, 0x118, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D16__ECSPI1_SCLK          IOMUX_PAD(0x460, 0x118, 4, 0x79C, 3, 0)
+#define MX53_PAD_EIM_D16__I2C2_SDA                     IOMUX_PAD(0x460, 0x118, 5, 0x820, 1, 0)
+#define MX53_PAD_EIM_D17__EMI_WEIM_D_17                IOMUX_PAD(0x464, 0x11C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D17__GPIO_3_17                    IOMUX_PAD(0x464, 0x11C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D17__IPU_DI0_PIN6         IOMUX_PAD(0x464, 0x11C, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D17__IPU_DISPB1_SER_DIN   IOMUX_PAD(0x464, 0x11C, 3, 0x830, 0, 0)
+#define MX53_PAD_EIM_D17__ECSPI1_MISO          IOMUX_PAD(0x464, 0x11C, 4, 0x7A0, 3, 0)
+#define MX53_PAD_EIM_D17__I2C3_SCL                     IOMUX_PAD(0x464, 0x11C, 5, 0x824, 0, 0)
+#define MX53_PAD_EIM_D18__EMI_WEIM_D_18                IOMUX_PAD(0x468, 0x120, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D18__GPIO_3_18                    IOMUX_PAD(0x468, 0x120, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D18__IPU_DI0_PIN7         IOMUX_PAD(0x468, 0x120, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D18__IPU_DISPB1_SER_DIO   IOMUX_PAD(0x468, 0x120, 3, 0x830, 1, 0)
+#define MX53_PAD_EIM_D18__ECSPI1_MOSI          IOMUX_PAD(0x468, 0x120, 4, 0x7A4, 3, 0)
+#define MX53_PAD_EIM_D18__I2C3_SDA                     IOMUX_PAD(0x468, 0x120, 5, 0x828, 0, 0)
+#define MX53_PAD_EIM_D18__IPU_DI1_D0_CS                IOMUX_PAD(0x468, 0x120, 6, 0, 0, 0)
+#define MX53_PAD_EIM_D19__EMI_WEIM_D_19                IOMUX_PAD(0x46C, 0x124, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D19__GPIO_3_19                    IOMUX_PAD(0x46C, 0x124, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D19__IPU_DI0_PIN8         IOMUX_PAD(0x46C, 0x124, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D19__IPU_DISPB1_SER_RS    IOMUX_PAD(0x46C, 0x124, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D19__ECSPI1_SS1           IOMUX_PAD(0x46C, 0x124, 4, 0x7AC, 2, 0)
+#define MX53_PAD_EIM_D19__EPIT1_EPITO          IOMUX_PAD(0x46C, 0x124, 5, 0, 0, 0)
+#define MX53_PAD_EIM_D19__UART1_CTS                    IOMUX_PAD(0x46C, 0x124, 6, 0x874, 0, 0)
+#define MX53_PAD_EIM_D19__USBOH3_USBH2_OC              IOMUX_PAD(0x46C, 0x124, 7, 0x8A4, 0, 0)
+#define MX53_PAD_EIM_D20__EMI_WEIM_D_20                IOMUX_PAD(0x470, 0x128, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D20__GPIO_3_20                    IOMUX_PAD(0x470, 0x128, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D20__IPU_DI0_PIN16                IOMUX_PAD(0x470, 0x128, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D20__IPU_SER_DISP0_CS             IOMUX_PAD(0x470, 0x128, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D20__CSPI_SS0                     IOMUX_PAD(0x470, 0x128, 4, 0x78C, 1, 0)
+#define MX53_PAD_EIM_D20__EPIT2_EPITO          IOMUX_PAD(0x470, 0x128, 5, 0, 0, 0)
+#define MX53_PAD_EIM_D20__UART1_RTS                    IOMUX_PAD(0x470, 0x128, 6, 0x874, 1, 0)
+#define MX53_PAD_EIM_D20__USBOH3_USBH2_PWR     IOMUX_PAD(0x470, 0x128, 7, 0, 0, 0)
+#define MX53_PAD_EIM_D21__EMI_WEIM_D_21                IOMUX_PAD(0x474, 0x12C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D21__GPIO_3_21                    IOMUX_PAD(0x474, 0x12C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D21__IPU_DI0_PIN17                IOMUX_PAD(0x474, 0x12C, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D21__IPU_DISPB0_SER_CLK   IOMUX_PAD(0x474, 0x12C, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D21__CSPI_SCLK                    IOMUX_PAD(0x474, 0x12C, 4, 0x780, 1, 0)
+#define MX53_PAD_EIM_D21__I2C1_SCL                     IOMUX_PAD(0x474, 0x12C, 5, 0x814, 1, 0)
+#define MX53_PAD_EIM_D21__USBOH3_USBOTG_OC     IOMUX_PAD(0x474, 0x12C, 6, 0x89C, 1, 0)
+#define MX53_PAD_EIM_D22__EMI_WEIM_D_22                IOMUX_PAD(0x478, 0x130, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D22__GPIO_3_22                    IOMUX_PAD(0x478, 0x130, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D22__IPU_DI0_PIN1         IOMUX_PAD(0x478, 0x130, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D22__IPU_DISPB0_SER_DIN   IOMUX_PAD(0x478, 0x130, 3, 0x82C, 0, 0)
+#define MX53_PAD_EIM_D22__CSPI_MISO                    IOMUX_PAD(0x478, 0x130, 4, 0x784, 1, 0)
+#define MX53_PAD_EIM_D22__USBOH3_USBOTG_PWR    IOMUX_PAD(0x478, 0x130, 6, 0, 0, 0)
+#define MX53_PAD_EIM_D23__EMI_WEIM_D_23                IOMUX_PAD(0x47C, 0x134, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D23__GPIO_3_23                    IOMUX_PAD(0x47C, 0x134, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D23__UART3_CTS                    IOMUX_PAD(0x47C, 0x134, 2, 0x884, 0, 0)
+#define MX53_PAD_EIM_D23__UART1_DCD            IOMUX_PAD(0x47C, 0x134, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D23__IPU_DI0_D0_CS                IOMUX_PAD(0x47C, 0x134, 4, 0, 0, 0)
+#define MX53_PAD_EIM_D23__IPU_DI1_PIN2         IOMUX_PAD(0x47C, 0x134, 5, 0, 0, 0)
+#define MX53_PAD_EIM_D23__IPU_CSI1_DATA_EN             IOMUX_PAD(0x47C, 0x134, 6, 0x834, 0, 0)
+#define MX53_PAD_EIM_D23__IPU_DI1_PIN14                IOMUX_PAD(0x47C, 0x134, 7, 0, 0, 0)
+#define MX53_PAD_EIM_EB3__EMI_WEIM_EB_3                IOMUX_PAD(0x480, 0x138, 0, 0, 0, 0)
+#define MX53_PAD_EIM_EB3__GPIO_2_31                    IOMUX_PAD(0x480, 0x138, 1, 0, 0, 0)
+#define MX53_PAD_EIM_EB3__UART3_RTS                    IOMUX_PAD(0x480, 0x138, 2, 0x884, 1, 0)
+#define MX53_PAD_EIM_EB3__UART1_RI                     IOMUX_PAD(0x480, 0x138, 3, 0, 0, 0)
+#define MX53_PAD_EIM_EB3__IPU_DI1_PIN3         IOMUX_PAD(0x480, 0x138, 5, 0, 0, 0)
+#define MX53_PAD_EIM_EB3__IPU_CSI1_HSYNC               IOMUX_PAD(0x480, 0x138, 6, 0x838, 0, 0)
+#define MX53_PAD_EIM_EB3__IPU_DI1_PIN16                IOMUX_PAD(0x480, 0x138, 7, 0, 0, 0)
+#define MX53_PAD_EIM_D24__EMI_WEIM_D_24                IOMUX_PAD(0x484, 0x13C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D24__GPIO_3_24                    IOMUX_PAD(0x484, 0x13C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D24__UART3_TXD_MUX                IOMUX_PAD(0x484, 0x13C, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D24__ECSPI1_SS2           IOMUX_PAD(0x484, 0x13C, 3, 0x7B0, 1, 0)
+#define MX53_PAD_EIM_D24__CSPI_SS2                     IOMUX_PAD(0x484, 0x13C, 4, 0x794, 1, 0)
+#define MX53_PAD_EIM_D24__AUDMUX_AUD5_RXFS     IOMUX_PAD(0x484, 0x13C, 5, 0x754, 1, 0)
+#define MX53_PAD_EIM_D24__ECSPI2_SS2           IOMUX_PAD(0x484, 0x13C, 6, 0, 0, 0)
+#define MX53_PAD_EIM_D24__UART1_DTR            IOMUX_PAD(0x484, 0x13C, 7, 0, 0, 0)
+#define MX53_PAD_EIM_D25__EMI_WEIM_D_25                IOMUX_PAD(0x488, 0x140, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D25__GPIO_3_25                    IOMUX_PAD(0x488, 0x140, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D25__UART3_RXD_MUX                IOMUX_PAD(0x488, 0x140, 2, 0x888, 1, 0)
+#define MX53_PAD_EIM_D25__ECSPI1_SS3           IOMUX_PAD(0x488, 0x140, 3, 0x7B4, 1, 0)
+#define MX53_PAD_EIM_D25__CSPI_SS3                     IOMUX_PAD(0x488, 0x140, 4, 0x798, 1, 0)
+#define MX53_PAD_EIM_D25__AUDMUX_AUD5_RXC              IOMUX_PAD(0x488, 0x140, 5, 0x750, 1, 0)
+#define MX53_PAD_EIM_D25__ECSPI2_SS3           IOMUX_PAD(0x488, 0x140, 6, 0, 0, 0)
+#define MX53_PAD_EIM_D25__UART1_DSR            IOMUX_PAD(0x488, 0x140, 7, 0, 0, 0)
+#define MX53_PAD_EIM_D26__EMI_WEIM_D_26                IOMUX_PAD(0x48C, 0x144, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D26__GPIO_3_26                    IOMUX_PAD(0x48C, 0x144, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D26__UART2_TXD_MUX                IOMUX_PAD(0x48C, 0x144, 2, 0, 0, 0)
+#define MX53_PAD_EIM_D26__FIRI_RXD                     IOMUX_PAD(0x48C, 0x144, 3, 0x80C, 0, 0)
+#define MX53_PAD_EIM_D26__IPU_CSI0_D_1         IOMUX_PAD(0x48C, 0x144, 4, 0, 0, 0)
+#define MX53_PAD_EIM_D26__IPU_DI1_PIN11                IOMUX_PAD(0x48C, 0x144, 5, 0, 0, 0)
+#define MX53_PAD_EIM_D26__IPU_SISG_2           IOMUX_PAD(0x48C, 0x144, 6, 0, 0, 0)
+#define MX53_PAD_EIM_D26__IPU_DISP1_DAT_22             IOMUX_PAD(0x48C, 0x144, 7, 0, 0, 0)
+#define MX53_PAD_EIM_D27__EMI_WEIM_D_27                IOMUX_PAD(0x490, 0x148, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D27__GPIO_3_27                    IOMUX_PAD(0x490, 0x148, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D27__UART2_RXD_MUX                IOMUX_PAD(0x490, 0x148, 2, 0x880, 1, 0)
+#define MX53_PAD_EIM_D27__FIRI_TXD                     IOMUX_PAD(0x490, 0x148, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D27__IPU_CSI0_D_0         IOMUX_PAD(0x490, 0x148, 4, 0, 0, 0)
+#define MX53_PAD_EIM_D27__IPU_DI1_PIN13                IOMUX_PAD(0x490, 0x148, 5, 0, 0, 0)
+#define MX53_PAD_EIM_D27__IPU_SISG_3           IOMUX_PAD(0x490, 0x148, 6, 0, 0, 0)
+#define MX53_PAD_EIM_D27__IPU_DISP1_DAT_23             IOMUX_PAD(0x490, 0x148, 7, 0, 0, 0)
+#define MX53_PAD_EIM_D28__EMI_WEIM_D_28                IOMUX_PAD(0x494, 0x14C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D28__GPIO_3_28                    IOMUX_PAD(0x494, 0x14C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D28__UART2_CTS                    IOMUX_PAD(0x494, 0x14C, 2, 0x87C, 0, 0)
+#define MX53_PAD_EIM_D28__IPU_DISPB0_SER_DIO   IOMUX_PAD(0x494, 0x14C, 3, 0x82C, 1, 0)
+#define MX53_PAD_EIM_D28__CSPI_MOSI                    IOMUX_PAD(0x494, 0x14C, 4, 0x788, 1, 0)
+#define MX53_PAD_EIM_D28__I2C1_SDA                     IOMUX_PAD(0x494, 0x14C, 5, 0x818, 1, 0)
+#define MX53_PAD_EIM_D28__IPU_EXT_TRIG         IOMUX_PAD(0x494, 0x14C, 6, 0, 0, 0)
+#define MX53_PAD_EIM_D28__IPU_DI0_PIN13                IOMUX_PAD(0x494, 0x14C, 7, 0, 0, 0)
+#define MX53_PAD_EIM_D29__EMI_WEIM_D_29                IOMUX_PAD(0x498, 0x150, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D29__GPIO_3_29                    IOMUX_PAD(0x498, 0x150, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D29__UART2_RTS                    IOMUX_PAD(0x498, 0x150, 2, 0x87C, 1, 0)
+#define MX53_PAD_EIM_D29__IPU_DISPB0_SER_RS    IOMUX_PAD(0x498, 0x150, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D29__CSPI_SS0                     IOMUX_PAD(0x498, 0x150, 4, 0x78C, 2, 0)
+#define MX53_PAD_EIM_D29__IPU_DI1_PIN15                IOMUX_PAD(0x498, 0x150, 5, 0, 0, 0)
+#define MX53_PAD_EIM_D29__IPU_CSI1_VSYNC               IOMUX_PAD(0x498, 0x150, 6, 0x83C, 0, 0)
+#define MX53_PAD_EIM_D29__IPU_DI0_PIN14                IOMUX_PAD(0x498, 0x150, 7, 0, 0, 0)
+#define MX53_PAD_EIM_D30__EMI_WEIM_D_30                IOMUX_PAD(0x49C, 0x154, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D30__GPIO_3_30                    IOMUX_PAD(0x49C, 0x154, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D30__UART3_CTS                    IOMUX_PAD(0x49C, 0x154, 2, 0x884, 2, 0)
+#define MX53_PAD_EIM_D30__IPU_CSI0_D_3         IOMUX_PAD(0x49C, 0x154, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D30__IPU_DI0_PIN11                IOMUX_PAD(0x49C, 0x154, 4, 0, 0, 0)
+#define MX53_PAD_EIM_D30__IPU_DISP1_DAT_21             IOMUX_PAD(0x49C, 0x154, 5, 0, 0, 0)
+#define MX53_PAD_EIM_D30__USBOH3_USBH1_OC              IOMUX_PAD(0x49C, 0x154, 6, 0x8A0, 0, 0)
+#define MX53_PAD_EIM_D30__USBOH3_USBH2_OC              IOMUX_PAD(0x49C, 0x154, 7, 0x8A4, 1, 0)
+#define MX53_PAD_EIM_D31__EMI_WEIM_D_31                IOMUX_PAD(0x4A0, 0x158, 0, 0, 0, 0)
+#define MX53_PAD_EIM_D31__GPIO_3_31                    IOMUX_PAD(0x4A0, 0x158, 1, 0, 0, 0)
+#define MX53_PAD_EIM_D31__UART3_RTS                    IOMUX_PAD(0x4A0, 0x158, 2, 0x884, 3, 0)
+#define MX53_PAD_EIM_D31__IPU_CSI0_D_2         IOMUX_PAD(0x4A0, 0x158, 3, 0, 0, 0)
+#define MX53_PAD_EIM_D31__IPU_DI0_PIN12                IOMUX_PAD(0x4A0, 0x158, 4, 0, 0, 0)
+#define MX53_PAD_EIM_D31__IPU_DISP1_DAT_20             IOMUX_PAD(0x4A0, 0x158, 5, 0, 0, 0)
+#define MX53_PAD_EIM_D31__USBOH3_USBH1_PWR     IOMUX_PAD(0x4A0, 0x158, 6, 0, 0, 0)
+#define MX53_PAD_EIM_D31__USBOH3_USBH2_PWR     IOMUX_PAD(0x4A0, 0x158, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A24__EMI_WEIM_A_24                IOMUX_PAD(0x4A8, 0x15C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A24__GPIO_5_4                     IOMUX_PAD(0x4A8, 0x15C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A24__IPU_DISP1_DAT_19             IOMUX_PAD(0x4A8, 0x15C, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A24__IPU_CSI1_D_19                IOMUX_PAD(0x4A8, 0x15C, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A24__IPU_SISG_2           IOMUX_PAD(0x4A8, 0x15C, 6, 0, 0, 0)
+#define MX53_PAD_EIM_A24__USBPHY2_BVALID               IOMUX_PAD(0x4A8, 0x15C, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A23__EMI_WEIM_A_23                IOMUX_PAD(0x4AC, 0x160, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A23__GPIO_6_6                     IOMUX_PAD(0x4AC, 0x160, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A23__IPU_DISP1_DAT_18             IOMUX_PAD(0x4AC, 0x160, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A23__IPU_CSI1_D_18                IOMUX_PAD(0x4AC, 0x160, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A23__IPU_SISG_3           IOMUX_PAD(0x4AC, 0x160, 6, 0, 0, 0)
+#define MX53_PAD_EIM_A23__USBPHY2_ENDSESSION   IOMUX_PAD(0x4AC, 0x160, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A22__EMI_WEIM_A_22                IOMUX_PAD(0x4B0, 0x164, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A22__GPIO_2_16                    IOMUX_PAD(0x4B0, 0x164, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A22__IPU_DISP1_DAT_17             IOMUX_PAD(0x4B0, 0x164, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A22__IPU_CSI1_D_17                IOMUX_PAD(0x4B0, 0x164, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A22__SRC_BT_CFG1_7                IOMUX_PAD(0x4B0, 0x164, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A21__EMI_WEIM_A_21                IOMUX_PAD(0x4B4, 0x168, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A21__GPIO_2_17                    IOMUX_PAD(0x4B4, 0x168, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A21__IPU_DISP1_DAT_16             IOMUX_PAD(0x4B4, 0x168, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A21__IPU_CSI1_D_16                IOMUX_PAD(0x4B4, 0x168, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A21__SRC_BT_CFG1_6                IOMUX_PAD(0x4B4, 0x168, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A20__EMI_WEIM_A_20                IOMUX_PAD(0x4B8, 0x16C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A20__GPIO_2_18                    IOMUX_PAD(0x4B8, 0x16C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A20__IPU_DISP1_DAT_15             IOMUX_PAD(0x4B8, 0x16C, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A20__IPU_CSI1_D_15                IOMUX_PAD(0x4B8, 0x16C, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A20__SRC_BT_CFG1_5                IOMUX_PAD(0x4B8, 0x16C, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A19__EMI_WEIM_A_19                IOMUX_PAD(0x4BC, 0x170, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A19__GPIO_2_19                    IOMUX_PAD(0x4BC, 0x170, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A19__IPU_DISP1_DAT_14             IOMUX_PAD(0x4BC, 0x170, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A19__IPU_CSI1_D_14                IOMUX_PAD(0x4BC, 0x170, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A19__SRC_BT_CFG1_4                IOMUX_PAD(0x4BC, 0x170, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A18__EMI_WEIM_A_18                IOMUX_PAD(0x4C0, 0x174, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A18__GPIO_2_20                    IOMUX_PAD(0x4C0, 0x174, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A18__IPU_DISP1_DAT_13             IOMUX_PAD(0x4C0, 0x174, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A18__IPU_CSI1_D_13                IOMUX_PAD(0x4C0, 0x174, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A18__SRC_BT_CFG1_3                IOMUX_PAD(0x4C0, 0x174, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A17__EMI_WEIM_A_17                IOMUX_PAD(0x4C4, 0x178, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A17__GPIO_2_21                    IOMUX_PAD(0x4C4, 0x178, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A17__IPU_DISP1_DAT_12             IOMUX_PAD(0x4C4, 0x178, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A17__IPU_CSI1_D_12                IOMUX_PAD(0x4C4, 0x178, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A17__SRC_BT_CFG1_2                IOMUX_PAD(0x4C4, 0x178, 7, 0, 0, 0)
+#define MX53_PAD_EIM_A16__EMI_WEIM_A_16                IOMUX_PAD(0x4C8, 0x17C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_A16__GPIO_2_22                    IOMUX_PAD(0x4C8, 0x17C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_A16__IPU_DI1_DISP_CLK             IOMUX_PAD(0x4C8, 0x17C, 2, 0, 0, 0)
+#define MX53_PAD_EIM_A16__IPU_CSI1_PIXCLK              IOMUX_PAD(0x4C8, 0x17C, 3, 0, 0, 0)
+#define MX53_PAD_EIM_A16__SRC_BT_CFG1_1                IOMUX_PAD(0x4C8, 0x17C, 7, 0, 0, 0)
+#define MX53_PAD_EIM_CS0__EMI_WEIM_CS_0                IOMUX_PAD(0x4CC, 0x180, 0, 0, 0, 0)
+#define MX53_PAD_EIM_CS0__GPIO_2_23                    IOMUX_PAD(0x4CC, 0x180, 1, 0, 0, 0)
+#define MX53_PAD_EIM_CS0__ECSPI2_SCLK          IOMUX_PAD(0x4CC, 0x180, 2, 0x7B8, 2, 0)
+#define MX53_PAD_EIM_CS0__IPU_DI1_PIN5         IOMUX_PAD(0x4CC, 0x180, 3, 0, 0, 0)
+#define MX53_PAD_EIM_CS1__EMI_WEIM_CS_1                IOMUX_PAD(0x4D0, 0x184, 0, 0, 0, 0)
+#define MX53_PAD_EIM_CS1__GPIO_2_24                    IOMUX_PAD(0x4D0, 0x184, 1, 0, 0, 0)
+#define MX53_PAD_EIM_CS1__ECSPI2_MOSI          IOMUX_PAD(0x4D0, 0x184, 2, 0x7C0, 2, 0)
+#define MX53_PAD_EIM_CS1__IPU_DI1_PIN6         IOMUX_PAD(0x4D0, 0x184, 3, 0, 0, 0)
+#define MX53_PAD_EIM_OE__EMI_WEIM_OE           IOMUX_PAD(0x4D4, 0x188, 0, 0, 0, 0)
+#define MX53_PAD_EIM_OE__GPIO_2_25                     IOMUX_PAD(0x4D4, 0x188, 1, 0, 0, 0)
+#define MX53_PAD_EIM_OE__ECSPI2_MISO           IOMUX_PAD(0x4D4, 0x188, 2, 0x7BC, 2, 0)
+#define MX53_PAD_EIM_OE__IPU_DI1_PIN7          IOMUX_PAD(0x4D4, 0x188, 3, 0, 0, 0)
+#define MX53_PAD_EIM_OE__USBPHY2_IDDIG         IOMUX_PAD(0x4D4, 0x188, 7, 0, 0, 0)
+#define MX53_PAD_EIM_RW__EMI_WEIM_RW           IOMUX_PAD(0x4D8, 0x18C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_RW__GPIO_2_26                     IOMUX_PAD(0x4D8, 0x18C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_RW__ECSPI2_SS0                    IOMUX_PAD(0x4D8, 0x18C, 2, 0x7C4, 2, 0)
+#define MX53_PAD_EIM_RW__IPU_DI1_PIN8          IOMUX_PAD(0x4D8, 0x18C, 3, 0, 0, 0)
+#define MX53_PAD_EIM_RW__USBPHY2_HOSTDISCONNECT        IOMUX_PAD(0x4D8, 0x18C, 7, 0, 0, 0)
+#define MX53_PAD_EIM_LBA__EMI_WEIM_LBA         IOMUX_PAD(0x4DC, 0x190, 0, 0, 0, 0)
+#define MX53_PAD_EIM_LBA__GPIO_2_27                    IOMUX_PAD(0x4DC, 0x190, 1, 0, 0, 0)
+#define MX53_PAD_EIM_LBA__ECSPI2_SS1           IOMUX_PAD(0x4DC, 0x190, 2, 0x7C8, 1, 0)
+#define MX53_PAD_EIM_LBA__IPU_DI1_PIN17                IOMUX_PAD(0x4DC, 0x190, 3, 0, 0, 0)
+#define MX53_PAD_EIM_LBA__SRC_BT_CFG1_0                IOMUX_PAD(0x4DC, 0x190, 7, 0, 0, 0)
+#define MX53_PAD_EIM_EB0__EMI_WEIM_EB_0                IOMUX_PAD(0x4E4, 0x194, 0, 0, 0, 0)
+#define MX53_PAD_EIM_EB0__GPIO_2_28                    IOMUX_PAD(0x4E4, 0x194, 1, 0, 0, 0)
+#define MX53_PAD_EIM_EB0__IPU_DISP1_DAT_11             IOMUX_PAD(0x4E4, 0x194, 3, 0, 0, 0)
+#define MX53_PAD_EIM_EB0__IPU_CSI1_D_11                IOMUX_PAD(0x4E4, 0x194, 4, 0, 0, 0)
+#define MX53_PAD_EIM_EB0__GPC_PMIC_RDY         IOMUX_PAD(0x4E4, 0x194, 5, 0x810, 0, 0)
+#define MX53_PAD_EIM_EB0__SRC_BT_CFG2_7                IOMUX_PAD(0x4E4, 0x194, 7, 0, 0, 0)
+#define MX53_PAD_EIM_EB1__EMI_WEIM_EB_1                IOMUX_PAD(0x4E8, 0x198, 0, 0, 0, 0)
+#define MX53_PAD_EIM_EB1__GPIO_2_29                    IOMUX_PAD(0x4E8, 0x198, 1, 0, 0, 0)
+#define MX53_PAD_EIM_EB1__IPU_DISP1_DAT_10             IOMUX_PAD(0x4E8, 0x198, 3, 0, 0, 0)
+#define MX53_PAD_EIM_EB1__IPU_CSI1_D_10                IOMUX_PAD(0x4E8, 0x198, 4, 0, 0, 0)
+#define MX53_PAD_EIM_EB1__SRC_BT_CFG2_6                IOMUX_PAD(0x4E8, 0x198, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA0__EMI_NAND_WEIM_DA_0   IOMUX_PAD(0x4EC, 0x19C, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA0__GPIO_3_0                     IOMUX_PAD(0x4EC, 0x19C, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA0__IPU_DISP1_DAT_9              IOMUX_PAD(0x4EC, 0x19C, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA0__IPU_CSI1_D_9         IOMUX_PAD(0x4EC, 0x19C, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA0__SRC_BT_CFG2_5                IOMUX_PAD(0x4EC, 0x19C, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA1__EMI_NAND_WEIM_DA_1   IOMUX_PAD(0x4F0, 0x1A0, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA1__GPIO_3_1                     IOMUX_PAD(0x4F0, 0x1A0, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA1__IPU_DISP1_DAT_8              IOMUX_PAD(0x4F0, 0x1A0, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA1__IPU_CSI1_D_8         IOMUX_PAD(0x4F0, 0x1A0, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA1__SRC_BT_CFG2_4                IOMUX_PAD(0x4F0, 0x1A0, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA2__EMI_NAND_WEIM_DA_2   IOMUX_PAD(0x4F4, 0x1A4, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA2__GPIO_3_2                     IOMUX_PAD(0x4F4, 0x1A4, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA2__IPU_DISP1_DAT_7              IOMUX_PAD(0x4F4, 0x1A4, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA2__IPU_CSI1_D_7         IOMUX_PAD(0x4F4, 0x1A4, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA2__SRC_BT_CFG2_3                IOMUX_PAD(0x4F4, 0x1A4, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA3__EMI_NAND_WEIM_DA_3   IOMUX_PAD(0x4F8, 0x1A8, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA3__GPIO_3_3                     IOMUX_PAD(0x4F8, 0x1A8, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA3__IPU_DISP1_DAT_6              IOMUX_PAD(0x4F8, 0x1A8, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA3__IPU_CSI1_D_6         IOMUX_PAD(0x4F8, 0x1A8, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA3__SRC_BT_CFG2_2                IOMUX_PAD(0x4F8, 0x1A8, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA4__EMI_NAND_WEIM_DA_4   IOMUX_PAD(0x4FC, 0x1AC, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA4__GPIO_3_4                     IOMUX_PAD(0x4FC, 0x1AC, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA4__IPU_DISP1_DAT_5              IOMUX_PAD(0x4FC, 0x1AC, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA4__IPU_CSI1_D_5         IOMUX_PAD(0x4FC, 0x1AC, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA4__SRC_BT_CFG3_7                IOMUX_PAD(0x4FC, 0x1AC, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA5__EMI_NAND_WEIM_DA_5   IOMUX_PAD(0x500, 0x1B0, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA5__GPIO_3_5                     IOMUX_PAD(0x500, 0x1B0, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA5__IPU_DISP1_DAT_4              IOMUX_PAD(0x500, 0x1B0, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA5__IPU_CSI1_D_4         IOMUX_PAD(0x500, 0x1B0, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA5__SRC_BT_CFG3_6                IOMUX_PAD(0x500, 0x1B0, 17, 0, 0, 0)
+#define MX53_PAD_EIM_DA6__EMI_NAND_WEIM_DA_6   IOMUX_PAD(0x504, 0x1B4, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA6__GPIO_3_6                     IOMUX_PAD(0x504, 0x1B4, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA6__IPU_DISP1_DAT_3              IOMUX_PAD(0x504, 0x1B4, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA6__IPU_CSI1_D_3         IOMUX_PAD(0x504, 0x1B4, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA6__SRC_BT_CFG3_5                IOMUX_PAD(0x504, 0x1B4, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA7__EMI_NAND_WEIM_DA_7   IOMUX_PAD(0x508, 0x1B8, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA7__GPIO_3_7                     IOMUX_PAD(0x508, 0x1B8, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA7__IPU_DISP1_DAT_2              IOMUX_PAD(0x508, 0x1B8, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA7__IPU_CSI1_D_2         IOMUX_PAD(0x508, 0x1B8, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA7__SRC_BT_CFG3_4                IOMUX_PAD(0x508, 0x1B8, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA8__EMI_NAND_WEIM_DA_8   IOMUX_PAD(0x50C, 0x1BC, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA8__GPIO_3_8                     IOMUX_PAD(0x50C, 0x1BC, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA8__IPU_DISP1_DAT_1              IOMUX_PAD(0x50C, 0x1BC, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA8__IPU_CSI1_D_1         IOMUX_PAD(0x50C, 0x1BC, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA8__SRC_BT_CFG3_3                IOMUX_PAD(0x50C, 0x1BC, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA9__EMI_NAND_WEIM_DA_9   IOMUX_PAD(0x510, 0x1C0, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA9__GPIO_3_9                     IOMUX_PAD(0x510, 0x1C0, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA9__IPU_DISP1_DAT_0              IOMUX_PAD(0x510, 0x1C0, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA9__IPU_CSI1_D_0         IOMUX_PAD(0x510, 0x1C0, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA9__SRC_BT_CFG3_2                IOMUX_PAD(0x510, 0x1C0, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA10__EMI_NAND_WEIM_DA_10 IOMUX_PAD(0x514, 0x1C4, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA10__GPIO_3_10                   IOMUX_PAD(0x514, 0x1C4, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA10__IPU_DI1_PIN15               IOMUX_PAD(0x514, 0x1C4, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA10__IPU_CSI1_DATA_EN    IOMUX_PAD(0x514, 0x1C4, 4, 0x834, 1, 0)
+#define MX53_PAD_EIM_DA10__SRC_BT_CFG3_1               IOMUX_PAD(0x514, 0x1C4, 7, 0, 0, 0)
+#define MX53_PAD_EIM_DA11__EMI_NAND_WEIM_DA_11 IOMUX_PAD(0x518, 0x1C8, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA11__GPIO_3_11                   IOMUX_PAD(0x518, 0x1C8, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA11__IPU_DI1_PIN2                IOMUX_PAD(0x518, 0x1C8, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA11__IPU_CSI1_HSYNC              IOMUX_PAD(0x518, 0x1C8, 4, 0x838, 1, 0)
+#define MX53_PAD_EIM_DA12__EMI_NAND_WEIM_DA_12 IOMUX_PAD(0x51C, 0x1CC, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA12__GPIO_3_12                   IOMUX_PAD(0x51C, 0x1CC, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA12__IPU_DI1_PIN3                IOMUX_PAD(0x51C, 0x1CC, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA12__IPU_CSI1_VSYNC              IOMUX_PAD(0x51C, 0x1CC, 4, 0x83C, 1, 0)
+#define MX53_PAD_EIM_DA13__EMI_NAND_WEIM_DA_13 IOMUX_PAD(0x520, 0x1D0, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA13__GPIO_3_13                   IOMUX_PAD(0x520, 0x1D0, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA13__IPU_DI1_D0_CS               IOMUX_PAD(0x520, 0x1D0, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA13__CCM_DI1_EXT_CLK             IOMUX_PAD(0x520, 0x1D0, 4, 0x76C, 1, 0)
+#define MX53_PAD_EIM_DA14__EMI_NAND_WEIM_DA_14 IOMUX_PAD(0x524, 0x1D4, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA14__GPIO_3_14                   IOMUX_PAD(0x524, 0x1D4, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA14__IPU_DI1_D1_CS               IOMUX_PAD(0x524, 0x1D4, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA14__CCM_DI0_EXT_CLK             IOMUX_PAD(0x524, 0x1D4, 4, 0, 0, 0)
+#define MX53_PAD_EIM_DA15__EMI_NAND_WEIM_DA_15 IOMUX_PAD(0x528, 0x1D8, 0, 0, 0, 0)
+#define MX53_PAD_EIM_DA15__GPIO_3_15                   IOMUX_PAD(0x528, 0x1D8, 1, 0, 0, 0)
+#define MX53_PAD_EIM_DA15__IPU_DI1_PIN1                IOMUX_PAD(0x528, 0x1D8, 3, 0, 0, 0)
+#define MX53_PAD_EIM_DA15__IPU_DI1_PIN4                IOMUX_PAD(0x528, 0x1D8, 4, 0, 0, 0)
+#define MX53_PAD_NANDF_WE_B__EMI_NANDF_WE_B    IOMUX_PAD(0x52C, 0x1DC, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_WE_B__GPIO_6_12         IOMUX_PAD(0x52C, 0x1DC, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_RE_B__EMI_NANDF_RE_B    IOMUX_PAD(0x530, 0x1E0, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_RE_B__GPIO_6_13         IOMUX_PAD(0x530, 0x1E0, 1, 0, 0, 0)
+#define MX53_PAD_EIM_WAIT__EMI_WEIM_WAIT               IOMUX_PAD(0x534, 0x1E4, 0, 0, 0, 0)
+#define MX53_PAD_EIM_WAIT__GPIO_5_0                    IOMUX_PAD(0x534, 0x1E4, 1, 0, 0, 0)
+#define MX53_PAD_EIM_WAIT__EMI_WEIM_DTACK_B    IOMUX_PAD(0x534, 0x1E4, 2, 0, 0, 0)
+#define MX53_PAD_LVDS1_TX3_P__GPIO_6_22                IOMUX_PAD(NON_PAD_I, 0x1EC, 0, 0, 0, 0)
+#define MX53_PAD_LVDS1_TX3_P__LDB_LVDS1_TX3    IOMUX_PAD(NON_PAD_I, 0x1EC, 1, 0, 0, 0)
+#define MX53_PAD_LVDS1_TX2_P__GPIO_6_24                IOMUX_PAD(NON_PAD_I, 0x1F0, 0, 0, 0, 0)
+#define MX53_PAD_LVDS1_TX2_P__LDB_LVDS1_TX2    IOMUX_PAD(NON_PAD_I, 0x1F0, 1, 0, 0, 0)
+#define MX53_PAD_LVDS1_CLK_P__GPIO_6_26                IOMUX_PAD(NON_PAD_I, 0x1F4, 0, 0, 0, 0)
+#define MX53_PAD_LVDS1_CLK_P__LDB_LVDS1_CLK    IOMUX_PAD(NON_PAD_I, 0x1F4, 1, 0, 0, 0)
+#define MX53_PAD_LVDS1_TX1_P__GPIO_6_28                IOMUX_PAD(NON_PAD_I, 0x1F8, 0, 0, 0, 0)
+#define MX53_PAD_LVDS1_TX1_P__LDB_LVDS1_TX1    IOMUX_PAD(NON_PAD_I, 0x1F8, 1, 0, 0, 0)
+#define MX53_PAD_LVDS1_TX0_P__GPIO_6_30                IOMUX_PAD(NON_PAD_I, 0x1FC, 0, 0, 0, 0)
+#define MX53_PAD_LVDS1_TX0_P__LDB_LVDS1_TX0    IOMUX_PAD(NON_PAD_I, 0x1FC, 1, 0, 0, 0)
+#define MX53_PAD_LVDS0_TX3_P__GPIO_7_22                IOMUX_PAD(NON_PAD_I, 0x200, 0, 0, 0, 0)
+#define MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3    IOMUX_PAD(NON_PAD_I, 0x200, 1, 0, 0, 0)
+#define MX53_PAD_LVDS0_CLK_P__GPIO_7_24                IOMUX_PAD(NON_PAD_I, 0x204, 0, 0, 0, 0)
+#define MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK    IOMUX_PAD(NON_PAD_I, 0x204, 1, 0, 0, 0)
+#define MX53_PAD_LVDS0_TX2_P__GPIO_7_26                IOMUX_PAD(NON_PAD_I, 0x208, 0, 0, 0, 0)
+#define MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2    IOMUX_PAD(NON_PAD_I, 0x208, 1, 0, 0, 0)
+#define MX53_PAD_LVDS0_TX1_P__GPIO_7_28                IOMUX_PAD(NON_PAD_I, 0x20C, 0, 0, 0, 0)
+#define MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1    IOMUX_PAD(NON_PAD_I, 0x20C, 1, 0, 0, 0)
+#define MX53_PAD_LVDS0_TX0_P__GPIO_7_30                IOMUX_PAD(NON_PAD_I, 0x210, 0, 0, 0, 0)
+#define MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0    IOMUX_PAD(NON_PAD_I, 0x210, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_10__GPIO_4_0                     IOMUX_PAD(0x540, 0x214, 0, 0, 0, 0)
+#define MX53_PAD_GPIO_10__OSC32k_32K_OUT               IOMUX_PAD(0x540, 0x214, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_11__GPIO_4_1                     IOMUX_PAD(0x544, 0x218, 0, 0, 0, 0)
+#define MX53_PAD_GPIO_12__GPIO_4_2                     IOMUX_PAD(0x548, 0x21C, 0, 0, 0, 0)
+#define MX53_PAD_GPIO_13__GPIO_4_3                     IOMUX_PAD(0x54C, 0x220, 0, 0, 0, 0)
+#define MX53_PAD_GPIO_14__GPIO_4_4                     IOMUX_PAD(0x550, 0x224, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_CLE__EMI_NANDF_CLE              IOMUX_PAD(0x5A0, 0x228, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_CLE__GPIO_6_7                   IOMUX_PAD(0x5A0, 0x228, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_CLE__USBPHY1_VSTATUS_0  IOMUX_PAD(0x5A0, 0x228, 7, 0, 0, 0)
+#define MX53_PAD_NANDF_ALE__EMI_NANDF_ALE              IOMUX_PAD(0x5A4, 0x22C, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_ALE__GPIO_6_8           IOMUX_PAD(0x5A4, 0x22C, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_ALE__USBPHY1_VSTATUS_1  IOMUX_PAD(0x5A4, 0x22C, 7, 0, 0, 0)
+#define MX53_PAD_NANDF_WP_B__EMI_NANDF_WP_B    IOMUX_PAD(0x5A8, 0x230, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_WP_B__GPIO_6_9          IOMUX_PAD(0x5A8, 0x230, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_WP_B__USBPHY1_VSTATUS_2 IOMUX_PAD(0x5A8, 0x230, 7, 0, 0, 0)
+#define MX53_PAD_NANDF_RB0__EMI_NANDF_RB_0     IOMUX_PAD(0x5AC, 0x234, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_RB0__GPIO_6_10          IOMUX_PAD(0x5AC, 0x234, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_RB0__USBPHY1_VSTATUS_3  IOMUX_PAD(0x5AC, 0x234, 7, 0, 0, 0)
+#define MX53_PAD_NANDF_CS0__EMI_NANDF_CS_0     IOMUX_PAD(0x5B0, 0x238, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_CS0__GPIO_6_11          IOMUX_PAD(0x5B0, 0x238, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_CS0__USBPHY1_VSTATUS_4  IOMUX_PAD(0x5B0, 0x238, 7, 0, 0, 0)
+#define MX53_PAD_NANDF_CS1__EMI_NANDF_CS_1     IOMUX_PAD(0x5B4, 0x23C, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_CS1__GPIO_6_14          IOMUX_PAD(0x5B4, 0x23C, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_CS1__MLB_MLBCLK         IOMUX_PAD(0x5B4, 0x23C, 6, 0x858, 0, 0)
+#define MX53_PAD_NANDF_CS1__USBPHY1_VSTATUS_5  IOMUX_PAD(0x5B4, 0x23C, 7, 0, 0, 0)
+#define MX53_PAD_NANDF_CS2__EMI_NANDF_CS_2     IOMUX_PAD(0x5B8, 0x240, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_CS2__GPIO_6_15          IOMUX_PAD(0x5B8, 0x240, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_CS2__IPU_SISG_0         IOMUX_PAD(0x5B8, 0x240, 2, 0, 0, 0)
+#define MX53_PAD_NANDF_CS2__ESAI1_TX0          IOMUX_PAD(0x5B8, 0x240, 3, 0x7E4, 0, 0)
+#define MX53_PAD_NANDF_CS2__EMI_WEIM_CRE               IOMUX_PAD(0x5B8, 0x240, 4, 0, 0, 0)
+#define MX53_PAD_NANDF_CS2__CCM_CSI0_MCLK              IOMUX_PAD(0x5B8, 0x240, 5, 0, 0, 0)
+#define MX53_PAD_NANDF_CS2__MLB_MLBSIG         IOMUX_PAD(0x5B8, 0x240, 6, 0x860, 0, 0)
+#define MX53_PAD_NANDF_CS2__USBPHY1_VSTATUS_6  IOMUX_PAD(0x5B8, 0x240, 7, 0, 0, 0)
+#define MX53_PAD_NANDF_CS3__EMI_NANDF_CS_3     IOMUX_PAD(0x5BC, 0x244, 0, 0, 0, 0)
+#define MX53_PAD_NANDF_CS3__GPIO_6_16          IOMUX_PAD(0x5BC, 0x244, 1, 0, 0, 0)
+#define MX53_PAD_NANDF_CS3__IPU_SISG_1         IOMUX_PAD(0x5BC, 0x244, 2, 0, 0, 0)
+#define MX53_PAD_NANDF_CS3__ESAI1_TX1          IOMUX_PAD(0x5BC, 0x244, 3, 0x7E8, 0, 0)
+#define MX53_PAD_NANDF_CS3__EMI_WEIM_A_26              IOMUX_PAD(0x5BC, 0x244, 4, 0, 0, 0)
+#define MX53_PAD_NANDF_CS3__MLB_MLBDAT         IOMUX_PAD(0x5BC, 0x244, 6, 0x85C, 0, 0)
+#define MX53_PAD_NANDF_CS3__USBPHY1_VSTATUS_7  IOMUX_PAD(0x5BC, 0x244, 7, 0, 0, 0)
+#define MX53_PAD_FEC_MDIO__FEC_MDIO                            IOMUX_PAD(0x5C4, 0x248, 0, 0x804, 1, 0)
+#define MX53_PAD_FEC_MDIO__GPIO_1_22                   IOMUX_PAD(0x5C4, 0x248, 1, 0, 0, 0)
+#define MX53_PAD_FEC_MDIO__ESAI1_SCKR          IOMUX_PAD(0x5C4, 0x248, 2, 0x7DC, 0, 0)
+#define MX53_PAD_FEC_MDIO__FEC_COL                     IOMUX_PAD(0x5C4, 0x248, 3, 0x800, 1, 0)
+#define MX53_PAD_FEC_MDIO__RTC_CE_RTC_PS2              IOMUX_PAD(0x5C4, 0x248, 4, 0, 0, 0)
+#define MX53_PAD_FEC_MDIO__SDMA_DEBUG_BUS_DEVICE_3     IOMUX_PAD(0x5C4, 0x248, 5, 0, 0, 0)
+#define MX53_PAD_FEC_MDIO__EMI_EMI_DEBUG_49    IOMUX_PAD(0x5C4, 0x248, 6, 0, 0, 0)
+#define MX53_PAD_FEC_REF_CLK__FEC_TX_CLK               IOMUX_PAD(0x5C8, 0x24C, 0, 0, 0, 0)
+#define MX53_PAD_FEC_REF_CLK__GPIO_1_23                IOMUX_PAD(0x5C8, 0x24C, 1, 0, 0, 0)
+#define MX53_PAD_FEC_REF_CLK__ESAI1_FSR                IOMUX_PAD(0x5C8, 0x24C, 2, 0x7CC, 0, 0)
+#define MX53_PAD_FEC_REF_CLK__SDMA_DEBUG_BUS_DEVICE_4  IOMUX_PAD(0x5C8, 0x24C, 5, 0, 0, 0)
+#define MX53_PAD_FEC_REF_CLK__EMI_EMI_DEBUG_50 IOMUX_PAD(0x5C8, 0x24C, 6, 0, 0, 0)
+#define MX53_PAD_FEC_RX_ER__FEC_RX_ER          IOMUX_PAD(0x5CC, 0x250, 0, 0, 0, 0)
+#define MX53_PAD_FEC_RX_ER__GPIO_1_24          IOMUX_PAD(0x5CC, 0x250, 1, 0, 0, 0)
+#define MX53_PAD_FEC_RX_ER__ESAI1_HCKR         IOMUX_PAD(0x5CC, 0x250, 2, 0x7D4, 0, 0)
+#define MX53_PAD_FEC_RX_ER__FEC_RX_CLK         IOMUX_PAD(0x5CC, 0x250, 3, 0x808, 1, 0)
+#define MX53_PAD_FEC_RX_ER__RTC_CE_RTC_PS3     IOMUX_PAD(0x5CC, 0x250, 4, 0, 0, 0)
+#define MX53_PAD_FEC_CRS_DV__FEC_RX_DV         IOMUX_PAD(0x5D0, 0x254, 0, 0, 0, 0)
+#define MX53_PAD_FEC_CRS_DV__GPIO_1_25         IOMUX_PAD(0x5D0, 0x254, 1, 0, 0, 0)
+#define MX53_PAD_FEC_CRS_DV__ESAI1_SCKT                IOMUX_PAD(0x5D0, 0x254, 2, 0x7E0, 0, 0)
+#define MX53_PAD_FEC_RXD1__FEC_RDATA_1         IOMUX_PAD(0x5D4, 0x258, 0, 0, 0, 0)
+#define MX53_PAD_FEC_RXD1__GPIO_1_26           IOMUX_PAD(0x5D4, 0x258, 1, 0, 0, 0)
+#define MX53_PAD_FEC_RXD1__ESAI1_FST           IOMUX_PAD(0x5D4, 0x258, 2, 0x7D0, 0, 0)
+#define MX53_PAD_FEC_RXD1__MLB_MLBSIG          IOMUX_PAD(0x5D4, 0x258, 3, 0x860, 1, 0)
+#define MX53_PAD_FEC_RXD1__RTC_CE_RTC_PS1      IOMUX_PAD(0x5D4, 0x258, 4, 0, 0, 0)
+#define MX53_PAD_FEC_RXD0__FEC_RDATA_0         IOMUX_PAD(0x5D8, 0x25C, 0, 0, 0, 0)
+#define MX53_PAD_FEC_RXD0__GPIO_1_27           IOMUX_PAD(0x5D8, 0x25C, 1, 0, 0, 0)
+#define MX53_PAD_FEC_RXD0__ESAI1_HCKT          IOMUX_PAD(0x5D8, 0x25C, 2, 0x7D8, 0, 0)
+#define MX53_PAD_FEC_RXD0__OSC32k_32K_OUT      IOMUX_PAD(0x5D8, 0x25C, 3, 0, 0, 0)
+#define MX53_PAD_FEC_TX_EN__FEC_TX_EN          IOMUX_PAD(0x5DC, 0x260, 0, 0, 0, 0)
+#define MX53_PAD_FEC_TX_EN__GPIO_1_28          IOMUX_PAD(0x5DC, 0x260, 1, 0, 0, 0)
+#define MX53_PAD_FEC_TX_EN__ESAI1_TX3_RX2      IOMUX_PAD(0x5DC, 0x260, 2, 0x7F0, 0, 0)
+#define MX53_PAD_FEC_TXD1__FEC_TDATA_1         IOMUX_PAD(0x5E0, 0x264, 0, 0, 0, 0)
+#define MX53_PAD_FEC_TXD1__GPIO_1_29           IOMUX_PAD(0x5E0, 0x264, 1, 0, 0, 0)
+#define MX53_PAD_FEC_TXD1__ESAI1_TX2_RX3       IOMUX_PAD(0x5E0, 0x264, 2, 0x7EC, 0, 0)
+#define MX53_PAD_FEC_TXD1__MLB_MLBCLK          IOMUX_PAD(0x5E0, 0x264, 3, 0x858, 1, 0)
+#define MX53_PAD_FEC_TXD1__RTC_CE_RTC_PRSC_CLK IOMUX_PAD(0x5E0, 0x264, 4, 0, 0, 0)
+#define MX53_PAD_FEC_TXD0__FEC_TDATA_0         IOMUX_PAD(0x5E4, 0x268, 0, 0, 0, 0)
+#define MX53_PAD_FEC_TXD0__GPIO_1_30                   IOMUX_PAD(0x5E4, 0x268, 1, 0, 0, 0)
+#define MX53_PAD_FEC_TXD0__ESAI1_TX4_RX1               IOMUX_PAD(0x5E4, 0x268, 2, 0x7F4, 0, 0)
+#define MX53_PAD_FEC_TXD0__USBPHY2_DATAOUT_0   IOMUX_PAD(0x5E4, 0x268, 7, 0, 0, 0)
+#define MX53_PAD_FEC_MDC__FEC_MDC                      IOMUX_PAD(0x5E8, 0x26C, 0, 0, 0, 0)
+#define MX53_PAD_FEC_MDC__GPIO_1_31                    IOMUX_PAD(0x5E8, 0x26C, 1, 0, 0, 0)
+#define MX53_PAD_FEC_MDC__ESAI1_TX5_RX0                IOMUX_PAD(0x5E8, 0x26C, 2, 0x7F8, 0, 0)
+#define MX53_PAD_FEC_MDC__MLB_MLBDAT           IOMUX_PAD(0x5E8, 0x26C, 3, 0x85C, 1, 0)
+#define MX53_PAD_FEC_MDC__RTC_CE_RTC_ALARM1_TRIG       IOMUX_PAD(0x5E8, 0x26C, 4, 0, 0, 0)
+#define MX53_PAD_FEC_MDC__USBPHY2_DATAOUT_1    IOMUX_PAD(0x5E8, 0x26C, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DIOW__PATA_DIOW          IOMUX_PAD(0x5F0, 0x270, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DIOW__GPIO_6_17          IOMUX_PAD(0x5F0, 0x270, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DIOW__UART1_TXD_MUX      IOMUX_PAD(0x5F0, 0x270, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DIOW__USBPHY2_DATAOUT_2  IOMUX_PAD(0x5F0, 0x270, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DMACK__PATA_DMACK                IOMUX_PAD(0x5F4, 0x274, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DMACK__GPIO_6_18         IOMUX_PAD(0x5F4, 0x274, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DMACK__UART1_RXD_MUX     IOMUX_PAD(0x5F4, 0x274, 3, 0x878, 3, 0)
+#define MX53_PAD_PATA_DMACK__USBPHY2_DATAOUT_3 IOMUX_PAD(0x5F4, 0x274, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DMARQ__PATA_DMARQ                IOMUX_PAD(0x5F8, 0x278, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DMARQ__GPIO_7_0          IOMUX_PAD(0x5F8, 0x278, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DMARQ__UART2_TXD_MUX     IOMUX_PAD(0x5F8, 0x278, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DMARQ__CCM_CCM_OUT_0     IOMUX_PAD(0x5F8, 0x278, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DMARQ__USBPHY2_DATAOUT_4 IOMUX_PAD(0x5F8, 0x278, 7, 0, 0, 0)
+#define MX53_PAD_PATA_BUFFER_EN__PATA_BUFFER_EN        IOMUX_PAD(0x5FC, 0x27C, 0, 0, 0, 0)
+#define MX53_PAD_PATA_BUFFER_EN__GPIO_7_1              IOMUX_PAD(0x5FC, 0x27C, 1, 0, 0, 0)
+#define MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX IOMUX_PAD(0x5FC, 0x27C, 3, 0x880, 3, 0)
+#define MX53_PAD_PATA_BUFFER_EN__CCM_CCM_OUT_1 IOMUX_PAD(0x5FC, 0x27C, 5, 0, 0, 0)
+#define MX53_PAD_PATA_BUFFER_EN__USBPHY2_DATAOUT_5     IOMUX_PAD(0x5FC, 0x27C, 7, 0, 0, 0)
+#define MX53_PAD_PATA_INTRQ__PATA_INTRQ                IOMUX_PAD(0x600, 0x280, 0, 0, 0, 0)
+#define MX53_PAD_PATA_INTRQ__GPIO_7_2          IOMUX_PAD(0x600, 0x280, 1, 0, 0, 0)
+#define MX53_PAD_PATA_INTRQ__UART2_CTS         IOMUX_PAD(0x600, 0x280, 3, 0x87C, 2, 0)
+#define MX53_PAD_PATA_INTRQ__CAN1_TXCAN                IOMUX_PAD(0x600, 0x280, 4, 0, 0, 0)
+#define MX53_PAD_PATA_INTRQ__CCM_CCM_OUT_2     IOMUX_PAD(0x600, 0x280, 5, 0, 0, 0)
+#define MX53_PAD_PATA_INTRQ__USBPHY2_DATAOUT_6 IOMUX_PAD(0x600, 0x280, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DIOR__PATA_DIOR          IOMUX_PAD(0x604, 0x284, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DIOR__GPIO_7_3                   IOMUX_PAD(0x604, 0x284, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DIOR__UART2_RTS          IOMUX_PAD(0x604, 0x284, 3, 0x87C, 3, 0)
+#define MX53_PAD_PATA_DIOR__CAN1_RXCAN         IOMUX_PAD(0x604, 0x284, 4, 0x760, 1, 0)
+#define MX53_PAD_PATA_DIOR__USBPHY2_DATAOUT_7  IOMUX_PAD(0x604, 0x284, 7, 0, 0, 0)
+#define MX53_PAD_PATA_RESET_B__PATA_PATA_RESET_B       IOMUX_PAD(0x608, 0x288, 0, 0, 0, 0)
+#define MX53_PAD_PATA_RESET_B__GPIO_7_4                IOMUX_PAD(0x608, 0x288, 1, 0, 0, 0)
+#define MX53_PAD_PATA_RESET_B__ESDHC3_CMD              IOMUX_PAD(0x608, 0x288, 2, 0, 0, 0)
+#define MX53_PAD_PATA_RESET_B__UART1_CTS               IOMUX_PAD(0x608, 0x288, 3, 0x874, 2, 0)
+#define MX53_PAD_PATA_RESET_B__CAN2_TXCAN              IOMUX_PAD(0x608, 0x288, 4, 0, 0, 0)
+#define MX53_PAD_PATA_RESET_B__USBPHY1_DATAOUT_0       IOMUX_PAD(0x608, 0x288, 7, 0, 0, 0)
+#define MX53_PAD_PATA_IORDY__PATA_IORDY                IOMUX_PAD(0x60C, 0x28C, 0, 0, 0, 0)
+#define MX53_PAD_PATA_IORDY__GPIO_7_5          IOMUX_PAD(0x60C, 0x28C, 1, 0, 0, 0)
+#define MX53_PAD_PATA_IORDY__ESDHC3_CLK                IOMUX_PAD(0x60C, 0x28C, 2, 0, 0, 0)
+#define MX53_PAD_PATA_IORDY__UART1_RTS         IOMUX_PAD(0x60C, 0x28C, 3, 0x874, 3, 0)
+#define MX53_PAD_PATA_IORDY__CAN2_RXCAN                IOMUX_PAD(0x60C, 0x28C, 4, 0x764, 1, 0)
+#define MX53_PAD_PATA_IORDY__USBPHY1_DATAOUT_1 IOMUX_PAD(0x60C, 0x28C, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DA_0__PATA_DA_0          IOMUX_PAD(0x610, 0x290, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DA_0__GPIO_7_6           IOMUX_PAD(0x610, 0x290, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DA_0__ESDHC3_RST         IOMUX_PAD(0x610, 0x290, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DA_0__OWIRE_LINE         IOMUX_PAD(0x610, 0x290, 4, 0x864, 0, 0)
+#define MX53_PAD_PATA_DA_0__USBPHY1_DATAOUT_2  IOMUX_PAD(0x610, 0x290, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DA_1__PATA_DA_1          IOMUX_PAD(0x614, 0x294, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DA_1__GPIO_7_7           IOMUX_PAD(0x614, 0x294, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DA_1__ESDHC4_CMD         IOMUX_PAD(0x614, 0x294, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DA_1__UART3_CTS          IOMUX_PAD(0x614, 0x294, 4, 0x884, 4, 0)
+#define MX53_PAD_PATA_DA_1__USBPHY1_DATAOUT_3  IOMUX_PAD(0x614, 0x294, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DA_2__PATA_DA_2          IOMUX_PAD(0x618, 0x298, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DA_2__GPIO_7_8           IOMUX_PAD(0x618, 0x298, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DA_2__ESDHC4_CLK         IOMUX_PAD(0x618, 0x298, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DA_2__UART3_RTS          IOMUX_PAD(0x618, 0x298, 4, 0x884, 5, 0)
+#define MX53_PAD_PATA_DA_2__USBPHY1_DATAOUT_4  IOMUX_PAD(0x618, 0x298, 7, 0, 0, 0)
+#define MX53_PAD_PATA_CS_0__PATA_CS_0          IOMUX_PAD(0x61C, 0x29C, 0, 0, 0, 0)
+#define MX53_PAD_PATA_CS_0__GPIO_7_9                   IOMUX_PAD(0x61C, 0x29C, 1, 0, 0, 0)
+#define MX53_PAD_PATA_CS_0__UART3_TXD_MUX              IOMUX_PAD(0x61C, 0x29C, 4, 0, 0, 0)
+#define MX53_PAD_PATA_CS_0__USBPHY1_DATAOUT_5  IOMUX_PAD(0x61C, 0x29C, 7, 0, 0, 0)
+#define MX53_PAD_PATA_CS_1__PATA_CS_1          IOMUX_PAD(0x620, 0x2A0, 0, 0, 0, 0)
+#define MX53_PAD_PATA_CS_1__GPIO_7_10          IOMUX_PAD(0x620, 0x2A0, 1, 0, 0, 0)
+#define MX53_PAD_PATA_CS_1__UART3_RXD_MUX              IOMUX_PAD(0x620, 0x2A0, 4, 0x888, 3, 0)
+#define MX53_PAD_PATA_CS_1__USBPHY1_DATAOUT_6  IOMUX_PAD(0x620, 0x2A0, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DATA0__PATA_DATA_0               IOMUX_PAD(0x628, 0x2A4, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA0__GPIO_2_0          IOMUX_PAD(0x628, 0x2A4, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA0__EMI_NANDF_D_0     IOMUX_PAD(0x628, 0x2A4, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA0__ESDHC3_DAT4               IOMUX_PAD(0x628, 0x2A4, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA0__GPU3d_GPU_DEBUG_OUT_0     IOMUX_PAD(0x628, 0x2A4, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA0__IPU_DIAG_BUS_0    IOMUX_PAD(0x628, 0x2A4, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA0__USBPHY1_DATAOUT_7 IOMUX_PAD(0x628, 0x2A4, 7, 0, 0, 0)
+#define MX53_PAD_PATA_DATA1__PATA_DATA_1               IOMUX_PAD(0x62C, 0x2A8, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA1__GPIO_2_1          IOMUX_PAD(0x62C, 0x2A8, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA1__EMI_NANDF_D_1     IOMUX_PAD(0x62C, 0x2A8, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA1__ESDHC3_DAT5               IOMUX_PAD(0x62C, 0x2A8, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA1__GPU3d_GPU_DEBUG_OUT_1     IOMUX_PAD(0x62C, 0x2A8, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA1__IPU_DIAG_BUS_1    IOMUX_PAD(0x62C, 0x2A8, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA2__PATA_DATA_2               IOMUX_PAD(0x630, 0x2AC, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA2__GPIO_2_2          IOMUX_PAD(0x630, 0x2AC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA2__EMI_NANDF_D_2     IOMUX_PAD(0x630, 0x2AC, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA2__ESDHC3_DAT6               IOMUX_PAD(0x630, 0x2AC, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA2__GPU3d_GPU_DEBUG_OUT_2     IOMUX_PAD(0x630, 0x2AC, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA2__IPU_DIAG_BUS_2    IOMUX_PAD(0x630, 0x2AC, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA3__PATA_DATA_3               IOMUX_PAD(0x634, 0x2B0, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA3__GPIO_2_3          IOMUX_PAD(0x634, 0x2B0, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA3__EMI_NANDF_D_3     IOMUX_PAD(0x634, 0x2B0, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA3__ESDHC3_DAT7               IOMUX_PAD(0x634, 0x2B0, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA3__GPU3d_GPU_DEBUG_OUT_3     IOMUX_PAD(0x634, 0x2B0, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA3__IPU_DIAG_BUS_3    IOMUX_PAD(0x634, 0x2B0, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA4__PATA_DATA_4               IOMUX_PAD(0x638, 0x2B4, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA4__GPIO_2_4          IOMUX_PAD(0x638, 0x2B4, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA4__EMI_NANDF_D_4     IOMUX_PAD(0x638, 0x2B4, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA4__ESDHC4_DAT4               IOMUX_PAD(0x638, 0x2B4, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA4__GPU3d_GPU_DEBUG_OUT_4     IOMUX_PAD(0x638, 0x2B4, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA4__IPU_DIAG_BUS_4    IOMUX_PAD(0x638, 0x2B4, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA5__PATA_DATA_5       IOMUX_PAD(0x63C, 0x2B8, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA5__GPIO_2_5          IOMUX_PAD(0x63C, 0x2B8, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA5__EMI_NANDF_D_5     IOMUX_PAD(0x63C, 0x2B8, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA5__ESDHC4_DAT5               IOMUX_PAD(0x63C, 0x2B8, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA5__GPU3d_GPU_DEBUG_OUT_5     IOMUX_PAD(0x63C, 0x2B8, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA5__IPU_DIAG_BUS_5    IOMUX_PAD(0x63C, 0x2B8, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA6__PATA_DATA_6       IOMUX_PAD(0x640, 0x2BC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA6__GPIO_2_6          IOMUX_PAD(0x640, 0x2BC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA6__EMI_NANDF_D_6     IOMUX_PAD(0x640, 0x2BC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA6__ESDHC4_DAT6               IOMUX_PAD(0x640, 0x2BC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA6__GPU3d_GPU_DEBUG_OUT_6     IOMUX_PAD(0x640, 0x2BC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA6__IPU_DIAG_BUS_6    IOMUX_PAD(0x640, 0x2BC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA7__PATA_DATA_7               IOMUX_PAD(0x644, 0x2C0, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA7__GPIO_2_7          IOMUX_PAD(0x644, 0x2C0, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA7__EMI_NANDF_D_7     IOMUX_PAD(0x644, 0x2C0, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA7__ESDHC4_DAT7               IOMUX_PAD(0x644, 0x2C0, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA7__GPU3d_GPU_DEBUG_OUT_7     IOMUX_PAD(0x644, 0x2C0, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA7__IPU_DIAG_BUS_7    IOMUX_PAD(0x644, 0x2C0, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA8__PATA_DATA_8               IOMUX_PAD(0x648, 0x2C4, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA8__GPIO_2_8          IOMUX_PAD(0x648, 0x2C4, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA8__ESDHC1_DAT4               IOMUX_PAD(0x648, 0x2C4, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DATA8__EMI_NANDF_D_8     IOMUX_PAD(0x648, 0x2C4, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA8__ESDHC3_DAT0               IOMUX_PAD(0x648, 0x2C4, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA8__GPU3d_GPU_DEBUG_OUT_8     IOMUX_PAD(0x648, 0x2C4, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA8__IPU_DIAG_BUS_8    IOMUX_PAD(0x648, 0x2C4, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA9__PATA_DATA_9               IOMUX_PAD(0x64C, 0x2C8, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA9__GPIO_2_9          IOMUX_PAD(0x64C, 0x2C8, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA9__ESDHC1_DAT5               IOMUX_PAD(0x64C, 0x2C8, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DATA9__EMI_NANDF_D_9     IOMUX_PAD(0x64C, 0x2C8, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA9__ESDHC3_DAT1               IOMUX_PAD(0x64C, 0x2C8, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA9__GPU3d_GPU_DEBUG_OUT_9     IOMUX_PAD(0x64C, 0x2C8, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA9__IPU_DIAG_BUS_9    IOMUX_PAD(0x64C, 0x2C8, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA10__PATA_DATA_10     IOMUX_PAD(0x650, 0x2CC, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA10__GPIO_2_10                IOMUX_PAD(0x650, 0x2CC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA10__ESDHC1_DAT6              IOMUX_PAD(0x650, 0x2CC, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DATA10__EMI_NANDF_D_10   IOMUX_PAD(0x650, 0x2CC, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA10__ESDHC3_DAT2              IOMUX_PAD(0x650, 0x2CC, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA10__GPU3d_GPU_DEBUG_OUT_10   IOMUX_PAD(0x650, 0x2CC, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA10__IPU_DIAG_BUS_10  IOMUX_PAD(0x650, 0x2CC, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA11__PATA_DATA_11     IOMUX_PAD(0x654, 0x2D0, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA11__GPIO_2_11                IOMUX_PAD(0x654, 0x2D0, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA11__ESDHC1_DAT7              IOMUX_PAD(0x654, 0x2D0, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DATA11__EMI_NANDF_D_11   IOMUX_PAD(0x654, 0x2D0, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA11__ESDHC3_DAT3              IOMUX_PAD(0x654, 0x2D0, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA11__GPU3d_GPU_DEBUG_OUT_11   IOMUX_PAD(0x654, 0x2D0, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA11__IPU_DIAG_BUS_11  IOMUX_PAD(0x654, 0x2D0, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA12__PATA_DATA_12     IOMUX_PAD(0x658, 0x2D4, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA12__GPIO_2_12                IOMUX_PAD(0x658, 0x2D4, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA12__ESDHC2_DAT4              IOMUX_PAD(0x658, 0x2D4, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DATA12__EMI_NANDF_D_12   IOMUX_PAD(0x658, 0x2D4, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA12__ESDHC4_DAT0              IOMUX_PAD(0x658, 0x2D4, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA12__GPU3d_GPU_DEBUG_OUT_12   IOMUX_PAD(0x658, 0x2D4, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA12__IPU_DIAG_BUS_12  IOMUX_PAD(0x658, 0x2D4, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA13__PATA_DATA_13     IOMUX_PAD(0x65C, 0x2D8, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA13__GPIO_2_13                IOMUX_PAD(0x65C, 0x2D8, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA13__ESDHC2_DAT5              IOMUX_PAD(0x65C, 0x2D8, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DATA13__EMI_NANDF_D_13   IOMUX_PAD(0x65C, 0x2D8, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA13__ESDHC4_DAT1              IOMUX_PAD(0x65C, 0x2D8, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA13__GPU3d_GPU_DEBUG_OUT_13   IOMUX_PAD(0x65C, 0x2D8, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA13__IPU_DIAG_BUS_13  IOMUX_PAD(0x65C, 0x2D8, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA14__PATA_DATA_14     IOMUX_PAD(0x660, 0x2DC, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA14__GPIO_2_14                IOMUX_PAD(0x660, 0x2DC, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA14__ESDHC2_DAT6              IOMUX_PAD(0x660, 0x2DC, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DATA14__EMI_NANDF_D_14   IOMUX_PAD(0x660, 0x2DC, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA14__ESDHC4_DAT2              IOMUX_PAD(0x660, 0x2DC, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA14__GPU3d_GPU_DEBUG_OUT_14   IOMUX_PAD(0x660, 0x2DC, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA14__IPU_DIAG_BUS_14  IOMUX_PAD(0x660, 0x2DC, 6, 0, 0, 0)
+#define MX53_PAD_PATA_DATA15__PATA_DATA_15     IOMUX_PAD(0x664, 0x2E0, 0, 0, 0, 0)
+#define MX53_PAD_PATA_DATA15__GPIO_2_15                IOMUX_PAD(0x664, 0x2E0, 1, 0, 0, 0)
+#define MX53_PAD_PATA_DATA15__ESDHC2_DAT7              IOMUX_PAD(0x664, 0x2E0, 2, 0, 0, 0)
+#define MX53_PAD_PATA_DATA15__EMI_NANDF_D_15   IOMUX_PAD(0x664, 0x2E0, 3, 0, 0, 0)
+#define MX53_PAD_PATA_DATA15__ESDHC4_DAT3              IOMUX_PAD(0x664, 0x2E0, 4, 0, 0, 0)
+#define MX53_PAD_PATA_DATA15__GPU3d_GPU_DEBUG_OUT_15   IOMUX_PAD(0x664, 0x2E0, 5, 0, 0, 0)
+#define MX53_PAD_PATA_DATA15__IPU_DIAG_BUS_15  IOMUX_PAD(0x664, 0x2E0, 6, 0, 0, 0)
+#define MX53_PAD_SD1_DATA0__ESDHC1_DAT0        IOMUX_PAD(0x66C, 0x2E4, 0, 0, 0, 0)
+#define MX53_PAD_SD1_DATA0__GPIO_1_16  IOMUX_PAD(0x66C, 0x2E4, 1, 0, 0, 0)
+#define MX53_PAD_SD1_DATA0__GPT_CAPIN1 IOMUX_PAD(0x66C, 0x2E4, 3, 0, 0, 0)
+#define MX53_PAD_SD1_DATA0__CSPI_MISO  IOMUX_PAD(0x66C, 0x2E4, 5, 0x784, 2, 0)
+#define MX53_PAD_SD1_DATA0__CCM_PLL3_BYP       IOMUX_PAD(0x66C, 0x2E4, 7, 0x778, 0, 0)
+#define MX53_PAD_SD1_DATA1__ESDHC1_DAT1        IOMUX_PAD(0x670, 0x2E8, 0, 0, 0, 0)
+#define MX53_PAD_SD1_DATA1__GPIO_1_17  IOMUX_PAD(0x670, 0x2E8, 1, 0, 0, 0)
+#define MX53_PAD_SD1_DATA1__GPT_CAPIN2 IOMUX_PAD(0x670, 0x2E8, 3, 0, 0, 0)
+#define MX53_PAD_SD1_DATA1__CSPI_SS0   IOMUX_PAD(0x670, 0x2E8, 5, 0x78C, 3, 0)
+#define MX53_PAD_SD1_DATA1__CCM_PLL4_BYP       IOMUX_PAD(0x670, 0x2E8, 7, 0x77C, 1, 0)
+#define MX53_PAD_SD1_CMD__ESDHC1_CMD   IOMUX_PAD(0x674, 0x2EC, IOMUX_CONFIG_SION, 0, 0, 0)
+#define MX53_PAD_SD1_CMD__GPIO_1_18            IOMUX_PAD(0x674, 0x2EC, 1, 0, 0, 0)
+#define MX53_PAD_SD1_CMD__GPT_CMPOUT1  IOMUX_PAD(0x674, 0x2EC, 3, 0, 0, 0)
+#define MX53_PAD_SD1_CMD__CSPI_MOSI            IOMUX_PAD(0x674, 0x2EC, 5, 0x788, 2, 0)
+#define MX53_PAD_SD1_CMD__CCM_PLL1_BYP IOMUX_PAD(0x674, 0x2EC, 7, 0x770, 0, 0)
+#define MX53_PAD_SD1_DATA2__ESDHC1_DAT2                IOMUX_PAD(0x678, 0x2F0, 0, 0, 0, 0)
+#define MX53_PAD_SD1_DATA2__GPIO_1_19          IOMUX_PAD(0x678, 0x2F0, 1, 0, 0, 0)
+#define MX53_PAD_SD1_DATA2__GPT_CMPOUT2                IOMUX_PAD(0x678, 0x2F0, 2, 0, 0, 0)
+#define MX53_PAD_SD1_DATA2__PWM2_PWMO          IOMUX_PAD(0x678, 0x2F0, 3, 0, 0, 0)
+#define MX53_PAD_SD1_DATA2__WDOG1_WDOG_B               IOMUX_PAD(0x678, 0x2F0, 4, 0, 0, 0)
+#define MX53_PAD_SD1_DATA2__CSPI_SS1           IOMUX_PAD(0x678, 0x2F0, 5, 0x790, 2, 0)
+#define MX53_PAD_SD1_DATA2__WDOG1_WDOG_RST_B_DEB       IOMUX_PAD(0x678, 0x2F0, 6, 0, 0, 0)
+#define MX53_PAD_SD1_DATA2__CCM_PLL2_BYP               IOMUX_PAD(0x678, 0x2F0, 7, 0x774, 0, 0)
+#define MX53_PAD_SD1_CLK__ESDHC1_CLK   IOMUX_PAD(0x67C, 0x2F4, 0, 0, 0, 0)
+#define MX53_PAD_SD1_CLK__GPIO_1_20            IOMUX_PAD(0x67C, 0x2F4, 1, 0, 0, 0)
+#define MX53_PAD_SD1_CLK__OSC32k_32K_OUT       IOMUX_PAD(0x67C, 0x2F4, 2, 0, 0, 0)
+#define MX53_PAD_SD1_CLK__GPT_CLKIN            IOMUX_PAD(0x67C, 0x2F4, 3, 0, 0, 0)
+#define MX53_PAD_SD1_CLK__CSPI_SCLK            IOMUX_PAD(0x67C, 0x2F4, 5, 0x780, 2, 0)
+#define MX53_PAD_SD1_CLK__SATA_PHY_DTB_0       IOMUX_PAD(0x67C, 0x2F4, 7, 0, 0, 0)
+#define MX53_PAD_SD1_DATA3__ESDHC1_DAT3        IOMUX_PAD(0x680, 0x2F8, 0, 0, 0, 0)
+#define MX53_PAD_SD1_DATA3__GPIO_1_21  IOMUX_PAD(0x680, 0x2F8, 1, 0, 0, 0)
+#define MX53_PAD_SD1_DATA3__GPT_CMPOUT3        IOMUX_PAD(0x680, 0x2F8, 2, 0, 0, 0)
+#define MX53_PAD_SD1_DATA3__PWM1_PWMO  IOMUX_PAD(0x680, 0x2F8, 3, 0, 0, 0)
+#define MX53_PAD_SD1_DATA3__WDOG2_WDOG_B       IOMUX_PAD(0x680, 0x2F8, 4, 0, 0, 0)
+#define MX53_PAD_SD1_DATA3__CSPI_SS2   IOMUX_PAD(0x680, 0x2F8, 5, 0x794, 2, 0)
+#define MX53_PAD_SD1_DATA3__WDOG2_WDOG_RST_B_DEB       IOMUX_PAD(0x680, 0x2F8, 6, 0, 0, 0)
+#define MX53_PAD_SD1_DATA3__SATA_PHY_DTB_1     IOMUX_PAD(0x680, 0x2F8, 7, 0, 0, 0)
+#define MX53_PAD_SD2_CLK__ESDHC2_CLK   IOMUX_PAD(0x688, 0x2FC, 0, 0, 0, 0)
+#define MX53_PAD_SD2_CLK__GPIO_1_10            IOMUX_PAD(0x688, 0x2FC, 1, 0, 0, 0)
+#define MX53_PAD_SD2_CLK__KPP_COL_5            IOMUX_PAD(0x688, 0x2FC, 2, 0x840, 2, 0)
+#define MX53_PAD_SD2_CLK__AUDMUX_AUD4_RXFS     IOMUX_PAD(0x688, 0x2FC, 3, 0x73C, 1, 0)
+#define MX53_PAD_SD2_CLK__CSPI_SCLK            IOMUX_PAD(0x688, 0x2FC, 5, 0x780, 3, 0)
+#define MX53_PAD_SD2_CLK__SCC_RANDOM_V IOMUX_PAD(0x688, 0x2FC, 7, 0, 0, 0)
+#define MX53_PAD_SD2_CMD__ESDHC2_CMD   IOMUX_PAD(0x68C, 0x300, 0, 0, 0, 0)
+#define MX53_PAD_SD2_CMD__GPIO_1_11            IOMUX_PAD(0x68C, 0x300, 1, 0, 0, 0)
+#define MX53_PAD_SD2_CMD__KPP_ROW_5    IOMUX_PAD(0x68C, 0x300, 2, 0x84C, 1, 0)
+#define MX53_PAD_SD2_CMD__AUDMUX_AUD4_RXC      IOMUX_PAD(0x68C, 0x300, 3, 0x738, 1, 0)
+#define MX53_PAD_SD2_CMD__CSPI_MOSI            IOMUX_PAD(0x68C, 0x300, 5, 0x788, 3, 0)
+#define MX53_PAD_SD2_CMD__SCC_RANDOM   IOMUX_PAD(0x68C, 0x300, 7, 0, 0, 0)
+#define MX53_PAD_SD2_DATA3__ESDHC2_DAT3        IOMUX_PAD(0x690, 0x304, 0, 0, 0, 0)
+#define MX53_PAD_SD2_DATA3__GPIO_1_12  IOMUX_PAD(0x690, 0x304, 1, 0, 0, 0)
+#define MX53_PAD_SD2_DATA3__KPP_COL_6  IOMUX_PAD(0x690, 0x304, 2, 0x844, 1, 0)
+#define MX53_PAD_SD2_DATA3__AUDMUX_AUD4_TXC    IOMUX_PAD(0x690, 0x304, 3, 0x740, 1, 0)
+#define MX53_PAD_SD2_DATA3__CSPI_SS2   IOMUX_PAD(0x690, 0x304, 5, 0x794, 3, 0)
+#define MX53_PAD_SD2_DATA3__SJC_DONE   IOMUX_PAD(0x690, 0x304, 7, 0, 0, 0)
+#define MX53_PAD_SD2_DATA2__ESDHC2_DAT2        IOMUX_PAD(0x694, 0x308, 0, 0, 0, 0)
+#define MX53_PAD_SD2_DATA2__GPIO_1_13  IOMUX_PAD(0x694, 0x308, 1, 0, 0, 0)
+#define MX53_PAD_SD2_DATA2__KPP_ROW_6  IOMUX_PAD(0x694, 0x308, 2, 0x850, 1, 0)
+#define MX53_PAD_SD2_DATA2__AUDMUX_AUD4_TXD    IOMUX_PAD(0x694, 0x308, 3, 0x734, 1, 0)
+#define MX53_PAD_SD2_DATA2__CSPI_SS1   IOMUX_PAD(0x694, 0x308, 5, 0x790, 3, 0)
+#define MX53_PAD_SD2_DATA2__SJC_FAIL   IOMUX_PAD(0x694, 0x308, 7, 0, 0, 0)
+#define MX53_PAD_SD2_DATA1__ESDHC2_DAT1        IOMUX_PAD(0x698, 0x30C, 0, 0, 0, 0)
+#define MX53_PAD_SD2_DATA1__GPIO_1_14  IOMUX_PAD(0x698, 0x30C, 1, 0, 0, 0)
+#define MX53_PAD_SD2_DATA1__KPP_COL_7  IOMUX_PAD(0x698, 0x30C, 2, 0x848, 1, 0)
+#define MX53_PAD_SD2_DATA1__AUDMUX_AUD4_TXFS   IOMUX_PAD(0x698, 0x30C, 3, 0x744, 0, 0)
+#define MX53_PAD_SD2_DATA1__CSPI_SS0   IOMUX_PAD(0x698, 0x30C, 5, 0x78C, 4, 0)
+#define MX53_PAD_SD2_DATA1__RTIC_SEC_VIO       IOMUX_PAD(0x698, 0x30C, 7, 0, 0, 0)
+#define MX53_PAD_SD2_DATA0__ESDHC2_DAT0        IOMUX_PAD(0x69C, 0x310, 0, 0, 0, 0)
+#define MX53_PAD_SD2_DATA0__GPIO_1_15  IOMUX_PAD(0x69C, 0x310, 1, 0, 0, 0)
+#define MX53_PAD_SD2_DATA0__KPP_ROW_7  IOMUX_PAD(0x69C, 0x310, 2, 0x854, 1, 0)
+#define MX53_PAD_SD2_DATA0__AUDMUX_AUD4_RXD    IOMUX_PAD(0x69C, 0x310, 3, 0x730, 1, 0)
+#define MX53_PAD_SD2_DATA0__CSPI_MISO  IOMUX_PAD(0x69C, 0x310, 5, 0x784, 3, 0)
+#define MX53_PAD_SD2_DATA0__RTIC_DONE_INT      IOMUX_PAD(0x69C, 0x310, 7, 0, 0, 0)
+#define MX53_PAD_GPIO_0__CCM_CLKO              IOMUX_PAD(0x6A4, 0x314, 0, 0, 0, 0)
+#define MX53_PAD_GPIO_0__GPIO_1_0              IOMUX_PAD(0x6A4, 0x314, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_0__KPP_COL_5             IOMUX_PAD(0x6A4, 0x314, 2, 0x840, 3, 0)
+#define MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK      IOMUX_PAD(0x6A4, 0x314, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_0__EPIT1_EPITO   IOMUX_PAD(0x6A4, 0x314, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_0__SRTC_ALARM_DEB        IOMUX_PAD(0x6A4, 0x314, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_0__USBOH3_USBH1_PWR      IOMUX_PAD(0x6A4, 0x314, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_0__CSU_TD                IOMUX_PAD(0x6A4, 0x314, 7, 0, 0, 0)
+#define MX53_PAD_GPIO_1__ESAI1_SCKR            IOMUX_PAD(0x6A8, 0x318, 0, 0x7DC, 1, 0)
+#define MX53_PAD_GPIO_1__GPIO_1_1              IOMUX_PAD(0x6A8, 0x318, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_1__KPP_ROW_5             IOMUX_PAD(0x6A8, 0x318, 2, 0x84C, 2, 0)
+#define MX53_PAD_GPIO_1__CCM_SSI_EXT2_CLK      IOMUX_PAD(0x6A8, 0x318, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_1__PWM2_PWMO     IOMUX_PAD(0x6A8, 0x318, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_1__WDOG2_WDOG_B  IOMUX_PAD(0x6A8, 0x318, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_1__ESDHC1_CD             IOMUX_PAD(0x6A8, 0x318, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_1__SRC_TESTER_ACK        IOMUX_PAD(0x6A8, 0x318, 7, 0, 0, 0)
+#define MX53_PAD_GPIO_9__ESAI1_FSR             IOMUX_PAD(0x6AC, 0x31C, 0, 0x7CC, 1, 0)
+#define MX53_PAD_GPIO_9__GPIO_1_9              IOMUX_PAD(0x6AC, 0x31C, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_9__KPP_COL_6             IOMUX_PAD(0x6AC, 0x31C, 2, 0x844, 2, 0)
+#define MX53_PAD_GPIO_9__CCM_REF_EN_B  IOMUX_PAD(0x6AC, 0x31C, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_9__PWM1_PWMO     IOMUX_PAD(0x6AC, 0x31C, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_9__WDOG1_WDOG_B  IOMUX_PAD(0x6AC, 0x31C, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_9__ESDHC1_WP             IOMUX_PAD(0x6AC, 0x31C, 6, 0x7FC, 1, 0)
+#define MX53_PAD_GPIO_9__SCC_FAIL_STATE        IOMUX_PAD(0x6AC, 0x31C, 7, 0, 0, 0)
+#define MX53_PAD_GPIO_3__ESAI1_HCKR            IOMUX_PAD(0x6B0, 0x320, 0, 0x7D4, 1, 0)
+#define MX53_PAD_GPIO_3__GPIO_1_3              IOMUX_PAD(0x6B0, 0x320, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_3__I2C3_SCL              IOMUX_PAD(0x6B0, 0x320, 2 | IOMUX_CONFIG_SION, 0x824, 1, 0)
+#define MX53_PAD_GPIO_3__DPLLIP1_TOG_EN        IOMUX_PAD(0x6B0, 0x320, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_3__CCM_CLKO2             IOMUX_PAD(0x6B0, 0x320, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_3__OBSERVE_MUX_OBSRV_INT_OUT0    IOMUX_PAD(0x6B0, 0x320, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_3__USBOH3_USBH1_OC       IOMUX_PAD(0x6B0, 0x320, 6, 0x8A0, 1, 0)
+#define MX53_PAD_GPIO_3__MLB_MLBCLK            IOMUX_PAD(0x6B0, 0x320, 7, 0x858, 2, 0)
+#define MX53_PAD_GPIO_6__ESAI1_SCKT            IOMUX_PAD(0x6B4, 0x324, 0, 0x7E0, 1, 0)
+#define MX53_PAD_GPIO_6__GPIO_1_6              IOMUX_PAD(0x6B4, 0x324, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_6__I2C3_SDA              IOMUX_PAD(0x6B4, 0x324, 2 | IOMUX_CONFIG_SION, 0x828, 1, 0)
+#define MX53_PAD_GPIO_6__CCM_CCM_OUT_0 IOMUX_PAD(0x6B4, 0x324, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_6__CSU_CSU_INT_DEB       IOMUX_PAD(0x6B4, 0x324, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_6__OBSERVE_MUX_OBSRV_INT_OUT1    IOMUX_PAD(0x6B4, 0x324, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_6__ESDHC2_LCTL   IOMUX_PAD(0x6B4, 0x324, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_6__MLB_MLBSIG            IOMUX_PAD(0x6B4, 0x324, 7, 0x860, 2, 0)
+#define MX53_PAD_GPIO_2__ESAI1_FST             IOMUX_PAD(0x6B8, 0x328, 0, 0x7D0, 1, 0)
+#define MX53_PAD_GPIO_2__GPIO_1_2              IOMUX_PAD(0x6B8, 0x328, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_2__KPP_ROW_6             IOMUX_PAD(0x6B8, 0x328, 2, 0x850, 2, 0)
+#define MX53_PAD_GPIO_2__CCM_CCM_OUT_1 IOMUX_PAD(0x6B8, 0x328, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_2__CSU_CSU_ALARM_AUT_0   IOMUX_PAD(0x6B8, 0x328, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_2__OBSERVE_MUX_OBSRV_INT_OUT2    IOMUX_PAD(0x6B8, 0x328, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_2__ESDHC2_WP             IOMUX_PAD(0x6B8, 0x328, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_2__MLB_MLBDAT    IOMUX_PAD(0x6B8, 0x328, 7, 0x85C, 2, 0)
+#define MX53_PAD_GPIO_4__ESAI1_HCKT            IOMUX_PAD(0x6BC, 0x32C, 0, 0x7D8, 1, 0)
+#define MX53_PAD_GPIO_4__GPIO_1_4              IOMUX_PAD(0x6BC, 0x32C, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_4__KPP_COL_7             IOMUX_PAD(0x6BC, 0x32C, 2, 0x848, 2, 0)
+#define MX53_PAD_GPIO_4__CCM_CCM_OUT_2 IOMUX_PAD(0x6BC, 0x32C, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_4__CSU_CSU_ALARM_AUT_1   IOMUX_PAD(0x6BC, 0x32C, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_4__OBSERVE_MUX_OBSRV_INT_OUT3    IOMUX_PAD(0x6BC, 0x32C, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_4__ESDHC2_CD             IOMUX_PAD(0x6BC, 0x32C, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_4__SCC_SEC_STATE IOMUX_PAD(0x6BC, 0x32C, 7, 0, 0, 0)
+#define MX53_PAD_GPIO_5__ESAI1_TX2_RX3 IOMUX_PAD(0x6C0, 0x330, 0, 0x7EC, 1, 0)
+#define MX53_PAD_GPIO_5__GPIO_1_5              IOMUX_PAD(0x6C0, 0x330, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_5__KPP_ROW_7             IOMUX_PAD(0x6C0, 0x330, 2, 0x854, 2, 0)
+#define MX53_PAD_GPIO_5__CCM_CLKO              IOMUX_PAD(0x6C0, 0x330, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_5__CSU_CSU_ALARM_AUT_2   IOMUX_PAD(0x6C0, 0x330, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_5__OBSERVE_MUX_OBSRV_INT_OUT4    IOMUX_PAD(0x6C0, 0x330, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_5__I2C3_SCL              IOMUX_PAD(0x6C0, 0x330, 6, 0x824, 2, 0)
+#define MX53_PAD_GPIO_5__CCM_PLL1_BYP  IOMUX_PAD(0x6C0, 0x330, 7, 0x770, 1, 0)
+#define MX53_PAD_GPIO_7__ESAI1_TX4_RX1 IOMUX_PAD(0x6C4, 0x334, 0, 0x7F4, 1, 0)
+#define MX53_PAD_GPIO_7__GPIO_1_7              IOMUX_PAD(0x6C4, 0x334, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_7__EPIT1_EPITO   IOMUX_PAD(0x6C4, 0x334, 2, 0, 0, 0)
+#define MX53_PAD_GPIO_7__CAN1_TXCAN    IOMUX_PAD(0x6C4, 0x334, 3, 0, 0, 0)
+#define MX53_PAD_GPIO_7__UART2_TXD_MUX IOMUX_PAD(0x6C4, 0x334, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_7__FIRI_RXD              IOMUX_PAD(0x6C4, 0x334, 5, 0x80C, 1, 0)
+#define MX53_PAD_GPIO_7__SPDIF_PLOCK   IOMUX_PAD(0x6C4, 0x334, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_7__CCM_PLL2_BYP  IOMUX_PAD(0x6C4, 0x334, 7, 0x774, 1, 0)
+#define MX53_PAD_GPIO_8__ESAI1_TX5_RX0 IOMUX_PAD(0x6C8, 0x338, 0, 0x7F8, 1, 0)
+#define MX53_PAD_GPIO_8__GPIO_1_8              IOMUX_PAD(0x6C8, 0x338, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_8__EPIT2_EPITO   IOMUX_PAD(0x6C8, 0x338, 2, 0, 0, 0)
+#define MX53_PAD_GPIO_8__CAN1_RXCAN    IOMUX_PAD(0x6C8, 0x338, 3, 0x760, 3, 0)
+#define MX53_PAD_GPIO_8__UART2_RXD_MUX IOMUX_PAD(0x6C8, 0x338, 4, 0x880, 5, 0)
+#define MX53_PAD_GPIO_8__FIRI_TXD              IOMUX_PAD(0x6C8, 0x338, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_8__SPDIF_SRCLK   IOMUX_PAD(0x6C8, 0x338, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_8__CCM_PLL3_BYP  IOMUX_PAD(0x6C8, 0x338, 7, 0x778, 1, 0)
+#define MX53_PAD_GPIO_16__ESAI1_TX3_RX2        IOMUX_PAD(0x6CC, 0x33C, 0, 0x7F0, 1, 0)
+#define MX53_PAD_GPIO_16__GPIO_7_11            IOMUX_PAD(0x6CC, 0x33C, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_16__TZIC_PWRFAIL_INT     IOMUX_PAD(0x6CC, 0x33C, 2, 0, 0, 0)
+#define MX53_PAD_GPIO_16__RTC_CE_RTC_EXT_TRIG1 IOMUX_PAD(0x6CC, 0x33C, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_16__SPDIF_IN1            IOMUX_PAD(0x6CC, 0x33C, 5, 0x870, 1, 0)
+#define MX53_PAD_GPIO_16__I2C3_SDA             IOMUX_PAD(0x6CC, 0x33C, 6 | IOMUX_CONFIG_SION, 0x828, 2, 0)
+#define MX53_PAD_GPIO_16__SJC_DE_B             IOMUX_PAD(0x6CC, 0x33C, 7, 0, 0, 0)
+#define MX53_PAD_GPIO_17__ESAI1_TX0            IOMUX_PAD(0x6D0, 0x340, 0, 0x7E4, 1, 0)
+#define MX53_PAD_GPIO_17__GPIO_7_12            IOMUX_PAD(0x6D0, 0x340, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_17__SDMA_EXT_EVENT_0     IOMUX_PAD(0x6D0, 0x340, 2, 0x868, 1, 0)
+#define MX53_PAD_GPIO_17__GPC_PMIC_RDY IOMUX_PAD(0x6D0, 0x340, 3, 0x810, 1, 0)
+#define MX53_PAD_GPIO_17__RTC_CE_RTC_FSV_TRIG  IOMUX_PAD(0x6D0, 0x340, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_17__SPDIF_OUT1   IOMUX_PAD(0x6D0, 0x340, 5, 0, 0, 0)
+#define MX53_PAD_GPIO_17__IPU_SNOOP2   IOMUX_PAD(0x6D0, 0x340, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_17__SJC_JTAG_ACT IOMUX_PAD(0x6D0, 0x340, 7, 0, 0, 0)
+#define MX53_PAD_GPIO_18__ESAI1_TX1            IOMUX_PAD(0x6D4, 0x344, 0, 0x7E8, 1, 0)
+#define MX53_PAD_GPIO_18__GPIO_7_13            IOMUX_PAD(0x6D4, 0x344, 1, 0, 0, 0)
+#define MX53_PAD_GPIO_18__SDMA_EXT_EVENT_1     IOMUX_PAD(0x6D4, 0x344, 2, 0x86C, 1, 0)
+#define MX53_PAD_GPIO_18__OWIRE_LINE   IOMUX_PAD(0x6D4, 0x344, 3, 0x864, 1, 0)
+#define MX53_PAD_GPIO_18__RTC_CE_RTC_ALARM2_TRIG       IOMUX_PAD(0x6D4, 0x344, 4, 0, 0, 0)
+#define MX53_PAD_GPIO_18__CCM_ASRC_EXT_CLK     IOMUX_PAD(0x6D4, 0x344, 5, 0x768, 1, 0)
+#define MX53_PAD_GPIO_18__ESDHC1_LCTL  IOMUX_PAD(0x6D4, 0x344, 6, 0, 0, 0)
+#define MX53_PAD_GPIO_18__SRC_SYSTEM_RST       IOMUX_PAD(0x6D4, 0x344, 7, 0, 0, 0)
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* _MX53_IOMUX_H_ */
diff --git a/packages/hal/arm/mx53/var/v2_0/include/plf_stub.h b/packages/hal/arm/mx53/var/v2_0/include/plf_stub.h
new file mode 100644 (file)
index 0000000..248631a
--- /dev/null
@@ -0,0 +1,72 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+//      plf_stub.h
+//
+//      Platform header for GDB stub support.
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>         // CYG_UNUSED_PARAM
+
+#include <cyg/hal/hal_soc.h>         // registers
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/hal/hal_intr.h>           // Interrupt macros
+#include <cyg/hal/arm_stub.h>           // architecture stub support
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//----------------------------------------------------------------------------
+// Define some platform specific communication details. This is mostly
+// handled by hal_if now, but we need to make sure the comms tables are
+// properly initialized.
+
+externC void cyg_hal_plf_comms_init(void);
+
+#define HAL_STUB_PLATFORM_INIT_SERIAL()         cyg_hal_plf_comms_init()
+#define HAL_STUB_PLATFORM_SET_BAUD_RATE(baud)   CYG_UNUSED_PARAM(int, (baud))
+#define HAL_STUB_PLATFORM_INTERRUPTIBLE         0
+
+//----------------------------------------------------------------------------
+// Stub initializer.
+#define HAL_STUB_PLATFORM_INIT()                CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/packages/hal/arm/mx53/var/v2_0/include/var_io.h b/packages/hal/arm/mx53/var/v2_0/include/var_io.h
new file mode 100644 (file)
index 0000000..520f213
--- /dev/null
@@ -0,0 +1,56 @@
+#ifndef CYGONCE_VAR_IO_H
+#define CYGONCE_VAR_IO_H
+
+//=============================================================================
+//
+//      var_io.h
+//
+//      Variant specific IO support
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#include <cyg/hal/plf_io.h>             // Platform specifics
+
+//-----------------------------------------------------------------------------
+
+// Memory mapping details
+#ifndef CYGARC_PHYSICAL_ADDRESS
+#define CYGARC_PHYSICAL_ADDRESS(x) (((unsigned long)x & 0x0FFFFFFF) + RAM_BANK0_BASE)
+#endif
+
+//-----------------------------------------------------------------------------
+// end of var_io.h
+#endif // CYGONCE_VAR_IO_H
diff --git a/packages/hal/arm/mx53/var/v2_0/src/cmds.c b/packages/hal/arm/mx53/var/v2_0/src/cmds.c
new file mode 100644 (file)
index 0000000..7ca808a
--- /dev/null
@@ -0,0 +1,1278 @@
+//==========================================================================
+//
+//      cmds.c
+//
+//      SoC [platform] specific RedBoot commands
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+#include <redboot.h>
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/plf_mmap.h>
+#include <cyg/hal/hal_soc.h>            // Hardware definitions
+#include <cyg/hal/hal_cache.h>
+#include CYGBLD_HAL_PLF_DEFS_H
+
+#include "hab_super_root.h"
+
+#ifndef FUSE_PROG_START
+#define FUSE_PROG_START()              CYG_EMPTY_STATEMENT
+#define FUSE_PROG_DONE()               CYG_EMPTY_STATEMENT
+#endif
+
+//#define IIM_FUSE_DEBUG
+//#define CMD_CLOCK_DEBUG
+#ifdef CMD_CLOCK_DEBUG
+static int dbg_enable;
+
+#define enable_dbg()           \
+  CYG_MACRO_START                      \
+  dbg_enable = 1;                      \
+  CYG_MACRO_END
+
+#define dbg(fmt...)                                                            \
+  CYG_MACRO_START                                                              \
+  if (dbg_enable)                                                              \
+         diag_printf(fmt);                                                     \
+  CYG_MACRO_END
+#else
+#define dbg_enable 0
+#define enable_dbg()           CYG_EMPTY_STATEMENT
+#define dbg(fmt...)            CYG_EMPTY_STATEMENT
+#endif
+
+static int gcd(int m, int n);
+
+typedef unsigned long long     u64;
+typedef unsigned int           u32;
+typedef unsigned short         u16;
+typedef unsigned char          u8;
+
+#define SZ_DEC_1M              1000000
+#define PLL_PD_MAX             16              //actual pd+1
+#define PLL_MFI_MAX            15
+#define PLL_MFI_MIN            5
+#define ARM_DIV_MAX            8
+#define IPG_DIV_MAX            4
+#define AHB_DIV_MAX            8
+#define EMI_DIV_MAX            8
+#define NFC_DIV_MAX            8
+
+struct pll_param {
+       u32 pd;
+       u32 mfi;
+       u32 mfn;
+       u32 mfd;
+};
+
+#define PLL_FREQ_MAX(_ref_clk_)           (4 * _ref_clk_ * PLL_MFI_MAX)
+#define PLL_FREQ_MIN(_ref_clk_)           ((2 * _ref_clk_ * (PLL_MFI_MIN - 1)) / PLL_PD_MAX)
+#define MAX_DDR_CLK            400000000
+#define AHB_CLK_MAX            133333333
+#define IPG_CLK_MAX            (AHB_CLK_MAX / 2)
+#define NFC_CLK_MAX            25000000
+// IPU-HSP clock is independent of the HCLK and can go up to 177MHz but requires
+// higher voltage support. For simplicity, limit it to 133MHz
+#define HSP_CLK_MAX            133333333
+
+#define ERR_WRONG_CLK  (-1)
+#define ERR_NO_MFI             (-2)
+#define ERR_NO_MFN             (-3)
+#define ERR_NO_PD              (-4)
+#define ERR_NO_PRESC   (-5)
+#define ERR_NO_AHB_DIV (-6)
+
+u32 pll_clock(enum plls pll);
+u32 get_main_clock(enum main_clocks clk);
+u32 get_peri_clock(enum peri_clocks clk);
+
+static volatile u32 *pll_base[] =
+{
+       &REG32(PLL1_BASE_ADDR),
+       &REG32(PLL2_BASE_ADDR),
+       &REG32(PLL3_BASE_ADDR),
+       &REG32(PLL4_BASE_ADDR),
+};
+
+static void clock_setup(int argc, char *argv[]);
+
+RedBoot_cmd("clock",
+                       "Setup/Display clock\nSyntax:",
+                       "[<core clock in MHz> :<DDR clock in MHz>]\n\n"
+                       "   Examples:\n"
+                       "   [clock]         -> Show various clocks\n"
+                       "   [clock 665]     -> Core=665\n"
+                       "   [clock 800:133] -> Core=800 DDR=133\n"
+                       "   [clock :166]    -> Core=no change DDR=166\n",
+                       clock_setup
+       );
+
+/*!
+ * This is to calculate various parameters based on reference clock and
+ * targeted clock based on the equation:
+ *      t_clk = 2*ref_freq*(mfi + mfn/(mfd+1))/(pd+1)
+ * This calculation is based on a fixed MFD value for simplicity.
+ *
+ * @param ref       reference clock freq in Hz
+ * @param target    targeted clock in Hz
+ * @param p_pd      calculated pd value (pd value from register + 1) upon return
+ * @param p_mfi     calculated actual mfi value upon return
+ * @param p_mfn     calculated actual mfn value upon return
+ * @param p_mfd     fixed mfd value (mfd value from register + 1) upon return
+ *
+ * @return          0 if successful; non-zero otherwise.
+ */
+int calc_pll_params(u32 ref, u32 target, struct pll_param *pll)
+{
+       int pd, mfi = 1, mfn, mfd, i;
+       u64 n_target = target, n_ref = ref;
+
+       // make sure targeted freq is in the valid range. Otherwise the
+       // following calculation might be wrong!!!
+       if (n_target < PLL_FREQ_MIN(ref) || n_target > PLL_FREQ_MAX(ref))
+               return ERR_WRONG_CLK;
+
+       mfd = 24 * 16;
+
+       // Use n_target and n_ref to avoid overflow
+       for (pd = 1; pd <= PLL_PD_MAX; pd++) {
+               mfi = (n_target * pd) / (4 * n_ref);
+               if (mfi > PLL_MFI_MAX) {
+                       return ERR_NO_MFI;
+               } else if (mfi < 5) {
+                       continue;
+               }
+               break;
+       }
+       // Now got pd and mfi already
+       mfn = (((n_target * pd) / 4 - n_ref * mfi) * mfd) / n_ref;
+
+       dbg("%d: ref=%d, target=%d, pd=%d, mfi=%d,mfn=%d, mfd=%d\n",
+               __LINE__, ref, target, pd, mfi, mfn, mfd);
+
+       i = 1;
+       if (mfn != 0)
+               i = gcd(mfd, mfn);
+       pll->pd = pd;
+       pll->mfi = mfi;
+       pll->mfn = mfn / i;
+       pll->mfd = mfd / i;
+       return 0;
+}
+
+/*!
+ * This function returns the low power audio clock.
+ */
+u32 get_lp_apm(void)
+{
+       u32 ret_val;
+       u32 ccsr = readl(CCM_BASE_ADDR + CLKCTL_CCSR);
+
+       if (((ccsr >> 9) & 1) == 0) {
+               ret_val = FREQ_24MHZ;
+       } else {
+               ret_val = FREQ_32768HZ;
+       }
+       dbg("%s: CCSR[%08lx]=%08x freq=%u.%03uMHz\n", __FUNCTION__,
+               CCM_BASE_ADDR + CLKCTL_CCSR, ccsr, ret_val / 1000000, ret_val / 1000 % 1000);
+       return ret_val;
+}
+
+/*!
+ * This function returns the periph_clk.
+ */
+u32 get_periph_clk(void)
+{
+       u32 ret_val, clk_sel;
+
+       u32 cbcdr = readl(CCM_BASE_ADDR + CLKCTL_CBCDR);
+       u32 cbcmr = readl(CCM_BASE_ADDR + CLKCTL_CBCMR);
+
+       if (!(cbcdr & (1 << 25))) {
+               ret_val = pll_clock(PLL2);
+               dbg("%s: CBCDR[%08lx]=%08x CBCMR[%08lx]=%08x freq=%u.%03uMHz\n", __FUNCTION__,
+                       CCM_BASE_ADDR + CLKCTL_CBCDR, cbcdr,
+                       CCM_BASE_ADDR + CLKCTL_CBCMR, cbcmr,
+                       ret_val / 1000000, ret_val / 1000 % 1000);
+       } else {
+               clk_sel = (cbcmr >> 12) & 3;
+               if (clk_sel == 0) {
+                       ret_val = pll_clock(PLL1);
+               } else if (clk_sel == 1) {
+                       ret_val = pll_clock(PLL3);
+               } else if (clk_sel == 2) {
+                       ret_val = get_lp_apm();
+               } else {
+                       diag_printf("Invalid CBCMR[CLK_SEL]: %d\n", clk_sel);
+                       return ERR_WRONG_CLK;
+               }
+               dbg("%s: CBCDR[%08lx]=%08x CBCMR[%08lx]=%08x clk_sel=%d freq=%u.%03uMHz\n", __FUNCTION__,
+                       CCM_BASE_ADDR + CLKCTL_CBCDR, cbcdr,
+                       CCM_BASE_ADDR + CLKCTL_CBCMR, cbcmr,
+                       clk_sel, ret_val / 1000000, ret_val / 1000 % 1000);
+       }
+       return ret_val;
+}
+
+/*!
+ * This function assumes the expected core clock has to be changed by
+ * modifying the PLL. This is NOT true always but for most of the times,
+ * it is. So it assumes the PLL output freq is the same as the expected
+ * core clock (presc=1) unless the core clock is less than PLL_FREQ_MIN.
+ * In the latter case, it will try to increase the presc value until
+ * (presc*core_clk) is greater than PLL_FREQ_MIN. It then makes call to
+ * calc_pll_params() and obtains the values of PD, MFI,MFN, MFD based
+ * on the targeted PLL and reference input clock to the PLL. Lastly,
+ * it sets the register based on these values along with the dividers.
+ * Note 1) There is no value checking for the passed-in divider values
+ *         so the caller has to make sure those values are sensible.
+ *      2) Also adjust the NFC divider such that the NFC clock doesn't
+ *         exceed NFC_CLK_MAX.
+ *      3) IPU HSP clock is independent of AHB clock. Even it can go up to
+ *         177MHz for higher voltage, this function fixes the max to 133MHz.
+ *      4) This function should not have allowed diag_printf() calls since
+ *         the serial driver has been stopped. But leave then here to allow
+ *         easy debugging by NOT calling the cyg_hal_plf_serial_stop().
+ *
+ * @param ref       pll input reference clock (24MHz)
+ * @param core_clk  core clock in Hz
+ * @param emi_clk   emi clock in Hz
+ # @return          0 if successful; non-zero otherwise
+ */
+int configure_clock(u32 ref, u32 core_clk, u32 emi_clk)
+{
+       u32 pll, clk_src;
+       struct pll_param pll_param;
+       int ret, clk_sel, div = 1, div_core = 1, div_per = 1, shift = 0;
+       u32 cbcdr = readl(CCM_BASE_ADDR + CLKCTL_CBCDR);
+       u32 cbcmr = readl(CCM_BASE_ADDR + CLKCTL_CBCMR);
+       u32 ccsr = readl(CCM_BASE_ADDR + CLKCTL_CCSR);
+       u32 icgc = readl(PLATFORM_BASE_ADDR + PLATFORM_ICGC);
+
+       dbg("%s: cbcdr[%08lx]=%08x\n", __FUNCTION__,
+               CCM_BASE_ADDR + CLKCTL_CBCDR, cbcdr);
+       dbg("%s: cbcmr[%08lx]=%08x\n", __FUNCTION__,
+               CCM_BASE_ADDR + CLKCTL_CBCMR, cbcdr);
+       dbg("%s: ccsr[%08lx]=%08x\n", __FUNCTION__,
+               CCM_BASE_ADDR + CLKCTL_CCSR, cbcdr);
+       dbg("%s: icgc[%08lx]=%08x\n", __FUNCTION__,
+               PLATFORM_BASE_ADDR + PLATFORM_ICGC, icgc);
+
+       if (core_clk != 0) {
+               // assume pll default to core clock first
+               pll = core_clk;
+               if ((ret = calc_pll_params(ref, pll, &pll_param)) != 0) {
+                       diag_printf("can't find pll parameters: %d\n", ret);
+                       return ret;
+               }
+
+               dbg("%s: ref=%d, pll=%d, pd=%d, mfi=%d,mfn=%d, mfd=%d\n", __FUNCTION__,
+                       ref, pll, pll_param.pd, pll_param.mfi, pll_param.mfn, pll_param.mfd);
+
+               /* Applies for TO 2 only */
+               if (((cbcdr >> 30) & 0x1) == 0x1) {
+                       /* Disable IPU and HSC dividers */
+                       writel(0x60000, CCM_BASE_ADDR + CLKCTL_CCDR);
+                       /* Switch DDR to different source */
+                       writel(cbcdr & ~0x40000000, CCM_BASE_ADDR + CLKCTL_CBCDR);
+                       while (readl(CCM_BASE_ADDR + CLKCTL_CDHIPR) != 0);
+                       writel(0x0, CCM_BASE_ADDR + CLKCTL_CCDR);
+               }
+
+               /* Switch ARM to PLL2 clock */
+               writel(ccsr | 0x4, CCM_BASE_ADDR + CLKCTL_CCSR);
+
+               if ((core_clk > 665000000) && (core_clk <= 800000000)) {
+                       div_per = 5;
+               } else if (core_clk > 800000000) {
+                       div_per = 6;
+               } else {
+                       div_per = 4;
+               }
+
+               if (core_clk > 800000000) {
+                       div_core = 3;
+                       increase_core_voltage(true);
+               } else {
+                       div_core = 2;
+                       increase_core_voltage(false);
+               }
+               cyg_hal_plf_serial_stop();
+
+               // adjust pll settings
+               writel(((pll_param.pd - 1) << 0) | (pll_param.mfi << 4),
+                       PLL1_BASE_ADDR + PLL_DP_OP);
+               writel(pll_param.mfn, PLL1_BASE_ADDR + PLL_DP_MFN);
+               writel(pll_param.mfd - 1, PLL1_BASE_ADDR + PLL_DP_MFD);
+               writel(((pll_param.pd - 1) << 0) | (pll_param.mfi << 4),
+                       PLL1_BASE_ADDR + PLL_DP_HFS_OP);
+               writel(pll_param.mfn, PLL1_BASE_ADDR + PLL_DP_HFS_MFN);
+               writel(pll_param.mfd - 1, PLL1_BASE_ADDR + PLL_DP_HFS_MFD);
+
+               icgc &= ~0x77;
+               icgc |= div_core << 4;
+               icgc |= div_per;
+               /* Set the platform clock dividers */
+               writel(icgc, PLATFORM_BASE_ADDR + PLATFORM_ICGC);
+               /* Switch ARM back to PLL1 */
+               writel((ccsr & ~0x4), CCM_BASE_ADDR + CLKCTL_CCSR);
+               /* Applies for TO 2 only */
+               if (((cbcdr >> 30) & 0x1) == 0x1) {
+                       /* Disable IPU and HSC dividers */
+                       writel(0x60000, CCM_BASE_ADDR + CLKCTL_CCDR);
+                       /* Switch DDR back to PLL1 */
+                       writel(cbcdr | 0x40000000, CCM_BASE_ADDR + CLKCTL_CBCDR);
+                       while (readl(CCM_BASE_ADDR + CLKCTL_CDHIPR) != 0);
+                       writel(0x0, CCM_BASE_ADDR + CLKCTL_CCDR);
+                       if (emi_clk == 0) {
+                               /* Keep EMI clock to the max if not specified */
+                               emi_clk = 200000000;
+                       }
+               }
+               cyg_hal_plf_serial_init();
+       }
+
+       if (emi_clk != 0) {
+               /* Applies for TO 2 only */
+               if (((cbcdr >> 30) & 0x1) == 0x1) {
+                       clk_src = pll_clock(PLL1);
+                       shift = 27;
+               } else {
+                       clk_src = get_periph_clk();
+                       /* Find DDR clock input */
+                       clk_sel = (cbcmr >> 10) & 0x3;
+                       if (clk_sel == 0) {
+                               shift = 16;
+                       } else if (clk_sel == 1) {
+                               shift = 19;
+                       } else if (clk_sel == 2) {
+                               shift = 22;
+                       } else if (clk_sel == 3) {
+                               shift = 10;
+                       }
+               }
+               if ((clk_src % emi_clk) == 0)
+                       div = clk_src / emi_clk;
+               else
+                       div = (clk_src / emi_clk) + 1;
+               if (div > 8)
+                       div = 8;
+
+               cbcdr &= ~(0x7 << shift);
+               cbcdr |= (div - 1) << shift;
+
+               dbg("%s@%d: \n", __FUNCTION__, __LINE__);
+
+               /* Disable IPU and HSC dividers */
+               writel(0x60000, CCM_BASE_ADDR + CLKCTL_CCDR);
+               writel(cbcdr, CCM_BASE_ADDR + CLKCTL_CBCDR);
+               while (readl(CCM_BASE_ADDR + CLKCTL_CDHIPR) != 0);
+               writel(0x0, CCM_BASE_ADDR + CLKCTL_CCDR);
+       }
+       return 0;
+}
+
+static void clock_setup(int argc,char *argv[])
+{
+       u32 i, core_clk, ddr_clk, data[3];
+       unsigned long temp;
+       int ret;
+
+       if (argc == 1)
+               goto print_clock;
+
+       enable_dbg();
+       for (i = 0; i < 2; i++) {
+               if (!parse_num(argv[1], &temp, &argv[1], ":")) {
+                       diag_printf("Error: Invalid parameter\n");
+                       return;
+               }
+               data[i] = temp;
+       }
+
+       core_clk = data[0] * SZ_DEC_1M;
+       ddr_clk = data[1] * SZ_DEC_1M;
+
+       if (core_clk != 0) {
+               if ((core_clk < PLL_FREQ_MIN(PLL_REF_CLK)) || (core_clk > PLL_FREQ_MAX(PLL_REF_CLK))) {
+                       diag_printf("Targeted core clock should be within [%d - %d]\n",
+                                               PLL_FREQ_MIN(PLL_REF_CLK), PLL_FREQ_MAX(PLL_REF_CLK));
+                       return;
+               }
+       }
+
+       if (ddr_clk != 0) {
+               if (ddr_clk > MAX_DDR_CLK) {
+                       diag_printf("DDR clock should be less than %d MHz, assuming max value\n",
+                                               MAX_DDR_CLK / SZ_DEC_1M);
+                       ddr_clk = MAX_DDR_CLK;
+               }
+       }
+
+       // adjust the clock
+       ret = configure_clock(PLL_REF_CLK, core_clk, ddr_clk);
+       if (ret != 0) {
+               diag_printf("Failed to setup clock: %d\n", ret);
+               return;
+       }
+       diag_printf("\n<<<New clock setting>>>\n");
+
+       // Now printing clocks
+print_clock:
+
+       diag_printf("\nPLL1\t\tPLL2\t\tPLL3\t\tPLL4\n");
+       diag_printf("========================================================\n");
+       diag_printf("%-16d%-16d%-16d%-16d\n\n", pll_clock(PLL1), pll_clock(PLL2),
+                               pll_clock(PLL3), pll_clock(PLL4));
+       diag_printf("AXI_A\t\tAXI_B\t\tEMI_SLOW_CLK\n");
+       diag_printf("========================================================\n");
+       diag_printf("%-16d%-16d%-16d\n\n",
+                               get_main_clock(AXI_A_CLK),
+                               get_main_clock(AXI_B_CLK),
+                               get_main_clock(EMI_SLOW_CLK));
+       diag_printf("CPU\t\tAHB\t\tIPG\t\tDDR_CLK\n");
+       diag_printf("========================================================\n");
+       diag_printf("%-16d%-16d%-16d%-16d\n\n",
+                               get_main_clock(CPU_CLK),
+                               get_main_clock(AHB_CLK),
+                               get_main_clock(IPG_CLK),
+                               get_main_clock(DDR_CLK));
+
+       diag_printf("NFC\t\tUSB\t\tIPG_PER_CLK\n");
+       diag_printf("========================================\n");
+       diag_printf("%-16d%-16d%-16d\n\n",
+                               get_main_clock(NFC_CLK),
+                               get_main_clock(USB_CLK),
+                               get_main_clock(IPG_PER_CLK));
+
+       diag_printf("UART1-3\t\tSSI1\t\tSSI2\t\tSPI\n");
+       diag_printf("===========================================");
+       diag_printf("=============\n");
+
+       diag_printf("%-16d%-16d%-16d%-16d\n\n",
+                               get_peri_clock(UART1_BAUD),
+                               get_peri_clock(SSI1_BAUD),
+                               get_peri_clock(SSI2_BAUD),
+                               get_peri_clock(SPI1_CLK));
+
+#if 0
+       diag_printf("IPG_PERCLK as baud clock for: UART1-5, I2C, OWIRE, SDHC");
+       if (((readl(EPIT1_BASE_ADDR) >> 24) & 0x3) == 0x2) {
+               diag_printf(", EPIT");
+       }
+       if (((readl(GPT1_BASE_ADDR) >> 6) & 0x7) == 0x2) {
+               diag_printf(", GPT");
+       }
+#endif
+       diag_printf("\n");
+
+}
+
+/*!
+ * This function returns the PLL output value in Hz based on pll.
+ */
+u32 pll_clock(enum plls pll)
+{
+       u64 ref_clk;
+       u32 mfi, mfn, mfd, pdf, pll_out;
+       int sign;
+       u32 dp_ctrl, dp_op, dp_mfd, dp_mfn;
+       int clk_sel;
+       int dbl;
+
+       dp_ctrl = pll_base[pll][PLL_DP_CTL >> 2];
+       clk_sel = MXC_GET_FIELD(dp_ctrl, 2, 8);
+       ref_clk = PLL_REF_CLK;
+
+       dbg("clk_sel=%d\n", clk_sel);
+
+       if ((pll_base[pll][PLL_DP_CTL >> 2] & 0x80) == 0) {
+               dp_op = pll_base[pll][PLL_DP_OP >> 2];
+               dp_mfd = pll_base[pll][PLL_DP_MFD >> 2];
+               dp_mfn = pll_base[pll][PLL_DP_MFN >> 2];
+       } else {
+               dp_op = pll_base[pll][PLL_DP_HFS_OP >> 2];
+               dp_mfd = pll_base[pll][PLL_DP_HFS_MFD >> 2];
+               dp_mfn = pll_base[pll][PLL_DP_HFS_MFN >> 2];
+       }
+       pdf = dp_op & 0xF;
+       mfi = (dp_op >> 4) & 0xF;
+       mfi = (mfi <= 5) ? 5: mfi;
+       mfd = dp_mfd & 0x07FFFFFF;
+       mfn = dp_mfn & 0x07FFFFFF;
+
+       sign = (mfn < 0x4000000) ? 1 : -1;
+       mfn = (mfn < 0x4000000) ? mfn : (0x8000000 - mfn);
+
+       dbl = 2 * (((dp_ctrl >> 12) & 0x1) + 1);
+
+       dbg("%s: ref=%llu.%03lluMHz, dbl=%d, pd=%d, mfi=%d, mfn=%d, mfd=%d\n",
+               __FUNCTION__, ref_clk / 1000000, ref_clk / 1000 % 1000,
+               dbl, pdf + 1, mfi, sign * mfn, mfd + 1);
+
+       pll_out = (dbl * ref_clk * mfi + dbl * ref_clk * sign * mfn / (mfd + 1)) /
+               (pdf + 1);
+
+       return pll_out;
+}
+
+/*!
+ * This function returns the emi_core_clk_root clock.
+ */
+u32 get_emi_core_clk(void)
+{
+       u32 cbcdr = readl(CCM_BASE_ADDR + CLKCTL_CBCDR);
+       u32 clk_sel, max_pdf, peri_clk, ahb_clk;
+       u32 ret_val;
+
+       max_pdf = (cbcdr >> 10) & 0x7;
+       peri_clk = get_periph_clk();
+       ahb_clk = peri_clk / (max_pdf + 1);
+
+       clk_sel = (cbcdr >> 26) & 1;
+       if (clk_sel == 0) {
+               ret_val = peri_clk;
+       } else {
+               ret_val = ahb_clk ;
+       }
+       dbg("%s: CBCDR[%08lx]=%08x freq=%u.%03uMHz\n", __FUNCTION__,
+               CCM_BASE_ADDR + CLKCTL_CBCDR, cbcdr, ret_val / 1000000, ret_val / 1000 % 1000);
+       return ret_val;
+}
+
+/*!
+ * This function returns the main clock value in Hz.
+ */
+u32 get_main_clock(enum main_clocks clk)
+{
+       u32 pdf, max_pdf, ipg_pdf, nfc_pdf, clk_sel;
+       u32 pll, ret_val;
+       u32 cacrr = readl(CCM_BASE_ADDR + CLKCTL_CACRR);
+       u32 cbcdr = readl(CCM_BASE_ADDR + CLKCTL_CBCDR);
+       u32 cbcmr = readl(CCM_BASE_ADDR + CLKCTL_CBCMR);
+       u32 cscmr1 = readl(CCM_BASE_ADDR + CLKCTL_CSCMR1);
+       u32 cscdr1 = readl(CCM_BASE_ADDR + CLKCTL_CSCDR1);
+
+       dbg("%s: \n", __FUNCTION__);
+       switch (clk) {
+       case CPU_CLK:
+               pdf = cacrr & 0x7;
+               pll = pll_clock(PLL1);
+               ret_val = pll / (pdf + 1);
+               break;
+
+       case AHB_CLK:
+               max_pdf = (cbcdr >> 10) & 0x7;
+               pll = get_periph_clk();
+               ret_val = pll / (max_pdf + 1);
+               break;
+
+       case AXI_A_CLK:
+               pdf = (cbcdr >> 16) & 0x7;
+               pll = get_periph_clk();
+               ret_val = pll / (pdf + 1);
+               break;
+
+       case AXI_B_CLK:
+               pdf = (cbcdr >> 19) & 0x7;
+               pll = get_periph_clk();
+               ret_val = pll / (pdf + 1);
+               break;
+
+       case EMI_SLOW_CLK:
+               pll = get_emi_core_clk();
+               pdf = (cbcdr >> 22) & 0x7;
+               ret_val = pll / (pdf + 1);
+               break;
+
+       case IPG_CLK:
+               max_pdf = (cbcdr >> 10) & 0x7;
+               ipg_pdf = (cbcdr >> 8) & 0x3;
+               pll = get_periph_clk();
+               ret_val = pll / ((max_pdf + 1) * (ipg_pdf + 1));
+               break;
+
+       case IPG_PER_CLK:
+               clk_sel = cbcmr & 1;
+               if (clk_sel == 0) {
+                       clk_sel = (cbcmr >> 1) & 1;
+                       pdf = (((cbcdr >> 6) & 3) + 1) * (((cbcdr >> 3) & 7) + 1) * ((cbcdr & 7) + 1);
+                       if (clk_sel == 0) {
+                               ret_val = get_periph_clk() / pdf;
+                       } else {
+                               ret_val = get_lp_apm();
+                       }
+               } else {
+                       /* Same as IPG_CLK */
+                       max_pdf = (cbcdr >> 10) & 0x7;
+                       ipg_pdf = (cbcdr >> 8) & 0x3;
+                       pll = get_periph_clk();
+                       ret_val = pll / ((max_pdf + 1) * (ipg_pdf + 1));
+               }
+               break;
+
+       case DDR_CLK:
+               clk_sel = (cbcmr >> 10) & 3;
+               pll = get_periph_clk();
+               if (clk_sel == 0) {
+                       /* AXI A */
+                       pdf = (cbcdr >> 16) & 0x7;
+               } else if (clk_sel == 1) {
+                       /* AXI B */
+                       pdf = (cbcdr >> 19) & 0x7;
+               } else if (clk_sel == 2) {
+                       /* EMI SLOW CLOCK ROOT */
+                       pll = get_emi_core_clk();
+                       pdf = (cbcdr >> 22) & 0x7;
+               } else if (clk_sel == 3) {
+                       /* AHB CLOCK */
+                       pdf = (cbcdr >> 10) & 0x7;
+               }
+
+               ret_val = pll / (pdf + 1);
+               break;
+
+       case NFC_CLK:
+               pdf = (cbcdr >> 22) & 0x7;
+               nfc_pdf = (cbcdr >> 13) & 0x7;
+               pll = get_emi_core_clk();
+               ret_val = pll / ((pdf + 1) * (nfc_pdf + 1));
+               break;
+
+       case USB_CLK:
+               clk_sel = (cscmr1 >> 22) & 3;
+               if (clk_sel == 0) {
+                       pll = pll_clock(PLL1);
+               } else if (clk_sel == 1) {
+                       pll = pll_clock(PLL2);
+               } else if (clk_sel == 2) {
+                       pll = pll_clock(PLL3);
+               } else if (clk_sel == 3) {
+                       pll = get_lp_apm();
+               }
+               pdf = (cscdr1 >> 8) & 0x7;
+               max_pdf = (cscdr1 >> 6) & 0x3;
+               ret_val = pll / ((pdf + 1) * (max_pdf + 1));
+               break;
+
+       default:
+               diag_printf("Unknown clock: %d\n", clk);
+               return ERR_WRONG_CLK;
+       }
+
+       return ret_val;
+}
+
+/*!
+ * This function returns the peripheral clock value in Hz.
+ */
+u32 get_peri_clock(enum peri_clocks clk)
+{
+       u32 ret_val = 0, pdf, pre_pdf, clk_sel;
+       u32 cscmr1 = readl(CCM_BASE_ADDR + CLKCTL_CSCMR1);
+       u32 cscdr1 = readl(CCM_BASE_ADDR + CLKCTL_CSCDR1);
+       u32 cscdr2 = readl(CCM_BASE_ADDR + CLKCTL_CSCDR2);
+       u32 cs1cdr = readl(CCM_BASE_ADDR + CLKCTL_CS1CDR);
+       u32 cs2cdr = readl(CCM_BASE_ADDR + CLKCTL_CS2CDR);
+
+       dbg("%s: \n", __FUNCTION__);
+       switch (clk) {
+       case UART1_BAUD:
+       case UART2_BAUD:
+       case UART3_BAUD:
+               pre_pdf = (cscdr1 >> 3) & 0x7;
+               pdf = cscdr1 & 0x7;
+               clk_sel = (cscmr1 >> 24) & 3;
+               if (clk_sel == 0) {
+                       ret_val = pll_clock(PLL1) / ((pre_pdf + 1) * (pdf + 1));
+               } else if (clk_sel == 1) {
+                       ret_val = pll_clock(PLL2) / ((pre_pdf + 1) * (pdf + 1));
+               } else if (clk_sel == 2) {
+                       ret_val = pll_clock(PLL3) / ((pre_pdf + 1) * (pdf + 1));
+               } else {
+                       ret_val = get_lp_apm() / ((pre_pdf + 1) * (pdf + 1));
+               }
+               break;
+       case SSI1_BAUD:
+               pre_pdf = (cs1cdr >> 6) & 0x7;
+               pdf = cs1cdr & 0x3F;
+               clk_sel = (cscmr1 >> 14) & 3;
+               if (clk_sel == 0) {
+                       ret_val = pll_clock(PLL1) / ((pre_pdf + 1) * (pdf + 1));
+               } else if (clk_sel == 0x1) {
+                       ret_val = pll_clock(PLL2) / ((pre_pdf + 1) * (pdf + 1));
+               } else if (clk_sel == 0x2) {
+                       ret_val = pll_clock(PLL3) / ((pre_pdf + 1) * (pdf + 1));
+               } else {
+                       ret_val = CKIH /((pre_pdf + 1) * (pdf + 1));
+               }
+               break;
+       case SSI2_BAUD:
+               pre_pdf = (cs2cdr >> 6) & 0x7;
+               pdf = cs2cdr & 0x3F;
+               clk_sel = (cscmr1 >> 12) & 3;
+               if (clk_sel == 0) {
+                       ret_val = pll_clock(PLL1) / ((pre_pdf + 1) * (pdf + 1));
+               } else if (clk_sel == 0x1) {
+                       ret_val = pll_clock(PLL2) / ((pre_pdf + 1) * (pdf + 1));
+               } else if (clk_sel == 0x2) {
+                       ret_val = pll_clock(PLL3) / ((pre_pdf + 1) * (pdf + 1));
+               } else {
+                       ret_val = CKIH /((pre_pdf + 1) * (pdf + 1));
+               }
+               break;
+       case SPI1_CLK:
+       case SPI2_CLK:
+               pre_pdf = (cscdr2 >> 25) & 0x7;
+               pdf = (cscdr2 >> 19) & 0x3F;
+               clk_sel = (cscmr1 >> 4) & 3;
+               if (clk_sel == 0) {
+                       ret_val = pll_clock(PLL1) / ((pre_pdf + 1) * (pdf + 1));
+               } else if (clk_sel == 1) {
+                       ret_val = pll_clock(PLL2) / ((pre_pdf + 1) * (pdf + 1));
+               } else if (clk_sel == 2) {
+                       ret_val = pll_clock(PLL3) / ((pre_pdf + 1) * (pdf + 1));
+               } else {
+                       ret_val = get_lp_apm() / ((pre_pdf + 1) * (pdf + 1));
+               }
+               break;
+       default:
+               diag_printf("%s(): This clock: %d not supported yet\n",
+                                       __FUNCTION__, clk);
+       }
+
+       return ret_val;
+}
+
+#ifdef L2CC_ENABLED
+/*
+ * This command is added for some simple testing only. It turns on/off
+ * L2 cache regardless of L1 cache state. The side effect of this is
+ * when doing any flash operations such as "fis init", the L2
+ * will be turned back on along with L1 caches even though it is off
+ * by using this command.
+ */
+RedBoot_cmd("L2",
+                       "L2 cache",
+                       "[ON | OFF]",
+                       do_L2_caches
+       );
+
+void do_L2_caches(int argc, char *argv[])
+{
+       u32 oldints;
+
+       if (argc == 2) {
+               if (strcasecmp(argv[1], "on") == 0) {
+                       HAL_DISABLE_INTERRUPTS(oldints);
+                       HAL_ENABLE_L2();
+                       HAL_RESTORE_INTERRUPTS(oldints);
+               } else if (strcasecmp(argv[1], "off") == 0) {
+                       HAL_DISABLE_INTERRUPTS(oldints);
+                       HAL_DCACHE_DISABLE_L1();
+                       HAL_CACHE_FLUSH_ALL();
+                       HAL_DISABLE_L2();
+                       HAL_DCACHE_ENABLE_L1();
+                       HAL_RESTORE_INTERRUPTS(oldints);
+               } else {
+                       diag_printf("Invalid L2 cache mode: %s\n", argv[1]);
+               }
+       } else {
+               int L2cache_on;
+
+               HAL_L2CACHE_IS_ENABLED(L2cache_on);
+               diag_printf("L2 cache: %s\n", L2cache_on ? "On" : "Off");
+       }
+}
+#endif //L2CC_ENABLED
+
+#define IIM_ERR_SHIFT          8
+#define POLL_FUSE_PRGD         (IIM_STAT_PRGD | (IIM_ERR_PRGE << IIM_ERR_SHIFT))
+#define POLL_FUSE_SNSD         (IIM_STAT_SNSD | (IIM_ERR_SNSE << IIM_ERR_SHIFT))
+
+static void fuse_op_start(void)
+{
+       /* Do not generate interrupt */
+       writel(0, IIM_BASE_ADDR + IIM_STATM_OFF);
+       // clear the status bits and error bits
+       writel(0x3, IIM_BASE_ADDR + IIM_STAT_OFF);
+       writel(0xFE, IIM_BASE_ADDR + IIM_ERR_OFF);
+}
+
+/*
+ * The action should be either:
+ *          POLL_FUSE_PRGD
+ * or:
+ *          POLL_FUSE_SNSD
+ */
+static int poll_fuse_op_done(int action)
+{
+       u32 status, error;
+
+       if (action != POLL_FUSE_PRGD && action != POLL_FUSE_SNSD) {
+               diag_printf("%s(%d) invalid operation\n", __FUNCTION__, action);
+               return -1;
+       }
+
+       /* Poll busy bit till it is NOT set */
+       while ((readl(IIM_BASE_ADDR + IIM_STAT_OFF) & IIM_STAT_BUSY) != 0 ) {
+       }
+
+       /* Test for successful write */
+       status = readl(IIM_BASE_ADDR + IIM_STAT_OFF);
+       error = readl(IIM_BASE_ADDR + IIM_ERR_OFF);
+
+       if ((status & action) != 0 && (error & (action >> IIM_ERR_SHIFT)) == 0) {
+               if (error) {
+                       diag_printf("Even though the operation seems successful...\n");
+                       diag_printf("There are some error(s) at addr=0x%08lx: 0x%08x\n",
+                                               (IIM_BASE_ADDR + IIM_ERR_OFF), error);
+               }
+               return 0;
+       }
+       diag_printf("%s(%d) failed\n", __FUNCTION__, action);
+       diag_printf("status address=0x%08lx, value=0x%08x\n",
+                               (IIM_BASE_ADDR + IIM_STAT_OFF), status);
+       diag_printf("There are some error(s) at addr=0x%08lx: 0x%08x\n",
+                               (IIM_BASE_ADDR + IIM_ERR_OFF), error);
+       return -1;
+}
+
+unsigned int sense_fuse(int bank, int row, int bit)
+{
+       int addr, addr_l, addr_h, reg_addr;
+
+       fuse_op_start();
+
+       addr = ((bank << 11) | (row << 3) | (bit & 0x7));
+       /* Set IIM Program Upper Address */
+       addr_h = (addr >> 8) & 0x000000FF;
+       /* Set IIM Program Lower Address */
+       addr_l = (addr & 0x000000FF);
+
+#ifdef IIM_FUSE_DEBUG
+       diag_printf("%s: addr_h=0x%02x, addr_l=0x%02x\n",
+                               __FUNCTION__, addr_h, addr_l);
+#endif
+       writel(addr_h, IIM_BASE_ADDR + IIM_UA_OFF);
+       writel(addr_l, IIM_BASE_ADDR + IIM_LA_OFF);
+       /* Start sensing */
+       writel(0x8, IIM_BASE_ADDR + IIM_FCTL_OFF);
+       if (poll_fuse_op_done(POLL_FUSE_SNSD) != 0) {
+               diag_printf("%s(bank: %d, row: %d, bit: %d failed\n",
+                                       __FUNCTION__, bank, row, bit);
+       }
+       reg_addr = IIM_BASE_ADDR + IIM_SDAT_OFF;
+       return readl(reg_addr);
+}
+
+void do_fuse_read(int argc, char *argv[])
+{
+       unsigned long bank, row;
+       unsigned long fuse_val;
+
+       if (argc == 1) {
+               diag_printf("Usage: fuse_read <bank> <row>\n");
+               return;
+       } else if (argc == 3) {
+               if (!parse_num(argv[1], &bank, &argv[1], " ")) {
+                       diag_printf("Error: Invalid parameter\n");
+                       return;
+               }
+               if (!parse_num(argv[2], &row, &argv[2], " ")) {
+                       diag_printf("Error: Invalid parameter\n");
+                       return;
+               }
+
+               diag_printf("Read fuse at bank:%ld row:%ld\n", bank, row);
+               fuse_val = sense_fuse(bank, row, 0);
+               diag_printf("fuses at (bank:%ld, row:%ld) = 0x%02lx\n", bank, row, fuse_val);
+       } else {
+               diag_printf("Passing in wrong arguments: %d\n", argc);
+               diag_printf("Usage: fuse_read <bank> <row>\n");
+       }
+}
+
+/* Blow fuses based on the bank, row and bit positions (all 0-based)
+*/
+static int fuse_blow(int bank, int row, int bit)
+{
+       int addr, addr_l, addr_h, ret = -1;
+
+       fuse_op_start();
+
+       /* Disable IIM Program Protect */
+       writel(0xAA, IIM_BASE_ADDR + IIM_PREG_P_OFF);
+
+       addr = ((bank << 11) | (row << 3) | (bit & 0x7));
+       /* Set IIM Program Upper Address */
+       addr_h = (addr >> 8) & 0x000000FF;
+       /* Set IIM Program Lower Address */
+       addr_l = (addr & 0x000000FF);
+
+#ifdef IIM_FUSE_DEBUG
+       diag_printf("blowing fuse %d %d bit %d addr_h=0x%02x, addr_l=0x%02x\n",
+                               bank, row, bit, addr_h, addr_l);
+#endif
+
+       writel(addr_h, IIM_BASE_ADDR + IIM_UA_OFF);
+       writel(addr_l, IIM_BASE_ADDR + IIM_LA_OFF);
+       /* Start Programming */
+       writel(0x71, IIM_BASE_ADDR + IIM_FCTL_OFF);
+       if (poll_fuse_op_done(POLL_FUSE_PRGD) == 0) {
+               ret = 0;
+       }
+
+       /* Enable IIM Program Protect */
+       writel(0x0, IIM_BASE_ADDR + IIM_PREG_P_OFF);
+       return ret;
+}
+
+/*
+ * This command is added for burning IIM fuses
+ */
+RedBoot_cmd("fuse_read",
+                       "read some fuses",
+                       "<bank> <row>",
+                       do_fuse_read
+       );
+
+RedBoot_cmd("fuse_blow",
+                       "blow some fuses",
+                       "<bank> <row> <value>",
+                       do_fuse_blow
+       );
+
+void quick_itoa(u32 num, char *a)
+{
+       int i, j, k;
+       for (i = 0; i <= 7; i++) {
+               j = (num >> (4 * i)) & 0xF;
+               k = (j < 10) ? '0' : ('a' - 0xa);
+               a[i] = j + k;
+       }
+}
+
+// slen - streng length, e.g.: 23 -> slen=2; abcd -> slen=4
+// only convert hex value as string input. so "12" is 0x12.
+u32 quick_atoi(char *a, u32 slen)
+{
+       u32 i, num = 0, digit;
+
+       for (i = 0; i < slen; i++) {
+               if (a[i] >= '0' && a[i] <= '9') {
+                       digit = a[i] - '0';
+               } else if (a[i] >= 'a' && a[i] <= 'f') {
+                       digit = a[i] - 'a' + 10;
+               } else if (a[i] >= 'A' && a[i] <= 'F') {
+                       digit = a[i] - 'A' + 10;
+               } else {
+                       diag_printf("ERROR: %c\n", a[i]);
+                       return -1;
+               }
+               num = (num * 16) + digit;
+       }
+       return num;
+}
+
+void fuse_blow_row(int bank, int row, int value)
+{
+       unsigned int reg, i;
+
+       FUSE_PROG_START();
+
+       // enable fuse blown
+       reg = readl(CCM_BASE_ADDR + 0x64);
+       reg |= 0x10;
+       writel(reg, CCM_BASE_ADDR + 0x64);
+
+       for (i = 0; i < 8; i++) {
+               if (((value >> i) & 0x1) == 0) {
+                       continue;
+               }
+               if (fuse_blow(bank, row, i) != 0) {
+                       diag_printf("fuse_blow(bank: %d, row: %d, bit: %d failed\n",
+                                               bank, row, i);
+               }
+       }
+       reg &= ~0x10;
+       writel(reg, CCM_BASE_ADDR + 0x64);
+
+       FUSE_PROG_DONE();
+}
+
+void do_fuse_blow(int argc, char *argv[])
+{
+       unsigned long bank, row, value, i;
+       unsigned int fuse_val;
+       char *s;
+       char val[3];
+
+       if (argc == 1) {
+               diag_printf("It is too dangeous for you to use this command.\n");
+               return;
+       }
+
+       if (argc == 3) {
+               if (strcasecmp(argv[1], "scc") == 0) {
+                       // fuse_blow scc C3D153EDFD2EA9982226EF5047D3B9A0B9C7138EA87C028401D28C2C2C0B9AA2
+                       diag_printf("Ready to burn SCC fuses\n");
+                       s=argv[2];
+                       for (i = 0; ;i++) {
+                               memcpy(val, s, 2);
+                               val[2]='\0';
+                               value = quick_atoi(val, 2);
+                               //    diag_printf("fuse_blow_row(2, %d, value=0x%02x)\n", i, value);
+                               fuse_blow_row(2, i, value);
+
+                               if ((++s)[0] == '\0') {
+                                       diag_printf("ERROR: Odd string input\n");
+                                       break;
+                               }
+                               if ((++s)[0] == '\0') {
+                                       diag_printf("Successful\n");
+                                       break;
+                               }
+                       }
+               } else if (strcasecmp(argv[1], "srk") == 0) {
+                       // fuse_blow srk 418bccd09b53bee1ab59e2662b3c7877bc0094caee201052add49be8780dff95
+                       diag_printf("Ready to burn SRK key fuses\n");
+                       s=argv[2];
+                       for (i = 0; ;i++) {
+                               memcpy(val, s, 2);
+                               val[2]='\0';
+                               value = quick_atoi(val, 2);
+                               if (i == 0) {
+                                       fuse_blow_row(1, 1, value); // 0x41 goes to SRK_HASH[255:248], bank 1, row 1
+                               } else
+                                       fuse_blow_row(3, i, value);  // 0x8b in SRK_HASH[247:240] bank 3, row 1
+                                                                                                // 0xcc in SRK_HASH[239:232] bank 3, row 2
+                                                                                                // ...
+                               if ((++s)[0] == '\0') {
+                                       diag_printf("ERROR: Odd string input\n");
+                                       break;
+                               }
+                               if ((++s)[0] == '\0') {
+                                       diag_printf("Successful\n");
+                                       break;
+                               }
+                       }
+               } else
+                       diag_printf("This command is not supported\n");
+
+               return;
+       } else if (argc == 4) {
+               if (!parse_num(argv[1], &bank, &argv[1], " ")) {
+                       diag_printf("Error: Invalid parameter\n");
+                       return;
+               }
+               if (!parse_num(argv[2], &row, &argv[2], " ")) {
+                       diag_printf("Error: Invalid parameter\n");
+                       return;
+               }
+               if (!parse_num(argv[3], &value, &argv[3], " ")) {
+                       diag_printf("Error: Invalid parameter\n");
+                       return;
+               }
+
+               diag_printf("Blowing fuse at bank:%ld row:%ld value:%ld\n",
+                                       bank, row, value);
+               fuse_blow_row(bank, row, value);
+               fuse_val = sense_fuse(bank, row, 0);
+               diag_printf("fuses at (bank:%ld, row:%ld) = 0x%02x\n", bank, row, fuse_val);
+
+       } else {
+               diag_printf("Passing in wrong arguments: %d\n", argc);
+       }
+}
+
+/* precondition: m>0 and n>0.  Let g=gcd(m,n). */
+static int gcd(int m, int n)
+{
+       while (m > 0) {
+               if (n > m) {
+                       /* swap */
+                       m ^= n;
+                       n ^= m;
+                       m ^= n;
+               }
+               m -= n;
+       }
+       return n;
+}
+
+int read_mac_addr_from_fuse(unsigned char* data)
+{
+       data[0] = sense_fuse(1, 9, 0) ;
+       data[1] = sense_fuse(1, 10, 0) ;
+       data[2] = sense_fuse(1, 11, 0) ;
+       data[3] = sense_fuse(1, 12, 0) ;
+       data[4] = sense_fuse(1, 13, 0) ;
+       data[5] = sense_fuse(1, 14, 0) ;
+
+       if ((data[0] == 0) && (data[1] == 0) && (data[2] == 0) &&
+               (data[3] == 0) && (data[4] == 0) && (data[5] == 0)) {
+               return 0;
+       }
+
+       return 1;
+}
+
+#if 0
+void imx_power_mode(int mode)
+{
+       volatile unsigned int val;
+       switch (mode) {
+       case 2:
+               writel(0x0000030f, GPC_PGR);
+               writel(0x1, SRPGCR_EMI);
+               writel(0x1, SRPGCR_ARM);
+               writel(0x1, PGC_PGCR_VPU);
+               writel(0x1, PGC_PGCR_IPU);
+
+
+       case 1:
+               // stop mode - from validation code
+               // Set DSM_INT_HOLDOFF bit in TZIC
+               // If the TZIC didn't write the bit then there was interrupt pending
+               // It will be serviced while we're in the loop
+               // So we write to this bit again
+               while (readl(INTC_BASE_ADDR + 0x14) == 0) {
+                       writel(1, INTC_BASE_ADDR + 0x14);
+                       // Wait few cycles
+                       __asm("nop");
+                       __asm("nop");
+                       __asm("nop");
+                       __asm("nop");
+                       __asm("nop");
+                       __asm("nop");
+                       __asm("nop");
+               }
+               diag_printf("Entering stop mode\n");
+               val = readl(CCM_BASE_ADDR + 0x74);
+               val = (val & 0xfffffffc) | 0x2; // set STOP mode
+               writel(val, CCM_BASE_ADDR + 0x74);
+               val = readl(PLATFORM_LPC_REG);
+               writel(val | (1 << 16), PLATFORM_LPC_REG);// ENABLE DSM in ELBOW submodule of ARM platform
+               writel(val | (1 << 17), PLATFORM_LPC_REG);// ENABLE DSM in ELBOW submodule of ARM platform
+               break;
+       }
+
+       hal_delay_us(50);
+
+       asm("mov r1, #0");
+       asm("mcr p15, 0, r1, c7, c0, 4");
+}
+
+void do_power_mode(int argc, char *argv[])
+{
+       unsigned long mode;
+
+       if (argc == 1) {
+               diag_printf("Usage: power_mode <mode>\n");
+               return;
+       } else if (argc == 2) {
+               if (!parse_num(argv[1], &mode, &argv[1], " ")) {
+                       diag_printf("Error: Invalid parameter\n");
+                       return;
+               }
+               diag_printf("Entering power mode: %lu\n", mode);
+               imx_power_mode(mode);
+
+       } else {
+               diag_printf("Passing in wrong arguments: %d\n", argc);
+               diag_printf("Usage: power_mode <mode>\n");
+       }
+}
+
+/*
+ * This command is added for burning IIM fuses
+ */
+RedBoot_cmd("power_mode",
+                       "Enter various power modes:",
+                       "\n"
+                       "           <0> - WAIT\n"
+                       "           <1> - SRPG\n"
+                       "           <2> - STOP\n"
+                       "           <3> - STOP with Power-Gating\n"
+                       "           -- need reset after issuing the command",
+                       do_power_mode
+       );
+#endif
+
+/* Super Root key moduli */
+static const UINT8 hab_super_root_moduli[] = {
+       /* modulus data */
+       0xb9, 0x84, 0xc8, 0x8a, 0xd3, 0x7e, 0xcc, 0xc0, 0xe7, 0x3e, 0x11, 0x53,
+       0x6b, 0x5e, 0xea, 0xf4, 0xd9, 0xac, 0x5a, 0x63, 0x8a, 0x79, 0x96, 0x83,
+       0xb1, 0x39, 0xb2, 0x6f, 0x9c, 0x54, 0x87, 0xf4, 0x3b, 0x9e, 0xd8, 0x0f,
+       0x89, 0xf5, 0x01, 0x53, 0xb8, 0xe2, 0xcc, 0x75, 0x0d, 0xe1, 0x13, 0xfa,
+       0xa7, 0xb9, 0x1e, 0xff, 0x6a, 0x05, 0xdb, 0x58, 0x10, 0xbf, 0x2b, 0xf4,
+       0xe7, 0x0a, 0x63, 0x82, 0x2c, 0xa3, 0xb5, 0x0a, 0x72, 0x1c, 0xdc, 0x29,
+       0xc1, 0x81, 0xb5, 0x9a, 0xf0, 0x25, 0x7d, 0xd6, 0xee, 0x01, 0x64, 0xc7,
+       0x07, 0x2d, 0xcb, 0x31, 0x4c, 0x8d, 0x82, 0xf6, 0x44, 0x95, 0x4a, 0xbc,
+       0xae, 0xe8, 0x2a, 0x89, 0xd4, 0xf2, 0x66, 0x72, 0x2b, 0x09, 0x4e, 0x56,
+       0xe9, 0xbf, 0x5e, 0x38, 0x5c, 0xd5, 0x7e, 0x15, 0x55, 0x86, 0x0f, 0x19,
+       0xf6, 0x00, 0xee, 0xa1, 0x92, 0x78, 0xef, 0x93, 0xcb, 0xfa, 0xb4, 0x98,
+       0x19, 0xef, 0x10, 0x70, 0xde, 0x36, 0x1c, 0x12, 0x2e, 0xd2, 0x09, 0xc7,
+       0x7b, 0xd1, 0xaa, 0xd3, 0x46, 0x65, 0xa1, 0x5b, 0xee, 0xa5, 0x96, 0x97,
+       0x98, 0x3e, 0xfc, 0xf8, 0x74, 0x22, 0x51, 0xe7, 0xf1, 0x2f, 0x30, 0x79,
+       0x13, 0xe5, 0x42, 0xc6, 0x7c, 0x18, 0x76, 0xd3, 0x7f, 0x5a, 0x13, 0xde,
+       0x2f, 0x51, 0x07, 0xfa, 0x93, 0xfe, 0x10, 0x8a, 0x0c, 0x18, 0x60, 0x3c,
+       0xff, 0x6a, 0x9b, 0xe7, 0x10, 0x2d, 0x71, 0xd2, 0x34, 0xc0, 0xdf, 0xbe,
+       0x17, 0x4e, 0x75, 0x40, 0x83, 0xaa, 0x90, 0xd1, 0xed, 0xbd, 0xbf, 0xac,
+       0x9a, 0x30, 0xbd, 0x69, 0x4d, 0xd8, 0x00, 0x63, 0x92, 0x69, 0x98, 0xf8,
+       0x89, 0xdc, 0x7b, 0xe3, 0x66, 0x7e, 0xdd, 0xfa, 0x8c, 0x74, 0xe2, 0xb1,
+       0xeb, 0x94, 0xf7, 0xab, 0x0e, 0x92, 0x06, 0xab, 0x60, 0xe5, 0x00, 0x43,
+       0xb2, 0x5e, 0x6e, 0xeb
+};
+
+/* Super Root key */
+const hab_rsa_public_key hab_super_root_key[] = {
+       {
+               {
+                       /* RSA public exponent, right-padded */
+                       0x01, 0x00, 0x01, 0x00,
+               },
+               /* pointer to modulus data */
+               hab_super_root_moduli,
+               /* Exponent size in bytes */
+               0x03,
+               /* Modulus size in bytes */
+               0x100,
+               /* Key data valid */
+               TRUE
+       }
+};
diff --git a/packages/hal/arm/mx53/var/v2_0/src/hab_super_root.h b/packages/hal/arm/mx53/var/v2_0/src/hab_super_root.h
new file mode 100644 (file)
index 0000000..2f3b8f3
--- /dev/null
@@ -0,0 +1,120 @@
+//==========================================================================
+//
+//      hab_super_root.h
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+#ifndef HAB_SUPER_ROOT_H
+#define HAB_SUPER_ROOT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*==================================================================================================
+
+     Header Name: hab_super_root.h
+
+     General Description: This module contains the HAB Super Root public keys.
+
+====================================================================================================*/
+
+/* Generic type definitions */
+typedef signed char               INT8;
+typedef unsigned char     UINT8;
+typedef short int                 INT16;
+typedef unsigned short int UINT16;
+typedef int                               INT32;
+typedef unsigned int      UINT32;
+typedef unsigned char     BOOLEAN;
+
+
+/* HAB specific type definitions */
+typedef UINT8                     *hab_bytestring;
+typedef UINT16                    hab_algorithm;
+typedef UINT8                     hab_index;
+typedef UINT32                    hab_address;
+typedef UINT8                     hab_certificate;
+typedef UINT32                    hab_data_length;
+typedef UINT16                    hab_int_length;
+typedef UINT8                     hab_error;
+
+#ifndef TRUE
+#define TRUE  1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+/* HAB specific definitions */
+#define HAB_MAX_EXP_SIZE   ((hab_int_length)4) /* Maximum size of RSA
+                                                * public key exponent
+                                                * - in bytes
+                                                */
+
+/*==================================================================================================
+                                            MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/* RSA public key structure */
+typedef struct
+{
+       UINT8                   rsa_exponent[HAB_MAX_EXP_SIZE]; /* RSA public exponent */
+       const UINT8             *rsa_modulus;                                   /* RSA modulus pointer */
+       hab_int_length  exponent_size;                                  /* Exponent size in bytes */
+       hab_int_length  modulus_size;                                   /* Modulus size in bytes */
+       BOOLEAN                 init_flag;                                              /* Indicates if key initialised */
+} hab_rsa_public_key;
+
+/*==================================================================================================
+                                 GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+/* Super Root keys */
+extern const hab_rsa_public_key hab_super_root_key[];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* HAB_SUPER_ROOT_H */
diff --git a/packages/hal/arm/mx53/var/v2_0/src/soc_diag.c b/packages/hal/arm/mx53/var/v2_0/src/soc_diag.c
new file mode 100644 (file)
index 0000000..5795180
--- /dev/null
@@ -0,0 +1,752 @@
+/*=============================================================================
+//
+//  hal_diag.c
+//
+//  HAL diagnostic output code
+//
+//=============================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h>                        // base types
+#include <cyg/infra/cyg_trac.h>                        // tracing macros
+#include <cyg/infra/cyg_ass.h>                 // assertion macros
+
+#include <cyg/hal/hal_arch.h>                  // basic machine info
+#include <cyg/hal/hal_intr.h>                  // interrupt macros
+#include <cyg/hal/hal_io.h>                            // IO macros
+#include <cyg/hal/hal_if.h>                            // Calling interface definitions
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>                   // cyg_drv_interrupt_acknowledge
+#include <cyg/hal/hal_misc.h>                  // Helper functions
+#include <cyg/hal/hal_soc.h>                   // Hardware definitions
+#include <redboot.h>
+
+/*
+ * UART Control Register 0 Bit Fields.
+ */
+#define EUartUCR1_ADEN         (1 << 15)                       // Auto dectect interrupt
+#define EUartUCR1_ADBR         (1 << 14)                       // Auto detect baud rate
+#define EUartUCR1_TRDYEN       (1 << 13)                       // Transmitter ready interrupt enable
+#define EUartUCR1_IDEN         (1 << 12)                       // Idle condition interrupt
+#define EUartUCR1_RRDYEN       (1 << 9)                        // Recv ready interrupt enable
+#define EUartUCR1_RDMAEN       (1 << 8)                        // Recv ready DMA enable
+#define EUartUCR1_IREN         (1 << 7)                        // Infrared interface enable
+#define EUartUCR1_TXMPTYEN     (1 << 6)                        // Transimitter empty interrupt enable
+#define EUartUCR1_RTSDEN       (1 << 5)                        // RTS delta interrupt enable
+#define EUartUCR1_SNDBRK       (1 << 4)                        // Send break
+#define EUartUCR1_TDMAEN       (1 << 3)                        // Transmitter ready DMA enable
+#define EUartUCR1_DOZE         (1 << 1)                        // Doze
+#define EUartUCR1_UARTEN       (1 << 0)                        // UART enabled
+#define EUartUCR2_ESCI         (1 << 15)                       // Escape seq interrupt enable
+#define EUartUCR2_IRTS         (1 << 14)                       // Ignore RTS pin
+#define EUartUCR2_CTSC         (1 << 13)                       // CTS pin control
+#define EUartUCR2_CTS          (1 << 12)                       // Clear to send
+#define EUartUCR2_ESCEN                (1 << 11)                       // Escape enable
+#define EUartUCR2_PREN         (1 << 8)                        // Parity enable
+#define EUartUCR2_PROE         (1 << 7)                        // Parity odd/even
+#define EUartUCR2_STPB         (1 << 6)                        // Stop
+#define EUartUCR2_WS           (1 << 5)                        // Word size
+#define EUartUCR2_RTSEN                (1 << 4)                        // Request to send interrupt enable
+#define EUartUCR2_ATEN         (1 << 3)                        // Aging timer enable
+#define EUartUCR2_TXEN         (1 << 2)                        // Transmitter enabled
+#define EUartUCR2_RXEN         (1 << 1)                        // Receiver enabled
+#define EUartUCR2_SRST_                (1 << 0)                        // SW reset
+#define EUartUCR3_PARERREN     (1 << 12)                       // Parity enable
+#define EUartUCR3_FRAERREN     (1 << 11)                       // Frame error interrupt enable
+#define EUartUCR3_ADNIMP       (1 << 7)                        // Autobaud detection not improved
+#define EUartUCR3_RXDSEN       (1 << 6)                        // Receive status interrupt enable
+#define EUartUCR3_AIRINTEN     (1 << 5)                        // Async IR wake interrupt enable
+#define EUartUCR3_AWAKEN       (1 << 4)                        // Async wake interrupt enable
+#define EUartUCR3_RXDMUXSEL (1 << 2)                   // RXD muxed input selected
+#define EUartUCR3_INVT         (1 << 1)                        // Inverted Infrared transmission
+#define EUartUCR3_ACIEN                (1 << 0)                        // Autobaud counter interrupt enable
+#define EUartUCR4_CTSTL_32     (32 << 10)                      // CTS trigger level (32 chars)
+#define EUartUCR4_INVR         (1 << 9)                        // Inverted infrared reception
+#define EUartUCR4_ENIRI                (1 << 8)                        // Serial infrared interrupt enable
+#define EUartUCR4_WKEN         (1 << 7)                        // Wake interrupt enable
+#define EUartUCR4_IRSC         (1 << 5)                        // IR special case
+#define EUartUCR4_LPBYP                (1 << 4)                        // Low power bypass
+#define EUartUCR4_TCEN         (1 << 3)                        // Transmit complete interrupt enable
+#define EUartUCR4_BKEN         (1 << 2)                        // Break condition interrupt enable
+#define EUartUCR4_OREN         (1 << 1)                        // Receiver overrun interrupt enable
+#define EUartUCR4_DREN         (1 << 0)                        // Recv data ready interrupt enable
+#define EUartUFCR_RXTL_SHF     0                                       // Receiver trigger level shift
+#define EUartUFCR_RFDIV_1      (5 << 7)                        // Reference freq divider (div 1)
+#define EUartUFCR_RFDIV_2      (4 << 7)                        // Reference freq divider (div 2)
+#define EUartUFCR_RFDIV_3      (3 << 7)                        // Reference freq divider (div 3)
+#define EUartUFCR_RFDIV_4      (2 << 7)                        // Reference freq divider (div 4)
+#define EUartUFCR_RFDIV_5      (1 << 7)                        // Reference freq divider (div 5)
+#define EUartUFCR_RFDIV_6      (0 << 7)                        // Reference freq divider (div 6)
+#define EUartUFCR_RFDIV_7      (6 << 7)                        // Reference freq divider (div 7)
+#define EUartUFCR_TXTL_SHF     10                                      // Transmitter trigger level shift
+#define EUartUSR1_PARITYERR (1 << 15)                  // Parity error interrupt flag
+#define EUartUSR1_RTSS         (1 << 14)                       // RTS pin status
+#define EUartUSR1_TRDY         (1 << 13)                       // Transmitter ready interrupt/dma flag
+#define EUartUSR1_RTSD         (1 << 12)                       // RTS delta
+#define EUartUSR1_ESCF         (1 << 11)                       // Escape seq interrupt flag
+#define EUartUSR1_FRAMERR      (1 << 10)                       // Frame error interrupt flag
+#define EUartUSR1_RRDY         (1 << 9)                        // Receiver ready interrupt/dma flag
+#define EUartUSR1_AGTIM                (1 << 8)                        // Aging timeout interrupt status
+#define EUartUSR1_RXDS         (1 << 6)                        // Receiver idle interrupt flag
+#define EUartUSR1_AIRINT       (1 << 5)                        // Async IR wake interrupt flag
+#define EUartUSR1_AWAKE                (1 << 4)                        // Aysnc wake interrupt flag
+#define EUartUSR2_ADET         (1 << 15)                       // Auto baud rate detect complete
+#define EUartUSR2_TXFE         (1 << 14)                       // Transmit buffer FIFO empty
+#define EUartUSR2_IDLE         (1 << 12)                       // Idle condition
+#define EUartUSR2_ACST         (1 << 11)                       // Autobaud counter stopped
+#define EUartUSR2_IRINT                (1 << 8)                        // Serial infrared interrupt flag
+#define EUartUSR2_WAKE         (1 << 7)                        // Wake
+#define EUartUSR2_RTSF         (1 << 4)                        // RTS edge interrupt flag
+#define EUartUSR2_TXDC         (1 << 3)                        // Transmitter complete
+#define EUartUSR2_BRCD         (1 << 2)                        // Break condition
+#define EUartUSR2_ORE          (1 << 1)                        // Overrun error
+#define EUartUSR2_RDR          (1 << 0)                        // Recv data ready
+#define EUartUTS_FRCPERR       (1 << 13)                       // Force parity error
+#define EUartUTS_LOOP          (1 << 12)                       // Loop tx and rx
+#define EUartUTS_TXEMPTY       (1 << 6)                        // TxFIFO empty
+#define EUartUTS_RXEMPTY       (1 << 5)                        // RxFIFO empty
+#define EUartUTS_TXFULL                (1 << 4)                        // TxFIFO full
+#define EUartUTS_RXFULL                (1 << 3)                        // RxFIFO full
+#define EUartUTS_SOFTRST       (1 << 0)                        // Software reset
+
+#define EUartUFCR_RFDIV                                                        EUartUFCR_RFDIV_2
+//#define EUartUFCR_RFDIV                                              EUartUFCR_RFDIV_4
+//#define EUartUFCR_RFDIV                                              EUartUFCR_RFDIV_7
+
+#if (EUartUFCR_RFDIV==EUartUFCR_RFDIV_2)
+#define MXC_UART_REFFREQ                                               (get_peri_clock(UART1_BAUD) / 2)
+#endif
+
+#if (EUartUFCR_RFDIV==EUartUFCR_RFDIV_4)
+#define MXC_UART_REFFREQ                                               (get_peri_clock(UART1_BAUD) / 4)
+#endif
+
+#if (EUartUFCR_RFDIV==EUartUFCR_RFDIV_7)
+#define MXC_UART_REFFREQ                                               (get_peri_clock(UART1_BAUD) / 7)
+#endif
+
+/* The Freescale boards have two external UART ports which are mapped first
+ * for whatever strange reason.
+ * Other manufacturers may not have these UARTS on their boards but would
+ * as well like to have their serial ports start at '0'!
+ */
+#ifdef CYGPKG_HAL_ARM_TX53KARO
+#define MXC_UART_CHAN_OFFSET   0
+#else
+#define MXC_UART_CHAN_OFFSET   2
+#endif
+
+#if 1
+void
+cyg_hal_plf_comms_init(void)
+{
+       static int initialized = 0;
+
+       if (initialized)
+               return;
+
+       initialized = 1;
+
+       cyg_hal_plf_serial_init();
+}
+#endif
+
+//=============================================================================
+// MXC Serial Port (UARTx) for Debug
+//=============================================================================
+#ifdef UART_WIDTH_32
+struct mxc_serial {
+       volatile cyg_uint32 urxd[16];
+       volatile cyg_uint32 utxd[16];
+       volatile cyg_uint32 ucr1;
+       volatile cyg_uint32 ucr2;
+       volatile cyg_uint32 ucr3;
+       volatile cyg_uint32 ucr4;
+       volatile cyg_uint32 ufcr;
+       volatile cyg_uint32 usr1;
+       volatile cyg_uint32 usr2;
+       volatile cyg_uint32 uesc;
+       volatile cyg_uint32 utim;
+       volatile cyg_uint32 ubir;
+       volatile cyg_uint32 ubmr;
+       volatile cyg_uint32 ubrc;
+       volatile cyg_uint32 onems;
+       volatile cyg_uint32 uts;
+};
+#else
+struct mxc_serial {
+       volatile cyg_uint16 urxd[1];
+       volatile cyg_uint16 resv0[31];
+
+       volatile cyg_uint16 utxd[1];
+       volatile cyg_uint16 resv1[31];
+       volatile cyg_uint16 ucr1;
+       volatile cyg_uint16 resv2;
+       volatile cyg_uint16 ucr2;
+       volatile cyg_uint16 resv3;
+       volatile cyg_uint16 ucr3;
+       volatile cyg_uint16 resv4;
+       volatile cyg_uint16 ucr4;
+       volatile cyg_uint16 resv5;
+       volatile cyg_uint16 ufcr;
+       volatile cyg_uint16 resv6;
+       volatile cyg_uint16 usr1;
+       volatile cyg_uint16 resv7;
+       volatile cyg_uint16 usr2;
+       volatile cyg_uint16 resv8;
+       volatile cyg_uint16 uesc;
+       volatile cyg_uint16 resv9;
+       volatile cyg_uint16 utim;
+       volatile cyg_uint16 resv10;
+       volatile cyg_uint16 ubir;
+       volatile cyg_uint16 resv11;
+       volatile cyg_uint16 ubmr;
+       volatile cyg_uint16 resv12;
+       volatile cyg_uint16 ubrc;
+       volatile cyg_uint16 resv13;
+       volatile cyg_uint16 onems;
+       volatile cyg_uint16 resv14;
+       volatile cyg_uint16 uts;
+       volatile cyg_uint16 resv15;
+};
+#endif
+
+typedef struct {
+       volatile struct mxc_serial *base;
+       cyg_int32 msec_timeout;
+       int isr_vector;
+       int baud_rate;
+} channel_data_t;
+
+static channel_data_t channels[] = {
+#if CYGHWR_HAL_ARM_SOC_UART1 != 0
+       {(volatile struct mxc_serial*)UART1_BASE_ADDR, 1000,
+        CYGNUM_HAL_INTERRUPT_UART1, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+#endif
+#if CYGHWR_HAL_ARM_SOC_UART2 != 0
+       {(volatile struct mxc_serial*)UART2_BASE_ADDR, 1000,
+        CYGNUM_HAL_INTERRUPT_UART2, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+#endif
+#if CYGHWR_HAL_ARM_SOC_UART3 != 0
+       {(volatile struct mxc_serial*)UART3_BASE_ADDR, 1000,
+        CYGNUM_HAL_INTERRUPT_UART3, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+#endif
+};
+
+/*---------------------------------------------------------------------------*/
+
+static void init_serial_channel(channel_data_t *__ch_data)
+{
+       volatile struct mxc_serial *base = __ch_data->base;
+
+       /* Wait for UART to finish transmitting */
+       while (!(base->uts & EUartUTS_TXEMPTY));
+
+       /* Disable UART */
+       base->ucr1 &= ~EUartUCR1_UARTEN;
+
+       /* Set to default POR state */
+       base->ucr1 = 0x00000000;
+       base->ucr2 = 0x00000000;
+
+       while (!(base->ucr2 & EUartUCR2_SRST_));
+
+       base->ucr3 = 0x00000704;
+       base->ucr4 = 0x00008000;
+       base->ufcr = 0x00000801;
+       base->uesc = 0x0000002B;
+       base->utim = 0x00000000;
+       base->ubir = 0x00000000;
+       base->ubmr = 0x00000000;
+       base->onems = 0x00000000;
+       base->uts  = 0x00000000;
+
+       /* Configure FIFOs */
+       base->ufcr = (1 << EUartUFCR_RXTL_SHF) | EUartUFCR_RFDIV |
+               (2 << EUartUFCR_TXTL_SHF);
+
+       /* Setup One MS timer */
+       base->onems = MXC_UART_REFFREQ / 1000;
+
+       /* Set to 8N1 */
+       base->ucr2 &= ~EUartUCR2_PREN;
+       base->ucr2 |= EUartUCR2_WS;
+       base->ucr2 &= ~EUartUCR2_STPB;
+
+       /* Ignore RTS */
+       base->ucr2 |= EUartUCR2_IRTS;
+
+       /* Enable UART */
+       base->ucr1 |= EUartUCR1_UARTEN;
+
+       /* Enable FIFOs */
+       base->ucr2 |= EUartUCR2_SRST_ | EUartUCR2_RXEN | EUartUCR2_TXEN;
+
+       /* Clear status flags */
+       base->usr2 |= EUartUSR2_ADET  |
+                                 EUartUSR2_IDLE  |
+                                 EUartUSR2_IRINT |
+                                 EUartUSR2_WAKE  |
+                                 EUartUSR2_RTSF  |
+                                 EUartUSR2_BRCD  |
+                                 EUartUSR2_ORE   |
+                                 EUartUSR2_RDR;
+
+       /* Clear status flags */
+       base->usr1 |= EUartUSR1_PARITYERR |
+                                 EUartUSR1_RTSD          |
+                                 EUartUSR1_ESCF          |
+                                 EUartUSR1_FRAMERR       |
+                                 EUartUSR1_AIRINT        |
+                                 EUartUSR1_AWAKE;
+
+       /* Set the numerator value minus one of the BRM ratio */
+       base->ubir = (__ch_data->baud_rate / 100) - 1;
+
+       /* Set the denominator value minus one of the BRM ratio */
+       base->ubmr = (MXC_UART_REFFREQ / 1600) - 1;
+}
+
+static void stop_serial_channel(channel_data_t *__ch_data)
+{
+       volatile struct mxc_serial *base = __ch_data->base;
+
+       /* Wait for UART to finish transmitting */
+       while (!(base->uts & EUartUTS_TXEMPTY));
+
+       /* Disable UART */
+       base->ucr1 &= ~EUartUCR1_UARTEN;
+}
+
+//#define debug_uart_log_buf
+#ifdef debug_uart_log_buf
+#define DIAG_BUFSIZE 2048
+static char __log_buf[DIAG_BUFSIZE] __attribute__((aligned(4096)));
+static int diag_bp = 0;
+#endif
+
+void cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+       channel_data_t *chan = __ch_data;
+       volatile struct mxc_serial *base = chan->base;
+#ifdef debug_uart_log_buf
+       __log_buf[diag_bp++] = c;
+       return;
+#endif
+
+       CYGARC_HAL_SAVE_GP();
+
+       // Wait for Tx FIFO not full
+       while (base->uts & EUartUTS_TXFULL)
+               ;
+       base->utxd[0] = c;
+
+       CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool cyg_hal_plf_serial_getc_nonblock(void *__ch_data,
+                                                                                               cyg_uint8 *ch)
+{
+       channel_data_t *chan = __ch_data;
+       volatile struct mxc_serial *base = chan->base;
+
+       // If receive fifo is empty, return false
+       if (base->uts & EUartUTS_RXEMPTY)
+               return false;
+
+       *ch = (char)base->urxd[0];
+
+       return true;
+}
+
+cyg_uint8 cyg_hal_plf_serial_getc(void *__ch_data)
+{
+       cyg_uint8 ch;
+       CYGARC_HAL_SAVE_GP();
+
+       while (!cyg_hal_plf_serial_getc_nonblock(__ch_data, &ch));
+
+       CYGARC_HAL_RESTORE_GP();
+       return ch;
+}
+
+static void cyg_hal_plf_serial_write(void *__ch_data, const cyg_uint8 *__buf,
+                                                                       cyg_uint32 __len)
+{
+       CYGARC_HAL_SAVE_GP();
+
+       while (__len-- > 0)
+               cyg_hal_plf_serial_putc(__ch_data, *__buf++);
+
+       CYGARC_HAL_RESTORE_GP();
+}
+
+static void cyg_hal_plf_serial_read(void *__ch_data, cyg_uint8 *__buf,
+                                                                       cyg_uint32 __len)
+{
+       CYGARC_HAL_SAVE_GP();
+
+       while (__len-- > 0)
+               *__buf++ = cyg_hal_plf_serial_getc(__ch_data);
+
+       CYGARC_HAL_RESTORE_GP();
+}
+
+cyg_bool cyg_hal_plf_serial_getc_timeout(void *__ch_data,
+                                                                               cyg_uint8 *ch)
+{
+       int delay_count;
+       channel_data_t *chan = __ch_data;
+       cyg_bool res;
+       CYGARC_HAL_SAVE_GP();
+
+       delay_count = chan->msec_timeout * 10; // delay in .1 ms steps
+
+       for (;;) {
+               res = cyg_hal_plf_serial_getc_nonblock(__ch_data, ch);
+               if (res || 0 == delay_count--)
+                       break;
+
+               CYGACC_CALL_IF_DELAY_US(100);
+       }
+
+       CYGARC_HAL_RESTORE_GP();
+       return res;
+}
+
+static int cyg_hal_plf_serial_control(void *__ch_data,
+                                                                       __comm_control_cmd_t __func, ...)
+{
+       static int irq_state = 0;
+       channel_data_t *chan = __ch_data;
+       int ret = -1;
+       va_list ap;
+
+       CYGARC_HAL_SAVE_GP();
+       va_start(ap, __func);
+
+       switch (__func) {
+       case __COMMCTL_GETBAUD:
+               ret = chan->baud_rate;
+               break;
+       case __COMMCTL_SETBAUD:
+               chan->baud_rate = va_arg(ap, cyg_int32);
+               // Should we verify this value here?
+               init_serial_channel(chan);
+               ret = 0;
+               break;
+       case __COMMCTL_IRQ_ENABLE:
+               irq_state = 1;
+
+               chan->base->ucr1 |= EUartUCR1_RRDYEN;
+
+               HAL_INTERRUPT_UNMASK(chan->isr_vector);
+               break;
+       case __COMMCTL_IRQ_DISABLE:
+               ret = irq_state;
+               irq_state = 0;
+
+               chan->base->ucr1 &= ~EUartUCR1_RRDYEN;
+
+               HAL_INTERRUPT_MASK(chan->isr_vector);
+               break;
+       case __COMMCTL_DBG_ISR_VECTOR:
+               ret = chan->isr_vector;
+               break;
+       case __COMMCTL_SET_TIMEOUT:
+               ret = chan->msec_timeout;
+               chan->msec_timeout = va_arg(ap, cyg_uint32);
+               break;
+       default:
+               break;
+       }
+       va_end(ap);
+       CYGARC_HAL_RESTORE_GP();
+       return ret;
+}
+
+static int cyg_hal_plf_serial_isr(void *__ch_data, int *__ctrlc,
+                                                               CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+       int res = 0;
+       channel_data_t *chan = __ch_data;
+       char c;
+
+       CYGARC_HAL_SAVE_GP();
+
+       cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+       *__ctrlc = 0;
+       if (!(chan->base->uts & EUartUTS_RXEMPTY)) {
+               c = (char)chan->base->urxd[0];
+
+               if (cyg_hal_is_break(&c, 1))
+                       *__ctrlc = 1;
+
+               res = CYG_ISR_HANDLED;
+       }
+
+       CYGARC_HAL_RESTORE_GP();
+       return res;
+}
+
+void cyg_hal_plf_serial_init(void)
+{
+       hal_virtual_comm_table_t *comm;
+       int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+       int i;
+       static int jjj = 0;
+
+       // Init channels
+       for (i = 0; i < NUM_ELEMS(channels); i++) {
+               init_serial_channel(&channels[i]);
+               CYGACC_CALL_IF_SET_CONSOLE_COMM(i + MXC_UART_CHAN_OFFSET);
+               comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+               CYGACC_COMM_IF_CH_DATA_SET(*comm, &channels[i]);
+               CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);
+               CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);
+               CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);
+               CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);
+               CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);
+               CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);
+               CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);
+               if (jjj == 0) {
+                       cyg_hal_plf_serial_putc(&channels[i], '+');
+                       jjj++;
+               }
+       }
+
+       // Restore original console
+       CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+void cyg_hal_plf_serial_stop(void)
+{
+       int i;
+
+       // Init channels
+       for (i = 0;      i < NUM_ELEMS(channels);  i++) {
+               stop_serial_channel(&channels[i]);
+       }
+}
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+#include <cyg/hal/hal_stub.h>                  // cyg_hal_gdb_interrupt
+
+#define MXC_UART1_CHAN         (0 + MXC_UART_CHAN_OFFSET)
+#define MXC_UART2_CHAN         (1 + MXC_UART_CHAN_OFFSET)
+#define MXC_UART3_CHAN         (2 + MXC_UART_CHAN_OFFSET)
+#define MXC_UART4_CHAN         (3 + MXC_UART_CHAN_OFFSET)
+#define MXC_UART5_CHAN         (4 + MXC_UART_CHAN_OFFSET)
+#define MXC_UART6_CHAN         (5 + MXC_UART_CHAN_OFFSET)
+
+#undef __BASE
+
+#if (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == MXC_UART1_CHAN)
+#define __BASE ((void*)UART1_BASE_ADDR)
+#define CYGHWR_HAL_GDB_PORT_VECTOR CYGNUM_HAL_INTERRUPT_UART1
+#elif (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == MXC_UART2_CHAN)
+#define __BASE ((void*)UART2_BASE_ADDR)
+#define CYGHWR_HAL_GDB_PORT_VECTOR CYGNUM_HAL_INTERRUPT_UART2
+#elif (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == MXC_UART3_CHAN)
+#define __BASE ((void*)UART3_BASE_ADDR)
+#endif
+
+#ifdef __BASE
+
+#ifdef CYGSEM_HAL_ROM_MONITOR
+#define CYG_HAL_STARTUP_ROM
+#define CYG_HAL_STARTUP_ROMRAM
+#undef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#endif
+
+#if (defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)) && !defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#define HAL_DIAG_USES_HARDWARE
+#elif !defined(CYGDBG_HAL_DIAG_TO_DEBUG_CHAN)
+#define HAL_DIAG_USES_HARDWARE
+#elif CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL != CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
+#define HAL_DIAG_USES_HARDWARE
+#endif
+
+static channel_data_t channel = {
+       __BASE, 0, CYGHWR_HAL_GDB_PORT_VECTOR
+};
+
+#ifdef HAL_DIAG_USES_HARDWARE
+
+void hal_diag_init(void)
+{
+       static int init = 0;
+       char *msg = "\n\rARM eCos\n\r";
+
+       if (init++) return;
+
+       init_serial_channel(&channel);
+
+       while (*msg) hal_diag_write_char(*msg++);
+}
+
+#ifdef DEBUG_DIAG
+#ifndef CYG_HAL_STARTUP_ROM
+#define DIAG_BUFSIZE 2048
+static char diag_buffer[DIAG_BUFSIZE];
+static int diag_bp = 0;
+#endif
+#endif
+
+void hal_diag_write_char(char c)
+{
+#ifdef DEBUG_DIAG
+#ifndef CYG_HAL_STARTUP_ROM
+       diag_buffer[diag_bp++] = c;
+       if (diag_bp == sizeof(diag_buffer)) diag_bp = 0;
+#endif
+#endif
+       cyg_hal_plf_serial_putc(&channel, c);
+}
+
+void hal_diag_read_char(char *c)
+{
+       *c = cyg_hal_plf_serial_getc(&channel);
+}
+
+#else // not HAL_DIAG_USES_HARDWARE - it uses GDB protocol
+
+void hal_diag_read_char(char *c)
+{
+       *c = cyg_hal_plf_serial_getc(&channel);
+}
+
+void hal_diag_write_char(char c)
+{
+       static char line[100];
+       static int pos = 0;
+
+       // FIXME: Some LED blinking might be nice right here.
+
+       // No need to send CRs
+       if (c == '\r') return;
+
+       line[pos++] = c;
+
+       if (c == '\n' || pos == sizeof(line)) {
+               CYG_INTERRUPT_STATE old;
+
+               // Disable interrupts. This prevents GDB trying to interrupt us
+               // while we are in the middle of sending a packet. The serial
+               // receive interrupt will be seen when we re-enable interrupts
+               // later.
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+               CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION(old);
+#else
+               HAL_DISABLE_INTERRUPTS(old);
+#endif
+               while (1) {
+                       static char hex[] = "0123456789ABCDEF";
+                       cyg_uint8 csum = 0;
+                       int i;
+#ifndef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+                       char c1;
+#endif
+                       cyg_hal_plf_serial_putc(&channel, '$');
+                       cyg_hal_plf_serial_putc(&channel, 'O');
+                       csum += 'O';
+                       for (i = 0; i < pos; i++) {
+                               char ch = line[i];
+                               char h = hex[(ch >> 4) & 0xF];
+                               char l = hex[ch & 0xF];
+                               cyg_hal_plf_serial_putc(&channel, h);
+                               cyg_hal_plf_serial_putc(&channel, l);
+                               csum += h;
+                               csum += l;
+                       }
+                       cyg_hal_plf_serial_putc(&channel, '#');
+                       cyg_hal_plf_serial_putc(&channel, hex[(csum >> 4) & 0xF]);
+                       cyg_hal_plf_serial_putc(&channel, hex[csum & 0xF]);
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+
+                       break; // regardless
+
+#else // not CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT Ie. usually...
+
+                       // Wait for the ACK character '+' from GDB here and handle
+                       // receiving a ^C instead.  This is the reason for this clause
+                       // being a loop.
+                       c1 = cyg_hal_plf_serial_getc(&channel);
+
+                       if (c1 == '+')
+                               break;                          // a good acknowledge
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+                       cyg_drv_interrupt_acknowledge(CYGHWR_HAL_GDB_PORT_VECTOR);
+                       if (c1 == '\003') {
+                               // Ctrl-C: breakpoint.
+                               cyg_hal_gdb_interrupt((target_register_t)__builtin_return_address(0));
+                               break;
+                       }
+#endif // CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+
+#endif // ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+                       // otherwise, loop round again
+               }
+
+               pos = 0;
+
+               // And re-enable interrupts
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+               CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION(old);
+#else
+               HAL_RESTORE_INTERRUPTS(old);
+#endif
+       }
+}
+#endif
+
+#endif // __BASE
+
+#endif // !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/packages/hal/arm/mx53/var/v2_0/src/soc_misc.c b/packages/hal/arm/mx53/var/v2_0/src/soc_misc.c
new file mode 100644 (file)
index 0000000..75ef8bf
--- /dev/null
@@ -0,0 +1,624 @@
+//==========================================================================
+//
+//      soc_misc.c
+//
+//      HAL misc board support code
+//
+//==========================================================================
+//####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with eCos; if not, write to the Free Software Foundation, Inc.,
+// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+//
+// As a special exception, if other files instantiate templates or use macros
+// or inline functions from this file, or you compile this file and link it
+// with other works to produce a work based on this file, this file does not
+// by itself cause the resulting work to be covered by the GNU General Public
+// License. However the source code for this file must still be made available
+// in accordance with section (3) of the GNU General Public License.
+//
+// This exception does not invalidate any other reasons why a work based on
+// this file might be covered by the GNU General Public License.
+//
+// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+// at http://sources.redhat.com/ecos/ecos-license/
+// -------------------------------------------
+//####ECOSGPLCOPYRIGHTEND####
+//========================================================================*/
+
+#include <redboot.h>
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h>                        // base types
+#include <cyg/infra/cyg_trac.h>                        // tracing macros
+#include <cyg/infra/cyg_ass.h>                 // assertion macros
+
+#include <cyg/hal/hal_misc.h>                  // Size constants
+#include <cyg/hal/hal_io.h>                            // IO macros
+#include <cyg/hal/hal_arch.h>                  // Register state info
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_intr.h>                  // Interrupt names
+#include <cyg/hal/hal_cache.h>                 // Cache control
+#include <cyg/hal/hal_soc.h>                   // Hardware definitions
+#include <cyg/hal/hal_mm.h>                            // MMap table definitions
+#include <cyg/infra/diag.h>                            // diag_printf
+#ifdef MXCFLASH_SELECT_NAND
+#include <cyg/io/imx_nfc.h>
+#endif
+
+// Most initialization has already been done before we get here.
+// All we do here is set up the interrupt environment.
+// FIXME: some of the stuff in hal_platform_setup could be moved here.
+
+/*
+ * System_rev will have the following format
+ * 31-12 = part # (0x31, 0x32, 0x27, 0x91131, 0x91321, etc)
+ * 11-8 = unused
+ * 7-4 = major (1.y)
+ * 3-0 = minor (x.0)
+ */
+unsigned int system_rev = CHIP_REV_1_0;
+static int find_correct_chip;
+
+#define SBMR_BOOT_CFG1_SHIFT           0
+#define SBMR_BOOT_CFG1_MASK                    (0xff << SBMR_BOOT_CFG1_SHIFT)
+#define SBMR_BOOT_CFG1(r)                      (((r) & SBMR_BOOT_CFG1_MASK) >> SBMR_BOOT_CFG1_SHIFT)
+
+#define SBMR_BOOT_CFG2_SHIFT           8
+#define SBMR_BOOT_CFG2_MASK                    (0xff << SBMR_BOOT_CFG2_SHIFT)
+#define SBMR_BOOT_CFG2(r)                      (((r) & SBMR_BOOT_CFG2_MASK) >> SBMR_BOOT_CFG2_SHIFT)
+
+#define SBMR_BOOT_CFG3_SHIFT           16
+#define SBMR_BOOT_CFG3_MASK                    (0xff << SBMR_BOOT_CFG3_SHIFT)
+#define SBMR_BOOT_CFG3(r)                      (((r) & SBMR_BOOT_CFG3_MASK) >> SBMR_BOOT_CFG3_SHIFT)
+
+#define SBMR_BMOD_SHIFT                                24
+#define SBMR_BMOD_MASK                         (0x3 << SBMR_BMOD_SHIFT)
+#define SBMR_BMOD(r)                           (((r) & SBMR_BMOD_MASK) >> SBMR_BMOD_SHIFT)
+
+#define SBMR_BT_FUSE_SEL_SHIFT         26
+#define SBMR_BT_FUSE_SEL_MASK          (3 << SBMR_BT_FUSE_SEL_SHIFT)
+#define SBMR_BT_FUSE_SEL(r)                    (((r) & SBMR_BT_FUSE_SEL_MASK) >> SBMR_BT_FUSE_SEL_SHIFT)
+
+/*
+ * This functions reads the IIM module and returns the system revision number.
+ * It returns the IIM silicon revision reg value if valid product rev is found.
+ . Otherwise, it returns -1.
+ */
+static int read_system_rev(void)
+{
+       int prev, srev;
+
+       prev = readl(IIM_BASE_ADDR + IIM_PREV_OFF) >> 3;
+       srev = readl(IIM_BASE_ADDR + IIM_SREV_OFF);
+
+       system_rev = 0x53 << PART_NUMBER_OFFSET; /* For MX53 Platform*/
+
+       /* Now try to retrieve the silicon rev from IIM's SREV register */
+       return srev;
+}
+
+#ifdef MXCFLASH_SELECT_NAND
+unsigned int mxc_nfc_soc_setup(unsigned int pg_sz, unsigned int io_sz,
+                                                       unsigned int is_mlc, unsigned int num_of_chips);
+extern nfc_setup_func_t *nfc_setup;
+#endif
+
+#ifdef MXCFLASH_SELECT_MMC
+//extern mxc_mmc_check_sdhc_boot_slot *check_sdhc_slot;
+#endif
+
+int mxc_check_sdhc_boot_slot(unsigned int port, unsigned int *sdhc_addr);
+
+void hal_hardware_init(void)
+{
+       int ver;
+
+       ver = read_system_rev();
+
+       find_correct_chip = ver;
+
+       if (ver != CHIP_VERSION_NONE) {
+               /* Valid product revision found. Check actual silicon rev from the ROM code. */
+               if (ver == 0x1) {
+                       HAL_PLATFORM_EXTRA[5] = '1';
+                       HAL_PLATFORM_EXTRA[7] = '0';
+                       system_rev |= 1 << MAJOR_NUMBER_OFFSET;
+                       system_rev |= 0 << MINOR_NUMBER_OFFSET;
+               } else if (ver == 0x2) {
+                       HAL_PLATFORM_EXTRA[5] = '1';
+                       HAL_PLATFORM_EXTRA[7] = '1';
+                       system_rev |= 1 << MAJOR_NUMBER_OFFSET;
+                       system_rev |= 1 << MINOR_NUMBER_OFFSET;
+               } else if (ver == 0x10) {
+                       HAL_PLATFORM_EXTRA[5] = '2';
+                       HAL_PLATFORM_EXTRA[7] = '0';
+                       system_rev |= 2 << MAJOR_NUMBER_OFFSET;
+                       system_rev |= 0 << MINOR_NUMBER_OFFSET;
+               } else if (ver == 0x3) {
+                       HAL_PLATFORM_EXTRA[5] = '2';
+                       HAL_PLATFORM_EXTRA[7] = '1';
+                       system_rev |= 2 << MAJOR_NUMBER_OFFSET;
+                       system_rev |= 1 << MINOR_NUMBER_OFFSET;
+               } else {
+                       HAL_PLATFORM_EXTRA[5] = 'x';
+                       HAL_PLATFORM_EXTRA[7] = 'x';
+                       system_rev |= 3 << MAJOR_NUMBER_OFFSET;
+                       system_rev |= 0 << MINOR_NUMBER_OFFSET;
+                       find_correct_chip = CHIP_VERSION_UNKNOWN;
+               }
+
+       }
+       // Enable caches
+#ifdef CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP
+       HAL_ICACHE_ENABLE();
+#endif
+#ifdef CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP
+       HAL_DCACHE_ENABLE();
+#endif
+       // enable EPIT and start it with 32KHz input clock
+       writel(0x00010000, EPIT_BASE_ADDR + EPITCR);
+
+       // make sure reset is complete
+       while ((readl(EPIT_BASE_ADDR + EPITCR) & 0x10000) != 0) {
+               static int retries = 10000;
+               if (retries--)
+                       break;
+       }
+
+       writel(0x030E0002, EPIT_BASE_ADDR + EPITCR);
+       writel(0x030E0003, EPIT_BASE_ADDR + EPITCR);
+
+       writel(0, EPIT_BASE_ADDR + EPITCMPR);  // always compare with 0
+
+       if ((readw(WDOG_BASE_ADDR) & 4) != 0) {
+               // increase the WDOG timeout value to the max
+               writew(readw(WDOG_BASE_ADDR) | 0xFF00, WDOG_BASE_ADDR);
+       }
+       // Perform any platform specific initializations
+       plf_hardware_init();
+
+       // Set up eCos/ROM interfaces
+       hal_if_init();
+
+#ifdef MXCFLASH_SELECT_NAND
+       nfc_setup = mxc_nfc_soc_setup;
+#endif
+}
+
+// -------------------------------------------------------------------------
+void hal_clock_initialize(cyg_uint32 period)
+{
+}
+
+// This routine is called during a clock interrupt.
+
+// Define this if you want to ensure that the clock is perfect (i.e. does
+// not drift).  One reason to leave it turned off is that it costs some
+// us per system clock interrupt for this maintenance.
+#undef COMPENSATE_FOR_CLOCK_DRIFT
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+// Note: The "contract" for this function is that the value is the number
+// of hardware clocks that have happened since the last interrupt (i.e.
+// when it was reset).  This value is used to measure interrupt latencies.
+// However, since the hardware counter runs freely, this routine computes
+// the difference between the current clock period and the number of hardware
+// ticks left before the next timer interrupt.
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+}
+
+// This is to cope with the test read used by tm_basic with
+// CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY defined; we read the count ASAP
+// in the ISR, *before* resetting the clock.  Which returns 1tick +
+// latency if we just use plain hal_clock_read().
+void hal_clock_latency(cyg_uint32 *pvalue)
+{
+}
+
+unsigned int hal_timer_count(void)
+{
+       return (0xFFFFFFFF - readl(EPIT_BASE_ADDR + EPITCNR));
+}
+
+#define WDT_MAGIC_1                            0x5555
+#define WDT_MAGIC_2                            0xAAAA
+#define MXC_WDT_WSR                            0x2
+
+unsigned int i2c_base_addr[] = {
+       I2C_BASE_ADDR,
+       I2C2_BASE_ADDR,
+};
+unsigned int i2c_num = 2;
+
+static unsigned int led_on = 0;
+//
+// Delay for some number of micro-seconds
+//
+void hal_delay_us(unsigned int usecs)
+{
+       /*
+        * This causes overflow.
+        * unsigned int delayCount = (usecs * 32768) / 1000000;
+        * So use the following one instead
+        */
+       unsigned int delayCount = (usecs * 512) / 15625;
+
+       // issue the service sequence instructions
+       if ((readw(WDOG_BASE_ADDR) & 4) != 0) {
+               writew(WDT_MAGIC_1, WDOG_BASE_ADDR + MXC_WDT_WSR);
+               writew(WDT_MAGIC_2, WDOG_BASE_ADDR + MXC_WDT_WSR);
+       }
+
+       if (delayCount == 0) {
+               return;
+       }
+
+       writel(0x01, EPIT_BASE_ADDR + EPITSR); // clear the compare status bit
+
+       writel(delayCount, EPIT_BASE_ADDR + EPITLR);
+
+       while ((0x1 & readl(EPIT_BASE_ADDR + EPITSR)) == 0); // return until compare bit is set
+       if ((++led_on % 3000) == 0)
+               BOARD_DEBUG_LED(0);
+}
+
+// -------------------------------------------------------------------------
+
+// This routine is called to respond to a hardware interrupt (IRQ).  It
+// should interrogate the hardware and return the IRQ vector number.
+int hal_IRQ_handler(void)
+{
+#ifdef HAL_EXTENDED_IRQ_HANDLER
+       cyg_uint32 index;
+
+       // Use platform specific IRQ handler, if defined
+       // Note: this macro should do a 'return' with the appropriate
+       // interrupt number if such an extended interrupt exists.  The
+       // assumption is that the line after the macro starts 'normal' processing.
+       HAL_EXTENDED_IRQ_HANDLER(index);
+#endif
+
+       return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+//    diag_printf("6hal_interrupt_mask(vector=%d) \n", vector);
+#ifdef HAL_EXTENDED_INTERRUPT_MASK
+       // Use platform specific handling, if defined
+       // Note: this macro should do a 'return' for "extended" values of 'vector'
+       // Normal vectors are handled by code subsequent to the macro call.
+       HAL_EXTENDED_INTERRUPT_MASK(vector);
+#endif
+}
+
+void hal_interrupt_unmask(int vector)
+{
+//    diag_printf("7hal_interrupt_unmask(vector=%d) \n", vector);
+
+#ifdef HAL_EXTENDED_INTERRUPT_UNMASK
+       // Use platform specific handling, if defined
+       // Note: this macro should do a 'return' for "extended" values of 'vector'
+       // Normal vectors are handled by code subsequent to the macro call.
+       HAL_EXTENDED_INTERRUPT_UNMASK(vector);
+#endif
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+
+//    diag_printf("8hal_interrupt_acknowledge(vector=%d) \n", vector);
+#ifdef HAL_EXTENDED_INTERRUPT_UNMASK
+       // Use platform specific handling, if defined
+       // Note: this macro should do a 'return' for "extended" values of 'vector'
+       // Normal vectors are handled by code subsequent to the macro call.
+       HAL_EXTENDED_INTERRUPT_ACKNOWLEDGE(vector);
+#endif
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_CONFIGURE
+       // Use platform specific handling, if defined
+       // Note: this macro should do a 'return' for "extended" values of 'vector'
+       // Normal vectors are handled by code subsequent to the macro call.
+       HAL_EXTENDED_INTERRUPT_CONFIGURE(vector, level, up);
+#endif
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_SET_LEVEL
+       // Use platform specific handling, if defined
+       // Note: this macro should do a 'return' for "extended" values of 'vector'
+       // Normal vectors are handled by code subsequent to the macro call.
+       HAL_EXTENDED_INTERRUPT_SET_LEVEL(vector, level);
+#endif
+
+       // Interrupt priorities are not configurable.
+}
+
+#ifdef MXCFLASH_SELECT_NAND
+unsigned int mxc_nfc_soc_setup(unsigned int pg_sz, unsigned int io_sz,
+                                                       unsigned int is_mlc, unsigned int num_of_chips)
+{
+       unsigned int tmp;
+
+       tmp = readl(NFC_FLASH_CONFIG2_REG);
+
+       /* Set the ST_CMD to be 0x70 for all NAND devices */
+       tmp &= ~(0xFF << 24);
+       tmp |= 0x70 << 24;
+       /* spare size = 64 byte */
+       tmp = (tmp & ~(0xff << 16)) | ((64 / 2) << 16);
+
+       /* Set the Page Size */
+       tmp &= ~0x3;
+       switch (pg_sz) {
+       case 512:
+               tmp |= 0x0;
+               break;
+
+       case 2048:
+               tmp |= 0x1;
+               break;
+
+       case 4096:
+       default:
+               tmp |= 0x2;
+               break;
+       }
+
+       /* set ECC_MODE to 4bit ECC */
+       tmp = (tmp & ~(3 << 6)) | (0 << 6);
+       /* set pages/block to 64 */
+       tmp = (tmp & ~(3 << 8)) | (1 << 8);
+
+       /* Set the number of addr phases & ECC mode to default value */
+       tmp &= ~(0x3 << 12);
+       tmp |= (0x2 << 12) | 0x038;
+       writel(tmp, NFC_FLASH_CONFIG2_REG);
+
+       tmp = readl(NFC_FLASH_CONFIG3_REG);
+
+       /* Set the No SDMA bit */
+       tmp |= 0x1 << 20;
+
+       /* Set the Status Busy Bit to 0x6 (default) */
+       tmp &= ~(0x7 << 8);
+       tmp |= 0x6 << 8;
+
+       /* Set the Flash Width */
+       if (io_sz == MXC_NAND_16_BIT) {
+               tmp &= ~(1 << 3);
+       } else {
+               tmp |= 1 << 3;
+       }
+
+       /* Set the Number of Nand Chips */
+       tmp &= ~(0x7 << 12);
+       tmp |= (num_of_chips - 1) << 12;
+       if (num_of_chips > 1)
+               tmp |= 0x1;
+
+#if 0
+       /* STATUS_SAMP_SEL */
+       tmp |= 1 << 19;
+#endif
+       writel(tmp, NFC_FLASH_CONFIG3_REG);
+
+       return MXC_NFC_V3;
+}
+#endif
+
+int mx53_iomux_setup(iomux_v3_cfg_t pad)
+{
+#if 0
+       diag_printf("pad=%016llx MUX_OFS=%03x PAD_OFS=%03x INP_SEL_OFS=%03x MUX_MODE=%02x PAD_CTL=%04x INP_SEL=%x PAD_CTL_VALID=%d\n",
+                               pad, IOMUX_MUX_CTRL_OFS(pad), IOMUX_PAD_CTRL_OFS(pad),
+                               IOMUX_INP_SEL_OFS(pad), IOMUX_MUX_MODE(pad), IOMUX_PAD_CTRL(pad),
+                               IOMUX_INP_SEL(pad), IOMUX_PAD_CTRL_VALID(pad));
+       if (readl(IOMUXC_BASE_ADDR + IOMUX_MUX_CTRL_OFS(pad)) !=
+               IOMUX_MUX_MODE(pad)) {
+               diag_printf("Changing IOMUX[%03x] from %02x to %02x\n",
+                                       IOMUX_MUX_CTRL_OFS(pad),
+                                       readl(IOMUXC_BASE_ADDR + IOMUX_MUX_CTRL_OFS(pad)),
+                                       IOMUX_MUX_MODE(pad));
+       }
+#endif
+       writel(IOMUX_MUX_MODE(pad),
+               IOMUXC_BASE_ADDR + IOMUX_MUX_CTRL_OFS(pad));
+
+       if (IOMUX_PAD_CTRL_VALID(pad)) {
+#if 0
+               if (readl(IOMUXC_BASE_ADDR + IOMUX_PAD_CTRL_OFS(pad)) !=
+                       IOMUX_PAD_CTRL(pad)) {
+                       diag_printf("Changing PAD_CTRL[%03x] from %04x to %04x\n",
+                                               IOMUX_PAD_CTRL_OFS(pad),
+                                               readl(IOMUXC_BASE_ADDR + IOMUX_PAD_CTRL_OFS(pad)),
+                                               IOMUX_PAD_CTRL(pad));
+               }
+#endif
+               writel(IOMUX_PAD_CTRL(pad), IOMUXC_BASE_ADDR + IOMUX_PAD_CTRL_OFS(pad));
+       }
+       if (IOMUX_INP_SEL_OFS(pad)) {
+#if 0
+               if (readl(IOMUXC_BASE_ADDR + IOMUX_INP_SEL_OFS(pad)) !=
+                       IOMUX_INP_SEL(pad)) {
+                       diag_printf("Changing INP_SEL[%03x] from %x to %x\n",
+                                               IOMUX_INP_SEL_OFS(pad),
+                                               readl(IOMUXC_BASE_ADDR + IOMUX_INP_SEL_OFS(pad)),
+                                               IOMUX_INP_SEL(pad));
+               }
+#endif
+               writel(IOMUX_INP_SEL(pad), IOMUXC_BASE_ADDR + IOMUX_INP_SEL_OFS(pad));
+       }
+       return 0;
+}
+
+int mx53_iomux_setup_pads(iomux_v3_cfg_t *pad, int num_pads)
+{
+       int ret = 0;
+       int i;
+
+       for (i = 0; i < num_pads; i++) {
+               ret = mx53_iomux_setup(pad[i]);
+               if (ret)
+                       break;
+       }
+       return ret;
+}
+
+static void show_sys_info(void)
+{
+       cyg_uint32 sbmr = readl(SRC_BASE_ADDR + 0x4);
+       cyg_uint32 srsr = readl(SRC_BASE_ADDR + 0x8);
+       const char *dlm = "";
+       int bt_mem = (SBMR_BOOT_CFG1(sbmr) & (0xf << 4)) >> 4;
+
+       if (find_correct_chip == CHIP_VERSION_UNKNOWN) {
+               diag_printf("Unrecognized chip version: 0x%08x!\n", read_system_rev());
+               diag_printf("Assuming chip version=0x%08x\n", system_rev);
+       } else if (find_correct_chip == CHIP_VERSION_NONE) {
+               diag_printf("Unrecognized chip: 0x%08x!!!\n", readl(IIM_BASE_ADDR + IIM_PREV_OFF));
+       }
+
+       diag_printf("Reset reason: ");
+
+       if (srsr & (1 << 0)) {
+               diag_printf("%sPOWER_ON", dlm);
+               dlm = " | ";
+       }
+       if (srsr & (1 << 2)) {
+               diag_printf("%sCSU", dlm);
+               dlm = " | ";
+       }
+       if (srsr & (1 << 3)) {
+               diag_printf("%sUSER", dlm);
+               dlm = " | ";
+       }
+       if (srsr & (1 << 4)) {
+               CYG_WORD16 wrsr;
+
+               HAL_READ_UINT16(WDOG_BASE_ADDR + 4, wrsr);
+               if (wrsr & (1 << 0)) {
+                       diag_printf("%sSOFT", dlm);
+                       dlm = " | ";
+               }
+               if (wrsr & (1 << 1)) {
+                       diag_printf("%sWATCHDOG", dlm);
+                       dlm = " | ";
+               }
+       }
+       if (srsr & (1 << 5)) {
+               diag_printf("%sJTAG_HW", dlm);
+               dlm = " | ";
+       }
+       if (srsr & (1 << 6)) {
+               diag_printf("%sJTAG_SW", dlm);
+               dlm = " | ";
+       }
+       if (srsr & (1 << 16)) {
+               diag_printf("%sWARM BOOT", dlm);
+               dlm = " | ";
+       }
+
+       if (*dlm == '\0') {
+               diag_printf("UNKNOWN: %08x\n", srsr);
+       } else {
+               diag_printf(" RESET\n");
+       }
+
+       diag_printf("BOOT_MODE:   ");
+       switch (SBMR_BMOD(sbmr)) {
+       case 0:
+               diag_printf("Internal Boot (from %s)\n",
+                                       SBMR_BT_FUSE_SEL(sbmr) ? "FUSES" : "GPIO");
+               break;
+
+       case 1:
+               diag_printf("FSL Test Mode\n");
+               break;
+
+       case 2:
+               diag_printf("Internal Boot (from %s)\n",
+                                       SBMR_BT_FUSE_SEL(sbmr) ? "FUSES" : "UART/USB");
+               break;
+
+       case 3:
+               diag_printf("Serial Boot Loader\n");
+       }
+       diag_printf("Boot Medium: ");
+       switch (SBMR_BMOD(sbmr)) {
+       case 0:
+       case 2:
+               if (bt_mem == 0) {
+                       diag_printf("WEIM %s\n", SBMR_BOOT_CFG1(sbmr) & (1 << 3) ?
+                                               "NOR" : "OneNAND");
+               } else if (bt_mem == 2) {
+                       diag_printf("HD %sATA\n", SBMR_BOOT_CFG1(sbmr) & (1 << 3) ?
+                                               "S" : "P");
+               } else if (bt_mem == 3) {
+                       diag_printf("Serial ROM %s\n", SBMR_BOOT_CFG1(sbmr) & (1 << 3) ?
+                                               "SPI" : "I2C");
+               } else if ((bt_mem & ~1) == 4) {
+                       diag_printf("SD %s speed\n", SBMR_BOOT_CFG1(sbmr) & (1 << 3) ?
+                                               "low" : "high");
+               } else if ((bt_mem & ~1) == 6) {
+                       diag_printf("MMC %s speed\n", SBMR_BOOT_CFG1(sbmr) & (1 << 3) ?
+                                               "low" : "high");
+               } else if (bt_mem & (1 << 3)) {
+                       diag_printf("NAND\n");
+               } else {
+                       diag_printf("UNKNOWN: 0x%x\n", bt_mem);
+               }
+               break;
+
+       case 1:
+               diag_printf("UNKNOWN\n");
+               break;
+
+       case 3:
+               diag_printf("UART/USB\n");
+       }
+       diag_printf("Boot Clock:  %d MHz\n",
+                               (SBMR_BOOT_CFG1(sbmr) & (1 << 1)) ? 400 : 800);
+       diag_printf("OSC Freq:    %s\n",
+                               (SBMR_BOOT_CFG2(sbmr) & (1 << 3)) ? " 24 MHz" : "auto");
+       diag_printf("PLL2 Freq:   %d MHz\n",
+                               (SBMR_BOOT_CFG2(sbmr) & (1 << 4)) ? 333 : 400);
+       diag_printf("Secure Boot: %s\n",
+                               (SBMR_BOOT_CFG2(sbmr) & (2 << 0)) ? "On" : "Off");
+}
+
+RedBoot_init(show_sys_info, RedBoot_INIT_LAST);
index 5fc75a0fb64ec07b7bab089b9458999d69c41497..80308cbdd3396466d60f1a2b3781dc43cf54bdc8 100644 (file)
@@ -456,7 +456,7 @@ _vprintf(void (*putc)(char c, void *param), void *param, const char *fmt, va_lis
                                                length = sizeof(int) * 8;
                                }
                                for (i = 0;  i < length-1;  i++) {
                                                length = sizeof(int) * 8;
                                }
                                for (i = 0;  i < length-1;  i++) {
-                                       buf[i] = ((val & ((long long)1<<i)) ? '1' : '.');
+                                       buf[i] = ((val & (1LL << i)) ? '1' : '.');
                                }
                                cp = buf;
                                break;
                                }
                                cp = buf;
                                break;
@@ -616,25 +616,20 @@ diag_vprintf(const char *fmt, va_list ap)
 }
 
 void
 }
 
 void
-diag_vdump_buf_with_offset(__printf_fun *pf,
-                                                  cyg_uint8    *p,
-                                                  CYG_ADDRWORD  s,
-                                                  cyg_uint8    *base)
+diag_vdump_buf_with_offset(__printf_fun *pf, void *_p, CYG_ADDRWORD s,
+                                                  void *base)
 {
        int i, c;
 {
        int i, c;
+       cyg_uint8 *p = (cyg_uint8 *)_p;
 
 
-       if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) {
-               s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p;
+       if (s > (CYG_ADDRWORD)p) {
+               s = s - (CYG_ADDRWORD)p;
        }
        while ((int)s > 0) {
        }
        while ((int)s > 0) {
-               if (base) {
-                       pf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base);
-               } else {
-                       pf("%08X: ", p);
-               }
+               pf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base);
                for (i = 0;  i < 16;  i++) {
                        if (i < (int)s) {
                for (i = 0;  i < 16;  i++) {
                        if (i < (int)s) {
-                               pf("%02X ", p[i] & 0xFF);
+                               pf("%02X ", p[i]);
                        } else {
                                pf("   ");
                        }
                        } else {
                                pf("   ");
                        }
@@ -644,7 +639,7 @@ diag_vdump_buf_with_offset(__printf_fun *pf,
                pf(" |");
                for (i = 0;  i < 16;  i++) {
                        if (i < (int)s) {
                pf(" |");
                for (i = 0;  i < 16;  i++) {
                        if (i < (int)s) {
-                               c = p[i] & 0xFF;
+                               c = p[i];
                                if ((c < 0x20) || (c >= 0x7F)) c = '.';
                        } else {
                                c = ' ';
                                if ((c < 0x20) || (c >= 0x7F)) c = '.';
                        } else {
                                c = ' ';
@@ -658,9 +653,7 @@ diag_vdump_buf_with_offset(__printf_fun *pf,
 }
 
 void
 }
 
 void
-diag_dump_buf_with_offset(cyg_uint8            *p,
-                                                 CYG_ADDRWORD   s,
-                                                 cyg_uint8             *base)
+diag_dump_buf_with_offset(void *p, CYG_ADDRWORD s, void *base)
 {
        diag_vdump_buf_with_offset(diag_printf, p, s, base);
 }
 {
        diag_vdump_buf_with_offset(diag_printf, p, s, base);
 }
@@ -668,25 +661,21 @@ diag_dump_buf_with_offset(cyg_uint8               *p,
 void
 diag_dump_buf(void *p, CYG_ADDRWORD s)
 {
 void
 diag_dump_buf(void *p, CYG_ADDRWORD s)
 {
-   diag_dump_buf_with_offset((cyg_uint8 *)p, s, 0);
+       diag_dump_buf_with_offset(p, s, 0);
 }
 
 void
 }
 
 void
-diag_dump_buf_with_offset_32bit(cyg_uint32   *p,
-                                                               CYG_ADDRWORD  s,
-                                                               cyg_uint32   *base)
+diag_dump_buf_with_offset_32bit(void *_p, CYG_ADDRWORD s,
+                               void *base)
 {
        int i;
 {
        int i;
+       cyg_uint32 *p = (cyg_uint32 *)_p;
 
        if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) {
                s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p;
        }
        while ((int)s > 0) {
 
        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);
-               }
+               diag_printf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base);
                for (i = 0;  i < 4;  i++) {
                        if (i < (int)s / 4) {
                                diag_printf("%08X ", p[i]);
                for (i = 0;  i < 4;  i++) {
                        if (i < (int)s / 4) {
                                diag_printf("%08X ", p[i]);
@@ -703,24 +692,21 @@ diag_dump_buf_with_offset_32bit(cyg_uint32   *p,
 externC void
 diag_dump_buf_32bit(void *p, CYG_ADDRWORD s)
 {
 externC void
 diag_dump_buf_32bit(void *p, CYG_ADDRWORD s)
 {
-   diag_dump_buf_with_offset_32bit((cyg_uint32 *)p, s, 0);
+       diag_dump_buf_with_offset_32bit(p, s, 0);
 }
 
 void
 }
 
 void
-diag_dump_buf_with_offset_16bit(cyg_uint16   *p,
-                                                               CYG_ADDRWORD  s,
-                                                               cyg_uint16   *base)
+diag_dump_buf_with_offset_16bit(void *_p, CYG_ADDRWORD s,
+                               void *base)
 {
        int i;
 {
        int i;
+       cyg_uint16 * p = (cyg_uint16 *)_p;
+
        if ((CYG_ADDRWORD)s > (CYG_ADDRWORD)p) {
                s = (CYG_ADDRWORD)s - (CYG_ADDRWORD)p;
        }
        while ((int)s > 0) {
        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);
-               }
+               diag_printf("%08X: ", (CYG_ADDRWORD)p - (CYG_ADDRWORD)base);
                for (i = 0;  i < 8;  i++) {
                        if (i < (int)s / 2) {
                                diag_printf("%04X ", p[i]);
                for (i = 0;  i < 8;  i++) {
                        if (i < (int)s / 2) {
                                diag_printf("%04X ", p[i]);
@@ -738,7 +724,7 @@ diag_dump_buf_with_offset_16bit(cyg_uint16   *p,
 externC void
 diag_dump_buf_16bit(void *p, CYG_ADDRWORD s)
 {
 externC void
 diag_dump_buf_16bit(void *p, CYG_ADDRWORD s)
 {
-   diag_dump_buf_with_offset_16bit((cyg_uint16 *)p, s, 0);
+       diag_dump_buf_with_offset_16bit(p, s, 0);
 }
 
 /*-----------------------------------------------------------------------*/
 }
 
 /*-----------------------------------------------------------------------*/
index 72012511e1c7e1e0cc0075215c0c0c4ff3248c8a..456c558d50be5a655060dea865e703f24b0dd750 100644 (file)
@@ -448,7 +448,7 @@ net_test(cyg_addrword_t p)
     if (cyg_net_get_ipv6_advrouter(&ipv6router)) {
       ping6_test(&ipv6router);
     } else {
     if (cyg_net_get_ipv6_advrouter(&ipv6router)) {
       ping6_test(&ipv6router);
     } else {
-      CYG_TEST_FAIL("No router advertisement recieved");
+      CYG_TEST_FAIL("No router advertisement received");
     }
 #endif
     TNR_PRINT_ACTIVITY();
     }
 #endif
     TNR_PRINT_ACTIVITY();
index 417c3cc5fa1e200f5001ab4719c168d65c2f1514..50eb68826e17ed1ba55735939f7b9e45c5ad75aa 100644 (file)
@@ -87,7 +87,7 @@ tftp_test(struct bootp *bp)
 #ifdef CYGPKG_NET_INET6
     // Wait for router solicit process to happen.
     if (!cyg_net_get_ipv6_advrouter(&ipv6router)) {
 #ifdef CYGPKG_NET_INET6
     // Wait for router solicit process to happen.
     if (!cyg_net_get_ipv6_advrouter(&ipv6router)) {
-      diag_printf("No router advertisement recieved\n");
+      diag_printf("No router advertisement received\n");
       cyg_test_exit();
     }
 
       cyg_test_exit();
     }
 
index 6c6fca1aa31520df6f15b5c8314d8c689c843aa5..3dee574bba21eaf5a23a2fd12f65317f8dba7f81 100644 (file)
@@ -44,9 +44,9 @@
 // Author(s):    gthomas
 // Contributors: gthomas
 // Date:         2002-08-06
 // Author(s):    gthomas
 // Contributors: gthomas
 // Date:         2002-08-06
-// Purpose:      
-// Description:  
-//              
+// Purpose:
+// Description:
+//
 // This code is part of RedBoot (tm).
 //
 //####DESCRIPTIONEND####
 // This code is part of RedBoot (tm).
 //
 //####DESCRIPTIONEND####
 
 #include <redboot.h>
 
 
 #include <redboot.h>
 
-RedBoot_cmd("dump", 
-            "Display (hex dump) a range of memory", 
-            "-b <location> [-l <length>] [-s] [-1|-2|-4]",
-            do_dump 
-    );
-RedBoot_cmd("x", 
-            "Display (hex dump) a range of memory", 
-            "-b <location> [-l <length>] [-s] [-1|-2|-4]",
-            do_x
-    );
+RedBoot_cmd("dump",
+                       "Display (hex dump) a range of memory",
+                       "-b <location> [-l <length>] [-s] [-1|-2|-4]",
+                       do_dump
+       );
+RedBoot_cmd("x",
+                       "Display (hex dump) a range of memory",
+                       "-b <location> [-l <length>] [-s] [-1|-2|-4]",
+                       do_x
+       );
 
 void
 do_dump(int argc, char *argv[])
 {
 
 void
 do_dump(int argc, char *argv[])
 {
-    struct option_info opts[6];
-    unsigned long base, len;
-    bool base_set, len_set;
-    static unsigned long _base, _len;
-    static char _size = 1;
-    bool srec_dump, set_32bit, set_16bit, set_8bit;
-    int i, n, off, cksum;
-    cyg_uint8 ch;
+       struct option_info opts[6];
+       unsigned long base, len;
+       bool base_set, len_set;
+       static unsigned long _base, _len;
+       static char _size = 1;
+       bool srec_dump, set_32bit, set_16bit, set_8bit;
+       int i, n, off, cksum;
+       cyg_uint8 ch;
 
 
-    init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM, 
-              (void *)&base, (bool *)&base_set, "base address");
-    init_opts(&opts[1], 'l', true, OPTION_ARG_TYPE_NUM, 
-              (void *)&len, (bool *)&len_set, "length");
-    init_opts(&opts[2], 's', false, OPTION_ARG_TYPE_FLG, 
-              (void *)&srec_dump, 0, "dump data using Morotola S-records");
-    init_opts(&opts[3], '4', false, OPTION_ARG_TYPE_FLG,
-              (void *)&set_32bit, (bool *)0, "dump 32 bit units");
-    init_opts(&opts[4], '2', false, OPTION_ARG_TYPE_FLG,
-              (void *)&set_16bit, (bool *)0, "dump 16 bit units");
-    init_opts(&opts[5], '1', false, OPTION_ARG_TYPE_FLG,
-              (void *)&set_8bit, (bool *)0, "dump 8 bit units");
-    if (!scan_opts(argc, argv, 1, opts, 6, 0, 0, "")) {
-        return;
-    }
-    if (!base_set) {
-        if (_base == 0) {
-            diag_printf("Dump what [location]?\n");
-            return;
-        }
-        base = _base;
-        if (!len_set) {
-            len = _len;
-            len_set = true;
-        }
-    }
+       init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM,
+                       &base, &base_set, "base address");
+       init_opts(&opts[1], 'l', true, OPTION_ARG_TYPE_NUM,
+                       &len, &len_set, "length");
+       init_opts(&opts[2], 's', false, OPTION_ARG_TYPE_FLG,
+                       &srec_dump, NULL, "dump data using Morotola S-records");
+       init_opts(&opts[3], '4', false, OPTION_ARG_TYPE_FLG,
+                       &set_32bit, NULL, "dump 32 bit units");
+       init_opts(&opts[4], '2', false, OPTION_ARG_TYPE_FLG,
+                       &set_16bit, NULL, "dump 16 bit units");
+       init_opts(&opts[5], '1', false, OPTION_ARG_TYPE_FLG,
+                       &set_8bit, NULL, "dump 8 bit units");
+       if (!scan_opts(argc, argv, 1, opts, 6, 0, 0, "")) {
+               return;
+       }
+       if (!base_set) {
+               if (_base == 0) {
+                       diag_printf("Dump what [location]?\n");
+                       return;
+               }
+               base = _base;
+               if (!len_set) {
+                       len = _len;
+                       len_set = true;
+               }
+       }
 
 
-    if (set_32bit) {
-      _size = 4;
-    } else if (set_16bit) {
-      _size = 2;
-    } else if (set_8bit) {
-      _size = 1;
-    }
+       if (set_32bit) {
+               _size = 4;
+       } else if (set_16bit) {
+               _size = 2;
+       } else if (set_8bit) {
+               _size = 1;
+       }
 
 
-    if (!len_set) {
-        len = 32;
-    }
-    if (srec_dump) {
-        off = 0;
-        while (off < len) {
-            n = (len > 16) ? 16 : len;
-            cksum = n+5;
-            diag_printf("S3%02X%08lX", n+5, off+base);
-            for (i = 0;  i < 4;  i++) {
-                cksum += (((base+off)>>(i*8)) & 0xFF);
-            }
-            for (i = 0;  i < n;  i++) {
-                ch = *(cyg_uint8 *)(base+off+i);
-                diag_printf("%02X", ch);
-                cksum += ch;
-            }
-            diag_printf("%02X\n", ~cksum & 0xFF);
-            off += n;
-        }
-    } else {
-        switch( _size ) {
-        case 1:
-            diag_dump_buf((void *)base, len);
-            break;
-        case 2:
-            diag_dump_buf_16bit((void *)base, len);
-            break;
-        case 4:
-            diag_dump_buf_32bit((void *)base, len);
-            break;
-        }
-    }
-    _base = base + len;
-    _len = len;
+       if (!len_set) {
+               len = 32;
+       }
+       if (srec_dump) {
+               off = 0;
+               while (off < len) {
+                       n = (len > 16) ? 16 : len;
+                       cksum = n + 5;
+                       diag_printf("S3%02X%08lX", n + 5, off + base);
+                       for (i = 0;  i < 4;  i++) {
+                               cksum += (((base + off) >> (i * 8)) & 0xFF);
+                       }
+                       for (i = 0;  i < n;  i++) {
+                               ch = *(cyg_uint8 *)(base + off + i);
+                               diag_printf("%02X", ch);
+                               cksum += ch;
+                       }
+                       diag_printf("%02X\n", ~cksum & 0xFF);
+                       off += n;
+               }
+       } else {
+               switch( _size ) {
+               case 1:
+                       diag_dump_buf((void *)base, len);
+                       break;
+               case 2:
+                       diag_dump_buf_16bit((void *)base, len);
+                       break;
+               case 4:
+                       diag_dump_buf_32bit((void *)base, len);
+                       break;
+               }
+       }
+       _base = base + len;
+       _len = len;
 }
 
 // Simple alias for the dump command
 void
 do_x(int argc, char *argv[])
 {
 }
 
 // Simple alias for the dump command
 void
 do_x(int argc, char *argv[])
 {
-    do_dump(argc, argv);
+       do_dump(argc, argv);
 }
 }