]> git.karo-electronics.de Git - karo-tx-redboot.git/commitdiff
RedBoot Release TX53-v3 2012-02-08
authorlothar <lothar>
Wed, 8 Feb 2012 12:40:09 +0000 (12:40 +0000)
committerlothar <lothar>
Wed, 8 Feb 2012 12:40:09 +0000 (12:40 +0000)
70 files changed:
build.sh
config/TX25-40x1.ecc
config/TX27-40x0.ecc
config/TX27-40x1.ecc
config/TX51-60x0.ecc
config/TX51-60x1.ecc
config/TX51-60x2.ecc
config/TX51-80x0.ecc
config/TX51-80x1.ecc
config/TX51-80x2.ecc
config/TX53-1022.ecc [deleted file]
config/TX53-1x30.ecc [deleted file]
config/TX53-1x31.ecc [deleted file]
config/TX53-8020.ecc [deleted file]
config/TX53-8x30.ecc [deleted file]
config/TX53-8x31.ecc [deleted file]
config/TX53-xx30.ecc [moved from config/TX53-1020.ecc with 99% similarity]
config/TX53-xx31.ecc [moved from config/TX53-8021.ecc with 99% similarity]
packages/error/v2_0/cdl/error.cdl
packages/hal/arm/arch/v2_0/cdl/hal_arm.cdl
packages/hal/arm/arch/v2_0/src/arm.ld
packages/hal/arm/arch/v2_0/src/arm_eabi.c [new file with mode: 0644]
packages/hal/arm/mx25/karo/v1_0/cdl/hal_arm_tx25.cdl
packages/hal/arm/mx25/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx25/karo/v1_0/include/plf_io.h
packages/hal/arm/mx25/karo/v1_0/src/redboot_cmds.c
packages/hal/arm/mx25/karo/v1_0/src/tx25_diag.c
packages/hal/arm/mx25/karo/v1_0/src/tx25_misc.c
packages/hal/arm/mx25/karo/v1_0/src/tx25_splash.c
packages/hal/arm/mx27/karo/v1_0/cdl/hal_arm_tx27.cdl
packages/hal/arm/mx27/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx27/karo/v1_0/include/pkgconf/mlt_arm_tx27_romram.ldi
packages/hal/arm/mx27/karo/v1_0/include/plf_io.h
packages/hal/arm/mx27/karo/v1_0/src/redboot_cmds.c
packages/hal/arm/mx27/karo/v1_0/src/tx27_diag.c
packages/hal/arm/mx27/karo/v1_0/src/tx27_misc.c
packages/hal/arm/mx37/karo/v1_0/cdl/hal_arm_tx37.cdl
packages/hal/arm/mx37/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx37/karo/v1_0/include/pkgconf/mlt_arm_tx37_romram.ldi
packages/hal/arm/mx37/karo/v1_0/include/plf_io.h
packages/hal/arm/mx37/karo/v1_0/src/redboot_cmds.c
packages/hal/arm/mx37/karo/v1_0/src/tx37_diag.c
packages/hal/arm/mx37/karo/v1_0/src/tx37_misc.c
packages/hal/arm/mx51/karo/v1_0/cdl/hal_arm_tx51.cdl
packages/hal/arm/mx51/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx51/karo/v1_0/include/plf_io.h
packages/hal/arm/mx51/karo/v1_0/src/redboot_cmds.c
packages/hal/arm/mx51/karo/v1_0/src/tx51_misc.c
packages/hal/arm/mx53/karo/v1_0/cdl/hal_arm_tx53.cdl
packages/hal/arm/mx53/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx53/karo/v1_0/src/tx53_misc.c
packages/hal/arm/mx53/var/v2_0/include/hal_soc.h
packages/hal/arm/mx53/var/v2_0/src/cmds.c
packages/redboot/v2_0/src/net/bootp.c
packages/redboot/v2_0/src/wince.c
tools/src/libcdl/build.cxx
tools/src/libcdl/cdl.hxx
tools/src/libcdl/cdlcore.hxx
tools/src/libcdl/cdlmisc.cxx
tools/src/libcdl/component.cxx
tools/src/libcdl/config.cxx
tools/src/libcdl/database.cxx
tools/src/libcdl/dialog.cxx
tools/src/libcdl/interface.cxx
tools/src/libcdl/interp.cxx
tools/src/libcdl/option.cxx
tools/src/libcdl/package.cxx
tools/src/libcdl/parse.cxx
tools/src/libcdl/value.cxx
tools/src/libcdl/wizard.cxx

index 2fec628ffe8213b06af7034aa48b47612bb5727d..eca1640393ba18c56fe33e9c06aaf3569834b148 100644 (file)
--- a/build.sh
+++ b/build.sh
@@ -12,9 +12,11 @@ make_opts=
 pattern="*"
 
 error() {
+    rc=$?
     if [ -n "${target}" ];then
        echo "${target} build aborted"
     fi
+    return $rc
 }
 
 build_host_tools() {
index bce8e4e9f189aab026e5979d593a8c8bf02e3ae7..8a95c3864fb0ec75514ec754537dfee1d5d6f215 100644 (file)
@@ -75,9 +75,11 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value arm-926ejs-linux-gnu
+    # user_value arm-926ejs-linux-gnueabi
     # value_source default
-    # Default value: arm-926ejs-linux-gnu
+    # Default value:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-926ejs-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,9 +90,13 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 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"
+    # user_value "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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"
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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
@@ -2797,6 +2803,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2819,6 +2844,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4183,7 +4212,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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
@@ -4203,7 +4232,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10284,9 +10313,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index d2724584e3a15a3c03b4a8f2077564220ac7a9a8..acbbb8c9a3dbce0b70ddb12acedb4462e2ef71b1 100644 (file)
@@ -75,9 +75,11 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value arm-926ejs-linux-gnu
+    # user_value arm-926ejs-linux-gnueabi
     # value_source default
-    # Default value: arm-926ejs-linux-gnu
+    # Default value:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-926ejs-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +90,13 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 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"
-    # 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 inferred
-    # 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"
+    # user_value "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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
@@ -2800,6 +2804,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2845,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4193,7 +4220,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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
@@ -4213,7 +4240,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10291,9 +10318,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index c61ee3d21fe5b85c02fe9d67ce9300197ff3db3e..6484fbbd21f7a53a3df8f277d2655fc227f7860e 100644 (file)
@@ -75,9 +75,11 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value arm-926ejs-linux-gnu
+    # user_value arm-926ejs-linux-gnueabi
     # value_source default
-    # Default value: arm-926ejs-linux-gnu
+    # Default value:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-926ejs-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +90,13 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 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"
-    # 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 inferred
-    # 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"
+    # user_value "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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
@@ -2800,6 +2804,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2845,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4192,7 +4219,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -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
@@ -4212,7 +4239,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10292,9 +10319,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index fc6733b9c71b5925dd968ebe02f5db85ef34c16d..9da29b6a7a8c0c1eb1c5c793bcc65dc61efff9d5 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 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"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4221,7 +4250,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -4241,7 +4270,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10323,9 +10352,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index 99fe584d4afd13705165dcaf5e1b5794812d05c6..d9f3568156acf97db5dd46495a65f71171ad3d86 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 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"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4219,7 +4248,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -4239,7 +4268,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10321,9 +10350,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index 76554cbdbb40c7fec9d81f33084637d183cc9e0d..684904aecb1dfb21eb2a982e595364038275eda4 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 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"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4220,7 +4249,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -4240,7 +4269,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10322,9 +10351,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index c888afff82526d4331c0ac23f60fb31b97bd6ff0..665565bb1c90404d6abf928c485c5f587572c6f5 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 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"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4222,7 +4251,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -4242,7 +4271,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10324,9 +10353,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index a458c85f92a462f9d71493922855288ce3f3eca8..c6f0439a33f87fdcefdf57a5903c9c7f9f412968 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 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"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4220,7 +4249,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -4240,7 +4269,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10322,9 +10351,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index 5f754992805adbb6dd6540affc4ba48d80d411f7..97bd1deee5f6d3307f0c6a538c5b7ef19cb5909f 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 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"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4221,7 +4250,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -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
@@ -4241,7 +4270,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10323,9 +10352,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
diff --git a/config/TX53-1022.ecc b/config/TX53-1022.ecc
deleted file mode 100644 (file)
index 0f908f5..0000000
+++ /dev/null
@@ -1,10427 +0,0 @@
-# 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
deleted file mode 100644 (file)
index f32ca83..0000000
+++ /dev/null
@@ -1,10427 +0,0 @@
-# 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
deleted file mode 100644 (file)
index 0d13a54..0000000
+++ /dev/null
@@ -1,10426 +0,0 @@
-# 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
deleted file mode 100644 (file)
index caa80f5..0000000
+++ /dev/null
@@ -1,10426 +0,0 @@
-# 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-8x30.ecc b/config/TX53-8x30.ecc
deleted file mode 100644 (file)
index 9cc3561..0000000
+++ /dev/null
@@ -1,10426 +0,0 @@
-# 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
deleted file mode 100644 (file)
index 7b83ce5..0000000
+++ /dev/null
@@ -1,10425 +0,0 @@
-# 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
-};
-
-# <
-# <
-
similarity index 99%
rename from config/TX53-1020.ecc
rename to config/TX53-xx30.ecc
index 5bfbb5951d575595aa2e6fe58ee1bc7b99c012d1..610d8bb7fe58a43c29e83a32d875f7869dd353b8 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 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"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -msoft-float -march=armv7-a -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -march=armv7-a -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
@@ -2799,6 +2805,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2821,6 +2846,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -3423,25 +3452,6 @@ cdl_component CYGPKG_HAL_ARM_TX53_OPTIONS {
 };
 
 # >
-# 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.
 #
@@ -3459,9 +3469,8 @@ cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
 #
 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
+    user_value 800
+    # value_source user
     # Default value: 1000
     # Legal values:  800 1000 
 };
@@ -3523,57 +3532,6 @@ cdl_option CYGHWR_MX53_LCD_LOGO {
     # 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
 #
@@ -4258,7 +4216,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -march=armv7-a -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
@@ -4278,7 +4236,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10360,9 +10318,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
similarity index 99%
rename from config/TX53-8021.ecc
rename to config/TX53-xx31.ecc
index 22cece0f70233ab96bb6a0d72f4a2227d8ec1aee..315c0f8326efc2245672188f450e89f5bd24ef86 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 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"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -msoft-float -march=armv7-a -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:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -march=armv7-a -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
@@ -2799,6 +2805,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
@@ -2821,6 +2846,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
@@ -3423,25 +3452,6 @@ cdl_component CYGPKG_HAL_ARM_TX53_OPTIONS {
 };
 
 # >
-# 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.
 #
@@ -3521,58 +3531,6 @@ cdl_option CYGHWR_MX53_LCD_LOGO {
     # 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
 #
@@ -4257,7 +4215,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -march=armv7-a -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
@@ -4277,7 +4235,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # 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"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
@@ -10359,9 +10317,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
index a706b65991f10972a251d52bc254d082e25f7c21..e8836b6566f30237bc485d5ac3dd5093c958bf17 100644 (file)
@@ -144,7 +144,7 @@ cdl_package CYGPKG_ERROR {
             display "Suppressed compiler flags"
             flavor  data
             no_define
-            default_value { "" }
+            default_value { "-Wno-pointer-sign" }
             description   "
                 This option modifies the set of compiler flags for
                 building the error package. These flags are removed from
index acfb9e34c43bb2a33b691ba0d0f724cf1f280605..99ffe6ad7c16009b02dec83adbeceb20044c5f5e 100644 (file)
@@ -105,6 +105,15 @@ cdl_package CYGPKG_HAL_ARM {
             Enable use of the Thumb instruction set."
     }
 
+    cdl_option CYGBLD_ARM_EABI {
+        display          "Enable EABI"
+        default_value    1
+        description      "
+            Use EABI tool-chain to compile eCos."
+
+           compile arm_eabi.c
+    }
+
     # Note that when building a ROM monitor we include Thumb
     # interworking in order to support Thumb applications running
     # under a ARM ROM monitor.
index 38f9d636f46d9e288e6ead8ee2ea52362fd0e987..649828a2a0ed08f0b822badc912d67cb8bbbacbe 100644 (file)
@@ -38,6 +38,7 @@
 //=============================================================================
 
 #include <pkgconf/system.h>
+#include <pkgconf/hal_arm.h>
 
 STARTUP(vectors.o)
 ENTRY(reset_vector)
@@ -160,6 +161,14 @@ OUTPUT_FORMAT(elf32-bigarm)
        . = . + 8;                                     \
     } > _region_ = 0
 
+#ifdef CYGBLD_ARM_EABI
+#define __CTORS                init_array
+#define __DTORS                fini_array
+#else
+#define __CTORS                ctors
+#define __DTORS                dtors
+#endif
+
 #define SECTION_RELOCS(_region_, _vma_, _lma_)                              \
   .rel.text      :                                                          \
     {                                                                       \
@@ -199,10 +208,10 @@ OUTPUT_FORMAT(elf32-bigarm)
     } > _region_                                                            \
   .rel.got       :   { *(.rel.got)    } > _region_                          \
   .rela.got      :   { *(.rela.got)   } > _region_                          \
-  .rel.ctors     :   { *(.rel.ctors)  } > _region_                          \
-  .rela.ctors    :   { *(.rela.ctors) } > _region_                          \
-  .rel.dtors     :   { *(.rel.dtors)  } > _region_                          \
-  .rela.dtors    :   { *(.rela.dtors) } > _region_                          \
+  .rel.__CTORS   :   { *(.rel.__CTORS) } > _region_                         \
+  .rela.__CTORS  :   { *(.rela.__CTORS) } > _region_                        \
+  .rel.__DTORS   :   { *(.rel.__DTORS) } > _region_                         \
+  .rela.__DTORS  :   { *(.rela.__DTORS) } > _region_                        \
   .rel.init      :   { *(.rel.init)   } > _region_                          \
   .rela.init     :   { *(.rela.init)  } > _region_                          \
   .rel.fini      :   { *(.rel.fini)   } > _region_                          \
@@ -238,8 +247,8 @@ OUTPUT_FORMAT(elf32-bigarm)
     . = ALIGN (4); \
     KEEP(*( SORT (.ecos.table.*))) ;            \
     . = ALIGN (4); \
-    __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \
-    __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \
+    __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.__CTORS*))) __CTOR_END__ = ABSOLUTE (.); \
+    __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.__DTORS*))) __DTOR_END__ = ABSOLUTE (.); \
     *(.dynamic) *(.sdata*) *(.gnu.linkonce.s.*) \
     . = ALIGN (4); *(.2ram.*) } \
     > _region_ \
diff --git a/packages/hal/arm/arch/v2_0/src/arm_eabi.c b/packages/hal/arm/arch/v2_0/src/arm_eabi.c
new file mode 100644 (file)
index 0000000..334ae33
--- /dev/null
@@ -0,0 +1,12 @@
+#include <unwind.h>
+#include <cyg/infra/diag.h>
+
+_Unwind_Reason_Code __aeabi_unwind_cpp_pr0(_Unwind_State state,
+                                           _Unwind_Control_Block *ucbp,
+                                           _Unwind_Context *context)
+{
+       diag_printf("EXCEPTION CAUGHT\n");
+       while (1);
+       return _URC_FAILURE;
+}
+
index 547139529f38c62c910293390936c8560d10171b..1d0ab466ba52469af73bae7021ef6d625f987d20 100644 (file)
@@ -63,6 +63,7 @@ cdl_package CYGPKG_HAL_ARM_TX25KARO {
         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_tx25.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLF_DEFS_H <cyg/hal/karo_tx25.h>"
        puts $::cdl_header "#define HAL_PLATFORM_CPU    \"Freescale i.MX25 based\""
         puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Ka-Ro TX25 processor module\""
         puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  2177"
@@ -155,7 +156,7 @@ cdl_package CYGPKG_HAL_ARM_TX25KARO {
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-926ejs-linux-gnu" }
+            default_value { "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -166,7 +167,10 @@ cdl_package CYGPKG_HAL_ARM_TX25KARO {
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-            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" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") . \
+           "-mcpu=arm9 -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
index b43469adc43b41b155b040073906ef537c77f5bb..b98ee9bf33026c8f67344d5fd96073675810e6a0 100644 (file)
@@ -47,7 +47,7 @@
 #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 <cyg/hal/karo_tx25.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
index 17befe61ed841339ffddb92c371e223b07de1fb3..74e6466cff9ead085c9c9ed7479404abe8c5c2ec 100644 (file)
@@ -42,7 +42,7 @@
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
-#include <cyg/hal/karo_tx25.h>
+#include CYGBLD_HAL_PLF_DEFS_H
 #include <cyg/hal/hal_soc.h>
 #include <redboot.h>
 
index 457f331c974c61d8a2b2e3de6512b1871dd8d859..f3e42724edf38aa22699de32d6d5625e8f2456d5 100644 (file)
@@ -42,7 +42,7 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx25.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
index 3c2be995dc7eecd4e5e6688436ed4c6c0da24a77..7e6df4da5701b9bf3e55acf580acfb539440cd21 100644 (file)
@@ -53,7 +53,7 @@
 #include <cyg/hal/drv_api.h>           // driver API
 #include <cyg/hal/hal_misc.h>          // Helper functions
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
-#include <cyg/hal/karo_tx25.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 extern void cyg_hal_plf_serial_init(void);
 
index 3c0b32c5b80fffd3885a49deb28b6c4928caf1dc..0b029d403f89167816c7dbee32593d9f4fef2fdb 100644 (file)
@@ -56,7 +56,7 @@
 #include <cyg/hal/hal_intr.h>          // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
-#include <cyg/hal/karo_tx25.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 #include <cyg/infra/diag.h>            // diag_printf
 
index 34d372fbb238c9535c6b8bf29d65862f93d0eb44..c320ad2c5f44342204d1299cc4c22451079c555e 100644 (file)
@@ -54,7 +54,7 @@
 #endif
 #include CYGBLD_HAL_PLATFORM_H
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx25.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #define LCDC_BASE                      0x53fbc000
 
@@ -168,7 +168,8 @@ typedef struct lcd_display_metrics {
        unsigned long left;
        unsigned long right;
        /* control signal polarities */
-       bool pixclk_pol;
+       bool pix_pol;
+       bool clk_pol;   
        bool hsync_pol;
        bool vsync_pol;
 } LCDDIM;
@@ -284,7 +285,8 @@ static bool bootsplash_setup(LCDDIM *ldim, unsigned long img_len)
 
        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_clk_polarity", &ldim->clk_pol, CONFIG_BOOL);
+       ok &= get_var("lcd_pix_polarity", &ldim->pix_pol, CONFIG_BOOL);
 
        ok &= get_var("lcd_panel_width", &ldim->width, CONFIG_INT);
        ok &= get_var("lcd_panel_height", &ldim->height, CONFIG_INT);
@@ -395,7 +397,8 @@ static bool bootsplash_display(LCDDIM *ldim)
        pcr |= PCR_TFT | PCR_COLOR | PCR_SCLK_SEL |
                (ldim->vsync_pol * PCR_FLMPOL) |
                (ldim->hsync_pol * PCR_LPPOL) |
-               (ldim->pixclk_pol * PCR_PIXPOL);
+               (ldim->pix_pol * PCR_PIXPOL) |
+               (ldim->clk_pol * PCR_CLKPOL);
 
        switch (ldim->bpp) {
        case 18:
@@ -678,6 +681,13 @@ RedBoot_config_option("Pixel clock period (in ps)",
                                        33333
        );
 
+RedBoot_config_option("Pixel polarity active low",
+                                       lcd_pix_polarity,
+                                       "bootsplash_enable", true,
+                                       CONFIG_BOOL,
+                                       false
+       );
+
 RedBoot_config_option("Pixel clock polarity active low",
                                        lcd_clk_polarity,
                                        "bootsplash_enable", true,
index 8e95415d7a12d620498425518bf0b420abd56b24..b028bfd8e67598935dc48278661063765ea90cdd 100644 (file)
@@ -63,6 +63,7 @@ cdl_package CYGPKG_HAL_ARM_TX27KARO {
         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_tx27.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLF_DEFS_H <cyg/hal/karo_tx27.h>"
        puts $::cdl_header "#define HAL_PLATFORM_CPU    \"Freescale i.MX27 based\""
         puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Ka-Ro TX27 processor module\""
         puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  1600"
@@ -155,7 +156,7 @@ cdl_package CYGPKG_HAL_ARM_TX27KARO {
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-926ejs-linux-gnu" }
+            default_value { "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -166,7 +167,10 @@ cdl_package CYGPKG_HAL_ARM_TX27KARO {
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-            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" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") . \
+           "-mcpu=arm9 -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
index f5ec325dff12f00b6038119742041f2842c6b212..6e55447f52824691c69cb83c572a9527dc02bf61 100644 (file)
@@ -47,7 +47,7 @@
 #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 <cyg/hal/karo_tx27.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
index 43bffd214bb9a6e8020d7ce6f95aa6cb9ca46d2b..46cb593400ce0c558bc8098f9bda20f928f1f592 100644 (file)
@@ -22,6 +22,8 @@ SECTIONS
     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)
index d118785764f2833e19aa1be28198594527789cc8..ad593f74500a8c58653d09de2915c267a2ef1a6b 100644 (file)
@@ -42,7 +42,7 @@
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
-#include <cyg/hal/karo_tx27.h>
+#include CYGBLD_HAL_PLF_DEFS_H
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                        \
index cbddd08b49d5957a042c0c1d8f2d10d74fc78a50..e3492f3b4f693b0716ebda338dde351848865d99 100644 (file)
@@ -42,7 +42,7 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx27.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
index d618db51d9c5b7f7159054a398aa033cea2c4436..1a27e7bf7fa9841d53a151596c12555e3a6ccf56 100644 (file)
@@ -53,7 +53,7 @@
 #include <cyg/hal/drv_api.h>           // driver API
 #include <cyg/hal/hal_misc.h>          // Helper functions
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
-#include <cyg/hal/karo_tx27.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 extern void cyg_hal_plf_serial_init(void);
 
index 0e7e480dcf491d387d8253414417c53160726595..71774856e86625c9c179c6ea5702c99cf4756687 100644 (file)
@@ -56,7 +56,7 @@
 #include <cyg/hal/hal_intr.h>          // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
-#include <cyg/hal/karo_tx27.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 #include <cyg/infra/diag.h>            // diag_printf
 
index 75da54b09dc7ca6b48652c40ede86fa83faa344e..4dba313961be73a8a77b65f9b8108add547bc9ed 100644 (file)
@@ -153,7 +153,7 @@ cdl_package CYGPKG_HAL_ARM_TX37KARO {
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-1136jfs-linux-gnu" }
+            default_value { "arm-1136jfs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -164,7 +164,10 @@ cdl_package CYGPKG_HAL_ARM_TX37KARO {
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-            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" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") . \
+           "-mcpu=arm9 -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
index 0b2b1c594caeb5b1932c4014064a33a81dfec7d4..b0514815eec91b7fa10d2bc1c05e1ab1d7379539 100644 (file)
@@ -47,7 +47,7 @@
 #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 <cyg/hal/karo_tx37.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
 #define PLATFORM_SETUP1 _platform_setup1
index 53d497acd6d5d9a94a1b777560b49cf47b56bf95..46cb593400ce0c558bc8098f9bda20f928f1f592 100644 (file)
@@ -4,7 +4,7 @@
 
 #include <cyg/infra/cyg_type.inc>
 #define __ASSEMBLER__
-#include <pkgconf/mlt_arm_tx37_romram.h>
+#include CYGHWR_MEMORY_LAYOUT_H
 
 MEMORY
 {
index acdacd98b442ccbc3b557c930956d7ab577d5b86..e8cbd4e6f3dcd10162302814dd71ba40e7e8c65b 100644 (file)
@@ -42,7 +42,7 @@
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
-#include <cyg/hal/karo_tx37.h>
+#include CYGBLD_HAL_PLF_DEFS_H
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                           \
index 76de6c83d44a80a463c5b2c5b1d8a151acc405f7..e0eb59cfe6147430f2e2b3205ecce36106ae569a 100644 (file)
@@ -42,7 +42,7 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx37.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
index cf9c506c3fda3bf8561a8d7e2934fbaa7daa655d..cc53e816010f4c79d3680bab627c950dacece65d 100644 (file)
@@ -53,7 +53,7 @@
 #include <cyg/hal/drv_api.h>            // driver API
 #include <cyg/hal/hal_misc.h>           // Helper functions
 #include <cyg/hal/hal_soc.h>            // Hardware definitions
-#include <cyg/hal/karo_tx37.h>          // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H          // Platform specifics
 
 extern void cyg_hal_plf_serial_init(void);
 
index 4e58735dd024de464da24536c063915713dcec7f..79c2d18112644d3418bc723550edb357a929d3ad 100644 (file)
@@ -55,7 +55,7 @@
 #include <cyg/hal/hal_intr.h>                  // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>                   // Hardware definitions
-#include <cyg/hal/karo_tx37.h>                 // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H                 // Platform specifics
 #include <cyg/infra/diag.h>                    // diag_printf
 
 // All the MM table layout is here:
index dfcdf6a2d04051fe9d13bfbaa5b949878a30648f..561289f543f2c8a95b9105cb2dc87ccb4aba08da 100644 (file)
@@ -156,7 +156,7 @@ cdl_package CYGPKG_HAL_ARM_TX51KARO {
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-926ejs-linux-gnu" }
+            default_value { "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -167,7 +167,10 @@ cdl_package CYGPKG_HAL_ARM_TX51KARO {
             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" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") . \
+           "-march=armv7-a -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
index 39b7b61be6d062e3e1b7bbe6953ffa5d046f5141..9c676e97d7000e6b988dc94387ee7593dc1e4e06 100644 (file)
@@ -47,7 +47,7 @@
 #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 <cyg/hal/karo_tx51.h>                 // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H                 // Platform specific hardware definitions
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #define CPU_CLK                                CYGNUM_HAL_ARM_TX51_CPU_CLK
index ba9ac9dd79f0a5c73940491d8019301bfedce906..0b164f65d82a513554b008baf63c6c5d8e1632b2 100644 (file)
@@ -42,7 +42,7 @@
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
-#include <cyg/hal/karo_tx51.h>
+#include CYGBLD_HAL_PLF_DEFS_H
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                        \
index 535ba599f6e0464a746cfecbf9f1474a22745174..0372649beec30ce1f29da2cff72a3f2731b543f6 100644 (file)
@@ -42,7 +42,7 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx51.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
index 3bd2987d08cd3c0dc7d04bed071196b09d8afde6..70d199f51e402ea7b7adacd78057cd0083d0da4c 100644 (file)
@@ -57,7 +57,7 @@
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
 #include <cyg/hal/mx51_iomux.h>
-#include <cyg/hal/karo_tx51.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 #include <cyg/infra/diag.h>                    // diag_printf
 
index c367c7aea1bb24f4a9e6c2634e6ce82f7438bc28..b96985b53ff7b6f4ef8d753907710564be106fc2 100644 (file)
@@ -156,7 +156,7 @@ cdl_package CYGPKG_HAL_ARM_TX53KARO {
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-926ejs-linux-gnu" }
+            default_value { "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -167,7 +167,10 @@ cdl_package CYGPKG_HAL_ARM_TX53KARO {
             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" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") . \
+           "-march=armv7-a -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
@@ -195,16 +198,6 @@ cdl_package CYGPKG_HAL_ARM_TX53KARO {
            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
@@ -275,38 +268,6 @@ cdl_package CYGPKG_HAL_ARM_TX53KARO {
         }
     }
 
-    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
index c5e42478688c77c8a23b9e4b0521578291874a22..00797d2e3c384849501d3e4b9fbaae73070d5dac 100644 (file)
 //####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 <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 SDRAM_CLK                      400
 
 #define DEBUG_LED_BIT                  20
 #define LED_GPIO_BASE                  GPIO2_BASE_ADDR
@@ -111,8 +105,6 @@ KARO_TX53_SETUP_START:
        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 */
@@ -146,11 +138,11 @@ init_aips_start:
        str     r9, [r10, #GPIO_GDIR]
 
        LED_INIT
-       LED_BLINK 1
+       LED_BLINK #1
 
 init_clock_start:
        init_clock
-       LED_BLINK 2
+       LED_BLINK #2
 
 Normal_Boot_Continue:
 /*
@@ -165,7 +157,7 @@ STACK_Setup:
 
        @ Create MMU tables
        bl      hal_mmu_init
-       LED_BLINK 3
+       LED_BLINK #3
 
        /* Workaround for arm erratum #709718 */
        @ Setup PRRR so device is always mapped to non-shared
@@ -174,7 +166,7 @@ STACK_Setup:
        mcr     MMU_CP, 0, r1, c10, c2, 0 // Write Primary Region Remap Register
 
        @ Enable MMU
-       ldr     r2, =10f
+       adr     r2, 10f
        mrc     MMU_CP, 0, r1, MMU_Control, c0
        orr     r1, r1, #7                      @ enable MMU bit
        orr     r1, r1, #0x800                  @ enable z bit
@@ -187,9 +179,9 @@ STACK_Setup:
        mcr     MMU_CP, 0, r1, MMU_Control, c0, 1
 
        mov     pc, r2                          @ Change address spaces
+       .ltorg
        .align  5
 10:
-       LED_BLINK 4
        .endm   @ _platform_setup1
 
        /* AIPS setup - Only setup MPROTx registers. The PACR default values are good.*/
@@ -199,7 +191,7 @@ STACK_Setup:
        * not forced to user-mode.
        */
        ldr     r0, =AIPS1_CTRL_BASE_ADDR
-       ldr     r1, AIPS1_PARAM
+       ldr     r1, =0x77777777
        str     r1, [r0, #0x00]
        str     r1, [r0, #0x04]
        ldr     r0, =AIPS2_CTRL_BASE_ADDR
@@ -230,15 +222,18 @@ osc_ok:
        setup_pll PLL3_BASE_ADDR, 400
 
        /* Switch peripherals to PLL3 */
-       ldr     r1, CCM_CBCMR_VAL1
+       ldr     r1, [r0, #CLKCTL_CBCMR]
+       bic     r1, #(3 << 12)
+       orr     r1, #(1 << 12)
        str     r1, [r0, #CLKCTL_CBCMR]
 
-       ldr     r1, CCM_CBCDR_VAL1
+       ldr     r1, [r0, #CLKCTL_CBCDR]
+       orr     r1, r1, #(1 << 25)
        str     r1, [r0, #CLKCTL_CBCDR]
 1:
        /* make sure change is effective */
        ldr     r1, [r0, #CLKCTL_CDHIPR]
-       LED_BLINK 1
+       LED_BLINK #1
        cmp     r1, #0x0
        bne     1b
 
@@ -256,16 +251,19 @@ osc_ok:
 #error Bad SDRAM_CLK
 #endif
        /* Switch peripheral to PLL2 */
-       ldr     r1, CCM_CBCDR_VAL2
+       ldr     r1, [r0, #CLKCTL_CBCDR]
+       bic     r1, #(1 << 25)
        str     r1, [r0, #CLKCTL_CBCDR]
 
-       ldr     r1, CCM_CBCMR_VAL2
+       ldr     r1, [r0, #CLKCTL_CBCMR]
+       bic     r1, #(3 << 12)
+       orr     r1, #(2 << 12)
        str     r1, [r0, #CLKCTL_CBCMR]
 
        /* make sure change is effective */
 1:
        ldr     r1, [r0, #CLKCTL_CDHIPR]
-       LED_BLINK 1
+       LED_BLINK #1
        cmp     r1, #0x0
        bne     1b
 
@@ -289,8 +287,8 @@ osc_ok:
        ldr     r1, W_CSCMR1_VAL
        str     r1, [r0, #CLKCTL_CSCMR1]
 
-       mov r1, #0x00000
-       str r1, [r0, #CLKCTL_CCDR]
+       mov     r1, #0x00000
+       str     r1, [r0, #CLKCTL_CCDR]
 
        /* for cko - for ARM div by 8 */
        mov     r1, #0x000A0000
@@ -326,27 +324,6 @@ end_clk_init:
        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
@@ -356,7 +333,7 @@ end_clk_init:
        .macro  DELAY,ms
        .endm
 #else
-#define CYGHWR_LED_MACRO       LED_BLINK \x
+#define CYGHWR_LED_MACRO       LED_BLINK #\x
 
        .macro  DELAY,ms
        ldr     r10, =\ms
@@ -364,7 +341,7 @@ end_clk_init:
        .endm
 
        .macro  LED_BLINK,val
-       ldr     r8, =\val
+       mov     r8, \val
        bl      led_blink
        .endm
 #endif
@@ -380,10 +357,6 @@ end_clk_init:
        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
@@ -448,6 +421,7 @@ _KARO_CECFG_START:
 _KARO_CECFG_END:
        .endm
 
+       .ltorg
        .align  5
        .ascii  "KARO TX53 " __DATE__ " " __TIME__
        .align
@@ -459,18 +433,33 @@ _KARO_CECFG_END:
        (((l) >> 24) & 0x000000FF))
 
 #define MXC_DCD_ITEM(addr, val)                \
-       .word CPU_2_BE_32(addr) ;       \
-       .word CPU_2_BE_32(val)
+       .word   CPU_2_BE_32(addr), 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_CLR           0x1
 #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 MXC_DCD_CMD_FLAG_CHK_ANY       (1 << 0)
+#define MXC_DCD_CMD_FLAG_CHK_SET       (1 << 1)
+#define MXC_DCD_CMD_FLAG_CHK_CLR       (0 << 1)
+
+#define MXC_DCD_CMD_WRT(type, flags, next)                                     \
+       .word   CPU_2_BE_32((0xcc << 24) | (((next) - .) << 8) | ((flags) << 3) | (type))
+
+#define MXC_DCD_CMD_CHK(type, flags, addr, mask)                               \
+       .word   CPU_2_BE_32((0xcf << 24) | (12 << 8) | ((flags) << 3) | (type)),\
+               CPU_2_BE_32(addr), CPU_2_BE_32(mask)
 
+#define MXC_DCD_CMD_CHK_CNT(type, flags, addr, mask, count)                    \
+       .word   CPU_2_BE_32((0xcf << 24) | (16 << 8) | ((flags) << 3) | (type)),\
+               CPU_2_BE_32(addr), CPU_2_BE_32(mask), CPU_2_BE_32(count)
+
+#define MXC_DCD_CMD_NOP()                                                      \
+       .word   CPU_2_BE_32((0xc0 << 24) | (4 << 8))
+
+#define CK_TO_NS(ck)   (((ck) * 1000 + SDRAM_CLK / 2) / SDRAM_CLK)
 #define NS_TO_CK(ns)   (((ns) * SDRAM_CLK + 999) / 1000)
 
        .macro          CK_VAL, name, clks, offs, max
@@ -499,92 +488,15 @@ _KARO_CECFG_END:
        .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
+#define DIV_ROUND_UP(m,d)              (((m) + (d) - 1) / (d))
 
-#if SDRAM_SIZE > SZ_512M
-#define ROW_ADDR_BITS                  15
+#define CKIL_FREQ_Hz                   32768
+#define ESDOR_CLK_PERIOD_ns            (1000000000 / CKIL_FREQ_Hz / 2) /* base clock for ESDOR values */
 
-/* 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
@@ -600,9 +512,9 @@ NS_VAL      tXPR,   400, 1, 255             /* clks - 1 (1..255) */
 /* 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 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) */
+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 */
 
@@ -614,7 +526,7 @@ 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) */
+CK_VAL tCWL,   5, 2, 6                 /* clks - 2 (0..6) */
 
 /* ESDCFG2 0x14 */
 CK_VAL tDLLK,  512, 1, 511             /* clks - 1 (0..511) */
@@ -623,51 +535,64 @@ 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) */
+CK_MAX tXPR,   NS_TO_CK(CK_TO_NS(tRFC + 1) + 10), 5, 1, 255 /* clks - 1 (0..255) max(tRFC + 10, 5CK) */
+
+/* ESDOTC 0x08 */
+NS_VAL tAOFPD, 9, 1, 7                 /* clks - 1 (0..7) */
+NS_VAL tAONPD, 9, 1, 7                 /* clks - 1 (0..7) */
+CK_VAL tANPD,  tCWL, 1, 15             /* clks - 1 (0..15) */
+CK_VAL tAXPD,  tCWL, 1, 15             /* clks - 1 (0..15) */
+CK_VAL tODTLon tCWL - 1, 1, 7          /* clks - 1 (0..7) */
+CK_VAL tODTLoff tCWL - 1, 1, 31        /* clks - 1 (0..31) */
+
+#define tSDE_RST                       (DIV_ROUND_UP(200000, ESDOR_CLK_PERIOD_ns) + 1)
 
-#define tSDE_RST                       ((200000 + (ESDOR_CLK_PERIOD - 1)) / ESDOR_CLK_PERIOD)
-#define tRST_CKE                       ((500000 + (ESDOR_CLK_PERIOD - 1)) / ESDOR_CLK_PERIOD)
+                                       /* Add an extra (or two?) ESDOR_CLK_PERIOD_ns according to
+                                        * erroneous Erratum Engcm12377
+                                        */
+#define tRST_CKE                       (DIV_ROUND_UP(500000 + 2 * ESDOR_CLK_PERIOD_ns, ESDOR_CLK_PERIOD_ns) + 1)
 
 #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)
+       .set    mrs_val, (0x8080 | \
+                       (3 << 4) /* MRS command */ | \
+                       ((1 << 8) /* DLL Reset */ | \
+                       ((tWR + 1 - 4) << 9) | \
+                       (((tCL + 3) - 4) << 4)) << 16)
        .else
-       .set    ESDSCR_MRS_VAL, (0x8000 | (3 << 4) | \
-                               ((((tWR + 1) / 2) << 9) | \
-                               (((tCL + 3) - 4) << 4)) << 16)
+       .set    mrs_val, (0x8080 | \
+                       (3 << 4) /* MRS command */ | \
+                       ((1 << 8) /* DLL Reset */ | \
+                       (((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 ESDSCR_MRS_VAL(cs)     (mrs_val | ((1 << (cs)) << 8))
+
+#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) | \
@@ -685,6 +610,13 @@ CK_MAX     tXPR,   NS_TO_CK(160 + 10), 5, 1, 255 /* max(tRFC + 10, 5CK) */
 
 #define ESDOR_VAL              ((tXPR << 16) | (tSDE_RST << 8) | (tRST_CKE << 0))
 
+#define ESDOTC_VAL             ((tAOFPD << 27) |       \
+                               (tAONPD << 24) |        \
+                               (tANPD << 20) |         \
+                               (tAXPD << 16) |         \
+                               (tODTLon << 12) |       \
+                               (tODTLoff << 4))
+
        .macro  flash_header
 __text_start:
 fcb_start:
@@ -702,81 +634,7 @@ fcb_start:
        .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)
@@ -799,14 +657,12 @@ image_len:
 plugin:
        .word   0
 ivt_end:
-
 #define DCD_VERSION    0x40
 
 dcd_hdr:
-       .word CPU_2_BE_32((0xd2 << 24) |
-       ((dcd_end - .) << 8) | DCD_VERSION)
+       .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)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, zq_calib)
        /* disable all irrelevant clocks */
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR0, 0xffcc0fff)
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR1, 0x000fffc3)
@@ -818,175 +674,161 @@ dcd_start:
        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(IOMUXC_BASE_ADDR + LED_MUX_OFFSET, LED_MUX_MODE)   /* EIM_D18 => GPIO2[20] STK5-LED */
+       MXC_DCD_ITEM(IOMUXC_BASE_ADDR + 0x318, 0x11)    /* GPIO_1 => LCD Backlight */
 
        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
+#if SDRAM_CLK > 333
+       MXC_DCD_ITEM(0x53fd4014, 0x00888944)    /* CBCDR */
 #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
+       MXC_DCD_ITEM(0x53fd4014, 0x00888644)    /* CBCDR */
 #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(0x53fd4018, 0x00016154)    /* CBCMR */
+
+#define DDR_SEL_VAL    2
+#define DSE_VAL                5
+#define ODT_VAL                2
+
+#define DDR_SEL_SHIFT  25
+#define ODT_SHIFT      22
+#define DSE_SHIFT      19
+#define DDR_INPUT_SHIFT        9
+#define HYS_SHIFT      8
+#define PKE_SHIFT      7
+#define PUE_SHIFT      6
+#define PUS_SHIFT      4
+
+#define DDR_SEL_MASK   (DDR_SEL_VAL << DDR_SEL_SHIFT)
+#define DSE_MASK       (DSE_VAL << DSE_SHIFT)
+#define ODT_MASK       (ODT_VAL << ODT_SHIFT)
+
+#define DQM_VAL                DSE_MASK
+#define SDQS_VAL       (ODT_MASK | DSE_MASK | (1 << PUE_SHIFT))
+#define SDODT_VAL      (DSE_MASK | (0 << PKE_SHIFT) | (1 << PUE_SHIFT) | (0 << PUS_SHIFT))
+#define SDCLK_VAL      DSE_MASK
+#define SDCKE_VAL      ((1 << PKE_SHIFT) | (1 << PUE_SHIFT) | (0 << PUS_SHIFT))
+
+       MXC_DCD_ITEM(0x53fa8724, DDR_SEL_MASK) /* DDR_TYPE: DDR3 */
+       MXC_DCD_ITEM(0x53fa86f4, 0 << DDR_INPUT_SHIFT) /* DDRMODE_CTL */
+       MXC_DCD_ITEM(0x53fa8714, 0 << DDR_INPUT_SHIFT) /* GRP_DDRMODE */
+       MXC_DCD_ITEM(0x53fa86fc, 1 << PKE_SHIFT) /* GRP_DDRPKE */
+       MXC_DCD_ITEM(0x53fa8710, 0 << HYS_SHIFT) /* GRP_DDRHYS */
+       MXC_DCD_ITEM(0x53fa8708, 1 << PUE_SHIFT) /* GRP_DDRPK */
+
+       MXC_DCD_ITEM(0x53fa8584, DQM_VAL) /* DQM0 */
+       MXC_DCD_ITEM(0x53fa8594, DQM_VAL) /* DQM1 */
+       MXC_DCD_ITEM(0x53fa8560, DQM_VAL) /* DQM2 */
+       MXC_DCD_ITEM(0x53fa8554, DQM_VAL) /* DQM3 */
+
+       MXC_DCD_ITEM(0x53fa857c, SDQS_VAL) /* SDQS0 */
+       MXC_DCD_ITEM(0x53fa8590, SDQS_VAL) /* SDQS1 */
+       MXC_DCD_ITEM(0x53fa8568, SDQS_VAL) /* SDQS2 */
+       MXC_DCD_ITEM(0x53fa8558, SDQS_VAL) /* SDQS3 */
+
+       MXC_DCD_ITEM(0x53fa8580, SDODT_VAL) /* SDODT0 */
+       MXC_DCD_ITEM(0x53fa8578, SDCLK_VAL) /* SDCLK0 */
+
+       MXC_DCD_ITEM(0x53fa8564, SDODT_VAL) /* SDODT1 */
+       MXC_DCD_ITEM(0x53fa8570, SDCLK_VAL) /* SDCLK1 */
+
+       MXC_DCD_ITEM(0x53fa858c, SDCKE_VAL) /* SDCKE0 */
+       MXC_DCD_ITEM(0x53fa855c, SDCKE_VAL) /* SDCKE1 */
+
+       MXC_DCD_ITEM(0x53fa8574, DSE_MASK) /* DRAM_CAS */
+       MXC_DCD_ITEM(0x53fa8588, DSE_MASK) /* DRAM_RAS */
+
+       MXC_DCD_ITEM(0x53fa86f0, DSE_MASK) /* GRP_ADDDS */
+       MXC_DCD_ITEM(0x53fa8720, DSE_MASK) /* GRP_CTLDS */
+       MXC_DCD_ITEM(0x53fa8718, DSE_MASK) /* GRP_B0DS */
+       MXC_DCD_ITEM(0x53fa871c, DSE_MASK) /* GRP_B1DS */
+       MXC_DCD_ITEM(0x53fa8728, DSE_MASK) /* GRP_B2DS */
+       MXC_DCD_ITEM(0x53fa872c, DSE_MASK) /* GRP_B3DS */
+
+       /* calibration defaults */
+       MXC_DCD_ITEM(0x63fd904c, 0x001f001f)
+       MXC_DCD_ITEM(0x63fd9050, 0x001f001f)
+       MXC_DCD_ITEM(0x63fd907c, 0x011e011e)
+       MXC_DCD_ITEM(0x63fd9080, 0x011f0120)
+       MXC_DCD_ITEM(0x63fd9088, 0x3a393d3b)
+       MXC_DCD_ITEM(0x63fd9090, 0x3f3f3f3f)
+
+       MXC_DCD_ITEM(0x63fd9018, ESDMISC_VAL)
        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
+       MXC_DCD_ITEM(0x63fd902c, 0x000026d2)
+       MXC_DCD_ITEM(0x63fd9030, ESDOR_VAL)
+       MXC_DCD_ITEM(0x63fd9008, ESDOTC_VAL)
+       MXC_DCD_ITEM(0x63fd9004, 0x00030012)
+
+       /* MR0 - CS0 */
+       MXC_DCD_ITEM(0x63fd901c, 0x00008032) /* MRS: MR2 */
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: MR3 */
+       MXC_DCD_ITEM(0x63fd901c, 0x00408031) /* MRS: MR1 */
+       MXC_DCD_ITEM(0x63fd901c, ESDSCR_MRS_VAL(0)) /* MRS: MR0 */
+       /* MR0 - CS1 */
 #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
+       MXC_DCD_ITEM(0x63fd901c, 0x0000803a) /* MRS: MR2 */
+       MXC_DCD_ITEM(0x63fd901c, 0x0000803b) /* MRS: MR3 */
+       MXC_DCD_ITEM(0x63fd901c, 0x00408039) /* MRS: MR1 */
+       MXC_DCD_ITEM(0x63fd901c, ESDSCR_MRS_VAL(1)) /* MRS: MR0 */
 #endif
-       MXC_DCD_ITEM(0x63fd9020, 0x00005800)
-       MXC_DCD_ITEM(0x63fd9058, 0x00033332)    @ ODT control: 50Ohms, ODT act enable
+       MXC_DCD_ITEM(0x63fd9020, 0x00005800) /* refresh interval */
+       MXC_DCD_ITEM(0x63fd9058, 0x00011112)
+
+       MXC_DCD_ITEM(0x63fd90d0, 0x00000003) /* select default compare pattern for calibration */
+
+       /* ZQ calibration */
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010) /* precharge all */
+       MXC_DCD_ITEM(0x63fd901c, 0x00008040) /* MRS: ZQ calibration */
+       MXC_DCD_ITEM(0x63fd9040, 0x0539002b) /* Force ZQ calibration */
+zq_calib:
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd9040, 0x00010000)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, wl_calib)
+
+       /* Write Leveling */
+       MXC_DCD_ITEM(0x63fd901c, 0x00048033) /* MRS: select MPR */
+       MXC_DCD_ITEM(0x63fd901c, 0x00848231) /* MRS: start write leveling */
        MXC_DCD_ITEM(0x63fd901c, 0x00000000)
-
-       MXC_DCD_ITEM(0x63fd901c, 0x00448031)    @ full drive strength, enable 50ohm ODT
-       MXC_DCD_ITEM(0x63fd901c, 0x04008018)
+       MXC_DCD_ITEM(0x63fd9048, 0x00000001)
+wl_calib:
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd9048, 0x00000001)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, dqs_calib)
+       MXC_DCD_ITEM(0x63fd901c, 0x00048031) /* MRS: end write leveling */
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: select normal data path */
+
+       /* DQS calibration */
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010) /* precharge all */
+       MXC_DCD_ITEM(0x63fd901c, 0x00048033) /* MRS: select MPR */
+       MXC_DCD_ITEM(0x63fd907c, 0x90000000) /* reset RD fifo and start DQS calib. */
+dqs_calib:
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd907c, 0x90000000)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, wr_dl_calib)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: select normal data path */
+
+       /* WR DL calibration */
        MXC_DCD_ITEM(0x63fd901c, 0x00000000)
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010) /* precharge all */
+       MXC_DCD_ITEM(0x63fd901c, 0x00048033) /* MRS: select MPR */
+       MXC_DCD_ITEM(0x63fd90a4, 0x00000010)
+wr_dl_calib: /* 6c4 */
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd90a4, 0x00000010)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, rd_dl_calib)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: select normal data path */
+
+       /* RD DL calibration */
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010) /* precharge all */
+       MXC_DCD_ITEM(0x63fd901c, 0x00048033) /* MRS: select MPR */
+       MXC_DCD_ITEM(0x63fd90a0, 0x00000010)
+rd_dl_calib: /* 70c */
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd90a0, 0x00000010)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, dcd_end)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: select normal data path */
 
-       /* 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, 0x00000000)
 
-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 */
@@ -1023,21 +865,19 @@ MXC_DCD_ITEM(0x63fd901c, 0x00000000)
        MXC_DCD_ITEM(0x53fa85ac, 0x000000e4)    @ NANDF_RB0
        MXC_DCD_ITEM(0x53fa85b0, 0x00000004)    @ NANDF_CS0
 dcd_end:
+       .ifgt   dcd_end - dcd_start - 1768
+       DCD too large!
+       .endif
        .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
index 39de7b5f3e297d5dd064c99ef6e7df55f2d38c95..d3d03b7ba4869cd69b315eaf83612e1843c4f52c 100644 (file)
@@ -602,13 +602,7 @@ void tx53_program_new_stack(void *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)
 {
@@ -618,6 +612,10 @@ static int pmic_reg_read(cyg_uint8 reg)
        if (ret < 0)
                diag_printf("Failed to read %s reg 0x%02x %d\n", PMIC_NAME,
                                        reg, ret);
+#ifdef DEBUG
+       else
+               diag_printf("read %02x from reg %02x\n", ret, reg);
+#endif
        return ret;
 }
 
@@ -629,47 +627,17 @@ static int pmic_reg_write(cyg_uint8 reg, cyg_uint8 val)
        if (ret)
                diag_printf("Failed to write 0x%02x to %s reg 0x%02x: %d\n",
                                        val, PMIC_NAME, reg, ret);
+#ifdef DEBUG
+       else
+               diag_printf("wrote %02x to reg %02x\n", val, reg);
+#endif
        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;
+       int retries = 0;
 
        if (on) {
                ret = pmic_reg_read(0x33);
@@ -695,80 +663,127 @@ int tx53_fuse_voltage(int on)
                        return ret;
 
                if (!(ret & (1 << 6))) {
-                       ret |= 1 << 6; /* LDO4 Startup: don't wait for output < 300mV */
-                       ret = pmic_reg_write(0x12, ret);
+                       ret = pmic_reg_write(0x12, ret | (1 << 6));
                        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;
+                               return ret;
+               }
+
+               /* enable SW regulator control and all regulators */
+               ret = pmic_reg_write(0x10, 0xff);
+               if (ret)
+                       return ret;
+
+               for (;;) {
+                       ret = pmic_reg_read(0x13);
+                       if (ret < 0)
+                               return ret;
+                       if (ret & (1 << 7))
+                               break;
+
+#ifdef DEBUG
+                       if (retries == 0)
+                               diag_printf("Waiting for LDO4 PGOOD\n");
+#endif
+                       HAL_DELAY_US(100);
+                       if (++retries >= 1000) {
+                               diag_printf("Failed to enable LDO4\n");
+                               return -ETIMEDOUT;
                        }
                }
+       } else {
+               ret = pmic_reg_write(0x10, 0xbf);
+               if (ret)
+                       return ret;
+
+               ret = pmic_reg_read(0x12);
+               if (ret < 0)
+                       return ret;
+               if (ret & (1 << 6)) {
+                       ret = pmic_reg_write(0x12, ret & ~(1 << 6));
+                       if (ret)
+                               return ret;
+               }
        }
-       /* 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");
+               diag_printf("Could not %sable LT3589 LDO4 output\n",
+                                       on ? "en" : "dis");
                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
+#define LT3589_PGOOD_MASK              (1 << 5)
+#define LT3589_SLEW_RATE(n)            (((n) & 3) << 6)
+#define CORE_VOLTAGE_1200              0x1e
+#define CORE_VOLTAGE_1000              0x19
+#define CORE_VOLTAGE_800               0x13
 
-void increase_core_voltage(bool high)
+int adjust_core_voltage(unsigned int clock)
 {
        int ret;
-       const int volt = high ? CORE_VOLTAGE_HIGH : CORE_VOLTAGE_LOW;
+       int volt;
+       int retries = 0;
+
+       switch (clock) {
+       case 1200:
+               volt = CORE_VOLTAGE_1200;
+               break;
+
+       case 1000:
+               volt = CORE_VOLTAGE_1000;
+               break;
+
+       case 800:
+               volt = CORE_VOLTAGE_800;
+               break;
+
+       default:
+               if (clock > 1200) {
+                       diag_printf("No core voltage assigned for %u MHz core clock\n",
+                                               clock);
+                       return -EINVAL;
+               }
+               volt = CORE_VOLTAGE_800;
+       }
 
        ret = pmic_reg_read(0x23);
        if (ret < 0) {
-               diag_printf("Failed to read core voltage: %d\n", ret);
-               return;
+               return ret;
        }
 
-       ret = pmic_reg_write(0x23, volt);
+       ret = pmic_reg_write(0x23, volt | LT3589_SLEW_RATE(3) | LT3589_PGOOD_MASK);
        if (ret < 0) {
-               diag_printf("Failed to write core voltage: %d\n", ret);
+               return 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;
+       ret = pmic_reg_read(0x20);
+       if (ret < 0)
+               return ret;
 
-       case 1000:
-               cpu_freq = '1';
-               break;
+       /* Select V1 reference and enable slew */
+       ret = pmic_reg_write(0x20, (ret & ~(1 << 1)) | (1 << 0));
+       if (ret)
+               return ret;
 
-       default:
-               cpu_freq = '?';
-       }
+       do {
+               ret = pmic_reg_read(0x20);
+               if (ret < 0)
+                       return ret;
+               if (++retries >= 1000)
+                       return -ETIMEDOUT;
+               HAL_DELAY_US(100);
+       } while (ret & (1 << 0));
+       return ret;
+}
 
-       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_type(void)
+{
+       diag_printf("\nBoard Type: Ka-Ro TX53 v3\n");
 }
 
 static void display_board_info(void)
index 94ac0c1ed22eb15b5a9eaaa244de44a86452975f..88d508bfd36ad7e3bb0e707b25f8ea53183d80c1 100644 (file)
@@ -56,7 +56,8 @@
 
 extern char HAL_PLATFORM_EXTRA[40];
 externC void plf_hardware_init(void);
-extern void increase_core_voltage(bool i);
+
+extern int adjust_core_voltage(unsigned int);
 
 #define REG8(a)                                (*(volatile unsigned char *)(a))
 #define REG16(a)                       (*(volatile unsigned short *)(a))
@@ -218,9 +219,6 @@ extern void increase_core_voltage(bool i);
 #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
@@ -326,14 +324,12 @@ extern void increase_core_voltage(bool i);
 #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
+#define ESDCTL_ESDMISC                         0x18
+#define ESDCTL_ESDSCR                          0x1c
+#define ESDCTL_ESDMRR                          0x34
+#define ESDCTL_WLGCR                           0x48
+#define ESDCTL_RDDLHWCTL                       0xa0
+#define ESDCTL_WRDLHWCTL                       0xa4
 
 /* DPLL */
 #define PLL_DP_CTL                                     0x00
@@ -617,8 +613,6 @@ 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__ */
index 7ca808aece46813fdc6e534a0e6a9aff09152946..39cf6476914af5be2d6186afc55ee7993732fc96 100644 (file)
@@ -324,10 +324,14 @@ int configure_clock(u32 ref, u32 core_clk, u32 emi_clk)
 
                if (core_clk > 800000000) {
                        div_core = 3;
-                       increase_core_voltage(true);
                } else {
                        div_core = 2;
-                       increase_core_voltage(false);
+               }
+               ret = adjust_core_voltage(core_clk / 1000000);
+               if (ret) {
+                       diag_printf("Failed to adjust core voltage for %u MHz\n",
+                                               core_clk / 1000000);
+                       return ret;
                }
                cyg_hal_plf_serial_stop();
 
index 3a0c60acae5998a5ccd263cabbbea25a861eeab8..551bb4aeb571465fea307e635c4510f7ddfb30f8 100644 (file)
@@ -44,9 +44,9 @@
 // Author(s):    gthomas
 // Contributors: gthomas
 // Date:         2000-07-14
-// Purpose:      
-// Description:  
-//              
+// Purpose:
+// Description:
+//
 // This code is part of RedBoot (tm).
 //
 //####DESCRIPTIONEND####
@@ -69,7 +69,7 @@
 #define MAX_RETRIES    8
 
 static bootp_header_t *bp_info;
-  
+
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 static const unsigned char dhcpCookie[] = {99,130,83,99};
 static const unsigned char dhcpEnd[] = {255};
@@ -78,89 +78,89 @@ static const unsigned char dhcpRequest[] = {53,1,3};
 static const unsigned char dhcpRequestIP[] = {50,4};
 static const unsigned char dhcpParamRequestList[] = {55,3,1,3,6};
 static enum {
-    DHCP_NONE = 0,
-    DHCP_DISCOVER,
-    DHCP_OFFER,
-    DHCP_REQUEST,
-    DHCP_ACK
+       DHCP_NONE = 0,
+       DHCP_DISCOVER,
+       DHCP_OFFER,
+       DHCP_REQUEST,
+       DHCP_ACK
 } dhcpState;
 #endif
 
 static void
 bootp_handler(udp_socket_t *skt, void *buf, int len,
-             ip_route_t *src_route, word src_port)
+                       ip_route_t *src_route, word src_port)
 {
-    bootp_header_t *b;
+       bootp_header_t *b;
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-    unsigned char *p, expected = 0;
+       unsigned char *p, expected = 0;
 #endif
 
-    b = buf;
-    if (bp_info) {
-        memset(bp_info,0,sizeof *bp_info);
-        if (len > sizeof *bp_info)
-            len = sizeof *bp_info;
-        memcpy(bp_info, b, len);
-    }
+       b = buf;
+       if (bp_info) {
+               memset(bp_info,0,sizeof *bp_info);
+               if (len > sizeof *bp_info)
+                       len = sizeof *bp_info;
+               memcpy(bp_info, b, len);
+       }
+
+       // Only accept pure REPLY responses
+       if (b->bp_op != BOOTREPLY)
+               return;
+
+       // Must be sent to me, as well!
+       if (memcmp(b->bp_chaddr, __local_enet_addr, 6))
+               return;
 
-    // Only accept pure REPLY responses
-    if (b->bp_op != BOOTREPLY)
-      return;
-    
-    // Must be sent to me, as well!
-    if (memcmp(b->bp_chaddr, __local_enet_addr, 6))
-      return;
-        
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-    p = b->bp_vend;
-    if (memcmp(p, dhcpCookie, sizeof(dhcpCookie)))
-      return;
-    p += 4;
+       p = b->bp_vend;
+       if (memcmp(p, dhcpCookie, sizeof(dhcpCookie)))
+               return;
+       p += 4;
 
-    // Find the DHCP Message Type tag
-    while (*p != TAG_DHCP_MESS_TYPE) {
-        p += p[1] + 2;
-        if (p >= (unsigned char*)b + sizeof(*bp_info))
-            return;
-    }
+       // Find the DHCP Message Type tag
+       while (*p != TAG_DHCP_MESS_TYPE) {
+               p += p[1] + 2;
+               if (p >= (unsigned char*)b + sizeof(*bp_info))
+                       return;
+       }
 
-    p += 2;
+       p += 2;
 
-    switch (dhcpState) {
-    case DHCP_DISCOVER:
-        // The discover message has been sent, only accept an offer reply
-        if (*p == DHCP_MESS_TYPE_OFFER) {
-            dhcpState = DHCP_OFFER;
-            return;
-        } else {
-            expected = DHCP_MESS_TYPE_OFFER;
-        }
-        break;
-    case DHCP_REQUEST:
-        // The request message has been sent, only accept an ack reply
-        if (*p == DHCP_MESS_TYPE_ACK) {
-            dhcpState = DHCP_ACK;
-            return;
-        } else {
-            expected = DHCP_MESS_TYPE_ACK;
-        }
-        break;
-    case DHCP_NONE:
-    case DHCP_OFFER:
-    case DHCP_ACK:
-        // Quitely ignore these - they indicate repeated message from server
-        return;
-    }
-    // See if we've been NAK'd - if so, give up and try again
-    if (*p == DHCP_MESS_TYPE_NAK) {
-        dhcpState = DHCP_NONE;
-        return;
-    }
-    diag_printf("DHCP reply: %d, not %d\n", (int)*p, (int)expected);
-    return;
+       switch (dhcpState) {
+       case DHCP_DISCOVER:
+               // The discover message has been sent, only accept an offer reply
+               if (*p == DHCP_MESS_TYPE_OFFER) {
+                       dhcpState = DHCP_OFFER;
+                       return;
+               } else {
+                       expected = DHCP_MESS_TYPE_OFFER;
+               }
+               break;
+       case DHCP_REQUEST:
+               // The request message has been sent, only accept an ack reply
+               if (*p == DHCP_MESS_TYPE_ACK) {
+                       dhcpState = DHCP_ACK;
+                       return;
+               } else {
+                       expected = DHCP_MESS_TYPE_ACK;
+               }
+               break;
+       case DHCP_NONE:
+       case DHCP_OFFER:
+       case DHCP_ACK:
+               // Quietly ignore these - they indicate repeated message from server
+               return;
+       }
+       // See if we've been NAK'd - if so, give up and try again
+       if (*p == DHCP_MESS_TYPE_NAK) {
+               dhcpState = DHCP_NONE;
+               return;
+       }
+       diag_printf("DHCP reply: %d, not %d\n", (int)*p, (int)expected);
+       return;
 #else
-    // Simple BOOTP - this is all there is!
-    memcpy(__local_ip_addr, &b->bp_yiaddr, 4);
+       // Simple BOOTP - this is all there is!
+       memcpy(__local_ip_addr, &b->bp_yiaddr, 4);
 #endif
 }
 
@@ -183,136 +183,136 @@ static int get_xid(void)
 int
 __bootp_find_local_ip(bootp_header_t *info)
 {
-    udp_socket_t udp_skt;
-    bootp_header_t b;
-    ip_route_t     r;
-    int            retry;
-    unsigned long  start;
-    ip_addr_t saved_ip_addr;
+       udp_socket_t udp_skt;
+       bootp_header_t b;
+       ip_route_t     r;
+       int            retry;
+       unsigned long  start;
+       ip_addr_t saved_ip_addr;
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-    unsigned char *p;
-    int oldState;
+       unsigned char *p;
+       int oldState;
 #endif
-    int txSize;
-    bool abort = false;
+       int txSize;
+       bool abort = false;
 
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-    dhcpState = DHCP_NONE;
+       dhcpState = DHCP_NONE;
 #endif
 
-    // Where we want the results saved
-    bp_info = info;
-    // Preserve any IP address we currently have, just in case
-    memcpy(saved_ip_addr, __local_ip_addr, sizeof(__local_ip_addr));
+       // Where we want the results saved
+       bp_info = info;
+       // Preserve any IP address we currently have, just in case
+       memcpy(saved_ip_addr, __local_ip_addr, sizeof(__local_ip_addr));
 
-    // fill out route for a broadcast
-    r.ip_addr[0] = 255;
-    r.ip_addr[1] = 255;
-    r.ip_addr[2] = 255;
-    r.ip_addr[3] = 255;
-    r.enet_addr[0] = 255;
-    r.enet_addr[1] = 255;
-    r.enet_addr[2] = 255;
-    r.enet_addr[3] = 255;
-    r.enet_addr[4] = 255;
-    r.enet_addr[5] = 255;
+       // fill out route for a broadcast
+       r.ip_addr[0] = 255;
+       r.ip_addr[1] = 255;
+       r.ip_addr[2] = 255;
+       r.ip_addr[3] = 255;
+       r.enet_addr[0] = 255;
+       r.enet_addr[1] = 255;
+       r.enet_addr[2] = 255;
+       r.enet_addr[3] = 255;
+       r.enet_addr[4] = 255;
+       r.enet_addr[5] = 255;
 
-    // setup a socket listener for bootp replies
-    __udp_install_listener(&udp_skt, IPPORT_BOOTPC, bootp_handler);
+       // setup a socket listener for bootp replies
+       __udp_install_listener(&udp_skt, IPPORT_BOOTPC, bootp_handler);
 
-    retry = MAX_RETRIES;  
-    do {
+       retry = MAX_RETRIES;
+       do {
        start = MS_TICKS();
 
-        // Build up the BOOTP/DHCP request
-        memset(&b, 0, sizeof(b));
-        b.bp_op = BOOTREQUEST;
-        b.bp_htype = HTYPE_ETHERNET;
-        b.bp_hlen = 6;
-        b.bp_xid = get_xid();
-        memcpy(b.bp_chaddr, __local_enet_addr, 6);
-        memset(__local_ip_addr, 0, sizeof(__local_ip_addr));
-         
+               // Build up the BOOTP/DHCP request
+               memset(&b, 0, sizeof(b));
+               b.bp_op = BOOTREQUEST;
+               b.bp_htype = HTYPE_ETHERNET;
+               b.bp_hlen = 6;
+               b.bp_xid = get_xid();
+               memcpy(b.bp_chaddr, __local_enet_addr, 6);
+               memset(__local_ip_addr, 0, sizeof(__local_ip_addr));
+
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-        p = b.bp_vend;
-        switch (dhcpState) {
-        case DHCP_NONE:
-        case DHCP_DISCOVER:
-            AddOption(p,dhcpCookie);
-            AddOption(p,dhcpDiscover);
-            AddOption(p,dhcpParamRequestList);
-            AddOption(p,dhcpEnd);
-            dhcpState = DHCP_DISCOVER;
-            break;
-        case DHCP_OFFER:
-            retry = MAX_RETRIES;
-        case DHCP_REQUEST:
-            b.bp_xid = bp_info->bp_xid;  // Match what server sent
-            AddOption(p,dhcpCookie);
-            AddOption(p,dhcpRequest);
-            AddOption(p,dhcpRequestIP);
-            memcpy(p, &bp_info->bp_yiaddr, 4);  p += 4;  // Ask for the address just given
-            AddOption(p,dhcpParamRequestList);
-            AddOption(p,dhcpEnd);
-            dhcpState = DHCP_REQUEST;
-            memset(&b.bp_yiaddr, 0xFF, 4);
-            memset(&b.bp_siaddr, 0xFF, 4);
-            memset(&b.bp_yiaddr, 0x00, 4);
-            memset(&b.bp_siaddr, 0x00, 4);
-            break;
-        case DHCP_ACK:
-            // Ignore these states (they won't happen)
-            break;
-        }
-     
-        // Some servers insist on a minimum amount of "vendor" data
-        if (p < &b.bp_vend[BP_MIN_VEND_SIZE]) p = &b.bp_vend[BP_MIN_VEND_SIZE];
-        txSize = p - (unsigned char*)&b;
-        oldState = dhcpState;
+               p = b.bp_vend;
+               switch (dhcpState) {
+               case DHCP_NONE:
+               case DHCP_DISCOVER:
+                       AddOption(p, dhcpCookie);
+                       AddOption(p, dhcpDiscover);
+                       AddOption(p, dhcpParamRequestList);
+                       AddOption(p, dhcpEnd);
+                       dhcpState = DHCP_DISCOVER;
+                       break;
+               case DHCP_OFFER:
+                       retry = MAX_RETRIES;
+               case DHCP_REQUEST:
+                       b.bp_xid = bp_info->bp_xid;  // Match what server sent
+                       AddOption(p, dhcpCookie);
+                       AddOption(p, dhcpRequest);
+                       AddOption(p, dhcpRequestIP);
+                       memcpy(p, &bp_info->bp_yiaddr, 4);  p += 4;  // Ask for the address just given
+                       AddOption(p,dhcpParamRequestList);
+                       AddOption(p,dhcpEnd);
+                       dhcpState = DHCP_REQUEST;
+                       memset(&b.bp_yiaddr, 0xFF, 4);
+                       memset(&b.bp_siaddr, 0xFF, 4);
+                       memset(&b.bp_yiaddr, 0x00, 4);
+                       memset(&b.bp_siaddr, 0x00, 4);
+                       break;
+               case DHCP_ACK:
+                       // Ignore these states (they won't happen)
+                       break;
+               }
+
+               // Some servers insist on a minimum amount of "vendor" data
+               if (p < &b.bp_vend[BP_MIN_VEND_SIZE]) p = &b.bp_vend[BP_MIN_VEND_SIZE];
+               txSize = p - (unsigned char*)&b;
+               oldState = dhcpState;
 #else
-        txSize = sizeof(b);
+               txSize = sizeof(b);
 #endif
 
        __udp_send((char *)&b, txSize, &r, IPPORT_BOOTPS, IPPORT_BOOTPC);
 
-        // If we're retrying, inform the user
-        if (retry == (MAX_RETRIES - 1))
-            diag_printf("... waiting for BOOTP information\n");
+               // If we're retrying, inform the user
+               if (retry == (MAX_RETRIES - 1))
+                       diag_printf("... waiting for BOOTP information\n");
 
        do {
-           __enet_poll();
+               __enet_poll();
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-            if (dhcpState != oldState) {
-                if (dhcpState == DHCP_ACK) {
-                    unsigned char *end;
-                    int optlen;
-                    // Address information has now arrived!
-                    memcpy(__local_ip_addr, &bp_info->bp_yiaddr, 4);
+                       if (dhcpState != oldState) {
+                               if (dhcpState == DHCP_ACK) {
+                                       unsigned char *end;
+                                       int optlen;
+                                       // Address information has now arrived!
+                                       memcpy(__local_ip_addr, &bp_info->bp_yiaddr, 4);
 #ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-                    memcpy(__local_ip_gate, &bp_info->bp_giaddr, 4);
+                                       memcpy(__local_ip_gate, &bp_info->bp_giaddr, 4);
 #endif
-                    p = bp_info->bp_vend+4;
-                    end = (unsigned char *)bp_info+sizeof(*bp_info);
-                    while (p < end) {
-                        unsigned char tag = *p;
-                        if (tag == TAG_END)
-                            break;
-                        if (tag == TAG_PAD)
-                            optlen = 1;
-                        else {
-                            optlen = p[1];
-                            p += 2;
-                            switch (tag) {
+                                       p = bp_info->bp_vend+4;
+                                       end = (unsigned char *)bp_info+sizeof(*bp_info);
+                                       while (p < end) {
+                                               unsigned char tag = *p;
+                                               if (tag == TAG_END)
+                                                       break;
+                                               if (tag == TAG_PAD)
+                                                       optlen = 1;
+                                               else {
+                                                       optlen = p[1];
+                                                       p += 2;
+                                                       switch (tag) {
 #ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-                            case TAG_SUBNET_MASK:  // subnet mask
-                                memcpy(__local_ip_mask,p,4); 
-                                break;
-                            case TAG_GATEWAY:  // router
-                                memcpy(__local_ip_gate,p,4); 
-                                break;
+                                                       case TAG_SUBNET_MASK:  // subnet mask
+                                                               memcpy(__local_ip_mask,p,4);
+                                                               break;
+                                                       case TAG_GATEWAY:  // router
+                                                               memcpy(__local_ip_gate,p,4);
+                                                               break;
 #endif
 #ifdef CYGPKG_REDBOOT_NETWORKING_DNS
-                           case TAG_DOMAIN_SERVER:
+                               case TAG_DOMAIN_SERVER:
 //                             diag_printf(" DNS server found!\n");
                                memcpy(&__bootp_dns_addr, p, 4);
                                __bootp_dns_set = 1;
@@ -329,43 +329,41 @@ __bootp_find_local_ip(bootp_header_t *info)
                                                                break;
 #endif //CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN
 #endif //CYGPKG_REDBOOT_NETWORKING_DNS
-                            default:
-                                break;
-                            }
-                        }
-                        p += optlen;
-                    }
-                    __udp_remove_listener(IPPORT_BOOTPC);
-                    return 0;
-                } else {
-                    break;  // State changed, handle it
-                }
-            }
+                                                       default:
+                                                               break;
+                                                       }
+                                               }
+                                               p += optlen;
+                                       }
+                                       __udp_remove_listener(IPPORT_BOOTPC);
+                                       return 0;
+                               } else {
+                                       break;  // State changed, handle it
+                               }
+                       }
 #else
-            // All done, if address response has arrived
-           if (__local_ip_addr[0] || __local_ip_addr[1] ||
+                       // All done, if address response has arrived
+               if (__local_ip_addr[0] || __local_ip_addr[1] ||
                __local_ip_addr[2] || __local_ip_addr[3]) {
                /* success */
                __udp_remove_listener(IPPORT_BOOTPC);
                return 0;
-           }
+               }
 #endif
-           if (retry < MAX_RETRIES) {
+               if (retry < MAX_RETRIES) {
                if (_rb_break(1)) {
-                   // The user typed ^C on the console
-                   abort = true;
-                   break;
+                       // The user typed ^C on the console
+                       abort = true;
+                       break;
                }
                start--; /* account for time spent in _rb_break() */
-           }
+               }
        } while ((int)(MS_TICKS_DELAY() - start) < RETRY_TIME);
-    } while (!abort && (retry-- > 0));
+       } while (!abort && (retry-- > 0));
 
-    // timed out
-    __udp_remove_listener(IPPORT_BOOTPC);
-    // Restore any previous IP address
-    memcpy(__local_ip_addr, saved_ip_addr, sizeof(__local_ip_addr));
-    return -1;
+       // timed out
+       __udp_remove_listener(IPPORT_BOOTPC);
+       // Restore any previous IP address
+       memcpy(__local_ip_addr, saved_ip_addr, sizeof(__local_ip_addr));
+       return -1;
 }
-
-
index dc26041d133a12dfc6281af055f8f34305a1114c..6d2171fc4720a6dc7cec5a7f33a29dc2d4be7db0 100755 (executable)
@@ -440,11 +440,11 @@ void setup_drv_globals(ce_driver_globals *drv_glb)
        // Local IP address
        memcpy(&drv_glb->ipAddr, __local_ip_addr, sizeof(__local_ip_addr));
 
+#ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
        // Subnet mask
        memcpy(&drv_glb->ipMask, __local_ip_mask, sizeof(__local_ip_mask));
 
        // Gateway config
-#ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
        // Getway IP address
        memcpy(&drv_glb->ipGate, __local_ip_gate, sizeof(__local_ip_gate));
 #endif
@@ -470,11 +470,11 @@ void setup_std_drv_globals(ce_std_driver_globals *std_drv_glb)
        // Local IP address
        memcpy(&std_drv_glb->kitl.ipAddress, __local_ip_addr, sizeof(__local_ip_addr));
 
+#ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
        // Subnet mask
        memcpy(&std_drv_glb->kitl.ipMask, __local_ip_mask, sizeof(__local_ip_mask));
 
        // Gateway config
-#ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
        // Getway IP address
        memcpy(&std_drv_glb->kitl.ipRoute, __local_ip_gate, sizeof(__local_ip_gate));
 #endif
index 7c642df5ec8bdef2fe0462e0abdb3211b2e5b49f..469af12f776ffbc72632c469d8cbba367064352e 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //==========================================================================
 //
@@ -8,32 +8,32 @@
 //
 //==========================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002, 2003 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //==========================================================================
-//#####DESCRIPTIONBEGIN####                                             
+//#####DESCRIPTIONBEGIN####
 //
 // Author(s):           bartv
 // Contributors:        bartv
@@ -43,7 +43,7 @@
 //==========================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include <string.h>
@@ -61,7 +61,7 @@
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlBuildLoadableBody);
@@ -70,9 +70,9 @@ CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlDefineLoadableBody);
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlDefinableBody);
 
 //}}}
-//{{{  CdlBuildableBody                 
+//{{{  CdlBuildableBody
 
-//{{{  Basics                           
+//{{{  Basics
 
 // ----------------------------------------------------------------------------
 // There is little data specific to a buildable. The only distinguishing
@@ -87,7 +87,7 @@ CdlBuildableBody::CdlBuildableBody()
     // There is no data to initialize yet
     cdlbuildablebody_cookie = CdlBuildableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -100,7 +100,7 @@ CdlBuildableBody::~CdlBuildableBody()
 
     cdlbuildablebody_cookie = CdlBuildableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -121,14 +121,14 @@ bool
 CdlBuildableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlBuildableBody_Magic != cdlbuildablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal);
 }
 
 //}}}
-//{{{  Add and check property parsers   
+//{{{  Add and check property parsers
 
 // ----------------------------------------------------------------------------
 
@@ -139,30 +139,30 @@ CdlBuildableBody::add_property_parsers(std::vector<CdlInterpreterCommandEntry>&
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("compile",            &CdlBuildableBody::parse_compile    ),
-        CdlInterpreterCommandEntry("object",             &CdlBuildableBody::parse_object     ),
-        CdlInterpreterCommandEntry("make_object",        &CdlBuildableBody::parse_make_object),
-        CdlInterpreterCommandEntry("make",               &CdlBuildableBody::parse_make       ),
-        CdlInterpreterCommandEntry("build_proc",         &CdlBuildableBody::parse_build_proc ),
-        CdlInterpreterCommandEntry("",                   0                                   ),
+       CdlInterpreterCommandEntry("compile",            &CdlBuildableBody::parse_compile    ),
+       CdlInterpreterCommandEntry("object",             &CdlBuildableBody::parse_object     ),
+       CdlInterpreterCommandEntry("make_object",        &CdlBuildableBody::parse_make_object),
+       CdlInterpreterCommandEntry("make",               &CdlBuildableBody::parse_make       ),
+       CdlInterpreterCommandEntry("build_proc",         &CdlBuildableBody::parse_build_proc ),
+       CdlInterpreterCommandEntry("",                   0                                   ),
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
     }
     CdlNodeBody::add_property_parsers(parsers);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -179,14 +179,14 @@ CdlBuildableBody::check_properties(CdlInterpreter interp)
     // TODO: check that the relevant sources files exist,
     //       unless marked appropriately (build_proc can create
     //       new source files).
-    
+
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Property parsers                 
+//{{{  Property parsers
 
 // ----------------------------------------------------------------------------
 // Syntax: compile <file1 file2 ...>
@@ -210,16 +210,16 @@ CdlBuildableBody::check_properties(CdlInterpreter interp)
 // scheme.
 
 int
-CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const charargv[])
+CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_compile", "result %d");
-    static char* options[] = {
-        "library:",
-        0
+    static const char *options[] = {
+       "library:",
+       0
     };
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_Compile, options, 0, true);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -232,7 +232,7 @@ CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const char* arg
 //         rules
 //
 // This utility function takes a single string of this form and breaks
-// it down into its constituent parts. 
+// it down into its constituent parts.
 //
 // NOTE: this will need lots of extra code in future to allow for
 // escaped characters, spaces in filenames, etc. For now just keep
@@ -240,7 +240,7 @@ CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const char* arg
 
 bool
 CdlBuildableBody::split_custom_build_step(std::string str_data, std::string& target, std::string& deps, std::string& rules,
-                                          std::string& error_msg)
+                                         std::string& error_msg)
 {
     CYG_REPORT_FUNCNAMETYPE("CdlBuildable::split_custom_build_step", "result %d");
 
@@ -253,90 +253,90 @@ CdlBuildableBody::split_custom_build_step(std::string str_data, std::string& tar
 
     // Skip any leading white space, and make sure that this leaves some real data.
     while (('\0' != *data) && isspace(*data)) {
-        data++;
+       data++;
     }
     if ('\0' == *data) {
-        error_msg = "no data in custom build_step";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "no data in custom build_step";
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
 
     // Now extract the target. This consists of any sequence of characters
     // upto space, tab, colon.
     for ( ; ('\0' != *data) && (':' != *data) && (' ' != *data) && ('\t' != *data); data++) {
-        target += *data;
+       target += *data;
     }
     // Discard any spaces or tabs, they are of no interest
     while ((' ' == *data) || ('\t' == *data)) {
-        data++;
+       data++;
     }
     // The current character should be a colon
     if (':' != *data) {
-        error_msg = "expecting a colon `;' after the target `" + target + "'";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "expecting a colon `;' after the target `" + target + "'";
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
 
     // Move past the colon, and skip any further spaces or tabs
     data++;
     while (('\0' != *data) && ((' ' == *data) || ('\t' == *data))) {
-        data++;
+       data++;
     }
 
     // Everything from here until the end of line should be part of the deps field,
-    // including white space. 
+    // including white space.
     while (('\0' != *data) && ('\n' != *data) && (';' != *data)) {
-        deps += *data++;
+       deps += *data++;
     }
 
     if ("" == deps) {
-        error_msg = "expecting dependency list after `" + target + ":'";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "expecting dependency list after `" + target + ":'";
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
 
     // Having some rules is compulsory.
     if ('\0' == *data) {
-        error_msg = "expecting one or more rules after the dependency list";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "expecting one or more rules after the dependency list";
+       CYG_REPORT_RETVAL(false);
+       return false;
     } else {
-        // We are currently at \n or ;, move on to the actual rules
-        data++;
+       // We are currently at \n or ;, move on to the actual rules
+       data++;
     }
 
     // Rules consist of one or more lines. Any leading white space on a given
     // line should be discarded.
     while ('\0' != *data) {
-        // Processing the current rule. Skip leading spaces and tabs
-        while ((' ' == *data) || ('\t' == *data)) {
-            data++;
-        }
-        // Now add everything up to the next newline or EOD to the rules.
-        while (('\0' != *data) && ('\n' != *data)) {
-            rules += *data++;
-        }
+       // Processing the current rule. Skip leading spaces and tabs
+       while ((' ' == *data) || ('\t' == *data)) {
+           data++;
+       }
+       // Now add everything up to the next newline or EOD to the rules.
+       while (('\0' != *data) && ('\n' != *data)) {
+           rules += *data++;
+       }
 
-        // Terminate this line of the rules with a newline, even if that
-        // character is absent from the raw data.
-        rules += '\n';
+       // Terminate this line of the rules with a newline, even if that
+       // character is absent from the raw data.
+       rules += '\n';
 
-        // And ignore the newline in the raw data itself
-        if ('\n' == *data) {
-            data++;
-        }
+       // And ignore the newline in the raw data itself
+       if ('\n' == *data) {
+           data++;
+       }
     }
 
     // Better make sure that there are some rules. All of the looping above
     // may just have left white space
     if ("" == rules) {
-        error_msg = "no rules provided";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "no rules provided";
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
 
     // Everything is ok.
+
     CYG_REPORT_RETVAL(true);
     return true;
 }
@@ -365,18 +365,18 @@ parse_make_final_check(CdlInterpreter interp, CdlProperty_String prop)
 
     std::string prio_string = prop->get_option("priority");
     if ("" != prio_string) {
-        cdl_int tmp = 1;
-        if (!Cdl::string_to_integer(prio_string, tmp)) {
-            CdlParse::report_property_parse_error(interp, prop,
-                                                  "Invalid priority option, priorities should be simple numbers.");
-        } else {
-            if ((tmp < 1) || (tmp > 1024)) {
-                CdlParse::report_property_parse_error(interp, prop,
-                                                      "Invalid priority value, priorities should be in the range 1 to 1024.");
-            }
-        }
-    }
-    
+       cdl_int tmp = 1;
+       if (!Cdl::string_to_integer(prio_string, tmp)) {
+           CdlParse::report_property_parse_error(interp, prop,
+                                                 "Invalid priority option, priorities should be simple numbers.");
+       } else {
+           if ((tmp < 1) || (tmp > 1024)) {
+               CdlParse::report_property_parse_error(interp, prop,
+                                                     "Invalid priority value, priorities should be in the range 1 to 1024.");
+           }
+       }
+    }
+
     std::string data    = prop->get_string();
     std::string target;
     std::string deps;
@@ -384,7 +384,7 @@ parse_make_final_check(CdlInterpreter interp, CdlProperty_String prop)
     std::string error_msg;
 
     if (!CdlBuildableBody::split_custom_build_step(data, target, deps, rules, error_msg)) {
-        CdlParse::report_property_parse_error(interp, prop, "Invalid custom build step, " + error_msg);
+       CdlParse::report_property_parse_error(interp, prop, "Invalid custom build step, " + error_msg);
     }
 }
 
@@ -392,13 +392,13 @@ int
 CdlBuildableBody::parse_make(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_make", "result %d");
-    static char* options[] = {
-        "priority:",
-        0
+    static const char* options[] = {
+       "priority:",
+       0
     };
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Make, options, &parse_make_final_check);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -419,18 +419,18 @@ parse_make_object_final_check(CdlInterpreter interp, CdlProperty_String prop)
 
     std::string prio_string = prop->get_option("priority");
     if ("" != prio_string) {
-        cdl_int tmp = 1;
-        if (!Cdl::string_to_integer(prio_string, tmp)) {
-            CdlParse::report_property_parse_error(interp, prop,
-                                                  "Invalid priority option, priorities should be simple numbers.");
-        } else {
-            if ((tmp < 1) || (tmp > 1024)) {
-                CdlParse::report_property_parse_error(interp, prop,
-                                                      "Invalid priority value, priorities should be in the range 1 to 1024.");
-            }
-        }
-    }
-    
+       cdl_int tmp = 1;
+       if (!Cdl::string_to_integer(prio_string, tmp)) {
+           CdlParse::report_property_parse_error(interp, prop,
+                                                 "Invalid priority option, priorities should be simple numbers.");
+       } else {
+           if ((tmp < 1) || (tmp > 1024)) {
+               CdlParse::report_property_parse_error(interp, prop,
+                                                     "Invalid priority value, priorities should be in the range 1 to 1024.");
+           }
+       }
+    }
+
     std::string data    = prop->get_string();
     std::string target;
     std::string deps;
@@ -438,7 +438,7 @@ parse_make_object_final_check(CdlInterpreter interp, CdlProperty_String prop)
     std::string error_msg;
 
     if (!CdlBuildableBody::split_custom_build_step(data, target, deps, rules, error_msg)) {
-        CdlParse::report_property_parse_error(interp, prop, "Invalid custom build step, " + error_msg);
+       CdlParse::report_property_parse_error(interp, prop, "Invalid custom build step, " + error_msg);
     }
 }
 
@@ -446,15 +446,15 @@ int
 CdlBuildableBody::parse_make_object(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_make_object", "result %d");
-    static char* options[] = {
-        "library:",
-        "priority:",
-        0
+    static const char* options[] = {
+       "library:",
+       "priority:",
+       0
     };
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_MakeObject, options,
-                                                 &parse_make_object_final_check);
-    
+                                                &parse_make_object_final_check);
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -467,13 +467,13 @@ int
 CdlBuildableBody::parse_object(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_object", "result %d");
-    static char* options[] = {
-        "library:",
-        0
+    static const char* options[] = {
+       "library:",
+       0
     };
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_Object, options, 0, true);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -493,7 +493,7 @@ CdlBuildableBody::parse_build_proc(CdlInterpreter interp, int argc, const char*
 }
 
 //}}}
-//{{{  update_build_info()              
+//{{{  update_build_info()
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in update_all_build_info(). The update_build_info()
@@ -507,25 +507,25 @@ CdlBuildableBody::update_build_info(CdlBuildInfo_Loadable& build_info, std::stri
     CYG_PRECONDITIONC("" != library);
 
     if (!is_active()) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     CdlConstValuable valuable = dynamic_cast<CdlConstValuable>(this);
     if (0 != valuable) {
-        if (!valuable->is_enabled()) {
-            CYG_REPORT_RETURN();
-            return;
-        }
+       if (!valuable->is_enabled()) {
+           CYG_REPORT_RETURN();
+           return;
+       }
     }
 
     update_all_build_info(build_info, library);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  update_all_build_info()          
+//{{{  update_all_build_info()
 
 // ----------------------------------------------------------------------------
 // There are four properties to be considered, each of which may occur
@@ -569,146 +569,146 @@ CdlBuildableBody::update_all_build_info(CdlBuildInfo_Loadable& build_info, std::
     std::vector<CdlProperty>::const_iterator prop_i;
 
     for (prop_i = compile_properties.begin(); prop_i != compile_properties.end(); prop_i++) {
-        CdlProperty_StringVector compile_prop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
-        CYG_LOOP_INVARIANT_CLASSC(compile_prop);
-
-        // Does this property have a library option?
-        std::string current_library = compile_prop->get_option("library");
-        if ("" == current_library) {
-            current_library = package_library;
-        }
-
-        const std::vector<std::string>& files   = compile_prop->get_strings();
-        std::vector<std::string>::const_iterator file_i;
-
-        for (file_i = files.begin(); file_i != files.end(); file_i++) {
-
-            // For each listed file, try to find it. If this is unsuccessful
-            // then assume that the file will be generated later on.
-            std::string path = loadable->find_relative_file(*file_i, "src");
-            if ("" == path) {
-                if (has_src_subdir) {
-                    path = "src/" + *file_i;
-                } else {
-                    path = *file_i;
-                }
-            }
-
-            // Now check whether or not the specified file is already present.
-            std::vector<CdlBuildInfo_Compile>::const_iterator info_i;
-            for (info_i = build_info.compiles.begin(); info_i != build_info.compiles.end(); info_i++) {
-                if ((current_library == info_i->library) && (path == info_i->source)) {
-                    break;
-                }
-            }
-            if (info_i == build_info.compiles.end()) {
-                CdlBuildInfo_Compile new_info;
-                new_info.library    = current_library;
-                new_info.source     = path;
-                build_info.compiles.push_back(new_info);
-            }
-        }
+       CdlProperty_StringVector compile_prop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
+       CYG_LOOP_INVARIANT_CLASSC(compile_prop);
+
+       // Does this property have a library option?
+       std::string current_library = compile_prop->get_option("library");
+       if ("" == current_library) {
+           current_library = package_library;
+       }
+
+       const std::vector<std::string>& files   = compile_prop->get_strings();
+       std::vector<std::string>::const_iterator file_i;
+
+       for (file_i = files.begin(); file_i != files.end(); file_i++) {
+
+           // For each listed file, try to find it. If this is unsuccessful
+           // then assume that the file will be generated later on.
+           std::string path = loadable->find_relative_file(*file_i, "src");
+           if ("" == path) {
+               if (has_src_subdir) {
+                   path = "src/" + *file_i;
+               } else {
+                   path = *file_i;
+               }
+           }
+
+           // Now check whether or not the specified file is already present.
+           std::vector<CdlBuildInfo_Compile>::const_iterator info_i;
+           for (info_i = build_info.compiles.begin(); info_i != build_info.compiles.end(); info_i++) {
+               if ((current_library == info_i->library) && (path == info_i->source)) {
+                   break;
+               }
+           }
+           if (info_i == build_info.compiles.end()) {
+               CdlBuildInfo_Compile new_info;
+               new_info.library    = current_library;
+               new_info.source     = path;
+               build_info.compiles.push_back(new_info);
+           }
+       }
     }
 
     for (prop_i = makeobject_properties.begin(); prop_i != makeobject_properties.end(); prop_i++) {
-        CdlProperty_String prop = dynamic_cast<CdlProperty_String>(*prop_i);
-        CYG_LOOP_INVARIANT_CLASSC(prop);
-
-        // Does thie property have a library option?
-        std::string current_library = prop->get_option("library");
-        if ("" == current_library) {
-            current_library = package_library;
-        }
-
-        // How about a priority field? The default priority for make_object is 100
-        // We can rely on the validation done during the parsing process
-        cdl_int priority = 100;
-        std::string priority_option = prop->get_option("priority");
-        if ("" != priority_option) {
-            Cdl::string_to_integer(priority_option, priority);
-        }
-
-        // What we need now is the separate target, deps, and rules. These
-        // can be obtained via a utility. The raw data will have been validated
-        // already.
-        std::string raw_data = prop->get_string();
-        std::string target;
-        std::string deps;
-        std::string rules;
-        std::string error_msg;
-        bool result;
-
-        result = CdlBuildableBody::split_custom_build_step(raw_data, target, deps, rules, error_msg);
-        CYG_ASSERTC(true == result);
-
-        // Construct a local object, then copy it into the vector
-        CdlBuildInfo_MakeObject local_copy;
-        local_copy.priority     = priority;
-        local_copy.library      = current_library;
-        local_copy.object       = target;
-        local_copy.deps         = deps;
-        local_copy.rules        = rules;
-
-        build_info.make_objects.push_back(local_copy);
-    }
-    
+       CdlProperty_String prop = dynamic_cast<CdlProperty_String>(*prop_i);
+       CYG_LOOP_INVARIANT_CLASSC(prop);
+
+       // Does thie property have a library option?
+       std::string current_library = prop->get_option("library");
+       if ("" == current_library) {
+           current_library = package_library;
+       }
+
+       // How about a priority field? The default priority for make_object is 100
+       // We can rely on the validation done during the parsing process
+       cdl_int priority = 100;
+       std::string priority_option = prop->get_option("priority");
+       if ("" != priority_option) {
+           Cdl::string_to_integer(priority_option, priority);
+       }
+
+       // What we need now is the separate target, deps, and rules. These
+       // can be obtained via a utility. The raw data will have been validated
+       // already.
+       std::string raw_data = prop->get_string();
+       std::string target;
+       std::string deps;
+       std::string rules;
+       std::string error_msg;
+       bool result;
+
+       result = CdlBuildableBody::split_custom_build_step(raw_data, target, deps, rules, error_msg);
+       CYG_ASSERTC(true == result);
+
+       // Construct a local object, then copy it into the vector
+       CdlBuildInfo_MakeObject local_copy;
+       local_copy.priority     = priority;
+       local_copy.library      = current_library;
+       local_copy.object       = target;
+       local_copy.deps         = deps;
+       local_copy.rules        = rules;
+
+       build_info.make_objects.push_back(local_copy);
+    }
+
     for (prop_i = make_properties.begin(); prop_i != make_properties.end(); prop_i++) {
-        CdlProperty_String prop = dynamic_cast<CdlProperty_String>(*prop_i);
-        CYG_LOOP_INVARIANT_CLASSC(prop);
-
-        // Is there a priority field? The default priority for make is
-        // 300 We can rely on the validation done during the parsing
-        // process
-        cdl_int priority = 300;
-        std::string priority_option = prop->get_option("priority");
-        if ("" != priority_option) {
-            Cdl::string_to_integer(priority_option, priority);
-        }
-
-        // What we need now is the separate target, deps, and rules. These
-        // can be obtained via a utility. The raw data will have been validated
-        // already.
-        std::string raw_data = prop->get_string();
-        std::string target;
-        std::string deps;
-        std::string rules;
-        std::string error_msg;
-        bool result;
-
-        result = CdlBuildableBody::split_custom_build_step(raw_data, target, deps, rules, error_msg);
-        CYG_ASSERTC(true == result);
-
-        // Construct a local object, then copy it into the vector
-        CdlBuildInfo_Make local_copy;
-        local_copy.priority     = priority;
-        local_copy.target       = target;
-        local_copy.deps         = deps;
-        local_copy.rules        = rules;
-
-        build_info.makes.push_back(local_copy);
-    }
-    
+       CdlProperty_String prop = dynamic_cast<CdlProperty_String>(*prop_i);
+       CYG_LOOP_INVARIANT_CLASSC(prop);
+
+       // Is there a priority field? The default priority for make is
+       // 300 We can rely on the validation done during the parsing
+       // process
+       cdl_int priority = 300;
+       std::string priority_option = prop->get_option("priority");
+       if ("" != priority_option) {
+           Cdl::string_to_integer(priority_option, priority);
+       }
+
+       // What we need now is the separate target, deps, and rules. These
+       // can be obtained via a utility. The raw data will have been validated
+       // already.
+       std::string raw_data = prop->get_string();
+       std::string target;
+       std::string deps;
+       std::string rules;
+       std::string error_msg;
+       bool result;
+
+       result = CdlBuildableBody::split_custom_build_step(raw_data, target, deps, rules, error_msg);
+       CYG_ASSERTC(true == result);
+
+       // Construct a local object, then copy it into the vector
+       CdlBuildInfo_Make local_copy;
+       local_copy.priority     = priority;
+       local_copy.target       = target;
+       local_copy.deps         = deps;
+       local_copy.rules        = rules;
+
+       build_info.makes.push_back(local_copy);
+    }
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
 //}}}
-//{{{  CdlBuildLoadableBody             
+//{{{  CdlBuildLoadableBody
 
-//{{{  Class variables                          
+//{{{  Class variables
 
 // ----------------------------------------------------------------------------
 // This variable controls the default library that should be generated.
 // Some applications may wish to override this.
-char* CdlBuildLoadableBody::default_library_name        = "libtarget.a";
+const char* CdlBuildLoadableBody::default_library_name        = "libtarget.a";
 
 // The pattern that should be used to identify header files.
 // FIXME: this information should come out of a data file
-char* CdlBuildLoadableBody::default_headers_glob_pattern = "*.h *.hxx *.inl *.si *.inc";
+const char* CdlBuildLoadableBody::default_headers_glob_pattern = "*.h *.hxx *.inl *.si *.inc";
 
 //}}}
-//{{{  The simple stuff                         
+//{{{  The simple stuff
 
 // ----------------------------------------------------------------------------
 
@@ -721,7 +721,7 @@ CdlBuildLoadableBody::CdlBuildLoadableBody()
     // There is no data to initialize
     cdlbuildloadablebody_cookie = CdlBuildLoadableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -734,7 +734,7 @@ CdlBuildLoadableBody::~CdlBuildLoadableBody()
 
     cdlbuildloadablebody_cookie = CdlBuildLoadableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -755,14 +755,14 @@ bool
 CdlBuildLoadableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlBuildLoadableBody_Magic != cdlbuildloadablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlContainerBody::check_this(zeal) && CdlNodeBody::check_this(zeal);
 }
 
 //}}}
-//{{{  Property parsers                         
+//{{{  Property parsers
 
 // ----------------------------------------------------------------------------
 
@@ -773,28 +773,28 @@ CdlBuildLoadableBody::add_property_parsers(std::vector<CdlInterpreterCommandEntr
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("library",            &CdlBuildLoadableBody::parse_library       ),
-        CdlInterpreterCommandEntry("makefile",           &CdlBuildLoadableBody::parse_makefile      ),
-        CdlInterpreterCommandEntry("include_dir",        &CdlBuildLoadableBody::parse_include_dir   ),
-        CdlInterpreterCommandEntry("include_files",      &CdlBuildLoadableBody::parse_include_files ),
-        CdlInterpreterCommandEntry("",                   0                                          )
+       CdlInterpreterCommandEntry("library",            &CdlBuildLoadableBody::parse_library       ),
+       CdlInterpreterCommandEntry("makefile",           &CdlBuildLoadableBody::parse_makefile      ),
+       CdlInterpreterCommandEntry("include_dir",        &CdlBuildLoadableBody::parse_include_dir   ),
+       CdlInterpreterCommandEntry("include_files",      &CdlBuildLoadableBody::parse_include_files ),
+       CdlInterpreterCommandEntry("",                   0                                          )
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
-    }
-    
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
+    }
+
     CYG_REPORT_RETURN();
 }
 
@@ -807,7 +807,7 @@ CdlBuildLoadableBody::check_properties(CdlInterpreter interp)
     CYG_PRECONDITION_CLASSC(interp);
 
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -823,7 +823,7 @@ CdlBuildLoadableBody::parse_library(CdlInterpreter interp, int argc, const char*
     CYG_REPORT_FUNCNAMETYPE("parse_library", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Library, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -839,7 +839,7 @@ CdlBuildLoadableBody::parse_makefile(CdlInterpreter interp, int argc, const char
     CYG_REPORT_FUNCNAMETYPE("parse_makefile", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Makefile, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -852,7 +852,7 @@ CdlBuildLoadableBody::parse_include_dir(CdlInterpreter interp, int argc, const c
     CYG_REPORT_FUNCNAMETYPE("parse_include_dir", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_IncludeDir, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -873,13 +873,13 @@ CdlBuildLoadableBody::parse_include_files(CdlInterpreter interp, int argc, const
     CYG_REPORT_FUNCNAMETYPE("parse_include_files", "result %d");
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_IncludeFiles, 0, 0, true);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  update_build_info()                      
+//{{{  update_build_info()
 
 // ----------------------------------------------------------------------------
 // This utility routine takes care of filling in a Buildinfo_Loadable
@@ -914,9 +914,9 @@ update_header_file_info(CdlConstBuildLoadable loadable, CdlBuildInfo_Loadable& b
     std::string dest_dir = "";
     CdlProperty include_dir_prop = loadable->get_property(CdlPropertyId_IncludeDir);
     if (0 != include_dir_prop) {
-        CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(include_dir_prop);
-        CYG_ASSERT_CLASSC(strprop);
-        dest_dir = strprop->get_string();
+       CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(include_dir_prop);
+       CYG_ASSERT_CLASSC(strprop);
+       dest_dir = strprop->get_string();
     }
 
     bool has_include_subdir = loadable->has_subdirectory("include");
@@ -924,97 +924,97 @@ update_header_file_info(CdlConstBuildLoadable loadable, CdlBuildInfo_Loadable& b
     std::vector<CdlProperty> include_file_properties;
     loadable->get_properties(CdlPropertyId_IncludeFiles, include_file_properties);
     if (include_file_properties.size() > 0) {
-        std::vector<CdlProperty>::const_iterator prop_i;
-        for (prop_i = include_file_properties.begin(); prop_i != include_file_properties.end(); prop_i++) {
-            
-            CdlProperty_StringVector strvprop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
-            CYG_ASSERT_CLASSC(strvprop);
-
-            const std::vector<std::string>& filenames = strvprop->get_strings();
-            std::vector<std::string>::const_iterator file_i;
-            for (file_i = filenames.begin(); file_i != filenames.end(); file_i++) {
-                std::string path = loadable->find_relative_file(*file_i, "include");
-                // Assume that the header file will be generated by a build_proc
-                if ("" == path) {
-                    if (has_include_subdir) {
-                        path = "include/" + *file_i;
-                    } else {
-                        path = *file_i;
-                    }
-                }
-                CdlBuildInfo_Header local_copy;
-                local_copy.source       = path;
-                local_copy.destination  = "";
-                if ("" != dest_dir) {
-                    local_copy.destination = dest_dir + "/";
-                }
-                // At this stage "path" may begin with "include/", which should not
-                // be present in the destination.
-                const char* tmp = path.c_str();
-                if (0 == strncmp("include/", tmp, 8)) {
-                    local_copy.destination += &(tmp[8]);
-                } else {
-                    local_copy.destination += path;
-                }
-                build_info.headers.push_back(local_copy);
-            }
-        }
-        CYG_REPORT_RETURN();
-        return;
+       std::vector<CdlProperty>::const_iterator prop_i;
+       for (prop_i = include_file_properties.begin(); prop_i != include_file_properties.end(); prop_i++) {
+
+           CdlProperty_StringVector strvprop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
+           CYG_ASSERT_CLASSC(strvprop);
+
+           const std::vector<std::string>& filenames = strvprop->get_strings();
+           std::vector<std::string>::const_iterator file_i;
+           for (file_i = filenames.begin(); file_i != filenames.end(); file_i++) {
+               std::string path = loadable->find_relative_file(*file_i, "include");
+               // Assume that the header file will be generated by a build_proc
+               if ("" == path) {
+                   if (has_include_subdir) {
+                       path = "include/" + *file_i;
+                   } else {
+                       path = *file_i;
+                   }
+               }
+               CdlBuildInfo_Header local_copy;
+               local_copy.source       = path;
+               local_copy.destination  = "";
+               if ("" != dest_dir) {
+                   local_copy.destination = dest_dir + "/";
+               }
+               // At this stage "path" may begin with "include/", which should not
+               // be present in the destination.
+               const char* tmp = path.c_str();
+               if (0 == strncmp("include/", tmp, 8)) {
+                   local_copy.destination += &(tmp[8]);
+               } else {
+                   local_copy.destination += path;
+               }
+               build_info.headers.push_back(local_copy);
+           }
+       }
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // It is necessary to search for the appropriate files.
     CdlInterpreter interp = loadable->get_interpreter();
     std::string    path   = loadable->get_toplevel()->get_directory() + "/" + loadable->get_directory();
     if (has_include_subdir) {
-        std::vector<std::string> files;
-        std::vector<std::string>::const_iterator file_i;
-        interp->locate_all_files(path + "/include", files);
-        for (file_i = files.begin(); file_i != files.end(); file_i++) {
-            // NOTE: for now discard any header files in the pkgconf subdirectory
-            if (0 == strncmp("pkgconf/", file_i->c_str(), 8)) {
-                continue;
-            }
-            if ('~' == *(file_i->rbegin())) {
-                continue;
-            }
-            CdlBuildInfo_Header local_copy;
-            local_copy.source   = "include/" + *file_i;
-            local_copy.destination      = "";
-            if ("" != dest_dir) {
-                local_copy.destination = dest_dir + "/";
-            }
-            local_copy.destination += *file_i;
-            build_info.headers.push_back(local_copy);
-        }
+       std::vector<std::string> files;
+       std::vector<std::string>::const_iterator file_i;
+       interp->locate_all_files(path + "/include", files);
+       for (file_i = files.begin(); file_i != files.end(); file_i++) {
+           // NOTE: for now discard any header files in the pkgconf subdirectory
+           if (0 == strncmp("pkgconf/", file_i->c_str(), 8)) {
+               continue;
+           }
+           if ('~' == *(file_i->rbegin())) {
+               continue;
+           }
+           CdlBuildInfo_Header local_copy;
+           local_copy.source   = "include/" + *file_i;
+           local_copy.destination      = "";
+           if ("" != dest_dir) {
+               local_copy.destination = dest_dir + "/";
+           }
+           local_copy.destination += *file_i;
+           build_info.headers.push_back(local_copy);
+       }
     } else {
-        // Look for all header files, which for now means files with
-        // a .h, .hxx, .inl or .inc extension.
-        // FIXME: the definition of what constitutes a header file
-        // should not be hard-wired here.
-        std::vector<std::string> files;
-        std::vector<std::string>::const_iterator file_i;
-        interp->locate_all_files(path, files);
-        for (file_i = files.begin(); file_i != files.end(); file_i++) {
-
-            // Problems with libstdc++ versions, use C comparisons instead.
-            const char* c_string = file_i->c_str();
-            unsigned int len = strlen(c_string);
-            if (((len >= 2) && (0 == strncmp(c_string + len - 2, ".h", 2)))        ||
-                ((len >= 4) && (0 == strncmp(c_string + len - 4, ".hxx", 4)))      ||
-                ((len >= 4) && (0 == strncmp(c_string + len - 4, ".inl", 4)))      ||
-                ((len >= 4) && (0 == strncmp(c_string + len - 4, ".inc", 4)))) {
-                
-                CdlBuildInfo_Header local_copy;
-                local_copy.source = *file_i;
-                local_copy.destination = "";
-                if ("" != dest_dir) {
-                    local_copy.destination = dest_dir + "/";
-                }
-                local_copy.destination += *file_i;
-                build_info.headers.push_back(local_copy);
-            }
-        }
+       // Look for all header files, which for now means files with
+       // a .h, .hxx, .inl or .inc extension.
+       // FIXME: the definition of what constitutes a header file
+       // should not be hard-wired here.
+       std::vector<std::string> files;
+       std::vector<std::string>::const_iterator file_i;
+       interp->locate_all_files(path, files);
+       for (file_i = files.begin(); file_i != files.end(); file_i++) {
+
+           // Problems with libstdc++ versions, use C comparisons instead.
+           const char* c_string = file_i->c_str();
+           unsigned int len = strlen(c_string);
+           if (((len >= 2) && (0 == strncmp(c_string + len - 2, ".h", 2)))        ||
+               ((len >= 4) && (0 == strncmp(c_string + len - 4, ".hxx", 4)))      ||
+               ((len >= 4) && (0 == strncmp(c_string + len - 4, ".inl", 4)))      ||
+               ((len >= 4) && (0 == strncmp(c_string + len - 4, ".inc", 4)))) {
+
+               CdlBuildInfo_Header local_copy;
+               local_copy.source = *file_i;
+               local_copy.destination = "";
+               if ("" != dest_dir) {
+                   local_copy.destination = dest_dir + "/";
+               }
+               local_copy.destination += *file_i;
+               build_info.headers.push_back(local_copy);
+           }
+       }
     }
 
     CYG_REPORT_RETURN();
@@ -1042,8 +1042,8 @@ CdlBuildLoadableBody::update_build_info(CdlBuildInfo& build_info) const
     // and hence it is still necessary to check whether or not the
     // loadable is active.
     if (!is_active()) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Time to add a new CdlBuildInfo_Loadable object to the current
@@ -1057,25 +1057,25 @@ CdlBuildLoadableBody::update_build_info(CdlBuildInfo& build_info) const
 
     // Take care of the header files
     update_header_file_info(this, this_info);
-    
+
     // Work out the library name appropriate for this loadable.
     // There may be a library property, otherwise the global default
     // should be used.
     std::string loadable_library = default_library_name;
     if (has_property(CdlPropertyId_Library)) {
-        CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Library));
-        loadable_library = strprop->get_string();
+       CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Library));
+       loadable_library = strprop->get_string();
     }
-    
+
     const std::vector<CdlNode>& contents = get_owned();
     std::vector<CdlNode>::const_iterator node_i;
     for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
-        CdlBuildable buildable = dynamic_cast<CdlBuildable>(*node_i);
-        if (0 != buildable) {
-            buildable->update_build_info(this_info, loadable_library);
-        }
+       CdlBuildable buildable = dynamic_cast<CdlBuildable>(*node_i);
+       if (0 != buildable) {
+           buildable->update_build_info(this_info, loadable_library);
+       }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1096,19 +1096,19 @@ CdlBuildLoadableBody::update_all_build_info(CdlBuildInfo& build_info) const
 
     std::string loadable_library = default_library_name;
     if (has_property(CdlPropertyId_Library)) {
-        CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Library));
-        loadable_library = strprop->get_string();
+       CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Library));
+       loadable_library = strprop->get_string();
     }
-    
+
     const std::vector<CdlNode>& contents = get_owned();
     std::vector<CdlNode>::const_iterator node_i;
     for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
-        CdlBuildable buildable = dynamic_cast<CdlBuildable>(*node_i);
-        if (0 != buildable) {
-            buildable->update_build_info(this_info, loadable_library);
-        }
+       CdlBuildable buildable = dynamic_cast<CdlBuildable>(*node_i);
+       if (0 != buildable) {
+           buildable->update_build_info(this_info, loadable_library);
+       }
     }
-    
+
     CYG_REPORT_RETURN();
     CYG_REPORT_RETURN();
 }
@@ -1116,7 +1116,7 @@ CdlBuildLoadableBody::update_all_build_info(CdlBuildInfo& build_info) const
 //}}}
 
 //}}}
-//{{{  Version number #define's         
+//{{{  Version number #define's
 
 // ----------------------------------------------------------------------------
 // Given a package xxxPKG_A_B_C with a version V1_2_3, generate additional
@@ -1134,7 +1134,7 @@ CdlBuildLoadableBody::update_all_build_info(CdlBuildInfo& build_info) const
 // is possible to cope with VERSION_NUMBER #define's.
 //
 // Note that only application code and third party packages are
-// affected. 
+// affected.
 //
 // These #define's go into system.h, alongside the main definition of
 // the package. There seems to be little point in putting them in the
@@ -1202,31 +1202,31 @@ system_h_add_package_versioning(Tcl_Channel system_h, std::string name, std::str
 
     char name_buf[256];
     char line_buf[512];
-    
+
     // The first thing to check is that the package name can be used
     // as the basis for the version symbols.
     bool ok = false;
     unsigned int i;
     for (i = 0; i < name.size(); i++) {
-        if ('_' == name[i]) {
-            if (3 < i) {
-                if ((name[i-3] == 'P') && (name[i-2] == 'K') && (name[i-1] == 'G')) {
-                    ok = true;
-                }
-            }
-            break;
-        }
+       if ('_' == name[i]) {
+           if (3 < i) {
+               if ((name[i-3] == 'P') && (name[i-2] == 'K') && (name[i-1] == 'G')) {
+                   ok = true;
+               }
+           }
+           break;
+       }
     }
     if (name.size() >= 256) {
-        ok = false;
+       ok = false;
     }
     if (!ok) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     strcpy(name_buf, name.c_str());
-    
+
     // Change from xxxPKG to xxxNUM
     name_buf[i - 3] = 'N';
     name_buf[i - 2] = 'U';
@@ -1237,9 +1237,9 @@ system_h_add_package_versioning(Tcl_Channel system_h, std::string name, std::str
     std::string minor   = "-1";
     std::string release = "-1";
     if ("current" == value) {
-        major   = "CYGNUM_VERSION_CURRENT";
+       major   = "CYGNUM_VERSION_CURRENT";
     } else {
-        Cdl::split_version_string(value, major, minor, release);
+       Cdl::split_version_string(value, major, minor, release);
     }
 
     sprintf(line_buf, "#define %s_VERSION_MAJOR %s\n", name_buf, major.c_str());
@@ -1248,14 +1248,14 @@ system_h_add_package_versioning(Tcl_Channel system_h, std::string name, std::str
     Tcl_Write(system_h, line_buf, -1);
     sprintf(line_buf, "#define %s_VERSION_RELEASE %s\n", name_buf, release.c_str());
     Tcl_Write(system_h, line_buf, -1);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlDefinableBody                 
+//{{{  CdlDefinableBody
 
-//{{{  Basics                                           
+//{{{  Basics
 
 // ----------------------------------------------------------------------------
 
@@ -1267,7 +1267,7 @@ CdlDefinableBody::CdlDefinableBody()
     // There is no data to initialize
     cdldefinablebody_cookie = CdlDefinableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -1280,7 +1280,7 @@ CdlDefinableBody::~CdlDefinableBody()
 
     cdldefinablebody_cookie = CdlDefinableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1301,14 +1301,14 @@ bool
 CdlDefinableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlDefinableBody_Magic != cdldefinablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal);
 }
 
 //}}}
-//{{{  add_property_parser() and check_properties()     
+//{{{  add_property_parser() and check_properties()
 
 // ----------------------------------------------------------------------------
 
@@ -1319,30 +1319,30 @@ CdlDefinableBody::add_property_parsers(std::vector<CdlInterpreterCommandEntry>&
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("no_define",          &parse_no_define     ),
-        CdlInterpreterCommandEntry("define",             &parse_define        ),
-        CdlInterpreterCommandEntry("define_format",      &parse_define_format ),
-        CdlInterpreterCommandEntry("define_proc",        &parse_define_proc   ),
-        CdlInterpreterCommandEntry("if_define",          &parse_if_define     ),
-        CdlInterpreterCommandEntry("",                   0                    )
+       CdlInterpreterCommandEntry("no_define",          &parse_no_define     ),
+       CdlInterpreterCommandEntry("define",             &parse_define        ),
+       CdlInterpreterCommandEntry("define_format",      &parse_define_format ),
+       CdlInterpreterCommandEntry("define_proc",        &parse_define_proc   ),
+       CdlInterpreterCommandEntry("if_define",          &parse_if_define     ),
+       CdlInterpreterCommandEntry("",                   0                    )
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
     }
     CdlNodeBody::add_property_parsers(parsers);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1356,34 +1356,34 @@ CdlDefinableBody::check_properties(CdlInterpreter interp)
 
     // There should be at most one each of no_define and define_format.
     if (count_properties(CdlPropertyId_NoDefine) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one no_define property.");
+       CdlParse::report_error(interp, "", "There should be at most one no_define property.");
     }
     if (count_properties(CdlPropertyId_DefineFormat) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one define_format property.");
+       CdlParse::report_error(interp, "", "There should be at most one define_format property.");
     }
     if (has_property(CdlPropertyId_NoDefine) && has_property(CdlPropertyId_DefineFormat)) {
-        CdlParse::report_error(interp, "", "The no_define and define_format properties are mutually exclusive.");
+       CdlParse::report_error(interp, "", "The no_define and define_format properties are mutually exclusive.");
     }
     // FIXME: the define_format property only makes sense for certain
     // flavors. However the flavor property may not have been processed yet.
-    
+
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Definable properties                             
+//{{{  Definable properties
 
 // ----------------------------------------------------------------------------
 // Syntax: no_define
 int
-CdlDefinableBody::parse_no_define(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_no_define(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_no_define", "result %d");
 
     int result = CdlParse::parse_minimal_property(interp, argc, argv, CdlPropertyId_NoDefine, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1398,37 +1398,37 @@ parse_define_final_check(CdlInterpreter interp, CdlProperty_String prop)
     CYG_REPORT_FUNCNAME("parse_define_final_check");
     CYG_PRECONDITION_CLASSC(prop);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     const std::string& str = prop->get_string();
 
     if (!Cdl::is_valid_c_preprocessor_symbol(str)) {
-        CdlParse::report_property_parse_error(interp, prop, str + " is not a valid C preprocessor symbol");
+       CdlParse::report_property_parse_error(interp, prop, str + " is not a valid C preprocessor symbol");
     }
 
     // There may be a file option. At this stage the only valid filename
     // that can be used here is system.h
     std::string file_option = prop->get_option("file");
     if (("" != file_option) && ("system.h" != file_option)) {
-        CdlParse::report_property_parse_error(interp, prop, "Invalid -file option " + file_option);
+       CdlParse::report_property_parse_error(interp, prop, "Invalid -file option " + file_option);
     }
 
     // FIXME: validate the format string
-    
+
     CYG_REPORT_RETURN();
 }
 
 int
-CdlDefinableBody::parse_define(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_define(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define", "result %d");
 
-    static char* options[] = {
-        "file:",
-        "format:",
-        0
+    static const char *options[] = {
+       "file:",
+       "format:",
+       0
     };
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Define, options, &parse_define_final_check);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1446,24 +1446,24 @@ CdlDefinableBody::parse_define(CdlInterpreter interp, int argc, const char* argv
 // FIXME: enforce mutual exclusion with no_define
 
 int
-CdlDefinableBody::parse_define_format(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_define_format(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_format", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_DefineFormat, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 // ----------------------------------------------------------------------------
 // syntax: define_proc <tclcode>
 int
-CdlDefinableBody::parse_define_proc(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_define_proc(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_DefineProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1477,52 +1477,52 @@ parse_if_define_final_check(CdlInterpreter interp, CdlProperty_StringVector prop
     CYG_REPORT_FUNCNAME("parse_if_define_final_check");
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION_CLASSC(prop);
-    
+
     // There should be exactly two entries in the vector, and both of them should be
     // valid preprocessor symbols.
     const std::vector<std::string>& strings     = prop->get_strings();
 
     if (2 != strings.size()) {
-        CdlParse::report_property_parse_error(interp, prop, "There should be exactly two arguments.");
+       CdlParse::report_property_parse_error(interp, prop, "There should be exactly two arguments.");
     }
     if (!Cdl::is_valid_c_preprocessor_symbol(strings[0])) {
-        CdlParse::report_property_parse_error(interp, prop, strings[0] + " is not a valid C preprocessor symbol.");
+       CdlParse::report_property_parse_error(interp, prop, strings[0] + " is not a valid C preprocessor symbol.");
     }
     if (!Cdl::is_valid_c_preprocessor_symbol(strings[1])) {
-        CdlParse::report_property_parse_error(interp, prop, strings[1] + " is not a valid C preprocessor symbol.");
+       CdlParse::report_property_parse_error(interp, prop, strings[1] + " is not a valid C preprocessor symbol.");
     }
-    
+
     // There may be a file option. At this stage the only valid filename
     // that can be used here is system.h
     std::string file_option = prop->get_option("file");
     if (("" != file_option) && ("system.h" != file_option)) {
-        CdlParse::report_property_parse_error(interp, prop, "Invalid -file option " + file_option);
+       CdlParse::report_property_parse_error(interp, prop, "Invalid -file option " + file_option);
     }
 }
 
 int
-CdlDefinableBody::parse_if_define(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_if_define(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_if_define", "result %d");
 
-    char* options[] = {
-        "file:",
-        0
+    const char *options[] = {
+       "file:",
+       0
     };
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_IfDefine, options,
-                                                       &parse_if_define_final_check, false);
-    
+                                                      &parse_if_define_final_check, false);
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  generate_config_header()                         
+//{{{  generate_config_header()
 
 // ----------------------------------------------------------------------------
 // This code needs to allow for the following properties.
 //
-// 1) no_define. This suppresses the default #define generation. 
+// 1) no_define. This suppresses the default #define generation.
 //
 // 2) define_format <format_string.
 //
@@ -1541,7 +1541,7 @@ CdlDefinableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel syste
 
     CdlLoadable    loadable = get_owner();
     CdlInterpreter interp   = loadable->get_interpreter();
-    
+
     // This definable is known to be active. However it may or may not be enabled.
     CYG_PRECONDITIONC(is_active());
 
@@ -1550,18 +1550,18 @@ CdlDefinableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel syste
     std::string      value  = "1";
     CdlConstValuable valuable        = dynamic_cast<CdlConstValuable>(this);
     if (0 != valuable) {
-        // It is always possible to check the enabled() flag. 
-        if (!valuable->is_enabled()) {
-            CYG_REPORT_RETURN();
-            return;
-        }
-        // The value is only valid for BoolData and Data flavors, and may
-        // not have been provided. If there is no value then this option
-        // should not generate a #define
-        flavor = valuable->get_flavor();
-        if ((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor)) {
-            value = valuable->get_value();
-        }
+       // It is always possible to check the enabled() flag.
+       if (!valuable->is_enabled()) {
+           CYG_REPORT_RETURN();
+           return;
+       }
+       // The value is only valid for BoolData and Data flavors, and may
+       // not have been provided. If there is no value then this option
+       // should not generate a #define
+       flavor = valuable->get_flavor();
+       if ((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor)) {
+           value = valuable->get_value();
+       }
     }
 
     // Flavor and value are now both set to sensible strings.
@@ -1569,49 +1569,49 @@ CdlDefinableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel syste
     // #define generation should be suppressed.
     if (!has_property(CdlPropertyId_NoDefine)) {
 
-        // OK, it is necessary to generate at least one #define.
-        // If this node is actually a loadable then the #define should go
-        // into system.h, otherwise into the current header
-        Tcl_Channel chan = this_hdr;
-        if (dynamic_cast<CdlConstLoadable>((CdlConstNode)this) == loadable) {
-            chan = system_h;
-        }
-
-        // For flavors None and Bool, there should be just one #define
-        if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Bool == flavor)) {
-            std::string define = "#define " + name + " 1\n";
-            Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-        } else {
-            // If there is a format string then that controls the default
-            // value display.
-            if (!has_property(CdlPropertyId_DefineFormat)) {
-                std::string define = "#define " + name + " " + value + "\n";
-                Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-            } else {
-                CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_DefineFormat));
-                CYG_ASSERT_CLASSC(strprop);
-                std::string format = strprop->get_string();
-                std::string cmd = "return \"#define " + name + " [format " + format + " " + value + "]\n\"";
-                std::string define;
-                if (TCL_OK != interp->eval(cmd, define)) {
-                    throw CdlInputOutputException("Internal error executing tcl fragment to process define_format property");
-                }
-                Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-            }
-
-            // There may also be a separate #define of the form <name>_<value>,
-            // if that is a valid preprocessor symbol.
-            std::string tmp = name + "_" + value;
-            if (Cdl::is_valid_c_preprocessor_symbol(tmp)) {
-                tmp = "#define "+ tmp + "\n";
-                Tcl_Write(chan, const_cast<char*>(tmp.c_str()), -1);
-            }
-            
-            // For loadables, add additional version information to system_h
-            if (dynamic_cast<CdlConstLoadable>((CdlConstNode)this) == loadable) {
-                system_h_add_package_versioning(system_h, name, value);
-            }
-        }
+       // OK, it is necessary to generate at least one #define.
+       // If this node is actually a loadable then the #define should go
+       // into system.h, otherwise into the current header
+       Tcl_Channel chan = this_hdr;
+       if (dynamic_cast<CdlConstLoadable>((CdlConstNode)this) == loadable) {
+           chan = system_h;
+       }
+
+       // For flavors None and Bool, there should be just one #define
+       if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Bool == flavor)) {
+           std::string define = "#define " + name + " 1\n";
+           Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+       } else {
+           // If there is a format string then that controls the default
+           // value display.
+           if (!has_property(CdlPropertyId_DefineFormat)) {
+               std::string define = "#define " + name + " " + value + "\n";
+               Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+           } else {
+               CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_DefineFormat));
+               CYG_ASSERT_CLASSC(strprop);
+               std::string format = strprop->get_string();
+               std::string cmd = "return \"#define " + name + " [format " + format + " " + value + "]\n\"";
+               std::string define;
+               if (TCL_OK != interp->eval(cmd, define)) {
+                   throw CdlInputOutputException("Internal error executing tcl fragment to process define_format property");
+               }
+               Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+           }
+
+           // There may also be a separate #define of the form <name>_<value>,
+           // if that is a valid preprocessor symbol.
+           std::string tmp = name + "_" + value;
+           if (Cdl::is_valid_c_preprocessor_symbol(tmp)) {
+               tmp = "#define "+ tmp + "\n";
+               Tcl_Write(chan, const_cast<char*>(tmp.c_str()), -1);
+           }
+
+           // For loadables, add additional version information to system_h
+           if (dynamic_cast<CdlConstLoadable>((CdlConstNode)this) == loadable) {
+               system_h_add_package_versioning(system_h, name, value);
+           }
+       }
     }
 
     // Next, check for any additional define properties
@@ -1619,85 +1619,85 @@ CdlDefinableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel syste
     get_properties(CdlPropertyId_Define, define_props);
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = define_props.begin(); prop_i != define_props.end(); prop_i++) {
-        CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(*prop_i);
-        CYG_ASSERT_CLASSC(strprop);
-        std::string symbol = strprop->get_string();
-
-        std::string file = strprop->get_option("file");
-        Tcl_Channel chan = this_hdr;
-        if (("" != file) && ("system.h" == file)) {
-            chan = system_h;
-        }
-
-        if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Bool == flavor)) {
-            std::string define = "#define " + symbol + " 1\n";
-            Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-        } else {
-            std::string format = strprop->get_option("format");
-            if ("" == format) {
-                std::string define = "#define " + symbol + " " + value + "\n";
-                Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-            } else {
-                std::string cmd = "return \"#define " + symbol + " [format " + format + " " + value + "]\n\"";
-                std::string define;
-                if (TCL_OK != interp->eval(cmd, define)) {
-                    throw CdlInputOutputException("Internal error executing tcl fragment to process format option");
-                }
-                Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-            }
-
-            std::string tmp = symbol + "_" + value;
-            if (Cdl::is_valid_c_preprocessor_symbol(tmp)) {
-                tmp = "#define " + tmp + "\n";
-                Tcl_Write(chan, const_cast<char*>(tmp.c_str()), -1);
-            }
-        }
+       CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(*prop_i);
+       CYG_ASSERT_CLASSC(strprop);
+       std::string symbol = strprop->get_string();
+
+       std::string file = strprop->get_option("file");
+       Tcl_Channel chan = this_hdr;
+       if (("" != file) && ("system.h" == file)) {
+           chan = system_h;
+       }
+
+       if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Bool == flavor)) {
+           std::string define = "#define " + symbol + " 1\n";
+           Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+       } else {
+           std::string format = strprop->get_option("format");
+           if ("" == format) {
+               std::string define = "#define " + symbol + " " + value + "\n";
+               Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+           } else {
+               std::string cmd = "return \"#define " + symbol + " [format " + format + " " + value + "]\n\"";
+               std::string define;
+               if (TCL_OK != interp->eval(cmd, define)) {
+                   throw CdlInputOutputException("Internal error executing tcl fragment to process format option");
+               }
+               Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+           }
+
+           std::string tmp = symbol + "_" + value;
+           if (Cdl::is_valid_c_preprocessor_symbol(tmp)) {
+               tmp = "#define " + tmp + "\n";
+               Tcl_Write(chan, const_cast<char*>(tmp.c_str()), -1);
+           }
+       }
     }
 
     // Now check for if_define properties
     std::vector<CdlProperty> if_define_props;
     get_properties(CdlPropertyId_IfDefine, if_define_props);
     for (prop_i = if_define_props.begin(); prop_i != if_define_props.end(); prop_i++) {
-        CdlProperty_StringVector strprop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
-        CYG_ASSERT_CLASSC(strprop);
-        CYG_ASSERTC(2 == strprop->get_number_of_strings());
+       CdlProperty_StringVector strprop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
+       CYG_ASSERT_CLASSC(strprop);
+       CYG_ASSERTC(2 == strprop->get_number_of_strings());
 
-        std::string sym1 = strprop->get_string(0);
-        std::string sym2 = strprop->get_string(1);
+       std::string sym1 = strprop->get_string(0);
+       std::string sym2 = strprop->get_string(1);
 
-        Tcl_Channel chan = this_hdr;
-        std::string file = strprop->get_option("file");
-        if (("" != file) && ("system.h" == file)) {
-            chan = system_h;
-        }
-        std::string data = "#ifdef " + sym1 + "\n# define " + sym2 + " 1\n#endif\n";
-        Tcl_Write(chan, const_cast<char*>(data.c_str()), -1);
+       Tcl_Channel chan = this_hdr;
+       std::string file = strprop->get_option("file");
+       if (("" != file) && ("system.h" == file)) {
+           chan = system_h;
+       }
+       std::string data = "#ifdef " + sym1 + "\n# define " + sym2 + " 1\n#endif\n";
+       Tcl_Write(chan, const_cast<char*>(data.c_str()), -1);
     }
 
     // And define_proc properties
     std::vector<CdlProperty> define_proc_props;
     get_properties(CdlPropertyId_DefineProc, define_proc_props);
     for (prop_i = define_proc_props.begin(); prop_i != define_proc_props.end(); prop_i++) {
-        CdlProperty_TclCode codeprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        CYG_ASSERT_CLASSC(codeprop);
+       CdlProperty_TclCode codeprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       CYG_ASSERT_CLASSC(codeprop);
 
-        cdl_tcl_code code       = codeprop->get_code();
-        std::string  result;
-        if (TCL_OK != interp->eval(code, result)) {
-            throw CdlInputOutputException("Error evaluating define_proc property for " + name + "\n" + result);
-        }
+       cdl_tcl_code code       = codeprop->get_code();
+       std::string  result;
+       if (TCL_OK != interp->eval(code, result)) {
+           throw CdlInputOutputException("Error evaluating define_proc property for " + name + "\n" + result);
+       }
     }
-    
-    
+
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
 //}}}
-//{{{  CdlDefineLoadableBody            
+//{{{  CdlDefineLoadableBody
 
-//{{{  Basics                           
+//{{{  Basics
 
 // ----------------------------------------------------------------------------
 
@@ -1708,7 +1708,7 @@ CdlDefineLoadableBody::CdlDefineLoadableBody()
 
     cdldefineloadablebody_cookie = CdlDefineLoadableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -1721,7 +1721,7 @@ CdlDefineLoadableBody::~CdlDefineLoadableBody()
 
     cdldefineloadablebody_cookie = CdlDefineLoadableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1742,14 +1742,14 @@ bool
 CdlDefineLoadableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlDefineLoadableBody_Magic != cdldefineloadablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlLoadableBody::check_this(zeal) && CdlNodeBody::check_this(zeal);
 }
 
 //}}}
-//{{{  Property parsing                 
+//{{{  Property parsing
 
 // ----------------------------------------------------------------------------
 
@@ -1760,26 +1760,26 @@ CdlDefineLoadableBody::add_property_parsers(std::vector<CdlInterpreterCommandEnt
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("define_header",      &parse_define_header),
-        CdlInterpreterCommandEntry("",                   0                   )
+       CdlInterpreterCommandEntry("define_header",      &parse_define_header),
+       CdlInterpreterCommandEntry("",                   0                   )
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
     }
     CdlNodeBody::add_property_parsers(parsers);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1794,30 +1794,30 @@ CdlDefineLoadableBody::check_properties(CdlInterpreter interp)
     // There should be at most one define_header property
     int count = count_properties(CdlPropertyId_DefineHeader);
     if (count> 1) {
-        CdlParse::report_error(interp, "", "There should be at most one define_header property.");
+       CdlParse::report_error(interp, "", "There should be at most one define_header property.");
     }
     // FIXME: filename validation
-    
+
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
 // ----------------------------------------------------------------------------
 // syntax: define_header <header file name>
 int
-CdlDefineLoadableBody::parse_define_header(CdlInterpreter interp, int argc, const charargv[])
+CdlDefineLoadableBody::parse_define_header(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define_header", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_DefineHeader, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  generate_config_header()         
+//{{{  generate_config_header()
 
 // ----------------------------------------------------------------------------
 void
@@ -1832,40 +1832,40 @@ CdlDefineLoadableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel
     Tcl_RegisterChannel(interp->get_tcl_interpreter(), system_h);
 
     CdlInterpreterBody::ContextSupport(interp, std::string("Package ") + this->get_name() + ", header file generation");
-    
+
     try {
-        interp->set_variable("::cdl_header", Tcl_GetChannelName(this_hdr));
-        interp->set_variable("::cdl_system_header", Tcl_GetChannelName(system_h));
-
-        const std::vector<CdlNode>& contents = get_owned();
-        std::vector<CdlNode>::const_iterator node_i;
-        for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
-            CdlDefinable definable = dynamic_cast<CdlDefinable>(*node_i);
-            if (0 == definable) {
-                continue;
-            }
-            if (!definable->is_active()) {
-                continue;
-            }
-            definable->generate_config_header(this_hdr, system_h);
-        }
-    
-        interp->unset_variable("::cdl_header");
-        interp->unset_variable("::cdl_system_header");
+       interp->set_variable("::cdl_header", Tcl_GetChannelName(this_hdr));
+       interp->set_variable("::cdl_system_header", Tcl_GetChannelName(system_h));
+
+       const std::vector<CdlNode>& contents = get_owned();
+       std::vector<CdlNode>::const_iterator node_i;
+       for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
+           CdlDefinable definable = dynamic_cast<CdlDefinable>(*node_i);
+           if (0 == definable) {
+               continue;
+           }
+           if (!definable->is_active()) {
+               continue;
+           }
+           definable->generate_config_header(this_hdr, system_h);
+       }
+
+       interp->unset_variable("::cdl_header");
+       interp->unset_variable("::cdl_system_header");
     } catch(...) {
-        Tcl_UnregisterChannel(interp->get_tcl_interpreter(), this_hdr);
-        Tcl_UnregisterChannel(interp->get_tcl_interpreter(), system_h);
-        throw;
+       Tcl_UnregisterChannel(interp->get_tcl_interpreter(), this_hdr);
+       Tcl_UnregisterChannel(interp->get_tcl_interpreter(), system_h);
+       throw;
     }
-    
+
     Tcl_UnregisterChannel(interp->get_tcl_interpreter(), this_hdr);
     Tcl_UnregisterChannel(interp->get_tcl_interpreter(), system_h);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  get_config_headers()             
+//{{{  get_config_headers()
 
 // ----------------------------------------------------------------------------
 // What header file should be generated for this loadable?
@@ -1883,13 +1883,13 @@ CdlDefineLoadableBody::get_config_header() const
     std::string result = "";
     CdlProperty prop = get_property(CdlPropertyId_DefineHeader);
     if (0 != prop) {
-        CdlProperty_String string_prop = dynamic_cast<CdlProperty_String>(prop);
-        CYG_ASSERT_CLASSC(string_prop);
-        result = string_prop->get_string();
+       CdlProperty_String string_prop = dynamic_cast<CdlProperty_String>(prop);
+       CYG_ASSERT_CLASSC(string_prop);
+       result = string_prop->get_string();
     } else {
-        std::string tmp = get_name();
-        result = Cdl::get_short_form(tmp);
-        result += ".h";
+       std::string tmp = get_name();
+       result = Cdl::get_short_form(tmp);
+       result += ".h";
     }
     CYG_REPORT_RETURN();
     return result;
@@ -1898,9 +1898,9 @@ CdlDefineLoadableBody::get_config_header() const
 //}}}
 
 //}}}
-//{{{  CdlToplevel                      
+//{{{  CdlToplevel
 
-//{{{  CdlToplevel::get_build_info()            
+//{{{  CdlToplevel::get_build_info()
 
 // ----------------------------------------------------------------------------
 // Essentially this code involves iterating over the loadables vector,
@@ -1917,23 +1917,23 @@ CdlToplevelBody::get_build_info(CdlBuildInfo& build_info)
     CYG_PRECONDITION_THISC();
 
     if (0 != build_info.entries.size()) {
-        build_info.entries.clear();
+       build_info.entries.clear();
     }
 
     const std::vector<CdlLoadable>&          loadables   = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
-        CdlConstBuildLoadable bl = dynamic_cast<CdlConstBuildLoadable>(*load_i);
-        if (0 != bl) {
-            bl->update_build_info(build_info);
-        }
+       CdlConstBuildLoadable bl = dynamic_cast<CdlConstBuildLoadable>(*load_i);
+       if (0 != bl) {
+           bl->update_build_info(build_info);
+       }
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlToplevel::get_all_build_info()        
+//{{{  CdlToplevel::get_all_build_info()
 
 // ----------------------------------------------------------------------------
 // This is just like get_build_info(), but calls a different
@@ -1947,23 +1947,23 @@ CdlToplevelBody::get_all_build_info(CdlBuildInfo& build_info)
     CYG_PRECONDITION_THISC();
 
     if (0 != build_info.entries.size()) {
-        build_info.entries.clear();
+       build_info.entries.clear();
     }
 
     const std::vector<CdlLoadable>&          loadables   = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
-        CdlConstBuildLoadable bl = dynamic_cast<CdlConstBuildLoadable>(*load_i);
-        if (0 != bl) {
-            bl->update_all_build_info(build_info);
-        }
+       CdlConstBuildLoadable bl = dynamic_cast<CdlConstBuildLoadable>(*load_i);
+       if (0 != bl) {
+           bl->update_all_build_info(build_info);
+       }
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlToplevel::generate_config_headers()   
+//{{{  CdlToplevel::generate_config_headers()
 
 // ----------------------------------------------------------------------------
 // Generating the config headers. This involves the following steps:
@@ -2013,8 +2013,8 @@ if {$data1 == $data2} {
     interp->set_variable("::cdl_compare_and_copy_file2", file2);
     std::string tcl_result;
     if (TCL_OK != interp->eval(compare_and_copy_script, tcl_result)) {
-        throw CdlInputOutputException("internal error manipulating temporary header " + file1 + " and target " + file2 +
-            "\n" + tcl_result);
+       throw CdlInputOutputException("internal error manipulating temporary header " + file1 + " and target " + file2 +
+           "\n" + tcl_result);
     }
 }
 
@@ -2030,27 +2030,27 @@ CdlToplevelBody::generate_config_headers(std::string directory)
     // latter are used throughout the library
     // NOTE: this is not i18n-friendly.
     for (unsigned int i = 0; i < directory.size(); i++) {
-        if ('\\' == directory[i]) {
-            directory[i] = '/';
-        }
+       if ('\\' == directory[i]) {
+           directory[i] = '/';
+       }
     }
-    
+
     CdlInterpreter interp = get_interpreter();
     std::string    tcl_result;
     if ((TCL_OK != interp->eval("file isdirectory \"" + directory + "\"", tcl_result)) ||
-        (tcl_result != "1")) {
-        throw CdlInputOutputException("target " + directory + " is not a valid existing directory.");
+       (tcl_result != "1")) {
+       throw CdlInputOutputException("target " + directory + " is not a valid existing directory.");
     }
-    
+
     std::vector<std::pair<CdlDefineLoadable, std::string> > headers;
     const std::vector<CdlLoadable>& loadables = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
-        CdlDefineLoadable tmp = dynamic_cast<CdlDefineLoadable>(*load_i);
-        if (0 != tmp) {
-            std::string hdr = tmp->get_config_header();
-            headers.push_back(std::make_pair(tmp, hdr));
-        }
+       CdlDefineLoadable tmp = dynamic_cast<CdlDefineLoadable>(*load_i);
+       if (0 != tmp) {
+           std::string hdr = tmp->get_config_header();
+           headers.push_back(std::make_pair(tmp, hdr));
+       }
     }
 
     static char banner_format[] =
@@ -2080,10 +2080,10 @@ CdlToplevelBody::generate_config_headers(std::string directory)
     // export to these.
     std::string system_h_name = directory + "/__libcdl_file1";
     Tcl_Channel system_h = Tcl_OpenFileChannel(interp->get_tcl_interpreter(),
-                                               const_cast<char*>(system_h_name.c_str()), "w", 0666);
+                                              const_cast<char*>(system_h_name.c_str()), "w", 0666);
     if (0 == system_h) {
-        throw CdlInputOutputException("Unable to open file " + system_h_name + "\n" +
-                                      interp->get_result());
+       throw CdlInputOutputException("Unable to open file " + system_h_name + "\n" +
+                                     interp->get_result());
     }
     // The channel will be registered and unregistered in several
     // different interpreters. This call prevents the channel from
@@ -2092,80 +2092,80 @@ CdlToplevelBody::generate_config_headers(std::string directory)
 
     // Make sure that this operation is undone if necessary.
     try {
-        // Now fill in system.h with the appropriate data. Start with the banner.
-        char local_buf[512];
-        sprintf(local_buf, banner_format, "SYSTEM_H", "SYSTEM_H", "system.h");
-        Tcl_Write(system_h, local_buf, -1);
-
-        // Add generic version information
-        system_h_add_version_header(system_h);
-        
-        // The rest of system.h will be filled in by the following loop.
-        //
-        // Walk down the previously constructed headers vector, create
-        // appropriate files, and let each DefineLoadable fill in the
-        // file for itself.
-        std::vector<std::pair<CdlDefineLoadable, std::string> >::iterator outer_i;
-        std::vector<std::pair<CdlDefineLoadable, std::string> >::iterator inner_i;
-        for (outer_i = headers.begin(); outer_i != headers.end(); outer_i++) {
-            if ("" == outer_i->second) {
-                continue;
-            }
-            std::string target_name = outer_i->second;
-            std::string header_name = directory + "/__libcdl_file2";
-            Tcl_Channel header_h = Tcl_OpenFileChannel(interp->get_tcl_interpreter(),
-                                                       const_cast<char*>(header_name.c_str()), "w", 0666);
-            if (0 == header_h) {
-                throw CdlInputOutputException("Unable to open file " + header_name + "\n" +
-                                              interp->get_result());
-            }
-            // The channel may be used in several different interpreters, so
-            // do an extra register operation
-            Tcl_RegisterChannel(0, header_h);
-
-            try {
-                // Output the banner. This requires an all-upper-case version of the
-                // header name.
-                std::string upper_case;
-                for (unsigned int i = 0; i < target_name.size(); i++) {
-                    if (islower(target_name[i])) {
-                        upper_case += toupper(target_name[i]);
-                    } else if ('.' == target_name[i]) {
-                        upper_case += '_';
-                    } else {
-                        upper_case += target_name[i];
-                    }
-                }
-                sprintf(local_buf, banner_format, upper_case.c_str(), upper_case.c_str(), target_name.c_str());
-                Tcl_Write(header_h, local_buf, -1);
-
-                // Now iterate over all the loadables looking for ones which
-                // should generate #define's for this header, and invoke the
-                // appropriate member function.
-                for (inner_i = outer_i; inner_i != headers.end(); inner_i++) {
-                    if (inner_i->second == target_name) {
-                        inner_i->first->generate_config_header(header_h, system_h);
-                        inner_i->second = "";
-                    }
-                }
-        
-                // The header file has now been updated. Close it and decide whether
-                // or not to replace the old version
-                Tcl_Write(header_h, "\n#endif\n", -1);
-            } catch(...) {
-                Tcl_UnregisterChannel(0, header_h);
-                throw;
-            }
-            Tcl_UnregisterChannel(0, header_h);
-            compare_and_copy(interp, header_name, directory + "/" + target_name);
-        }
-        
-        Tcl_Write(system_h, "\n#endif\n", -1);
+       // Now fill in system.h with the appropriate data. Start with the banner.
+       char local_buf[512];
+       sprintf(local_buf, banner_format, "SYSTEM_H", "SYSTEM_H", "system.h");
+       Tcl_Write(system_h, local_buf, -1);
+
+       // Add generic version information
+       system_h_add_version_header(system_h);
+
+       // The rest of system.h will be filled in by the following loop.
+       //
+       // Walk down the previously constructed headers vector, create
+       // appropriate files, and let each DefineLoadable fill in the
+       // file for itself.
+       std::vector<std::pair<CdlDefineLoadable, std::string> >::iterator outer_i;
+       std::vector<std::pair<CdlDefineLoadable, std::string> >::iterator inner_i;
+       for (outer_i = headers.begin(); outer_i != headers.end(); outer_i++) {
+           if ("" == outer_i->second) {
+               continue;
+           }
+           std::string target_name = outer_i->second;
+           std::string header_name = directory + "/__libcdl_file2";
+           Tcl_Channel header_h = Tcl_OpenFileChannel(interp->get_tcl_interpreter(),
+                                                      const_cast<char*>(header_name.c_str()), "w", 0666);
+           if (0 == header_h) {
+               throw CdlInputOutputException("Unable to open file " + header_name + "\n" +
+                                             interp->get_result());
+           }
+           // The channel may be used in several different interpreters, so
+           // do an extra register operation
+           Tcl_RegisterChannel(0, header_h);
+
+           try {
+               // Output the banner. This requires an all-upper-case version of the
+               // header name.
+               std::string upper_case;
+               for (unsigned int i = 0; i < target_name.size(); i++) {
+                   if (islower(target_name[i])) {
+                       upper_case += toupper(target_name[i]);
+                   } else if ('.' == target_name[i]) {
+                       upper_case += '_';
+                   } else {
+                       upper_case += target_name[i];
+                   }
+               }
+               sprintf(local_buf, banner_format, upper_case.c_str(), upper_case.c_str(), target_name.c_str());
+               Tcl_Write(header_h, local_buf, -1);
+
+               // Now iterate over all the loadables looking for ones which
+               // should generate #define's for this header, and invoke the
+               // appropriate member function.
+               for (inner_i = outer_i; inner_i != headers.end(); inner_i++) {
+                   if (inner_i->second == target_name) {
+                       inner_i->first->generate_config_header(header_h, system_h);
+                       inner_i->second = "";
+                   }
+               }
+
+               // The header file has now been updated. Close it and decide whether
+               // or not to replace the old version
+               Tcl_Write(header_h, "\n#endif\n", -1);
+           } catch(...) {
+               Tcl_UnregisterChannel(0, header_h);
+               throw;
+           }
+           Tcl_UnregisterChannel(0, header_h);
+           compare_and_copy(interp, header_name, directory + "/" + target_name);
+       }
+
+       Tcl_Write(system_h, "\n#endif\n", -1);
     } catch(...) {
-        Tcl_UnregisterChannel(0, system_h);
-        throw;
+       Tcl_UnregisterChannel(0, system_h);
+       throw;
     }
-    
+
     // This call to UnregisterChannel automatically closes the
     // channel, there is no need for an explicit Tcl_Close() call.
     Tcl_UnregisterChannel(0, system_h);
@@ -2178,7 +2178,7 @@ CdlToplevelBody::generate_config_headers(std::string directory)
 }
 
 //}}}
-//{{{  CdlToplevel::get_config_headers()        
+//{{{  CdlToplevel::get_config_headers()
 
 // ----------------------------------------------------------------------------
 // Return details of the header files that should be generated. This
@@ -2210,21 +2210,21 @@ CdlToplevelBody::get_config_headers(std::vector<std::string>& headers)
     const std::vector<CdlLoadable>& loadables = get_loadables();
     std::vector<CdlLoadable>::const_iterator i;
     for (i = loadables.begin(); i != loadables.end(); i++) {
-        CdlDefineLoadable current = dynamic_cast<CdlDefineLoadable>(*i);
-        if (0 != current) {
-            std::string its_file = current->get_config_header();
-            CYG_LOOP_INVARIANTC("" != its_file);
-            if (std::find(headers.begin(), headers.end(), its_file) == headers.end()) {
-                headers.push_back(its_file);
-            }
-        }
+       CdlDefineLoadable current = dynamic_cast<CdlDefineLoadable>(*i);
+       if (0 != current) {
+           std::string its_file = current->get_config_header();
+           CYG_LOOP_INVARIANTC("" != its_file);
+           if (std::find(headers.begin(), headers.end(), its_file) == headers.end()) {
+               headers.push_back(its_file);
+           }
+       }
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlToplevel::generate_build_tree()       
+//{{{  CdlToplevel::generate_build_tree()
 
 void
 CdlToplevelBody::generate_build_tree(std::string build_tree, std::string install_tree)
index 6b971961c6b5546f6a78300090c2a8fb10d0ed0a..a268a1ef510b8fbda397ed9a93c60ea83e131754 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef __CDL_HXX
 # define __CDL_HXX
-//{{{  Banner                                   
+//{{{  Banner
 
 //============================================================================
 //
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -49,7 +49,7 @@
 //============================================================================
 
 //}}}
-//{{{  nested #include's                        
+//{{{  nested #include's
 
 // ----------------------------------------------------------------------------
 // Software CDL depends on the core but adds no new system requirements.
@@ -60,7 +60,7 @@
 
 //}}}
 
-//{{{  Forward declarations of the body classes 
+//{{{  Forward declarations of the body classes
 
 // ----------------------------------------------------------------------------
 // This section provides forward declarations of the main classes used
@@ -85,7 +85,7 @@ typedef const CdlOptionBody*            CdlConstOption;
 typedef const CdlPackagesDatabaseBody*  CdlConstPackagesDatabase;
 
 //}}}
-//{{{  CdlPackagesDatabase class                
+//{{{  CdlPackagesDatabase class
 
 // ----------------------------------------------------------------------------
 // An eCos component repository can get to be quite complicated. There will
@@ -114,16 +114,16 @@ class CdlPackagesDatabaseBody {
 
     friend class CdlTest;
     friend class CdlDbParser;
-    
+
   public:
 
     static CdlPackagesDatabase  make(std::string = "", CdlDiagnosticFnPtr /* error */ = 0,
-                                     CdlDiagnosticFnPtr /* warn */ = 0);
+                                    CdlDiagnosticFnPtr /* warn */ = 0);
     bool                        update(void);
     ~CdlPackagesDatabaseBody();
 
     std::string                         get_component_repository() const;
-    
+
     const std::vector<std::string>&     get_packages(void) const;
     bool                                is_known_package(std::string) const;
     const std::string&                  get_package_description(std::string) const;
@@ -141,7 +141,7 @@ class CdlPackagesDatabaseBody {
     const std::vector<std::string>&     get_target_enables(std::string) const;
     const std::vector<std::string>&     get_target_disables(std::string) const;
     const std::vector<std::pair<std::string,std::string> >& get_target_set_values(std::string) const;
-    
+
     const std::vector<std::string>&     get_templates(void) const;
     bool                                is_known_template(std::string) const;
     std::string                         get_template_filename(std::string, std::string = "") const;
@@ -149,8 +149,8 @@ class CdlPackagesDatabaseBody {
     const std::string                   get_template_description(std::string, std::string = "");
     const std::vector<std::string>&     get_template_packages(std::string, std::string = "");
     static void                         extract_template_details(std::string /* filename */, std::string& /* description */,
-                                                                 std::vector<std::string>& /* packages */);
-    
+                                                                std::vector<std::string>& /* packages */);
+
     // What are the valid compiler flag variables (ARCHFLAGS, ERRFLAGS, ...)?
     // For now the library provides a static vector of these things, but
     // this area is likely to change in future
@@ -158,10 +158,10 @@ class CdlPackagesDatabaseBody {
 
     // Control verbosity when reading in a database
     static void set_verbose(bool);
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     // The only valid constructor gets invoked from the make() member function.
     // The argument should be a pathname for the component repository. The
@@ -172,62 +172,62 @@ class CdlPackagesDatabaseBody {
     std::vector<std::string>            package_names;
     struct package_data {
       public:
-        std::string                     description;
-        std::vector<std::string>        aliases;
-        std::vector<std::string>        versions;
-        std::string                     directory;
-        std::string                     script;
-        bool                            hardware;
+       std::string                     description;
+       std::vector<std::string>        aliases;
+       std::vector<std::string>        versions;
+       std::string                     directory;
+       std::string                     script;
+       bool                            hardware;
     };
     std::map<std::string,struct package_data> packages;
-    
+
     std::vector<std::string>            target_names;
     struct target_data {
       public:
-        std::string                     description;
-        std::vector<std::string>        aliases;
-        std::vector<std::string>        packages;
-        std::vector<std::string>        enable;
-        std::vector<std::string>        disable;
-        std::vector<std::pair<std::string, std::string> > set_values;
+       std::string                     description;
+       std::vector<std::string>        aliases;
+       std::vector<std::string>        packages;
+       std::vector<std::string>        enable;
+       std::vector<std::string>        disable;
+       std::vector<std::pair<std::string, std::string> > set_values;
     };
     std::map<std::string, struct target_data>    targets;
-    
+
     std::vector<std::string>            template_names;
     struct template_version_data {
       public:
-        std::string                     description;
-        std::vector<std::string>        packages;
+       std::string                     description;
+       std::vector<std::string>        packages;
     };
     struct template_data {
       public:
-        std::vector<std::string>        versions;
-        std::map<std::string, struct template_version_data> version_details;
+       std::vector<std::string>        versions;
+       std::map<std::string, struct template_version_data> version_details;
     };
     std::map<std::string, struct template_data>   templates;
-    
+
     enum {
-        CdlPackagesDatabaseBody_Invalid = 0,
-        CdlPackagesDatabaseBody_Magic   = 0x50896acb
+       CdlPackagesDatabaseBody_Invalid = 0,
+       CdlPackagesDatabaseBody_Magic   = 0x50896acb
     } cdlpackagesdatabasebody_cookie;
 
     // This allows test cases to overwrite the name of the file
     // containing the database information.
-    static char* database_name;
+    static const char *database_name;
 
     // Control whether or not minor problems with the database should be
     // reported.
     static bool verbose_mode;
-    
+
     // The default constructor, copy constructor and assignment operator are illegal.
     CdlPackagesDatabaseBody();
     CdlPackagesDatabaseBody(const CdlPackagesDatabaseBody&);
     CdlPackagesDatabaseBody& operator=(const CdlPackagesDatabaseBody&);
-    
+
 };
 
 //}}}
-//{{{  CdlConfiguration class                   
+//{{{  CdlConfiguration class
 
 // ----------------------------------------------------------------------------
 // The CdlConfiguration class is the toplevel used for mainpulating
@@ -253,7 +253,7 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     friend class CdlTest;
 
   public:
-    
+
     // ----------------------------------------------------------------------------
     // Create a new configuration.
     // Currently this requires a name, a database and a master interpreter.
@@ -317,24 +317,24 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
 
     // A version argument of "" implies the most recent version.
     void load_package(std::string /* name */, std::string /* version */,
-                      CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void load_package(CdlTransaction, std::string /* name */, std::string /* version */,
-                      CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
 
     void unload_package(std::string /* name */, bool /* limbo */ = true);
     void unload_package(CdlPackage, bool /* limbo */ = true);
     void unload_package(CdlTransaction, std::string /* name */, bool /* limbo */ = true);
     void unload_package(CdlTransaction, CdlPackage, bool /* limbo */ = true);
-    
+
     void change_package_version(std::string /*name*/, std::string /*version*/,
-                                CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                               CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void change_package_version(CdlPackage, std::string /*version*/, CdlDiagnosticFnPtr /* error */,
-                                CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                               CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
 
     void change_package_version(CdlTransaction, std::string /*name*/, std::string /*version*/,
-                                CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                               CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void change_package_version(CdlTransaction, CdlPackage, std::string /*version*/, CdlDiagnosticFnPtr /* error */,
-                                CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                               CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
 
     // Loading a savefile is different in that it creates a new
     // toplevel. Since transactions can only be created if the
@@ -342,36 +342,36 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     // per-transaction load() operation. It is possible to have
     // a per-transaction add() operation.
     static CdlConfiguration load(std::string /* filename */, CdlPackagesDatabase, CdlInterpreter,
-                                 CdlDiagnosticFnPtr /* error */,  CdlDiagnosticFnPtr /* warn */);
+                                CdlDiagnosticFnPtr /* error */,  CdlDiagnosticFnPtr /* warn */);
 
     void add(std::string /* filename */,
-             CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */);
+            CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */);
     void add(CdlTransaction, std::string /* filename */,
-             CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */);
+            CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */);
 
     // As with packages, a version of "" implies the most recent.
     void set_template(std::string, std::string /* version */,
-                      CdlDiagnosticFnPtr, CdlDiagnosticFnPtr /* warn */,bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr, CdlDiagnosticFnPtr /* warn */,bool /* limbo */ = true);
     void set_template_file(std::string,
-                           CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                          CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void set_template(CdlTransaction, std::string, std::string /* version */,
-                      CdlDiagnosticFnPtr, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void set_template_file(CdlTransaction, std::string,
-                           CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                          CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void unload_template(bool /* limbo */ = true);
     void unload_template(CdlTransaction, bool /* limbo */ = true);
     std::string get_template() const;
     void        set_template_name(std::string); // Intended for library use only
 
     void set_hardware(std::string,
-                      CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void set_hardware(CdlTransaction, std::string,
-                      CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void unload_hardware(bool /* limbo */ = true);
     void unload_hardware(CdlTransaction, bool /* limbo */ = true);
     std::string get_hardware() const;
     void        set_hardware_name(std::string); // Intended for library use only
-    
+
     // ----------------------------------------------------------------------------
     // Save a configuration to a file
     void        save(std::string, bool /* minimal */ = false);
@@ -385,7 +385,7 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     virtual std::string         get_class_name() const;
     bool                        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
 
     // The only legal constructor, invoked from make() and load()
@@ -398,15 +398,15 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     static int                  savefile_hardware_command(CdlInterpreter, int, const char*[]);
     static int                  savefile_template_command(CdlInterpreter, int, const char*[]);
     static int                  savefile_package_command(CdlInterpreter, int, const char*[]);
-    
+
     std::string                 current_hardware;
     std::string                 current_template;
     std::string                 description;
     CdlPackagesDatabase         database;
     std::string                 save_file;
     enum {
-        CdlConfigurationBody_Invalid    = 0,
-        CdlConfigurationBody_Magic      = 0x5c409a3d
+       CdlConfigurationBody_Invalid    = 0,
+       CdlConfigurationBody_Magic      = 0x5c409a3d
     } cdlconfigurationbody_cookie;
 
     // The constructor can only be invoked via the make() and load()
@@ -415,37 +415,37 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     CdlConfigurationBody();
     CdlConfigurationBody(const CdlConfigurationBody&);
     CdlConfigurationBody& operator=(const CdlConfigurationBody&);
-    
+
 };
 
 //}}}
-//{{{  CdlPackage class                         
+//{{{  CdlPackage class
 
 // ----------------------------------------------------------------------------
 // Packages inherit from most of the base classes.
 
 class CdlPackageBody : public virtual CdlNodeBody,
-                       public virtual CdlContainerBody,
-                       public virtual CdlUserVisibleBody,
-                       public virtual CdlValuableBody,
-                       public virtual CdlParentableBody,
-                       public virtual CdlBuildableBody,
-                       public virtual CdlDefinableBody,
-                       public virtual CdlLoadableBody,
-                       public virtual CdlBuildLoadableBody,
-                       public virtual CdlDefineLoadableBody
-{                       
+                      public virtual CdlContainerBody,
+                      public virtual CdlUserVisibleBody,
+                      public virtual CdlValuableBody,
+                      public virtual CdlParentableBody,
+                      public virtual CdlBuildableBody,
+                      public virtual CdlDefinableBody,
+                      public virtual CdlLoadableBody,
+                      public virtual CdlBuildLoadableBody,
+                      public virtual CdlDefineLoadableBody
+{
     friend class CdlTest;
 
     // Packages should not be created by application code, but
     // the CdlConfiguration class must be able to do so inside
     // load_package();
     friend class CdlConfigurationBody;
-    
+
   public:
 
     ~CdlPackageBody();
-    
+
     static int          parse_package(CdlInterpreter, int, const char*[]);
     static int          parse_hardware(CdlInterpreter, int, const char*[]);
     static int          parse_install_proc(CdlInterpreter, int, const char*[]);
@@ -454,7 +454,7 @@ class CdlPackageBody : public virtual CdlNodeBody,
     // Override the CdlDefineLoadable member. Hardware packages always
     // send their configuration options to hardware.h
     virtual std::string get_config_header() const;
-    
+
     bool                is_hardware_package() const;
     bool                has_install_proc() const;
     const cdl_tcl_code& get_install_proc() const;
@@ -465,7 +465,7 @@ class CdlPackageBody : public virtual CdlNodeBody,
     // it is necessary to invoke the container and valuable
     // update members.
     virtual void update(CdlTransaction, CdlUpdate);
-    
+
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
@@ -474,11 +474,11 @@ class CdlPackageBody : public virtual CdlNodeBody,
     // Was this package loaded because of a template or hardware setting?
     bool                belongs_to_template() const;
     bool                belongs_to_hardware() const;
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
 
     // The only valid constructor requires a number of fields
@@ -491,26 +491,26 @@ class CdlPackageBody : public virtual CdlNodeBody,
 
     bool loaded_for_template;
     bool loaded_for_hardware;
-    
+
     enum {
-        CdlPackageBody_Invalid  = 0,
-        CdlPackageBody_Magic    = 0x1d7c0d43
+       CdlPackageBody_Invalid  = 0,
+       CdlPackageBody_Magic    = 0x1d7c0d43
     } cdlpackagebody_cookie;
 };
 
 //}}}
-//{{{  CdlComponent class                       
+//{{{  CdlComponent class
 
 // ----------------------------------------------------------------------------
 // Similarly components just inherit from the appropriate base classes.
 
 class CdlComponentBody : public virtual CdlNodeBody,
-                         public virtual CdlContainerBody,
-                         public virtual CdlUserVisibleBody,
-                         public virtual CdlValuableBody,
-                         public virtual CdlParentableBody,
-                         public virtual CdlBuildableBody,
-                         public virtual CdlDefinableBody
+                        public virtual CdlContainerBody,
+                        public virtual CdlUserVisibleBody,
+                        public virtual CdlValuableBody,
+                        public virtual CdlParentableBody,
+                        public virtual CdlBuildableBody,
+                        public virtual CdlDefinableBody
 {
     friend class CdlTest;
 
@@ -524,26 +524,26 @@ class CdlComponentBody : public virtual CdlNodeBody,
     // it is necessary to invoke the container and valuable
     // update members.
     virtual void update(CdlTransaction, CdlUpdate);
-    
+
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
     static int          savefile_component_command(CdlInterpreter, int, const char*[]);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
 
     // The only valid constructor requires a name.
     CdlComponentBody(std::string);
-    
+
     enum {
-        CdlComponentBody_Invalid  = 0,
-        CdlComponentBody_Magic    = 0x6359d9a7
+       CdlComponentBody_Invalid  = 0,
+       CdlComponentBody_Magic    = 0x6359d9a7
     } cdlcomponentbody_cookie;
-    
+
     // Other constructors are illegal
     CdlComponentBody();
     CdlComponentBody(const CdlComponentBody&);
@@ -551,30 +551,30 @@ class CdlComponentBody : public virtual CdlNodeBody,
 };
 
 //}}}
-//{{{  CdlOption class                          
+//{{{  CdlOption class
 
 // ----------------------------------------------------------------------------
 // Again options just inherit their functionality from the base classes.
 
 class CdlOptionBody : public virtual CdlNodeBody,
-                      public virtual CdlUserVisibleBody,
-                      public virtual CdlValuableBody,
-                      public virtual CdlParentableBody,
-                      public virtual CdlBuildableBody,
-                      public virtual CdlDefinableBody
+                     public virtual CdlUserVisibleBody,
+                     public virtual CdlValuableBody,
+                     public virtual CdlParentableBody,
+                     public virtual CdlBuildableBody,
+                     public virtual CdlDefinableBody
 {
     friend class CdlTest;
-    
+
   public:
     ~CdlOptionBody();
-    
+
     static int          parse_option(CdlInterpreter, int, const char*[]);
-    
+
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
     static int          savefile_option_command(CdlInterpreter, int, const char*[]);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -583,10 +583,10 @@ class CdlOptionBody : public virtual CdlNodeBody,
     CdlOptionBody(std::string);
 
     enum {
-        CdlOptionBody_Invalid   = 0,
-        CdlOptionBody_Magic     = 0x1c1162d1
+       CdlOptionBody_Invalid   = 0,
+       CdlOptionBody_Magic     = 0x1c1162d1
     } cdloptionbody_cookie;
-    
+
     CdlOptionBody();
     CdlOptionBody(const CdlOptionBody&);
     CdlOptionBody& operator=(const CdlOptionBody&);
index c64e2c3405e3fb4eceb8d9ee7550161c294b89a8..07e72625375029f2efdfa5cb2f429db275e55040 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef __CDLCORE_HXX
 # define __CDLCORE_HXX
 
-//{{{  Banner                                           
+//{{{  Banner
 
 //==========================================================================
 //
 //
 //==========================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //==========================================================================
-//#####DESCRIPTIONBEGIN####                                             
+//#####DESCRIPTIONBEGIN####
 //
 // Author(s):           bartv
 // Contributors:        bartv
@@ -48,7 +48,7 @@
 //==========================================================================
 
 //}}}
-//{{{  Platform dependencies                            
+//{{{  Platform dependencies
 
 // ----------------------------------------------------------------------------
 // Visual C++ has the delightful feature that the source browser will generate
@@ -65,7 +65,7 @@
 #endif
 
 //}}}
-//{{{  nested #include's                                
+//{{{  nested #include's
 
 // ----------------------------------------------------------------------------
 // The libcdl API is defined using parts of the standard C++ library,
@@ -148,7 +148,7 @@ extern "C" {
 
 //}}}
 
-//{{{  Primitive types, constants:, enums, etc.         
+//{{{  Primitive types, constants:, enums, etc.
 
 // ----------------------------------------------------------------------------
 // The CDL languages are defined in terms of arbitrary precision
@@ -248,7 +248,7 @@ typedef std::string  cdl_tcl_code;
 //    for enums? Arrays? Bitfields? Structures? Unions? C++ classes?
 //    How about other programming languages such as Ada or Java?
 //
-//    Any attempt to implement a grand union of all data types in CDL 
+//    Any attempt to implement a grand union of all data types in CDL
 //    is doomed to failure and should not be attempted. Treating
 //    everything as a string instead has proven successful in a number
 //    of languages, including Tcl and Perl.
@@ -312,7 +312,7 @@ enum CdlValueSource {
     CdlValueSource_Wizard               =  2,
     CdlValueSource_User                 =  3,
     CdlValueSource_Current              =  4
-};        
+};
 
 // ----------------------------------------------------------------------------
 // Update support.
@@ -342,7 +342,7 @@ enum CdlUpdate {
     CdlUpdate_Created           = 0x0008,       // The destination has just been created
     CdlUpdate_Destroyed         = 0x0010,       // The destination is being destroyed
     CdlUpdate_ValueChange       = 0x0020,       // The destination's value has changed.
-                                                // This gets applied to nodes as well                   
+                                               // This gets applied to nodes as well
     CdlUpdate_ActiveChange      = 0x0040        // The node has become active or inactive
 };
 
@@ -373,7 +373,7 @@ enum CdlBoolWidget {
     CdlBoolWidget_CustomDialog          = 1,    // There is a valid custom dialog property
     CdlBoolWidget_CheckButton           = 2,    // For simple booleans
     CdlBoolWidget_Radio                 = 3,    // For several mutual exclusive options,
-                                                // the data structure will provide a string identifier
+                                               // the data structure will provide a string identifier
 };
 
 enum CdlValueWidget {
@@ -383,17 +383,17 @@ enum CdlValueWidget {
     CdlValueWidget_EntryBox             = 3,    // Fallback
     CdlValueWidget_MultilineString      = 4,    // For complicated strings
     CdlValueWidget_DecimalRange         = 5,    // e.g. 1 to 16
-                                                // Could be implemented as scale, radio buttons, entry, pull-down menu,
-                                                // combo box, ... depending on GUI conventions and number of entries
+                                               // Could be implemented as scale, radio buttons, entry, pull-down menu,
+                                               // combo box, ... depending on GUI conventions and number of entries
     CdlValueWidget_HexRange             = 6,    // e.g. 0x01 to 0x10
     CdlValueWidget_OctalRange           = 7,    // e.g. 01 to 020
     CdlValueWidget_DoubleRange          = 8,    // e.g. 0.1 to 0.2
     CdlValueWidget_NumericSet           = 9,    // e.g. 1 2 4 8 16
-                                                // The exact nature of the numbers is irrelevant, they will only
-                                                // get displayed, not edited
-                                                // Could be implemented as radio buttons, entry widget, pull-down menu,
-                                                // combo box, ... depending on GUI conventions and number of entries
-                                                // Each entry can have its own representation
+                                               // The exact nature of the numbers is irrelevant, they will only
+                                               // get displayed, not edited
+                                               // Could be implemented as radio buttons, entry widget, pull-down menu,
+                                               // combo box, ... depending on GUI conventions and number of entries
+                                               // Each entry can have its own representation
     CdlValueWidget_StringSet            = 10    // e.g. "ram", "rom"
 
     // More to be added, e.g. for compiler flag handling
@@ -420,7 +420,7 @@ enum CdlValueFormat
 };
 
 //}}}
-//{{{  Exception classes                                
+//{{{  Exception classes
 
 // ----------------------------------------------------------------------------
 // Some parts of the library make use of C++ exception handling. A number
@@ -437,20 +437,20 @@ class CdlStringException {
 
   public:
     CdlStringException(std::string message_arg) {
-        message = message_arg;
+       message = message_arg;
     }
     CdlStringException(const CdlStringException& original) {
-        message = original.message;
+       message = original.message;
     }
     CdlStringException& operator=(const CdlStringException& original) {
-        message = original.message;
-        return *this;
+       message = original.message;
+       return *this;
     }
     ~CdlStringException() {
-        message = "";
+       message = "";
     }
     const std::string& get_message() const {
-        return message;
+       return message;
     }
   private:
     std::string message;
@@ -471,14 +471,14 @@ class CdlInputOutputException : public CdlStringException {
     friend class CdlTest;
   public:
     CdlInputOutputException(std::string message_arg) :
-        CdlStringException(message_arg) {
+       CdlStringException(message_arg) {
     }
     CdlInputOutputException(const CdlInputOutputException& original) :
-        CdlStringException(original) {
+       CdlStringException(original) {
     }
     CdlInputOutputException& operator=(const CdlInputOutputException& original) {
-        (void) CdlStringException::operator=(original);
-        return *this;
+       (void) CdlStringException::operator=(original);
+       return *this;
     }
 };
 
@@ -491,14 +491,14 @@ class CdlParseException : public CdlStringException {
     friend class CdlTest;
   public:
     CdlParseException(std::string message_arg) :
-        CdlStringException(message_arg) {
+       CdlStringException(message_arg) {
     }
     CdlParseException(const CdlParseException& original) :
-        CdlStringException(original) {
+       CdlStringException(original) {
     }
     CdlParseException& operator=(const CdlParseException& original) {
-        (void) CdlStringException::operator=(original);
-        return *this;
+       (void) CdlStringException::operator=(original);
+       return *this;
     }
 };
 
@@ -510,19 +510,19 @@ class CdlEvalException : public CdlStringException {
     friend class CdlTest;
   public:
     CdlEvalException(std::string message_arg) :
-        CdlStringException(message_arg) {
+       CdlStringException(message_arg) {
     }
     CdlEvalException(const CdlEvalException& original) :
-        CdlStringException(original) {
+       CdlStringException(original) {
     }
     CdlEvalException& operator=(const CdlEvalException& original) {
-        (void) CdlStringException::operator=(original);
-        return *this;
+       (void) CdlStringException::operator=(original);
+       return *this;
     }
 };
 
 //}}}
-//{{{  Forward declarations of the body classes         
+//{{{  Forward declarations of the body classes
 
 // ----------------------------------------------------------------------------
 // This section provides forward declarations of the main classes in
@@ -564,7 +564,7 @@ class CdlProperty_GoalExpressionBody;
 
 // Base classes. CDL entities such as options and components derive
 // from one or more of these, using virtual inheritance.
-// 
+//
 // The lowest-level class is CdlNodeBody.
 //
 // 1) a node usually lives in a hierarchy, below a toplevel
@@ -775,7 +775,7 @@ typedef const CdlConflict_DataBody*           CdlConstConflict_Data;
 typedef const CdlTransactionBody*             CdlConstTransaction;
 
 //}}}
-//{{{  Miscellaneous types etc.                         
+//{{{  Miscellaneous types etc.
 
 // ----------------------------------------------------------------------------
 // This section is used for data types, function prototypes, etc. which could
@@ -844,17 +844,17 @@ class CdlInterpreterCommandEntry {
 
     CdlInterpreterCommandEntry() : name(""), command(0) {}
     CdlInterpreterCommandEntry(const char *name_arg, CdlInterpreterCommand command_arg)
-        : name(name_arg), command(command_arg)
+       : name(name_arg), command(command_arg)
     {
     }
     CdlInterpreterCommandEntry(std::string name_arg, CdlInterpreterCommand command_arg)
-        : name(name_arg), command(command_arg)
+       : name(name_arg), command(command_arg)
     {
     }
     ~CdlInterpreterCommandEntry()
     {
-        name = "";
-        command = 0;
+       name = "";
+       command = 0;
     }
 };
 
@@ -900,7 +900,7 @@ struct CdlWidgetHint {
 };
 
 //}}}
-//{{{  Memory leak detection                            
+//{{{  Memory leak detection
 
 // ----------------------------------------------------------------------------
 // Provide some macros that are useful for detecting memory leaks. Basically
@@ -926,7 +926,7 @@ struct CdlWidgetHint {
 #define CYGDBG_MEMLEAK_CONSTRUCTOR()            this->memleak_counter++;
 #define CYGDBG_MEMLEAK_DESTRUCTOR()             this->memleak_counter--;
 #define CYGDBG_MEMLEAK_CHECKTHIS()              if (this->memleak_counter < 0) { return false; }
-    
+
 #else
 
 #define CYGDBG_MEMLEAK_CONSTRUCTOR()
@@ -937,7 +937,7 @@ struct CdlWidgetHint {
 
 //}}}
 
-//{{{  Cdl class                                        
+//{{{  Cdl class
 
 // ---------------------------------------------------------------------------
 // The sole purpose of this class is to provide some utility functions with
@@ -945,15 +945,15 @@ struct CdlWidgetHint {
 // implements namespaces.
 
 class Cdl {
-    
+
   public:
 
     static bool         is_valid_value_flavor(CdlValueFlavor);
     static bool         is_valid_value_source(CdlValueSource);
-    
+
     static bool         is_valid_cdl_name(const std::string&);
     static bool         is_valid_c_preprocessor_symbol(const std::string&);
-    
+
     static bool         string_to_integer(std::string, cdl_int&);
     static bool         string_to_double(std::string, double&);
     static bool         string_to_bool(std::string, bool&);
@@ -966,19 +966,19 @@ class Cdl {
     static void         integer_to_double(cdl_int, double&);
     static double       integer_to_double(cdl_int);
     static bool         double_to_integer(double, cdl_int&);
-    
+
     static bool         string_to_flavor(std::string, CdlValueFlavor&);
     static bool         flavor_to_string(CdlValueFlavor, std::string&);
     static bool         string_to_source(std::string, CdlValueSource&);
     static bool         source_to_string(CdlValueSource, std::string&);
-                                         
+
     static std::string  get_library_version();
     static void         set_interactive(bool = true);
     static bool         is_interactive();
 
     static bool         truth() { return true; }
     static bool         falsehood() { return false; }
-    
+
     // return values are -1,0,1 just like strcmp(). The most recent
     // version is the smallest.
     static int          compare_versions(std::string, std::string);
@@ -986,25 +986,25 @@ class Cdl {
     // Also provide an STL-friendly comparison class
     class version_cmp {
       public:
-        bool operator()(const std::string& v1, const std::string& v2) const {
-            return Cdl::compare_versions(v1,v2) < 0;
-        }
+       bool operator()(const std::string& v1, const std::string& v2) const {
+           return Cdl::compare_versions(v1,v2) < 0;
+       }
     };
 
     // Split a version string into major, minor and release numbers.
     static void         split_version_string(const std::string&, std::string& /* major */,
-                                             std::string& /* minor */, std::string& /* release */);
-    
+                                            std::string& /* minor */, std::string& /* release */);
+
     // It is occasionally useful to take a full CDL name such as CYGPKG_KERNEL
     // and turn it into a short form, i.e. kernel.
     static std::string  get_short_form(const std::string&);
-    
+
   private:
     static bool         interactive;
 };
 
 //}}}
-//{{{  CdlInterpreter class                             
+//{{{  CdlInterpreter class
 
 // ----------------------------------------------------------------------------
 // libcdl requires access to a Tcl interpreter. For now the standard
@@ -1076,7 +1076,7 @@ class CdlInterpreterBody
   public:
 
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
     // This is how a top-level (i.e. per-toplevel) interpreter
     // should get created.
     static CdlInterpreter       make(Tcl_Interp* = 0);
@@ -1084,10 +1084,10 @@ class CdlInterpreterBody
     // Create a slave interpreter for reading in the data in e.g. a
     // cdl_package
     CdlInterpreter create_slave(CdlLoadable, bool /* safe */ = true);
-    
+
     // Make the interpreter safe, a one-way operation.
     void                make_safe();
-    
+
     // The destructor is public.
     virtual ~CdlInterpreterBody();
 
@@ -1104,15 +1104,15 @@ class CdlInterpreterBody
     std::vector<CdlInterpreterCommandEntry>* push_commands(std::vector<CdlInterpreterCommandEntry>&);
     void pop_commands(std::vector<CdlInterpreterCommandEntry>*);
     std::vector<CdlInterpreterCommandEntry>* get_pushed_commands() const;
-    
+
     // Similarly, allow variables to be set, unset and queried
     void        set_variable(std::string, std::string);
     void        unset_variable(std::string);
     std::string get_variable(std::string);
-    
+
     // FIXME: add support for variable traces. These are needed
     // for cdl_value and similar utilities.
-    
+
     // Provide hooks into the AssocData() facilities associated with
     // Tcl interpreters. This makes it possible to store arbitrary
     // data with an interpreter, e.g. to keep track of current state.
@@ -1133,7 +1133,7 @@ class CdlInterpreterBody
     // And support for evaluating an entire file
     int eval_file(std::string);
     int eval_file(std::string, std::string&);
-    
+
     // For use by commands implemented in C++, a way of setting the result
     void set_result(std::string);
 
@@ -1142,7 +1142,7 @@ class CdlInterpreterBody
 
     // Was the result set by the Tcl interpreter or by libcdl?
     bool result_set_by_cdl();
-    
+
     // A utility to quote data that is going to end up in a TCL script.
     static std::string quote(std::string);
 
@@ -1151,7 +1151,7 @@ class CdlInterpreterBody
 
     // Add some data to a comment, allowing for newlines if necessary
     static std::string extend_comment(const std::string&, int, int = 0);
-    
+
     // Write some data to a savefile, throwing an exception on error
     void write_data(Tcl_Channel, std::string);
 
@@ -1212,126 +1212,126 @@ class CdlInterpreterBody
     // exceptions may get thrown.
     class DiagSupport {
       public:
-        DiagSupport(CdlInterpreter interp_arg, CdlDiagnosticFnPtr error_fn_arg, CdlDiagnosticFnPtr warn_fn_arg) {
-            interp         = interp_arg;
-            saved_error_fn = interp->push_error_fn_ptr(error_fn_arg);
-            saved_warn_fn  = interp->push_warning_fn_ptr(warn_fn_arg);
-        }
-        ~DiagSupport() {
-            interp->pop_error_fn_ptr(saved_error_fn);
-            interp->pop_warning_fn_ptr(saved_warn_fn);
-        }
+       DiagSupport(CdlInterpreter interp_arg, CdlDiagnosticFnPtr error_fn_arg, CdlDiagnosticFnPtr warn_fn_arg) {
+           interp         = interp_arg;
+           saved_error_fn = interp->push_error_fn_ptr(error_fn_arg);
+           saved_warn_fn  = interp->push_warning_fn_ptr(warn_fn_arg);
+       }
+       ~DiagSupport() {
+           interp->pop_error_fn_ptr(saved_error_fn);
+           interp->pop_warning_fn_ptr(saved_warn_fn);
+       }
     private:
-        DiagSupport();
+       DiagSupport();
 
-        CdlInterpreter     interp;
-        CdlDiagnosticFnPtr saved_error_fn;
-        CdlDiagnosticFnPtr saved_warn_fn;
+       CdlInterpreter     interp;
+       CdlDiagnosticFnPtr saved_error_fn;
+       CdlDiagnosticFnPtr saved_warn_fn;
     };
     class ContextSupport {
       public:
-        ContextSupport(CdlInterpreter interp_arg, std::string context) {
-            interp = interp_arg;
-            saved_context = interp->push_context(context);
-        }
-        ~ContextSupport() {
-            interp->pop_context(saved_context);
-        }
+       ContextSupport(CdlInterpreter interp_arg, std::string context) {
+           interp = interp_arg;
+           saved_context = interp->push_context(context);
+       }
+       ~ContextSupport() {
+           interp->pop_context(saved_context);
+       }
       private:
-        ContextSupport();
-        CdlInterpreter interp;
-        std::string    saved_context;
+       ContextSupport();
+       CdlInterpreter interp;
+       std::string    saved_context;
     };
     class ContainerSupport {
       public:
-        ContainerSupport(CdlInterpreter interp_arg, CdlContainer container) {
-            interp = interp_arg;
-            saved_container = interp->push_container(container);
-        }
-        ~ContainerSupport() {
-            interp->pop_container(saved_container);
-        }
+       ContainerSupport(CdlInterpreter interp_arg, CdlContainer container) {
+           interp = interp_arg;
+           saved_container = interp->push_container(container);
+       }
+       ~ContainerSupport() {
+           interp->pop_container(saved_container);
+       }
       private:
-        ContainerSupport();
-        CdlInterpreter interp;
-        CdlContainer   saved_container;
+       ContainerSupport();
+       CdlInterpreter interp;
+       CdlContainer   saved_container;
     };
     class NodeSupport {
       public:
-        NodeSupport(CdlInterpreter interp_arg, CdlNode node) {
-            interp = interp_arg;
-            saved_node = interp->push_node(node);
-        }
-        ~NodeSupport() {
-            interp->pop_node(saved_node);
-        }
+       NodeSupport(CdlInterpreter interp_arg, CdlNode node) {
+           interp = interp_arg;
+           saved_node = interp->push_node(node);
+       }
+       ~NodeSupport() {
+           interp->pop_node(saved_node);
+       }
       private:
-        NodeSupport();
-        CdlInterpreter interp;
-        CdlNode        saved_node;
+       NodeSupport();
+       CdlInterpreter interp;
+       CdlNode        saved_node;
     };
     class CommandSupport {
       public:
-        CommandSupport(CdlInterpreter interp_arg, std::vector<CdlInterpreterCommandEntry>& commands) {
-            interp = interp_arg;
-            saved_commands = interp->push_commands(commands);
-        }
-        CommandSupport(CdlInterpreter interp_arg, CdlInterpreterCommandEntry* commands) {
-            unsigned int i;
-            for (i = 0; 0 != commands[i].command; i++) {
-                new_commands.push_back(commands[i]);
-            }
-            interp = interp_arg;
-            saved_commands = interp->push_commands(new_commands);
-        }
-        ~CommandSupport() {
-            interp->pop_commands(saved_commands);
-        }
+       CommandSupport(CdlInterpreter interp_arg, std::vector<CdlInterpreterCommandEntry>& commands) {
+           interp = interp_arg;
+           saved_commands = interp->push_commands(commands);
+       }
+       CommandSupport(CdlInterpreter interp_arg, CdlInterpreterCommandEntry* commands) {
+           unsigned int i;
+           for (i = 0; 0 != commands[i].command; i++) {
+               new_commands.push_back(commands[i]);
+           }
+           interp = interp_arg;
+           saved_commands = interp->push_commands(new_commands);
+       }
+       ~CommandSupport() {
+           interp->pop_commands(saved_commands);
+       }
 
       private:
-        CommandSupport();
-        CdlInterpreter interp;
-        std::vector<CdlInterpreterCommandEntry>* saved_commands;
-        std::vector<CdlInterpreterCommandEntry> new_commands;
+       CommandSupport();
+       CdlInterpreter interp;
+       std::vector<CdlInterpreterCommandEntry>* saved_commands;
+       std::vector<CdlInterpreterCommandEntry> new_commands;
     };
 
     // Similar utility classes for variables and assoc data.
     class VariableSupport {
       public:
-        VariableSupport(CdlInterpreter interp_arg, std::string varname_arg, std::string data) {
-            interp  = interp_arg;
-            varname = varname_arg;
-            interp->set_variable(varname, data);
-        }
-        ~VariableSupport() {
-            interp->unset_variable(varname);
-        }
+       VariableSupport(CdlInterpreter interp_arg, std::string varname_arg, std::string data) {
+           interp  = interp_arg;
+           varname = varname_arg;
+           interp->set_variable(varname, data);
+       }
+       ~VariableSupport() {
+           interp->unset_variable(varname);
+       }
       private:
-        VariableSupport();
-        CdlInterpreter interp;
-        std::string    varname;
+       VariableSupport();
+       CdlInterpreter interp;
+       std::string    varname;
     };
     class AssocSupport {
       public:
-        AssocSupport(CdlInterpreter interp_arg, const char* name_arg, ClientData data, Tcl_InterpDeleteProc* del_proc = 0) {
-            interp = interp_arg;
-            name   = name_arg;
-            interp->set_assoc_data(name, data, del_proc);
-        }
-        ~AssocSupport() {
-            interp->delete_assoc_data(name);
-        }
+       AssocSupport(CdlInterpreter interp_arg, const char* name_arg, ClientData data, Tcl_InterpDeleteProc* del_proc = 0) {
+           interp = interp_arg;
+           name   = name_arg;
+           interp->set_assoc_data(name, data, del_proc);
+       }
+       ~AssocSupport() {
+           interp->delete_assoc_data(name);
+       }
       private:
-        AssocSupport();
-        CdlInterpreter interp;
-        const char*    name;
+       AssocSupport();
+       CdlInterpreter interp;
+       const char*    name;
     };
-    
+
     // Some command implementations may want to access other Tcl library
     // routines such as Tcl_SplitList(). This requires convenient access
     // to the underlying Tcl interpreter.
     Tcl_Interp*         get_tcl_interpreter() const;
-    
+
     // For use by the assertion macros.
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
 
@@ -1341,8 +1341,8 @@ class CdlInterpreterBody
     static int          tcl_command_proc(ClientData, Tcl_Interp*, int, const char*[]);
 
     // This key is used to access the CdlInterpreter assoc data.
-    static char*        cdlinterpreter_assoc_data_key;
-    
+    static const char*        cdlinterpreter_assoc_data_key;
+
     // Do not allow static instances of a Cdl interpreter. There are too
     // many possible failure conditions. Cdl interpreters can only be
     // created dynamically via make(), which will invoke this.
@@ -1353,7 +1353,7 @@ class CdlInterpreterBody
     CdlInterpreterBody(const CdlInterpreterBody&);
     CdlInterpreterBody& operator=(const CdlInterpreterBody&);
 
-    
+
     Tcl_Interp*                 tcl_interp;     // The underlying Tcl interpreter
     bool                        owns_interp;    // Was the Tcl interpreter created by the library?
     std::vector<CdlInterpreter> slaves;         // All slave interpreters
@@ -1367,17 +1367,17 @@ class CdlInterpreterBody
     CdlDiagnosticFnPtr          error_fn_ptr;
     CdlDiagnosticFnPtr          warning_fn_ptr;
     bool                        cdl_result;
-    
+
     std::vector<CdlInterpreterCommandEntry>* current_commands; // for push() and pop()
-    
+
     enum {
-        CdlInterpreterBody_Invalid = 0,
-        CdlInterpreterBody_Magic   = 0x0be67689
+       CdlInterpreterBody_Invalid = 0,
+       CdlInterpreterBody_Magic   = 0x0be67689
     } cdlinterpreterbody_cookie;
 };
 
 //}}}
-//{{{  CdlReference/Referrer classes                    
+//{{{  CdlReference/Referrer classes
 
 // ---------------------------------------------------------------------------
 // CDL objects are organised primarily in a tree hierarchy. For
@@ -1449,14 +1449,14 @@ class CdlReference {
     // CdlReferrer must be a friend so that when a package gets unloaded
     // it can clean up all references to it.
     friend class        CdlReferrer;
-    
+
   public:
 
     // The default constructor should not normally be used, instead
     // a string should be supplied. However there are vectors of
     // reference objects...
     CdlReference();
-    
+
     // The main constructor supplies the name of the referenced
     // entity. The resulting object will be unbound.
     CdlReference(const std::string);
@@ -1467,11 +1467,11 @@ class CdlReference {
     // The assignment operator is needed for STL operations.
     // Again it only makes sense of unbound objects.
     CdlReference& operator=(const CdlReference&);
-    
+
     // The destructor is only valid for unbound objects. All references
     // should be unbound before an entity can be destroyed.
     ~CdlReference();
-    
+
     // Access the various fields.
     void               set_destination_name(const std::string);
     const std::string& get_destination_name() const;
@@ -1495,11 +1495,11 @@ class CdlReference {
     // This is used by the ASSERT_CLASS() and ASSERT_THIS() macros.
     bool check_this(cyg_assert_class_zeal cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
   private:
-    
+
     // The data fields. The name is usually filled in by the
     // constructor. The destination defaults to zero for an unbound
     // object and gets filled in by the bind() operation.
@@ -1507,8 +1507,8 @@ class CdlReference {
     CdlNode     dest;
 
     enum {
-        CdlReference_Invalid = 0,
-        CdlReference_Magic   = 0x3f908608
+       CdlReference_Invalid = 0,
+       CdlReference_Magic   = 0x3f908608
     } cdlreference_cookie;
 };
 
@@ -1538,7 +1538,7 @@ class CdlReferrer {
     // members, since these two functions are really responsible for
     // creating and destroying referrer objects.
     friend class        CdlReference;
-    
+
   public:
 
     // The default constructor, copy constructor and assignment
@@ -1556,22 +1556,22 @@ class CdlReferrer {
     void        update(CdlTransaction, CdlNode, CdlUpdate);
     bool        check_this(cyg_assert_class_zeal=cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
 
     CdlNode     source;
     CdlProperty source_property;
-    
+
     enum {
-        CdlReferrer_Invalid = 0,
-        CdlReferrer_Magic   = 0x70e1fc37
+       CdlReferrer_Invalid = 0,
+       CdlReferrer_Magic   = 0x70e1fc37
     } cdlreferrer_cookie;
 };
 
 //}}}
-//{{{  Value and Expression  classes                    
+//{{{  Value and Expression  classes
 
-//{{{  CdlEvalContext                   
+//{{{  CdlEvalContext
 
 // ----------------------------------------------------------------------------
 // Expression evaluation always happens within a certain context.
@@ -1583,9 +1583,9 @@ class CdlReferrer {
 // evaluation-related routines, a utility class is provided.
 
 class CdlEvalContext {
-    
+
     friend class CdlTest;
-    
+
   public:
 
     CdlTransaction      transaction;
@@ -1600,10 +1600,10 @@ class CdlEvalContext {
     // a node or, more specifically, a valuable.
     CdlNode             resolve_reference(CdlExpression, int);
     CdlValuable         resolve_valuable_reference(CdlExpression, int);
-    
+
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
   private:
@@ -1612,14 +1612,14 @@ class CdlEvalContext {
     CdlEvalContext();
 
     enum {
-        CdlEvalContext_Invalid  = 0,
-        CdlEvalContext_Magic    = 0x03434be9
+       CdlEvalContext_Invalid  = 0,
+       CdlEvalContext_Magic    = 0x03434be9
     } cdlevalcontext_cookie;
-    
+
 };
 
 //}}}
-//{{{  CdlSimpleValue                   
+//{{{  CdlSimpleValue
 
 // ----------------------------------------------------------------------------
 // Expression evaluation happens in terms of CdlSimpleValue objects.
@@ -1646,7 +1646,7 @@ class CdlEvalContext {
 // The default value is 0.
 
 class CdlSimpleValue {
-    
+
     friend class CdlTest;
 
   public:
@@ -1663,49 +1663,49 @@ class CdlSimpleValue {
     CdlSimpleValue&     operator=(std::string);
     CdlSimpleValue&     operator=(cdl_int);
     CdlSimpleValue&     operator=(double);
-    
+
     CdlSimpleValue&     operator=(bool);
-    
+
     bool                operator==(const CdlSimpleValue&) const;
     bool                operator!=(const CdlSimpleValue&) const;
     bool                operator==(std::string arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this == val;
+       CdlSimpleValue val(arg);
+       return *this == val;
     }
     bool                operator==(cdl_int arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this == val;
+       CdlSimpleValue val(arg);
+       return *this == val;
     }
     bool                operator==(double arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this == val;
+       CdlSimpleValue val(arg);
+       return *this == val;
     }
     bool                operator!=(std::string arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this != val;
+       CdlSimpleValue val(arg);
+       return *this != val;
     }
     bool                operator!=(cdl_int arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this != val;
+       CdlSimpleValue val(arg);
+       return *this != val;
     }
     bool                operator!=(double arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this != val;
+       CdlSimpleValue val(arg);
+       return *this != val;
     }
-    
+
     void                set_value(std::string, CdlValueFormat = CdlValueFormat_Default);
     std::string         get_value() const;
-    
+
     bool                has_integer_value() const;
     void                set_integer_value(cdl_int, CdlValueFormat = CdlValueFormat_Default);
     cdl_int             get_integer_value() const;
-    
+
     bool                has_double_value() const;
     void                set_double_value(double, CdlValueFormat = CdlValueFormat_Default);
     double              get_double_value() const;
@@ -1716,26 +1716,26 @@ class CdlSimpleValue {
     void                set_value_format(CdlSimpleValue&, CdlSimpleValue&);
 
     static void         eval_valuable(CdlEvalContext&, CdlValuable, CdlSimpleValue&);
-    
+
     // For expression evaluation, it is often convenient to get hold
     // of a boolean as well. This may indicate a non-empty string
     // or a non-zero value.
     bool                get_bool_value() const;
-    
+
     // This class is too simple to warrant even a cookie validation.
     bool check_this(cyg_assert_class_zeal zeal = cyg_quick) const {
-        return true;
+       return true;
     }
-    
+
   protected:
 
   private:
     enum {
-        int_valid       = 0x01,
-        double_valid    = 0x02,
-        string_valid    = 0x04,
-        int_invalid     = 0x08,
-        double_invalid  = 0x10
+       int_valid       = 0x01,
+       double_valid    = 0x02,
+       string_valid    = 0x04,
+       int_invalid     = 0x08,
+       double_invalid  = 0x10
     };
     mutable int         valid_flags;
     mutable std::string value;
@@ -1745,7 +1745,7 @@ class CdlSimpleValue {
 };
 
 //}}}
-//{{{  CdlListValue                     
+//{{{  CdlListValue
 
 // ----------------------------------------------------------------------------
 // Evaluating a list expression results in a set of possible values, but
@@ -1769,13 +1769,13 @@ class CdlSimpleValue {
 // double to avoid unnecessary string conversions.
 
 class CdlListValue {
-    
+
     friend class        CdlTest;
 
     // A list value will only be filled in when a list expression is evaluated.
     // The members cannot be updated by other means.
     friend class        CdlListExpressionBody;
-    
+
   public:
 
     CdlListValue();
@@ -1796,20 +1796,20 @@ class CdlListValue {
 
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     std::vector<CdlSimpleValue>                 table;
     std::vector<std::pair<cdl_int, cdl_int> >   integer_ranges;
     std::vector<std::pair<double, double> >     double_ranges;
 
     enum {
-        CdlListValue_Invalid  = 0,
-        CdlListValue_Magic    = 0x2183a943
+       CdlListValue_Invalid  = 0,
+       CdlListValue_Magic    = 0x2183a943
     } cdllistvalue_cookie;
 };
 
 //}}}
-//{{{  CdlValue                         
+//{{{  CdlValue
 
 // ----------------------------------------------------------------------------
 // Values in CDL are non-trivial compared with some other languages.
@@ -1903,7 +1903,7 @@ class CdlListValue {
 // The first function can be used if e.g. the user wants to
 // change his or her mind and go back to the default value
 // rather than a user value. The user value is not forgotten
-// and can be reinstated. 
+// and can be reinstated.
 //
 // invalidate_source() can be used to completely cancel a
 // value source. If that source happens to be the current one
@@ -1959,7 +1959,7 @@ class CdlListValue {
 // whatever the flavor happens to be.
 
 class CdlValue {
-    
+
     friend class CdlTest;
 
   public:
@@ -1980,97 +1980,97 @@ class CdlValue {
     cdl_int             get_integer_value(CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(CdlValueSource = CdlValueSource_Current) const;
-    
+
     void set_source(CdlValueSource);
     void invalidate_source(CdlValueSource);
-    
+
     void set_enabled(bool, CdlValueSource);
     void enable(CdlValueSource source)
     {
-        set_enabled(true, source);
+       set_enabled(true, source);
     }
     void disable(CdlValueSource source)
     {
-        set_enabled(false, source);
+       set_enabled(false, source);
     }
 
     void set_value(CdlSimpleValue&, CdlValueSource);
     void set_value(std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_integer_value(cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_double_value(double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_enabled_and_value(bool, CdlSimpleValue&, CdlValueSource);
     void set_enabled_and_value(bool enabled, std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void set_enabled_and_value(bool enabled, cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void set_enabled_and_value(bool enabled, double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void enable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(true, val, source);
+       set_enabled_and_value(true, val, source);
     }
     void enable_and_set_value(std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void enable_and_set_value(cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void enable_and_set_value(double data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void disable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(false, val, source);
+       set_enabled_and_value(false, val, source);
     }
     void disable_and_set_value(std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void disable_and_set_value(cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void disable_and_set_value(double data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
 
     void set(CdlSimpleValue&, CdlValueSource);
-    
+
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
     // This should only be used by the library itself.
     void                set_flavor(CdlValueFlavor);
-    
+
   protected:
-    
+
   private:
-    
+
     CdlValueFlavor      flavor;
     CdlValueSource      current_source;
 
@@ -2081,15 +2081,15 @@ class CdlValue {
     bool                source_valid[4];
     bool                enabled[4];
     CdlSimpleValue      values[4];
-    
+
     enum {
-        CdlValue_Invalid = 0,
-        CdlValue_Magic   = 0x41837960
+       CdlValue_Invalid = 0,
+       CdlValue_Magic   = 0x41837960
     } cdlvalue_cookie;
 };
 
 //}}}
-//{{{  CdlSubexpression                 
+//{{{  CdlSubexpression
 
 // ----------------------------------------------------------------------------
 // Expressions come into existence primarily as the result of reading
@@ -2172,13 +2172,13 @@ struct CdlSubexpression {
     int                 lhs_index;              // for all non-constant operators
     int                 rhs_index;              // for binary and ternary operators only
     int                 rrhs_index;             // only for ternary operators.
-    
+
     int                 func;                   // iff CdlExprOp_Function
     int                 args[CdlFunction_MaxArgs];
 };
 
 //}}}
-//{{{  CdlFunction                      
+//{{{  CdlFunction
 
 // ----------------------------------------------------------------------------
 // Generic support for function parsing, evaluation, and inference. The
@@ -2186,18 +2186,18 @@ struct CdlSubexpression {
 // core via static constructors.
 
 class CdlFunction {
-    
+
     friend class CdlTest;
-    
+
   public:
     CdlFunction(const char* /* name */, int /* no_args */,
-                void (*)(CdlExpression, const CdlSubexpression&),
-                void (*)(CdlEvalContext&, CdlExpression, const CdlSubexpression&, CdlSimpleValue&),
-                bool (*)(CdlTransaction, CdlExpression, unsigned int, bool, int),
-                bool (*)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int)
-                );
+               void (*)(CdlExpression, const CdlSubexpression&),
+               void (*)(CdlEvalContext&, CdlExpression, const CdlSubexpression&, CdlSimpleValue&),
+               bool (*)(CdlTransaction, CdlExpression, unsigned int, bool, int),
+               bool (*)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int)
+               );
     ~CdlFunction();
-    
+
     static bool         is_function(std::string, int&);
     static std::string  get_name(int);
     static int          get_args_count(int);
@@ -2210,7 +2210,7 @@ class CdlFunction {
     static void         (*null_check)(CdlExpression, const CdlSubexpression&);
     static bool         (*null_infer_bool)(CdlTransaction, CdlExpression, unsigned int, bool, int);
     static bool         (*null_infer_value)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int);
-    
+
   protected:
 
   private:
@@ -2228,13 +2228,13 @@ class CdlFunction {
     void                (*eval_fn)(CdlEvalContext&, CdlExpression, const CdlSubexpression&, CdlSimpleValue&);
     bool                (*infer_bool_fn)(CdlTransaction, CdlExpression, unsigned int, bool, int);
     bool                (*infer_value_fn)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int);
-    
+
     // The default constructor is illegal
     CdlFunction();
 };
 
 //}}}
-//{{{  CdlExpression                    
+//{{{  CdlExpression
 
 // ----------------------------------------------------------------------------
 // And now for the expression class itself.
@@ -2242,7 +2242,7 @@ class CdlFunction {
 class CdlExpressionBody {
 
     friend class CdlTest;
-    
+
   public:
 
     // The default constructor is basically a no-op, new expression
@@ -2268,7 +2268,7 @@ class CdlExpressionBody {
     int                                 first_subexpression;
     std::vector<CdlReference>           references;
     bool                                update(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
-    
+
     // There are a number of parsing functions. The first one is
     // used by higher-level code to parse a single expression. Its
     // argument is a single string (which may be the result of
@@ -2295,7 +2295,7 @@ class CdlExpressionBody {
     // expression.
     //
     // NOTE: possibly this should should be a protected member, since
-    // its main use is in parsing goal expressions. 
+    // its main use is in parsing goal expressions.
     static void continue_parse(CdlExpression, std::string, int&, CdlExprOp&, int&);
 
     // Evaluating expressions. Note that this may fail at run-time
@@ -2311,46 +2311,46 @@ class CdlExpressionBody {
     void eval(CdlEvalContext&, CdlSimpleValue&);
     void eval_internal(CdlEvalContext&, CdlSimpleValue&);
     void eval_subexpression(CdlEvalContext&, int, CdlSimpleValue&);
-    
+
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
-    
+
     bool        check_this(cyg_assert_class_zeal cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
     // The default constructor does very little, the main work
     // is done by the various parsing functions. However it is
     // available to derived classes, especially goal expressions.
     CdlExpressionBody();
-    
+
     // The copy constructor has to be usable by derived classes,
     // e.g. CdlExpressionProperty
     CdlExpressionBody(const CdlExpressionBody&);
-    
+
   private:
 
-    
+
     // The assignment operator is illegal.
     CdlExpressionBody&  operator=(const CdlExpressionBody&);
 
     // The string that was parsed originally
     std::string                 expression_string;
-    
+
     enum {
-        CdlExpressionBody_Invalid       = 0,
-        CdlExpressionBody_Magic         = 0x760293a3
+       CdlExpressionBody_Invalid       = 0,
+       CdlExpressionBody_Magic         = 0x760293a3
     } cdlexpressionbody_cookie;
 };
 
 //}}}
-//{{{  CdlListExpression                
+//{{{  CdlListExpression
 
 // ----------------------------------------------------------------------------
 // The main use of list expressions is for the legal_values
 // properties. Essentially a list expression is just a vector of
-// ordinary expressions and ranges of expressions. 
+// ordinary expressions and ranges of expressions.
 
 class CdlListExpressionBody {
 
@@ -2361,7 +2361,7 @@ class CdlListExpressionBody {
     // Availability of constructors etc. is as per the ordinary
     // expression class.
     virtual ~CdlListExpressionBody();
-    
+
     // The data associated with a list expression is a vector of
     // expressions, plus a vector of expression pairs constituting
     // ranges. As with ordinary expressions the data is fully public
@@ -2372,13 +2372,13 @@ class CdlListExpressionBody {
     // Parsing. This involves taking a single string, typically from
     // a CDL script, and parsing one or more ordinary expressions.
     static CdlListExpression parse(std::string);
-    
+
     // Evaluation support. A list expression evaluates to a list value.
     void eval(CdlEvalContext&, CdlListValue&);
 
     // More commonly client code is going to be interested in whether
     // or not a particular value is a legal member. The result
-    // cache ensures that it is possible to 
+    // cache ensures that it is possible to
     bool is_member(CdlEvalContext&, CdlSimpleValue&);
     bool is_member(CdlEvalContext&, std::string);
     bool is_member(CdlEvalContext&, cdl_int);
@@ -2386,10 +2386,10 @@ class CdlListExpressionBody {
 
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlListExpressionBody(const CdlListExpressionBody&);
     bool        update(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
@@ -2401,15 +2401,15 @@ class CdlListExpressionBody {
 
     void eval_internal(CdlEvalContext&, CdlListValue&);
     std::string         expression_string;
-    
+
     enum {
-        CdlListExpressionBody_Invalid   = 0,
-        CdlListExpressionBody_Magic     = 0x7da4bcc2
+       CdlListExpressionBody_Invalid   = 0,
+       CdlListExpressionBody_Magic     = 0x7da4bcc2
     } cdllistexpressionbody_cookie;
 };
 
 //}}}
-//{{{  CdlGoalExpression                
+//{{{  CdlGoalExpression
 
 // ----------------------------------------------------------------------------
 // A goal expression inherits privately from ordinary expressions. Essentially
@@ -2438,13 +2438,13 @@ class CdlGoalExpressionBody : private CdlExpressionBody {
     // Provide public access to the underlying expression object,
     // useful for the inference engine
     CdlExpression               get_expression();
-    
+
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlGoalExpressionBody(const CdlGoalExpressionBody&);
 
@@ -2454,17 +2454,17 @@ class CdlGoalExpressionBody : private CdlExpressionBody {
     CdlGoalExpressionBody();
     CdlGoalExpressionBody& operator=(const CdlGoalExpressionBody&);
     void eval_internal(CdlEvalContext&, bool&);
-    
+
     std::string expression_string;
-    
+
     enum {
-        CdlGoalExpressionBody_Invalid = 0,
-        CdlGoalExpressionBody_Magic   = 0x5a58bb24
+       CdlGoalExpressionBody_Invalid = 0,
+       CdlGoalExpressionBody_Magic   = 0x5a58bb24
     } cdlgoalexpressionbody_cookie;
 };
 
 //}}}
-//{{{  CdlInfer                         
+//{{{  CdlInfer
 
 // ----------------------------------------------------------------------------
 // A utility class related to inference. This exports the main functions
@@ -2487,7 +2487,7 @@ class CdlInfer {
 //}}}
 
 //}}}
-//{{{  CdlConflict classes                              
+//{{{  CdlConflict classes
 
 // ----------------------------------------------------------------------------
 // As a configuration is created and modified there will be times when
@@ -2544,19 +2544,19 @@ class CdlInfer {
 // on a global basis, only on a per-transaction basis.
 
 class CdlConflictBody {
-    
+
     friend class CdlTest;
 
     // Transactions and conflicts are closely connected
     friend class CdlTransactionBody;
-    
+
   public:
 
     // Creation happens only inside a derived class.
     // Clearing a conflict only happens inside transactions.
     // Destroying a conflict only happens from inside a
     // per-transaction clear(), or during a transaction commit.
-    
+
     // Is this conflict part of a transaction, or has it been committed to the toplevel.
     CdlTransaction      get_transaction() const;
 
@@ -2571,14 +2571,14 @@ class CdlConflictBody {
     // CdlToplevel::resolve_all_conflicts(). The conflict may cease to
     // exist as a side-effect of this call.
     void                resolve();
-  
+
     // Keep track of whether or not this conflict has a solution
     // 1) a conflict may have a current solution. This gets invalidated
     //    whenever there is a change to a value that was referenced
     //    while identifying the solution.
     //
     //    A current solution is indicated by a non-empty solution vector.
-    //    
+    //
     // 2) a conflict may not have a current solution. Again this gets
     //    invalidated whenever a referred value changes. There is a boolean
     //    to keep track of this.
@@ -2590,7 +2590,7 @@ class CdlConflictBody {
     const std::vector<std::pair<CdlValuable, CdlValue> >& get_solution() const;
     const std::set<CdlValuable>& get_solution_references() const;
     void                clear_solution();
-    
+
     // Provide a text message "explaining" the conflict.
     // This only makes sense for derived classes.
     virtual std::string get_explanation() const = 0;
@@ -2610,23 +2610,23 @@ class CdlConflictBody {
     void                enable();
     bool                is_enabled() const;
     std::string         get_disabled_reason() const;
-    
+
     bool check_this(cyg_assert_class_zeal zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
     CdlConflictBody(CdlTransaction, CdlNode, CdlProperty, bool /* structural */);
-    
+
     // The destructor gets accessed from inside the friend transaction class,
     // either during a clear_conflict() or during a transaction commit.
     virtual ~CdlConflictBody();
-    
+
     // All conflicts are associated with a node and a property.
     // This information will be useful to derived classes'
     // implementations of get_explanation()
     CdlNode             node;
     CdlProperty         property;
-    
+
   private:
 
     // Attempt to resolve a conflict in a sub-transaction
@@ -2634,7 +2634,7 @@ class CdlConflictBody {
     // There are additional exported interfaces inside and outside
     // the transaction class.
     virtual bool        inner_resolve(CdlTransaction, int);
-    
+
     // Keep track of the transaction in which this conflict was created.
     // The field is cleared at the end of a transaction.
     CdlTransaction      transaction;
@@ -2644,21 +2644,21 @@ class CdlConflictBody {
     // needs to be available at base constructor time so
     // a virtual function is not appropriate.
     bool                structural;
-    
+
     // Solution support
     bool                                           no_solution;
     std::vector<std::pair<CdlValuable, CdlValue> > solution;
     std::set<CdlValuable>                          solution_references;
     void update_solution_validity(CdlValuable);
-    
+
     // Users may disable a conflict. Usually they will have to
     // supply a reason for this.
     bool                enabled;
     std::string         reason;
 
     enum {
-        CdlConflictBody_Invalid = 0,
-        CdlConflictBody_Magic   = 0x073e8853
+       CdlConflictBody_Invalid = 0,
+       CdlConflictBody_Magic   = 0x073e8853
     } cdlconflictbody_cookie;
 
     // Illegal operations. Conflicts always live on the heap.
@@ -2671,10 +2671,10 @@ class CdlConflictBody {
 // An unresolved conflict means that there is a reference in some
 // property to an entity that is not yet in the current configuration.
 // The class provides convenient access to the name of the unresolved
-// entity. 
+// entity.
 
 class CdlConflict_UnresolvedBody : public CdlConflictBody {
-    
+
     friend class CdlTest;
   public:
 
@@ -2693,10 +2693,10 @@ class CdlConflict_UnresolvedBody : public CdlConflictBody {
     CdlConflict_UnresolvedBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string         target_name;
     enum {
-        CdlConflict_UnresolvedBody_Invalid      = 0,
-        CdlConflict_UnresolvedBody_Magic        = 0x1b24bb8a
+       CdlConflict_UnresolvedBody_Invalid      = 0,
+       CdlConflict_UnresolvedBody_Magic        = 0x1b24bb8a
     } cdlconflict_unresolvedbody_cookie;
-    
+
     CdlConflict_UnresolvedBody();
     CdlConflict_UnresolvedBody(const CdlConflict_UnresolvedBody&);
     CdlConflict_UnresolvedBody& operator=(const CdlConflict_UnresolvedBody&);
@@ -2717,7 +2717,7 @@ class CdlConflict_IllegalValueBody : public CdlConflictBody {
     static void         make(CdlTransaction, CdlNode, CdlProperty);
 
     bool                resolution_implemented() const;
-    
+
     std::string         get_explanation() const;
     void                set_explanation(std::string);
     static bool         test(CdlConflict);
@@ -2732,8 +2732,8 @@ class CdlConflict_IllegalValueBody : public CdlConflictBody {
     CdlConflict_IllegalValueBody(CdlTransaction, CdlNode, CdlProperty);
     std::string explanation;
     enum {
-        CdlConflict_IllegalValueBody_Invalid    = 0,
-        CdlConflict_IllegalValueBody_Magic      = 0x4fb27ed1
+       CdlConflict_IllegalValueBody_Invalid    = 0,
+       CdlConflict_IllegalValueBody_Magic      = 0x4fb27ed1
     } cdlconflict_illegalvaluebody_cookie;
 
     CdlConflict_IllegalValueBody();
@@ -2766,14 +2766,14 @@ class CdlConflict_EvalExceptionBody : public CdlConflictBody {
     CdlConflict_EvalExceptionBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string explanation;
     enum {
-        CdlConflict_EvalExceptionBody_Invalid   = 0,
-        CdlConflict_EvalExceptionBody_Magic     = 0x7e64bc41
+       CdlConflict_EvalExceptionBody_Invalid   = 0,
+       CdlConflict_EvalExceptionBody_Magic     = 0x7e64bc41
     } cdlconflict_evalexceptionbody_cookie;
 };
 
 // ----------------------------------------------------------------------------
 // A goal expression evaluates to false. Producing sensible diagnostics
-// depends on a detailed understanding of goal expressions, which will 
+// depends on a detailed understanding of goal expressions, which will
 // have to wait until the inference engine comes along.
 
 class CdlConflict_RequiresBody : public CdlConflictBody {
@@ -2784,7 +2784,7 @@ class CdlConflict_RequiresBody : public CdlConflictBody {
 
     static void         make(CdlTransaction, CdlNode, CdlProperty);
     bool                resolution_implemented() const;
-    
+
     std::string         get_explanation() const;
     static bool         test(CdlConflict);
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
@@ -2797,8 +2797,8 @@ class CdlConflict_RequiresBody : public CdlConflictBody {
     bool     inner_resolve(CdlTransaction, int);
     CdlConflict_RequiresBody(CdlTransaction, CdlNode, CdlProperty);
     enum {
-        CdlConflict_RequiresBody_Invalid        = 0,
-        CdlConflict_RequiresBody_Magic          = 0x78436331
+       CdlConflict_RequiresBody_Invalid        = 0,
+       CdlConflict_RequiresBody_Magic          = 0x78436331
     } cdlconflict_requiresbody_cookie;
 };
 
@@ -2829,15 +2829,15 @@ class CdlConflict_DataBody : public CdlConflictBody {
     CdlConflict_DataBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string message;
     enum {
-        CdlConflict_DataBody_Invalid    = 0,
-        CdlConflict_DataBody_Magic      = 0x2cec7ad8
+       CdlConflict_DataBody_Invalid    = 0,
+       CdlConflict_DataBody_Magic      = 0x2cec7ad8
     } cdlconflict_databody_cookie;
 };
 
 //}}}
-//{{{  CdlProperty class and derived classes            
+//{{{  CdlProperty class and derived classes
 
-//{{{  Description                              
+//{{{  Description
 
 // ---------------------------------------------------------------------------
 // There are many different kinds of property. An alias property contains
@@ -2857,7 +2857,7 @@ class CdlConflict_DataBody : public CdlConflictBody {
 // constructor.
 
 //}}}
-//{{{  CdlPropertyId_xxx                        
+//{{{  CdlPropertyId_xxx
 
 // ----------------------------------------------------------------------------
 // Properties are identified by strings rather than by an enum or anything
@@ -2917,7 +2917,7 @@ class CdlConflict_DataBody : public CdlConflictBody {
 #define CdlPropertyId_Wizard            "Wizard"
 
 //}}}
-//{{{  Base class                               
+//{{{  Base class
 
 // ----------------------------------------------------------------------------
 // The base class is never used directly. Instead the appropriate derived
@@ -2927,11 +2927,11 @@ class CdlConflict_DataBody : public CdlConflictBody {
 class CdlPropertyBody {
 
     friend class CdlTest;
-    
+
   public:
     // The destructor is public, to avoid possible problems with STL.
     virtual ~CdlPropertyBody();
-    
+
     // These routines provide access to the basic data.
     std::string get_property_name() const;
 
@@ -2941,12 +2941,12 @@ class CdlPropertyBody {
     std::string get_option(std::string) const;
     const std::vector<std::string>&     get_argv() const;
     const std::vector<std::pair<std::string,std::string> >&     get_options() const;
-    
+
     // Resolve any references, or generate/update appropriate conflict
     // objects. The default implementation is a no-op because not all
     // properties involve references.
     virtual void update(CdlTransaction, CdlNode /* source */, CdlNode /* dest */, CdlUpdate);
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
@@ -2969,7 +2969,7 @@ class CdlPropertyBody {
     // <name/value> pairs, and is usually obtained via
     // CdlParse::parse_options().
     CdlPropertyBody(CdlNode, std::string, int argc, const char* argv[], std::vector<std::pair<std::string,std::string> >&);
-    
+
   private:
     // This string indicates the command used to define this property,
     // e.g. "doc" or "define_proc". It is provided to the constructor.
@@ -2986,15 +2986,15 @@ class CdlPropertyBody {
     CdlPropertyBody();
     CdlPropertyBody(const CdlPropertyBody&);
     CdlPropertyBody& operator=(const CdlPropertyBody&);
-    
+
     enum {
-        CdlPropertyBody_Invalid = 0,
-        CdlPropertyBody_Magic   = 0x60dd58f4
+       CdlPropertyBody_Invalid = 0,
+       CdlPropertyBody_Magic   = 0x60dd58f4
     } cdlpropertybody_cookie;
 };
 
 //}}}
-//{{{  CdlProperty_Minimal                      
+//{{{  CdlProperty_Minimal
 
 // ----------------------------------------------------------------------------
 // This class is used for properties that are simple flags, e.g. no_define.
@@ -3003,7 +3003,7 @@ class CdlPropertyBody {
 class CdlProperty_MinimalBody : public CdlPropertyBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_Minimal   make(CdlNode, std::string, int, const char*[], std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_MinimalBody( );
@@ -3011,14 +3011,14 @@ class CdlProperty_MinimalBody : public CdlPropertyBody {
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
-    
+
   private:
     typedef CdlPropertyBody     inherited;
-    
+
     CdlProperty_MinimalBody(CdlNode, std::string, int, const char*[], std::vector<std::pair<std::string,std::string> >&);
     enum {
-        CdlProperty_MinimalBody_Invalid = 0,
-        CdlProperty_MinimalBody_Magic   = 0x25625b8c
+       CdlProperty_MinimalBody_Invalid = 0,
+       CdlProperty_MinimalBody_Magic   = 0x25625b8c
     } cdlproperty_minimalbody_cookie;
 
     CdlProperty_MinimalBody();
@@ -3027,7 +3027,7 @@ class CdlProperty_MinimalBody : public CdlPropertyBody {
 };
 
 //}}}
-//{{{  CdlProperty_String                       
+//{{{  CdlProperty_String
 
 // ----------------------------------------------------------------------------
 // A string property contains a single piece of additional data in the form
@@ -3036,10 +3036,10 @@ class CdlProperty_MinimalBody : public CdlPropertyBody {
 class CdlProperty_StringBody : public CdlPropertyBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_String    make(CdlNode, std::string, std::string, int, const char*[],
-                                      std::vector<std::pair<std::string,std::string> >&);
+                                     std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_StringBody();
 
     std::string                 get_string(void) const;
@@ -3047,16 +3047,16 @@ class CdlProperty_StringBody : public CdlPropertyBody {
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
-    
+
   private:
     typedef CdlPropertyBody     inherited;
-    
+
     CdlProperty_StringBody(CdlNode, std::string /* id */, std::string /* data */, int, const char*[],
-                           std::vector<std::pair<std::string,std::string> >&);
+                          std::vector<std::pair<std::string,std::string> >&);
     std::string                 data;
     enum {
-        CdlProperty_StringBody_Invalid = 0,
-        CdlProperty_StringBody_Magic   = 0x78d1ca94
+       CdlProperty_StringBody_Invalid = 0,
+       CdlProperty_StringBody_Magic   = 0x78d1ca94
     } cdlproperty_stringbody_cookie;
 
     // The only legal constructor supplies all the data.
@@ -3066,7 +3066,7 @@ class CdlProperty_StringBody : public CdlPropertyBody {
 };
 
 //}}}
-//{{{  CdlProperty_TclCode                      
+//{{{  CdlProperty_TclCode
 
 // ----------------------------------------------------------------------------
 // A TclCode property is currently equivalent to a string property. In
@@ -3084,37 +3084,37 @@ class CdlProperty_TclCodeBody : public CdlPropertyBody {
 
   public:
     static CdlProperty_TclCode   make(CdlNode, std::string, cdl_tcl_code, int, const char*[],
-                                      std::vector<std::pair<std::string,std::string> >&);
+                                     std::vector<std::pair<std::string,std::string> >&);
     static CdlProperty_TclCode   make(CdlNode, std::string, cdl_int, cdl_tcl_code, int, const char*[],
-                                      std::vector<std::pair<std::string,std::string> >&);
+                                     std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_TclCodeBody();
-    
+
     cdl_int                     get_number(void) const;
     const cdl_tcl_code&         get_code(void)   const;
     bool                        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     typedef CdlPropertyBody     inherited;
-    
+
     CdlProperty_TclCodeBody(CdlNode, std::string, cdl_int, cdl_tcl_code, int, const char*[],
-                            std::vector<std::pair<std::string,std::string> >&);
+                           std::vector<std::pair<std::string,std::string> >&);
 
     cdl_int                     number;
     cdl_tcl_code                code;
     enum {
-        CdlProperty_TclCodeBody_Invalid = 0,
-        CdlProperty_TclCodeBody_Magic   = 0x7b14d4e5
+       CdlProperty_TclCodeBody_Invalid = 0,
+       CdlProperty_TclCodeBody_Magic   = 0x7b14d4e5
     } cdlproperty_tclcodebody_cookie;
 
     CdlProperty_TclCodeBody();
     CdlProperty_TclCodeBody(const CdlProperty_TclCodeBody&);
     CdlProperty_TclCodeBody& operator=(const CdlProperty_TclCodeBody&);
-    
+
 };
 
 //}}}
-//{{{  CdlProperty_StringVector                 
+//{{{  CdlProperty_StringVector
 
 // ----------------------------------------------------------------------------
 // This is used for multiple constant strings, as opposed to a list
@@ -3127,26 +3127,26 @@ class CdlProperty_StringVectorBody : public CdlPropertyBody {
 
   public:
     static CdlProperty_StringVector     make(CdlNode, std::string, const std::vector<std::string>&, int, const char*[],
-                                             std::vector<std::pair<std::string,std::string> >&);
+                                            std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_StringVectorBody();
-    
+
     const std::vector<std::string>&     get_strings() const;
     std::string                         get_first_string() const;
     unsigned int                        get_number_of_strings() const;
-    std::string                         get_string(unsigned int) const;                  
+    std::string                         get_string(unsigned int) const;
     bool                                check_this(cyg_assert_class_zeal zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     typedef CdlPropertyBody            inherited;
-    
+
     CdlProperty_StringVectorBody(CdlNode, std::string, const std::vector<std::string>&, int, const char*[],
-                                 std::vector<std::pair<std::string,std::string> >&);
+                                std::vector<std::pair<std::string,std::string> >&);
 
     std::vector<std::string>            data;
     enum {
-        CdlProperty_StringVectorBody_Invalid = 0,
-        CdlProperty_StringVectorBody_Magic   = 0x4ed039f3
+       CdlProperty_StringVectorBody_Invalid = 0,
+       CdlProperty_StringVectorBody_Magic   = 0x4ed039f3
     } cdlproperty_stringvectorbody_cookie;
 
     CdlProperty_StringVectorBody();
@@ -3155,7 +3155,7 @@ class CdlProperty_StringVectorBody : public CdlPropertyBody {
 };
 
 //}}}
-//{{{  CdlProperty_Reference                    
+//{{{  CdlProperty_Reference
 
 // ----------------------------------------------------------------------------
 // This is used for properties such as wizard and dialog, where the data
@@ -3169,26 +3169,26 @@ class CdlProperty_ReferenceBody : public CdlPropertyBody, public CdlReference {
 
   public:
     static CdlProperty_Reference make(CdlNode, std::string /* id */, std::string /* destination */,
-                                      CdlUpdateHandler, int, const char*[],
-                                      std::vector<std::pair<std::string,std::string> >&);
+                                     CdlUpdateHandler, int, const char*[],
+                                     std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_ReferenceBody();
-    
+
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     typedef CdlPropertyBody     inherited_property;
     typedef CdlReference        inherited_reference;
 
     CdlUpdateHandler            update_handler;
-    
+
     CdlProperty_ReferenceBody(CdlNode, std::string /* id */, std::string /* destination */, CdlUpdateHandler, int, const char*[],
-                              std::vector<std::pair<std::string,std::string> >&);
+                             std::vector<std::pair<std::string,std::string> >&);
     enum {
-        CdlProperty_ReferenceBody_Invalid = 0,
-        CdlProperty_ReferenceBody_Magic   = 0x78100339
+       CdlProperty_ReferenceBody_Invalid = 0,
+       CdlProperty_ReferenceBody_Magic   = 0x78100339
     } cdlproperty_referencebody_cookie;
 
     CdlProperty_ReferenceBody();
@@ -3197,7 +3197,7 @@ class CdlProperty_ReferenceBody : public CdlPropertyBody, public CdlReference {
 };
 
 //}}}
-//{{{  CdlProperty_Expression                   
+//{{{  CdlProperty_Expression
 
 // ----------------------------------------------------------------------------
 // An expression property simply inherits its functionality from the basic
@@ -3206,10 +3206,10 @@ class CdlProperty_ReferenceBody : public CdlPropertyBody, public CdlReference {
 class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_Expression       make(CdlNode, std::string, CdlExpression, CdlUpdateHandler, int, const char*[],
-                                             std::vector<std::pair<std::string,std::string> >&);
+                                            std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_ExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
@@ -3220,12 +3220,12 @@ class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionB
     typedef CdlExpressionBody   inherited_expression;
 
     CdlProperty_ExpressionBody(CdlNode, std::string, CdlExpression, CdlUpdateHandler, int, const char*[],
-                               std::vector<std::pair<std::string,std::string> >&);
-    
+                              std::vector<std::pair<std::string,std::string> >&);
+
     CdlUpdateHandler update_handler;
     enum {
-        CdlProperty_ExpressionBody_Invalid = 0,
-        CdlProperty_ExpressionBody_Magic   = 0x05fb4056
+       CdlProperty_ExpressionBody_Invalid = 0,
+       CdlProperty_ExpressionBody_Magic   = 0x05fb4056
     } cdlproperty_expressionbody_cookie;
 
     CdlProperty_ExpressionBody();
@@ -3234,7 +3234,7 @@ class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionB
 };
 
 //}}}
-//{{{  CdlProperty_ListExpression               
+//{{{  CdlProperty_ListExpression
 
 // ----------------------------------------------------------------------------
 // Similarly a list property simply inherits from property and from
@@ -3243,10 +3243,10 @@ class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionB
 class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExpressionBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_ListExpression   make(CdlNode, std::string, CdlListExpression, CdlUpdateHandler, int, const char*[],
-                                             std::vector<std::pair<std::string,std::string> >&);
+                                            std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_ListExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
@@ -3257,12 +3257,12 @@ class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExp
     typedef CdlListExpressionBody   inherited_expression;
 
     CdlProperty_ListExpressionBody(CdlNode, std::string, CdlListExpression, CdlUpdateHandler, int, const char*[],
-                                   std::vector<std::pair<std::string,std::string> >&);
+                                  std::vector<std::pair<std::string,std::string> >&);
 
     CdlUpdateHandler update_handler;
     enum {
-        CdlProperty_ListExpressionBody_Invalid = 0,
-        CdlProperty_ListExpressionBody_Magic   = 0x6b0136f5
+       CdlProperty_ListExpressionBody_Invalid = 0,
+       CdlProperty_ListExpressionBody_Magic   = 0x6b0136f5
     } cdlproperty_listexpressionbody_cookie;
 
     CdlProperty_ListExpressionBody();
@@ -3271,7 +3271,7 @@ class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExp
 };
 
 //}}}
-//{{{  CdlProperty_GoalExpression               
+//{{{  CdlProperty_GoalExpression
 
 // ----------------------------------------------------------------------------
 // And a goal property inherits from property and from goal expressions.
@@ -3279,10 +3279,10 @@ class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExp
 class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExpressionBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_GoalExpression   make(CdlNode, std::string, CdlGoalExpression, CdlUpdateHandler, int, const char*[],
-                                             std::vector<std::pair<std::string,std::string> >&);
+                                            std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_GoalExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
@@ -3293,12 +3293,12 @@ class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExp
     typedef CdlGoalExpressionBody   inherited_expression;
 
     CdlProperty_GoalExpressionBody(CdlNode, std::string, CdlGoalExpression, CdlUpdateHandler, int, const char*[],
-                                   std::vector<std::pair<std::string,std::string> >&);
-    
+                                  std::vector<std::pair<std::string,std::string> >&);
+
     CdlUpdateHandler update_handler;
     enum {
-        CdlProperty_GoalExpressionBody_Invalid = 0,
-        CdlProperty_GoalExpressionBody_Magic   = 0x08b2b31e
+       CdlProperty_GoalExpressionBody_Invalid = 0,
+       CdlProperty_GoalExpressionBody_Magic   = 0x08b2b31e
     } cdlproperty_goalexpressionbody_cookie;
 
     CdlProperty_GoalExpressionBody();
@@ -3309,7 +3309,7 @@ class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExp
 //}}}
 
 //}}}
-//{{{  CdlParse class                                   
+//{{{  CdlParse class
 
 // ----------------------------------------------------------------------------
 // This is another utility class for collecting together parsing-related
@@ -3321,17 +3321,17 @@ class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExp
 // possible to re-use some of the functionality in that class.
 
 class CdlParse {
-    
+
   public:
     // Utility routines.
     static std::string  get_tcl_cmd_name(std::string);
     static std::string  concatenate_argv(int, const char*[], int);
-    static int          parse_options(CdlInterpreter, std::string /* diag_prefix */, char** /* options */,
-                                               int /* argc */, const char*[] /* argv */, int /* start_index */,
-                                               std::vector<std::pair<std::string,std::string> >& /* result */);
+    static int          parse_options(CdlInterpreter, std::string /* diag_prefix */, const char** /* options */,
+                                              int /* argc */, const char*[] /* argv */, int /* start_index */,
+                                              std::vector<std::pair<std::string,std::string> >& /* result */);
     static std::string  construct_diagnostic(CdlInterpreter, std::string /* classification */,
-                                             std::string /* sub-identifier */, std::string /* message */);
-                                       
+                                            std::string /* sub-identifier */, std::string /* message */);
+
     static void         report_error(CdlInterpreter, std::string /* sub-identifier */, std::string /* message */);
     static void         report_warning(CdlInterpreter, std::string /* sub-identifier */, std::string /* message */);
     static void         clear_error_count(CdlInterpreter);
@@ -3339,43 +3339,43 @@ class CdlParse {
     static void         incr_error_count(CdlInterpreter, int=1);
 
     static std::string  get_expression_error_location(void);
-    
+
     // Support for Tcl's "unknown" command
     static int          unknown_command(CdlInterpreter, int, const char*[]);
-    
+
     // Property-related utilities
     static void         report_property_parse_error(CdlInterpreter, std::string, std::string);
     static void         report_property_parse_error(CdlInterpreter, CdlProperty, std::string);
     static void         report_property_parse_warning(CdlInterpreter, std::string, std::string);
     static void         report_property_parse_warning(CdlInterpreter, CdlProperty, std::string);
-    
+
     // Utility parsing routines
     static int  parse_minimal_property(CdlInterpreter, int, const char*[], std::string,
-                                       char**, void (*)(CdlInterpreter, CdlProperty_Minimal));
+                                      const char **, void (*)(CdlInterpreter, CdlProperty_Minimal));
     static int  parse_string_property(CdlInterpreter, int, const char*[], std::string,
-                                      char**, void (*)(CdlInterpreter, CdlProperty_String));
+                                     const char **, void (*)(CdlInterpreter, CdlProperty_String));
     static int  parse_tclcode_property(CdlInterpreter, int, const char*[], std::string,
-                                       char**, void (*)(CdlInterpreter, CdlProperty_TclCode));
+                                      const char **, void (*)(CdlInterpreter, CdlProperty_TclCode));
     static int  parse_stringvector_property(CdlInterpreter, int, const char*[], std::string,
-                                            char**, void (*)(CdlInterpreter, CdlProperty_StringVector),
-                                            bool /* allow_empty */ = false);
+                                           const char **, void (*)(CdlInterpreter, CdlProperty_StringVector),
+                                           bool /* allow_empty */ = false);
     static int  parse_reference_property(CdlInterpreter, int, const char*[], std::string,
-                                         char**, void (*)(CdlInterpreter, CdlProperty_Reference),
-                                         bool /* allow_empty */,
-                                         CdlUpdateHandler);
-    static int  parse_expression_property(CdlInterpreter, int, const char*[], std::string, 
-                                          char **, void (*)(CdlInterpreter, CdlProperty_Expression),
-                                          CdlUpdateHandler);
+                                        const char **, void (*)(CdlInterpreter, CdlProperty_Reference),
+                                        bool /* allow_empty */,
+                                        CdlUpdateHandler);
+    static int  parse_expression_property(CdlInterpreter, int, const char*[], std::string,
+                                         const char **, void (*)(CdlInterpreter, CdlProperty_Expression),
+                                         CdlUpdateHandler);
     static int  parse_listexpression_property(CdlInterpreter, int, const char*[], std::string,
-                                              char **, void (*)(CdlInterpreter, CdlProperty_ListExpression),
-                                              CdlUpdateHandler);
+                                             const char **, void (*)(CdlInterpreter, CdlProperty_ListExpression),
+                                             CdlUpdateHandler);
     static int  parse_goalexpression_property(CdlInterpreter, int, const char*[], std::string,
-                                              char **, void (*)(CdlInterpreter, CdlProperty_GoalExpression),
-                                              CdlUpdateHandler);
+                                             const char **, void (*)(CdlInterpreter, CdlProperty_GoalExpression),
+                                             CdlUpdateHandler);
 };
 
 //}}}
-//{{{  CdlNode                                          
+//{{{  CdlNode
 
 // ----------------------------------------------------------------------------
 // A node object has a name and lives in a hierarchy. Each node keeps
@@ -3397,7 +3397,7 @@ class CdlNodeBody {
 
     // CdlLoadable must be able to access the destructor
     friend class CdlLoadableBody;
-    
+
     // It is intended that CdlProperties will also add and remove themselves
     friend class CdlPropertyBody;
 
@@ -3405,7 +3405,7 @@ class CdlNodeBody {
     // the referrers vector. So does CdlTransaction::commit()
     friend class CdlReference;
     friend class CdlTransactionBody;
-    
+
   public:
 
     // Basic information.
@@ -3418,7 +3418,7 @@ class CdlNodeBody {
     // get applied to nodes as well as to properties. Note that because
     // of multiple inheritance this virtual call can get confusing.
     virtual void        update(CdlTransaction, CdlUpdate);
-    
+
     // Is this node active or not? The is_active() call refers
     // to the global state, things may be different inside a
     // transaction.
@@ -3431,7 +3431,7 @@ class CdlNodeBody {
     // active_if constraints. This routine can be used
     // to check whether or not a node should become active.
     virtual bool        test_active(CdlTransaction);
-    
+
     // Provide access to the various properties. Currently all this
     // information is publicly available.
     const std::vector<CdlProperty>&     get_properties() const;
@@ -3447,7 +3447,7 @@ class CdlNodeBody {
     void get_conflicts(bool (*)(CdlConflict), std::vector<CdlConflict>&) const;
     void get_structural_conflicts(std::vector<CdlConflict>&) const;
     void get_structural_conflicts(bool (*)(CdlConflict), std::vector<CdlConflict>&) const;
-    
+
     // Provide access to all the referrers. This may not get used very
     // much outside the library itself.
     const std::vector<CdlReferrer>&     get_referrers() const;
@@ -3469,25 +3469,25 @@ class CdlNodeBody {
     // to have a TCL interpreter available.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
     bool has_additional_savefile_information() const;
-    
+
     // Mainly for diagnostics code, what is the actual name for this
     // type of CDL object? This should be in terms of CDL data, e.g.
     // "package" or "component", rather than in implementation terms
-    // such as "CdlPackageBody". 
+    // such as "CdlPackageBody".
     virtual std::string get_class_name() const;
 
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
-    
+
     // CdlNodeBodies are only instantiated by derived classes.
     // They must always have a name. They need not be placed
     // in the hierarchy immediately, that can wait until
     // later.
     CdlNodeBody(std::string);
     // A dummy constructor is needed because of the virtual
-    // inheritance. 
+    // inheritance.
     CdlNodeBody();
 
     // Nodes cannot be destroyed directly by application code,
@@ -3496,14 +3496,14 @@ class CdlNodeBody {
 
     // Updating the name is rarely required, but is useful for savefiles.
     void                set_name(std::string);
-    
+
     // Is the node currently active? This applies to the global state
     // only, not per-transaction state. Some derived classes may want
     // to override the default value
     bool                active;
-    
+
   private:
-    
+
     // The basic data. The name is known during construction.
     // The other three fields get updated by e.g. CdlToplevel::add_node();
     std::string         name;
@@ -3514,7 +3514,7 @@ class CdlNodeBody {
     // This is used by remove_node_from_toplevel()/add_node_to_toplevel()
     // to allow the latter to exactly reverse the former
     int                 remove_node_container_position;
-    
+
     // Properties normally only get added during the parsing process,
     // and only get removed when the object itself is destroyed.
     // A vector is the obvious implementation.
@@ -3533,19 +3533,19 @@ class CdlNodeBody {
     // the savefile information so that it can be put in the next
     // savefile.
     std::vector<std::string> unsupported_savefile_strings;
-    
+
     enum {
-        CdlNodeBody_Invalid     = 0,
-        CdlNodeBody_Magic       = 0x309595b5
+       CdlNodeBody_Invalid     = 0,
+       CdlNodeBody_Magic       = 0x309595b5
     } cdlnodebody_cookie;
-    
+
     // Illegal operations
     CdlNodeBody(const CdlNodeBody&);
     CdlNodeBody& operator=(const CdlNodeBody&);
 };
 
 //}}}
-//{{{  CdlContainer                                     
+//{{{  CdlContainer
 
 // ----------------------------------------------------------------------------
 // A container is a node that can contain other nodes.
@@ -3556,14 +3556,14 @@ class CdlContainerBody : virtual public CdlNodeBody {
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
-    
+
     // Adding a node to the hierarchy is done by a CdlToplevel member.
     // Ditto for removing.
     friend class CdlToplevelBody;
 
     // Deleting a container can happen inside CdlToplevel and CdlLoadable
     friend class CdlLoadableBody;
-    
+
   public:
 
     const std::vector<CdlNode>& get_contents() const;
@@ -3574,14 +3574,14 @@ class CdlContainerBody : virtual public CdlNodeBody {
     // Propagation support. Some updates such as active/inactive changes
     // get applied to nodes as well as to properties.
     virtual void update(CdlTransaction, CdlUpdate);
-    
+
     // Persistence support.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
     // Containers cannot be destroyed explicitly, only via higher-level
@@ -3594,11 +3594,11 @@ class CdlContainerBody : virtual public CdlNodeBody {
 
     // The CdlToplevel class needs access to its own contents.
     std::vector<CdlNode>                contents;
-    
+
   private:
     enum {
-        CdlContainerBody_Invalid        = 0,
-        CdlContainerBody_Magic          = 0x543c5f1d
+       CdlContainerBody_Invalid        = 0,
+       CdlContainerBody_Magic          = 0x543c5f1d
     } cdlcontainerbody_cookie;
 
     // Illegal operations
@@ -3607,7 +3607,7 @@ class CdlContainerBody : virtual public CdlNodeBody {
 };
 
 //}}}
-//{{{  CdlLoadable                                      
+//{{{  CdlLoadable
 
 // ----------------------------------------------------------------------------
 // A loadable object is a container that gets loaded or unloaded
@@ -3623,14 +3623,14 @@ class CdlLoadableBody : virtual public CdlContainerBody {
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
-    
+
     // Adding nodes to the hierarchy is done by a toplevel member
     friend class CdlToplevelBody;
 
   public:
     virtual ~CdlLoadableBody();
 
-    
+
     const std::vector<CdlNode>&         get_owned() const;
     bool                                owns(CdlConstNode) const;
     CdlInterpreter                      get_interpreter() const;
@@ -3654,7 +3654,7 @@ class CdlLoadableBody : virtual public CdlContainerBody {
     // the various properties, calculating default values, etc.
     void                bind(CdlTransaction);
     void                unbind(CdlTransaction);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -3665,19 +3665,19 @@ class CdlLoadableBody : virtual public CdlContainerBody {
 
     // Needed by derived classes, but not actually used.
     CdlLoadableBody();
-    
+
   private:
-    
+
     std::vector<CdlNode> owned;
     CdlInterpreter       interp;
     std::string          directory;
 
     // Used by add/remove_node_from_toplevel()
     int                  remove_node_loadables_position;
-    
+
     enum {
-        CdlLoadableBody_Invalid = 0,
-        CdlLoadableBody_Magic   = 0x488d6127
+       CdlLoadableBody_Invalid = 0,
+       CdlLoadableBody_Magic   = 0x488d6127
     } cdlloadablebody_cookie;
 
     // Invalid operations
@@ -3686,7 +3686,7 @@ class CdlLoadableBody : virtual public CdlContainerBody {
 };
 
 //}}}
-//{{{  CdlToplevel                                      
+//{{{  CdlToplevel
 
 // ----------------------------------------------------------------------------
 // Toplevels are containers that live at the top of a hierarchy
@@ -3707,7 +3707,7 @@ class CdlToplevelBody : virtual public CdlContainerBody {
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
-    
+
     // The CdlTransaction class needs direct access to the lists
     // of conflicts.
     friend class CdlTransactionBody;
@@ -3754,7 +3754,7 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     // for some operations like determining build information
     // which must operate on a per-loadable basis.
     const std::vector<CdlLoadable>& get_loadables() const;
-    
+
     // Name uniqueness is guaranteed. It is convenient to have an STL
     // map as a lookup service.
     CdlNode lookup(const std::string) const;
@@ -3780,7 +3780,7 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     // will be created for this.
     void        resolve_conflicts(const std::vector<CdlConflict>&);
     void        resolve_all_conflicts();
-    
+
     // Toplevels can have descriptions provided by the user. This is
     // particularly important for pre-defined templates, target
     // board descriptions, etc. where the user would like some
@@ -3788,11 +3788,11 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     // The default value is an empty string.
     std::string         get_description() const;
     void                set_description(std::string);
-    
+
     // Each toplevel must have an associated master Tcl interpreter.
     CdlInterpreter      get_interpreter() const;
 
-    // Each toplevel should also have an associated directory for 
+    // Each toplevel should also have an associated directory for
     // the component repository. It is not required that all loadables
     // are relative to this, but that is the default behaviour.
     std::string         get_directory() const;
@@ -3802,7 +3802,7 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     // operating on a single toplevel (although nested transactions
     // are allowed)
     CdlTransaction      get_active_transaction() const;
-    
+
     // Build and define operations are available for all toplevels,
     // even if they are not always applicable
     void                get_build_info(CdlBuildInfo&);
@@ -3810,8 +3810,8 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     void                generate_config_headers(std::string);
     void                get_config_headers(std::vector<std::string>&);
     void                generate_build_tree(std::string, std::string = "");
-    
-    // Values can be stored in limbo. This is useful when unloading 
+
+    // Values can be stored in limbo. This is useful when unloading
     // and reloading packages, e.g. when changing a version the
     // current settings can be preserved as much as possible.
     void                set_limbo_value(CdlValuable);
@@ -3819,25 +3819,25 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     CdlValue            get_limbo_value(std::string) const;
     CdlValue            get_and_remove_limbo_value(std::string);
     void                clear_limbo();
-    
+
     // Persistence support. These are commented in the source code.
-           void         initialize_savefile_support();
+          void         initialize_savefile_support();
     static bool         savefile_support_initialized();
-           void         add_savefile_command(std::string, CdlSaveCallback, CdlInterpreterCommand);
-           void         add_savefile_subcommand(std::string, std::string, CdlSaveCallback, CdlInterpreterCommand);
-           void         get_savefile_commands(std::vector<CdlInterpreterCommandEntry>&);
-           void         get_savefile_subcommands(std::string, std::vector<CdlInterpreterCommandEntry>&);
-           void         save_command_details(CdlInterpreter, Tcl_Channel, int, bool);
+          void         add_savefile_command(std::string, CdlSaveCallback, CdlInterpreterCommand);
+          void         add_savefile_subcommand(std::string, std::string, CdlSaveCallback, CdlInterpreterCommand);
+          void         get_savefile_commands(std::vector<CdlInterpreterCommandEntry>&);
+          void         get_savefile_subcommands(std::string, std::vector<CdlInterpreterCommandEntry>&);
+          void         save_command_details(CdlInterpreter, Tcl_Channel, int, bool);
     static int          savefile_handle_command(CdlInterpreter, int, const char*[]);
     static int          savefile_handle_unsupported(CdlInterpreter, int, const char*[]);
     static int          savefile_handle_unknown(CdlInterpreter, int, const char*[]);
-           void         save_unsupported_commands(CdlInterpreter, Tcl_Channel, int, bool);
+          void         save_unsupported_commands(CdlInterpreter, Tcl_Channel, int, bool);
     static cdl_int      get_library_savefile_version();
     static int          savefile_handle_version(CdlInterpreter, int, const char*[]);
     static cdl_int      get_savefile_version(CdlInterpreter);
-           void         save_conflicts(CdlInterpreter, Tcl_Channel, int, bool);
+          void         save_conflicts(CdlInterpreter, Tcl_Channel, int, bool);
     static void         save_separator(CdlInterpreter, Tcl_Channel, std::string, bool);
-        
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -3873,19 +3873,19 @@ class CdlToplevelBody : virtual public CdlContainerBody {
 
     // Keep track of the current active transaction for this toplevel (if any)
     CdlTransaction      transaction;
-    
+
     enum {
-        CdlToplevelBody_Invalid = 0,
-        CdlToplevelBody_Magic   = 0x0834666e
+       CdlToplevelBody_Invalid = 0,
+       CdlToplevelBody_Magic   = 0x0834666e
     } cdltoplevelbody_cookie;
-    
+
     // Invalid operations
     CdlToplevelBody(const CdlToplevelBody&);
     CdlToplevelBody& operator=(const CdlToplevelBody&);
 };
 
 //}}}
-//{{{  CdlUserVisible                                   
+//{{{  CdlUserVisible
 
 // ----------------------------------------------------------------------------
 // A user-visible object is likely to have properties such as display,
@@ -3907,9 +3907,9 @@ class CdlUserVisibleBody : virtual public CdlNodeBody {
     // NOTE: this will only work for absolute doc strings or for doc
     // strings that are relative to the package.
     std::string         get_doc_url() const;
-    
+
     // Add property parsers and validation code appropriate for a
-    // user-visible object such as doc and description 
+    // user-visible object such as doc and description
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     void                check_properties(CdlInterpreter);
     static int          parse_description(CdlInterpreter, int, const char*[]);
@@ -3919,19 +3919,19 @@ class CdlUserVisibleBody : virtual public CdlNodeBody {
     // Persistence support. The save code simply outputs some comments
     // corresponding to the display, doc and description properties.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlUserVisibleBody();
 
   private:
 
     enum {
-        CdlUserVisibleBody_Invalid      = 0,
-        CdlUserVisibleBody_Magic        = 0x13bbc817
+       CdlUserVisibleBody_Invalid      = 0,
+       CdlUserVisibleBody_Magic        = 0x13bbc817
     } cdluservisiblebody_cookie;
 
     // Illegal operations
@@ -3940,7 +3940,7 @@ class CdlUserVisibleBody : virtual public CdlNodeBody {
 };
 
 //}}}
-//{{{  CdlParentable                                    
+//{{{  CdlParentable
 
 // ----------------------------------------------------------------------------
 // A parentable object may have the parent property, redefining its
@@ -3961,7 +3961,7 @@ class CdlParentableBody : virtual public CdlNodeBody {
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlParentableBody();
 
@@ -3970,10 +3970,10 @@ class CdlParentableBody : virtual public CdlNodeBody {
     // Unloads may be cancelled. To restore the previous state exactly
     // it is necessary to keep track of the old position.
     int                 change_parent_save_position;
-    
+
     enum {
-        CdlParentableBody_Invalid      = 0,
-        CdlParentableBody_Magic        = 0x40c6a077
+       CdlParentableBody_Invalid      = 0,
+       CdlParentableBody_Magic        = 0x40c6a077
     } cdlparentablebody_cookie;
 
     // Illegal operations
@@ -3982,7 +3982,7 @@ class CdlParentableBody : virtual public CdlNodeBody {
 };
 
 //}}}
-//{{{  CdlValuable                                      
+//{{{  CdlValuable
 
 // ----------------------------------------------------------------------------
 // A valuable body has a value. Many valuables can be modified but not all.
@@ -4014,21 +4014,21 @@ class CdlValuableBody : virtual public CdlNodeBody {
 
     // Transaction commit operations require direct access to the CdlValue
     friend class CdlTransactionBody;
-    
+
   private:
     CdlValue value;
-    
+
   public:
     virtual ~CdlValuableBody();
 
     // Accessing the current value. There are variants for the global state
     // and for per-transaction operations.
     const CdlValue&     get_whole_value() const;
-    
+
     CdlValueFlavor      get_flavor() const;
     CdlValueFlavor      get_flavor(CdlTransaction transaction) const
     {   // The transaction is irrelevant, it cannot change the flavor
-        return this->get_flavor();
+       return this->get_flavor();
     }
 
     CdlValueSource      get_source() const;
@@ -4040,7 +4040,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     bool                has_double_value(  CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(  CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(  CdlValueSource = CdlValueSource_Current) const;
-    
+
     CdlValueSource      get_source(CdlTransaction) const;
     bool                has_source(        CdlTransaction, CdlValueSource) const;
     bool                is_enabled(        CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
@@ -4050,7 +4050,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     bool                has_double_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
-    
+
     // -----------------------------------------------------------------
     // Modify access. There are two variants of all the functions:
     //
@@ -4069,7 +4069,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     void set_value(CdlSimpleValue&, CdlValueSource);
     void set_enabled_and_value(bool, CdlSimpleValue&, CdlValueSource);
     void set(CdlSimpleValue&, CdlValueSource);
-    
+
     void set_source(CdlTransaction, CdlValueSource);
     void invalidate_source(CdlTransaction, CdlValueSource);
     void set_enabled(CdlTransaction, bool, CdlValueSource);
@@ -4077,146 +4077,146 @@ class CdlValuableBody : virtual public CdlNodeBody {
     void set_enabled_and_value(CdlTransaction, bool, CdlSimpleValue&, CdlValueSource);
     void set(CdlTransaction, CdlSimpleValue&, CdlValueSource);
     void set(CdlTransaction, const CdlValue&);
-    
+
     void enable(CdlValueSource source)
     {
-        set_enabled(true, source);
+       set_enabled(true, source);
     }
     void disable(CdlValueSource source)
     {
-        set_enabled(false, source);
+       set_enabled(false, source);
     }
     void set_value(std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_integer_value(cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_double_value(double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_enabled_and_value(bool enabled, std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void set_enabled_and_value(bool enabled, cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void set_enabled_and_value(bool enabled, double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void enable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(true, val, source);
+       set_enabled_and_value(true, val, source);
     }
     void enable_and_set_value(std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void enable_and_set_value(cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void enable_and_set_value(double data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void disable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(false, val, source);
+       set_enabled_and_value(false, val, source);
     }
     void disable_and_set_value(std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void disable_and_set_value(cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void disable_and_set_value(double data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void enable(CdlTransaction transaction, CdlValueSource source)
     {
-        set_enabled(transaction, true, source);
+       set_enabled(transaction, true, source);
     }
     void disable(CdlTransaction transaction, CdlValueSource source)
     {
-        set_enabled(transaction, false, source);
+       set_enabled(transaction, false, source);
     }
     void set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(transaction, val, source);
+       CdlSimpleValue val(data);
+       set_value(transaction, val, source);
     }
     void set_integer_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(transaction, val, source);
+       CdlSimpleValue val(data);
+       set_value(transaction, val, source);
     }
     void set_double_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(transaction, val, source);
+       CdlSimpleValue val(data);
+       set_value(transaction, val, source);
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(transaction, enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(transaction, enabled, val, source);
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(transaction, enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(transaction, enabled, val, source);
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(transaction, enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(transaction, enabled, val, source);
     }
     void enable_and_set_value(CdlTransaction transaction, CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, true, val, source);
+       set_enabled_and_value(transaction, true, val, source);
     }
     void enable_and_set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, true, data, source);
+       set_enabled_and_value(transaction, true, data, source);
     }
     void enable_and_set_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, true, data, source);
+       set_enabled_and_value(transaction, true, data, source);
     }
     void enable_and_set_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, true, data, source);
+       set_enabled_and_value(transaction, true, data, source);
     }
     void disable_and_set_value(CdlTransaction transaction, CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, false, val, source);
+       set_enabled_and_value(transaction, false, val, source);
     }
     void disable_and_set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, false, data, source);
+       set_enabled_and_value(transaction, false, data, source);
     }
     void disable_and_set_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, false, data, source);
+       set_enabled_and_value(transaction, false, data, source);
     }
     void disable_and_set_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, false, data, source);
+       set_enabled_and_value(transaction, false, data, source);
     }
 
     // -----------------------------------------------------------------
@@ -4228,9 +4228,9 @@ class CdlValuableBody : virtual public CdlNodeBody {
     // because e.g. its parent is disabled then this may affect
     // requires conflicts etc.
     virtual void update(CdlTransaction, CdlUpdate);
-    
+
     virtual bool test_active(CdlTransaction);
-    
+
     // -----------------------------------------------------------------
     // Property-related stuff.
     bool                                has_calculated_expression() const;
@@ -4242,7 +4242,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     bool                                has_requires_goals() const;
     bool                                has_dialog() const;
     bool                                has_wizard() const;
-    
+
     CdlProperty_Expression              get_calculated_expression() const;
     CdlProperty_Expression              get_default_value_expression() const;
     CdlProperty_ListExpression          get_legal_values() const;
@@ -4253,7 +4253,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     CdlDialog                           get_dialog() const;
     CdlWizard                           get_wizard() const;
     void                                get_implemented_interfaces(std::vector<CdlInterface>&) const;
-    
+
     // Add property parsers and validation code appropriate for a
     // valuable object such as default_value and legal_values
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
@@ -4280,7 +4280,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     static void         wizard_update_handler(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
 
     // Persistence suppot
-    void save(CdlInterpreter, Tcl_Channel, int, bool /* modifiable */, bool /* minimal */);
+    void _save(CdlInterpreter, Tcl_Channel, int, bool /* modifiable */, bool /* minimal */);
     bool value_savefile_entry_needed() const;
     static void initialize_savefile_support(CdlToplevel, std::string);
     static int  savefile_value_source_command(CdlInterpreter, int, const char*[]);
@@ -4288,7 +4288,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     static int  savefile_wizard_value_command(CdlInterpreter, int, const char*[]);
     static int  savefile_inferred_value_command(CdlInterpreter, int, const char*[]);
     static int  savefile_xxx_value_command(CdlInterpreter, int, const char*[], CdlValueSource);
-    
+
     // Make sure that the current value is legal. This gets called automatically
     // by all the members that modify values. It has to be a virtual function
     // since some derived classes, e.g. hardware-related valuables, may impose
@@ -4305,17 +4305,17 @@ class CdlValuableBody : virtual public CdlNodeBody {
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlValuableBody(CdlValueFlavor = CdlValueFlavor_Bool);
 
-    
+
   private:
 
-    
+
     enum {
-        CdlValuableBody_Invalid = 0,
-        CdlValuableBody_Magic   = 0x2b2acc03
+       CdlValuableBody_Invalid = 0,
+       CdlValuableBody_Magic   = 0x2b2acc03
     } cdlvaluablebody_cookie;
 
     // Illegal operations
@@ -4324,9 +4324,9 @@ class CdlValuableBody : virtual public CdlNodeBody {
 };
 
 //}}}
-//{{{  CdlTransaction etc.                              
+//{{{  CdlTransaction etc.
 
-//{{{  Description                      
+//{{{  Description
 
 // ----------------------------------------------------------------------------
 // Transactions. These are used for all changes to a configuration. In some
@@ -4371,7 +4371,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
 // Transaction objects are also used during load or unload operations,
 // but those are a little bit special. In particular it is not possible
 // to cancel such a transaction, there will have been updates to the
-// toplevel. Using a transaction is convenient because there is a 
+// toplevel. Using a transaction is convenient because there is a
 // need for propagation.
 //
 // Currently a transaction should be deleted immediately after a
@@ -4411,7 +4411,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
 // allowing multiple changes to be processed in one go. There is
 // a utility function which combines the functionality from
 // the first propagate() call up to but not including the
-// transaction delete operator. 
+// transaction delete operator.
 //
 //
 // The inference engine itself is a complicated beast. There are
@@ -4444,7 +4444,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
 // a future version.
 
 //}}}
-//{{{  CdlTransactionCommitCancelOp     
+//{{{  CdlTransactionCommitCancelOp
 
 // ----------------------------------------------------------------------------
 // The CdlTransaction class has built-in knowledge of how to handle values,
@@ -4486,19 +4486,19 @@ class CdlTransactionCommitCancelOp {
     // Derived classes should override at least one of these
     // functions.
     virtual void commit(CdlTransaction transaction) {
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     virtual void cancel(CdlTransaction transaction) {
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
-    
+
   protected:
 
   private:
 };
 
 //}}}
-//{{{  CdlTransaction class             
+//{{{  CdlTransaction class
 
 class CdlTransactionBody {
 
@@ -4506,20 +4506,20 @@ class CdlTransactionBody {
 
     friend class CdlConflictBody;
     friend class CdlValuableBody;
-    
+
   public:
 
     // Create a toplevel transaction
     static CdlTransaction make(CdlToplevel);
     virtual ~CdlTransactionBody();
     CdlToplevel get_toplevel() const;
-    
+
     // Or a sub-transaction. Usually these are created in the context of
     // a conflict that is being resolved.
     CdlTransaction make(CdlConflict = 0);
     CdlTransaction get_parent() const;
     CdlConflict    get_conflict() const;
-    
+
     // Commit all the changes. Essentially this means transferring
     // all of the per-transaction data to the toplevel, and then
     // invoking the transaction callback. All propagation, inference,
@@ -4547,10 +4547,10 @@ class CdlTransactionBody {
     // A variant which is used for checking the hierarchy when disabling
     // a container
     bool        subnode_changed_by_user(CdlContainer) const;
-    
+
     // Is one transaction preferable to another?
     bool        is_preferable_to(CdlTransaction) const;
-    
+
     // Find out about per-transaction conflicts. This is particularly
     // useful for the inference callback. The other containers can
     // be accessed as well, for completeness.
@@ -4564,12 +4564,12 @@ class CdlTransactionBody {
     const std::set<CdlNode>&            get_activated() const;
     const std::set<CdlNode>&            get_deactivated() const;
     const std::set<CdlValuable>&        get_legal_values_changes() const;
-    
+
     // Manipulate the current set of conflicts, allowing for nested
     // transactions and toplevel conflicts as well.
     void        clear_conflict(CdlConflict);
     bool        has_conflict_been_cleared(CdlConflict);
-    
+
     bool        has_conflict(CdlNode, bool (*)(CdlConflict));
     CdlConflict get_conflict(CdlNode, bool (*)(CdlConflict));
     void        get_conflicts(CdlNode, bool (*)(CdlConflict), std::vector<CdlConflict>&);
@@ -4593,7 +4593,7 @@ class CdlTransactionBody {
     void        apply_solution(CdlConflict);
     void        apply_solutions(const std::vector<CdlConflict>&);
     void        apply_all_solutions();
-    
+
     // Cancel all the changes done in this transaction. Essentially
     // this just involves clearing out all the STL containers.
     void        cancel();
@@ -4604,25 +4604,25 @@ class CdlTransactionBody {
     void        cancel_last_commit_cancel_op();
     CdlTransactionCommitCancelOp* get_last_commit_cancel_op() const;
     const std::vector<CdlTransactionCommitCancelOp*>& get_commit_cancel_ops() const;
-    
+
     // Propagation support
     void        add_active_change(CdlNode);
     void        add_legal_values_change(CdlValuable);
     void        propagate();
     bool        is_propagation_required() const;
-    
+
     // Inference engine support.
     void        resolve(int = 0); // Process the new conflicts raised by this transaction
     void        resolve(CdlConflict, int = 0);
     void        resolve(const std::vector<CdlConflict>&, int = 0);
-    
+
     // An auxiliary function called by the inference engine to perform recursion
     bool        resolve_recursion(int);
-    
+
     // This function combines propagation, inference, and commit
     // in one easy-to-use package
     void        body();
-    
+
     // Changes.
     // There is a call to get hold of a CdlValue reference. Modifications
     // should happen via a sequence of the form:
@@ -4646,7 +4646,7 @@ class CdlTransactionBody {
     // transactions
     bool                is_active(CdlNode) const;
     void                set_active(CdlNode, bool);
-    
+
     // Callback and parameter settings
     static void (*get_callback_fn())(const CdlTransactionCallback&);
     static void                 set_callback_fn(void (*)(const CdlTransactionCallback&));
@@ -4664,10 +4664,10 @@ class CdlTransactionBody {
     // wizard or user values.
     static void                 set_inference_override(CdlValueSource);
     static CdlValueSource       get_inference_override();
-    
+
     bool        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
   private:
@@ -4679,7 +4679,7 @@ class CdlTransactionBody {
     CdlToplevel         toplevel;
     CdlTransaction      parent;
     CdlConflict         conflict;
-    
+
     // Per-transaction information. All value changes, new conflicts
     // etc. first live in the context of a transaction. The global
     // configuration only gets updated if the transaction is commited.
@@ -4696,7 +4696,7 @@ class CdlTransactionBody {
     std::set<CdlNode>               deactivated;
     std::set<CdlValuable>           legal_values_changes;
     bool                            dirty;
-    
+
     // Change propagation. It is necessary to keep track of all
     // pending value changes, active changes, and of things being
     // loaded or unloaded. The set_value() call is used to update the
@@ -4711,10 +4711,10 @@ class CdlTransactionBody {
     static int                  inference_recursion_limit;
     static CdlValueSource       inference_override;
     static void (*callback_fn)(const CdlTransactionCallback&);
-    
+
     enum {
-        CdlTransactionBody_Invalid = 0,
-        CdlTransactionBody_Magic   = 0x3f91e4df
+       CdlTransactionBody_Invalid = 0,
+       CdlTransactionBody_Magic   = 0x3f91e4df
     } cdltransactionbody_cookie;
 
     // Illegal operations
@@ -4724,7 +4724,7 @@ class CdlTransactionBody {
 };
 
 //}}}
-//{{{  CdlTransactionCallback           
+//{{{  CdlTransactionCallback
 
 // ----------------------------------------------------------------------------
 // The callback class is used to inform applications about all the
@@ -4737,10 +4737,10 @@ class CdlTransactionBody {
 // configurations.
 
 class CdlTransactionCallback {
-    
+
     friend class CdlTest;
     friend class CdlTransactionBody;
-    
+
   public:
     ~CdlTransactionCallback();
     static void (*get_callback_fn())(const CdlTransactionCallback&);
@@ -4751,7 +4751,7 @@ class CdlTransactionCallback {
     // of statics.
     CdlTransaction              get_transaction() const;
     CdlToplevel                 get_toplevel() const;
-    
+
     // active_changes and legal_values_changes get updated as the
     // transaction proceeds, so a set implementation is more
     // efficient. The others get filled in during a commit operation.
@@ -4766,9 +4766,9 @@ class CdlTransactionCallback {
     std::vector<CdlConflict>    new_structural_conflicts;
     std::vector<CdlNode>        nodes_with_resolved_conflicts;
     std::vector<CdlNode>        nodes_with_resolved_structural_conflicts;
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
-    
+
   protected:
 
   private:
@@ -4777,65 +4777,65 @@ class CdlTransactionCallback {
 
     // Illegal operation.
     CdlTransactionCallback();
-    
+
     enum {
-        CdlTransactionCallback_Invalid     = 0,
-        CdlTransactionCallback_Magic       = 0x0cec3a95
+       CdlTransactionCallback_Invalid     = 0,
+       CdlTransactionCallback_Magic       = 0x0cec3a95
     } cdltransactioncallback_cookie;
 };
 
 //}}}
-//{{{  CdlLocalTransaction              
+//{{{  CdlLocalTransaction
 
 // ----------------------------------------------------------------------------
 // A utility class to create a per-function transaction object which gets
 // cleaned up automatically should an exception happen.
 
 class CdlLocalTransaction {
-    
+
     friend class CdlTrest;
-    
+
   public:
     CdlLocalTransaction(CdlToplevel toplevel) {
-        transaction = CdlTransactionBody::make(toplevel);
+       transaction = CdlTransactionBody::make(toplevel);
     }
     ~CdlLocalTransaction() {
-        // The destructor may get invoked during exception handling.
-        // It is assumed that cancelling the transaction would be a
-        // good thing when that happens. Normal operation should
-        // go through the body() or commit() members, which clear
-        // the transaction field.
-        // There is a slight consistency here. Normally after a
-        // transaction commit the transaction object is still
-        // around. Here the transaction object get deleted. This
-        // is unlikely to matter in practice.
-        if (0 != transaction) {
-            transaction->cancel();
-            delete transaction;
-        }
+       // The destructor may get invoked during exception handling.
+       // It is assumed that cancelling the transaction would be a
+       // good thing when that happens. Normal operation should
+       // go through the body() or commit() members, which clear
+       // the transaction field.
+       // There is a slight consistency here. Normally after a
+       // transaction commit the transaction object is still
+       // around. Here the transaction object get deleted. This
+       // is unlikely to matter in practice.
+       if (0 != transaction) {
+           transaction->cancel();
+           delete transaction;
+       }
     }
     CdlTransaction get() {
-        return transaction;
+       return transaction;
     }
     void body() {
-        transaction->body();
-        delete transaction;
-        transaction = 0;
+       transaction->body();
+       delete transaction;
+       transaction = 0;
     }
     void commit() {
-        transaction->commit();
-        delete transaction;
-        transaction = 0;
+       transaction->commit();
+       delete transaction;
+       transaction = 0;
     }
     void propagate() {
-        transaction->propagate();
+       transaction->propagate();
     }
     void destroy() {
-        if (0 != transaction) {
-            transaction->cancel();
-            delete transaction;
-            transaction = 0;
-        }
+       if (0 != transaction) {
+           transaction->cancel();
+           delete transaction;
+           transaction = 0;
+       }
     }
 
   private:
@@ -4846,9 +4846,9 @@ class CdlLocalTransaction {
 //}}}
 
 //}}}
-//{{{  Build and define information                     
+//{{{  Build and define information
 
-//{{{  Description                      
+//{{{  Description
 
 // ----------------------------------------------------------------------------
 // There are two related concepts: buildable components, and
@@ -4935,7 +4935,7 @@ class CdlLocalTransaction {
 //
 //    Hardware packages have an implicit "define_header hardware.h"
 //    property.
-//  
+//
 // A buildable has the following properties:
 //
 // 1) compile [-library xyz] <file1> <file2> ...
@@ -5110,7 +5110,7 @@ class CdlLocalTransaction {
 //    The latter will only be generated if the resulting symbol is
 //    a valid C preprocessor symbol, and is intended to allow the
 //    use of #ifdef as well as #ifdef (useful if the value is
-//    non-numerical). 
+//    non-numerical).
 //
 //    The define_format property provides control over the first of
 //    these two #defines. The net result is that the #define will be
@@ -5155,7 +5155,7 @@ class CdlLocalTransaction {
 //    not affected by no_define.
 
 //}}}
-//{{{  The build process                
+//{{{  The build process
 
 // ----------------------------------------------------------------------------
 // For command-line operation the steps involved in doing a build are:
@@ -5247,7 +5247,7 @@ class CdlLocalTransaction {
 // be in the form of relative pathnames to facilitate this.
 
 //}}}
-//{{{  CdlBuildInfo class               
+//{{{  CdlBuildInfo class
 
 // ----------------------------------------------------------------------------
 // Extracting the build information.
@@ -5306,12 +5306,12 @@ struct CdlBuildInfo_MakeObject {
     /*
       A typical value for "rules" might be:
 
-        yacc toyslock.y
-        $(CC) $(CFLAGS) -o toyslock.o y.tab.c
-        
+       yacc toyslock.y
+       $(CC) $(CFLAGS) -o toyslock.o y.tab.c
+
       Leading white space is not significant. Newlines are significant.
       Backslash escapes in the text will not have been processed yet.
-    */  
+    */
 };
 
 struct CdlBuildInfo_Make {
@@ -5321,14 +5321,14 @@ struct CdlBuildInfo_Make {
     std::string         rules;
     /*
       Something like:
-      
+
   $(CC) $(ARCHFLAGS) $(LDARCHFLAGS) -nostdlib -Wl,-r -Wl,--whole-archive $(PREFIX)/lib/libextras.a -o $(PREFIX)/lib/extras.o
-  
+
     */
 };
 
 class CdlBuildInfo_Loadable {
-    
+
     friend class CdlTest;
 
   public:
@@ -5339,7 +5339,7 @@ class CdlBuildInfo_Loadable {
     std::vector<CdlBuildInfo_Object>            objects;
     std::vector<CdlBuildInfo_MakeObject>        make_objects;
     std::vector<CdlBuildInfo_Make>              makes;
-    
+
   protected:
 
   private:
@@ -5359,7 +5359,7 @@ class CdlBuildInfo {
 };
 
 //}}}
-//{{{  CdlBuildLoadable                 
+//{{{  CdlBuildLoadable
 
 // ----------------------------------------------------------------------------
 // BuildLoadables are derived from Loadables and are appropriate for
@@ -5385,7 +5385,7 @@ class CdlBuildLoadableBody : virtual public CdlLoadableBody
 
     // An alternative which ignores the active and enabled states.
     void        update_all_build_info(CdlBuildInfo&) const;
-    
+
     // Property parsers and validation code appropriate for a
     // build-loadable object such as makefile
     static void add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
@@ -5394,29 +5394,29 @@ class CdlBuildLoadableBody : virtual public CdlLoadableBody
     static int  parse_makefile(CdlInterpreter, int, const char*[]);
     static int  parse_include_dir(CdlInterpreter, int, const char*[]);
     static int  parse_include_files(CdlInterpreter, int, const char*[]);
-    
+
     // By default any compiled files will go into libtarget.a, which
     // is the default value for this variable. Individual applications may
     // specify an alternative default library.
-    static char*        default_library_name;
+    static const char*        default_library_name;
 
     // When filling in a build_info structure the library needs to know
     // what constitutes a header file. A glob pattern can be used for this.
     // NOTE: in the long term this should come out of a data file.
-    static char*        default_headers_glob_pattern;
-    
+    static const char*        default_headers_glob_pattern;
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlBuildLoadableBody();
 
   private:
 
     enum {
-        CdlBuildLoadableBody_Invalid    = 0,
-        CdlBuildLoadableBody_Magic      = 0x55776643
+       CdlBuildLoadableBody_Invalid    = 0,
+       CdlBuildLoadableBody_Magic      = 0x55776643
     } cdlbuildloadablebody_cookie;
 
     // Illegal operations
@@ -5425,7 +5425,7 @@ class CdlBuildLoadableBody : virtual public CdlLoadableBody
 };
 
 //}}}
-//{{{  CdlBuildable                     
+//{{{  CdlBuildable
 
 // ----------------------------------------------------------------------------
 // Buildable objects can have properties such as compile and
@@ -5453,7 +5453,7 @@ class CdlBuildableBody : virtual public CdlNodeBody
 
     // An alternative which ignores the active and enabled states.
     void        update_all_build_info(CdlBuildInfo_Loadable&, std::string) const;
-    
+
     // Add property parsers and validation code appropriate for a
     // buildable object such as compile and make_object
     static void add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
@@ -5465,20 +5465,20 @@ class CdlBuildableBody : virtual public CdlNodeBody
     static int  parse_make_object(CdlInterpreter, int, const char*[]);
     static int  parse_object(CdlInterpreter, int, const char*[]);
     static bool split_custom_build_step(std::string /* data */, std::string& /* target */, std::string& /* deps */,
-                                        std::string& /* rules*/, std::string& /* error_msg */);
+                                       std::string& /* rules*/, std::string& /* error_msg */);
 
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlBuildableBody();
 
   private:
 
     enum {
-        CdlBuildableBody_Invalid        = 0,
-        CdlBuildableBody_Magic          = 0x16eb1c04
+       CdlBuildableBody_Invalid        = 0,
+       CdlBuildableBody_Magic          = 0x16eb1c04
     } cdlbuildablebody_cookie;
 
     // Illegal operations
@@ -5487,7 +5487,7 @@ class CdlBuildableBody : virtual public CdlNodeBody
 };
 
 //}}}
-//{{{  CdlDefineLoadable                
+//{{{  CdlDefineLoadable
 
 // ----------------------------------------------------------------------------
 // DefineLoadables are derived from Loadables and are appropriate for
@@ -5511,7 +5511,7 @@ class CdlDefineLoadableBody : virtual public CdlLoadableBody
 
     // What header file should be generated for this loadable?
     virtual std::string get_config_header() const;
-    
+
     // Add property parsers and validation code.
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     void                check_properties(CdlInterpreter);
@@ -5520,15 +5520,15 @@ class CdlDefineLoadableBody : virtual public CdlLoadableBody
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlDefineLoadableBody();
 
   private:
 
     enum {
-        CdlDefineLoadableBody_Invalid   = 0,
-        CdlDefineLoadableBody_Magic     = 0x7e211709
+       CdlDefineLoadableBody_Invalid   = 0,
+       CdlDefineLoadableBody_Magic     = 0x7e211709
     } cdldefineloadablebody_cookie;
 
     // Illegal operations
@@ -5537,7 +5537,7 @@ class CdlDefineLoadableBody : virtual public CdlLoadableBody
 };
 
 //}}}
-//{{{  CdlDefinable                     
+//{{{  CdlDefinable
 
 // ----------------------------------------------------------------------------
 // Definables are derived from Valuables and provide support for
@@ -5568,15 +5568,15 @@ class CdlDefinableBody : virtual public CdlValuableBody
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlDefinableBody();
 
   private:
 
     enum {
-        CdlDefinableBody_Invalid        = 0,
-        CdlDefinableBody_Magic          = 0x65a2c95a
+       CdlDefinableBody_Invalid        = 0,
+       CdlDefinableBody_Magic          = 0x65a2c95a
     } cdldefinablebody_cookie;
 
     // Illegal operations
@@ -5587,7 +5587,7 @@ class CdlDefinableBody : virtual public CdlValuableBody
 //}}}
 
 //}}}
-//{{{  CdlDialog                                        
+//{{{  CdlDialog
 
 // ----------------------------------------------------------------------------
 // A dialog simply inherits from CdlUserVisible and provides convenient
@@ -5617,15 +5617,15 @@ class CdlDialogBody :
     const cdl_tcl_code& get_display_proc() const;
     const cdl_tcl_code& get_confirm_proc() const;
     const cdl_tcl_code& get_cancel_proc() const;
-    
+
     static int          parse_dialog(CdlInterpreter, int, const char*[]);
     static int          parse_display_proc(CdlInterpreter, int, const char*[]);
     static int          parse_update_proc(CdlInterpreter, int, const char*[]);
-    
+
     // Persistence support. Dialogs should just be ignored when it
     // comes to saving and restoring files.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
-                                                
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -5635,12 +5635,12 @@ class CdlDialogBody :
     CdlDialogBody(std::string);
 
     static bool         dialogs_enabled;
-    
+
     enum {
-        CdlDialogBody_Invalid   = 0,
-        CdlDialogBody_Magic     = 0x3f4df391
+       CdlDialogBody_Invalid   = 0,
+       CdlDialogBody_Magic     = 0x3f4df391
     } cdldialogbody_cookie;
-    
+
     // Illegal operations. The dialog name must be known at the time
     // that the object is constructed.
     CdlDialogBody();
@@ -5649,7 +5649,7 @@ class CdlDialogBody :
 };
 
 //}}}
-//{{{  CdlWizard                                        
+//{{{  CdlWizard
 
 // ----------------------------------------------------------------------------
 // A wizard is very much like a dialog, just a different set of properties.
@@ -5680,11 +5680,11 @@ class CdlWizardBody :
     static int          parse_decoration_proc(CdlInterpreter, int, const char*[]);
     static int          parse_init_proc(CdlInterpreter, int, const char*[]);
     static int          parse_screen(CdlInterpreter, int, const char*[]);
-    
+
     // Persistence support. Wizards should just be ignored when it
     // comes to saving and restoring files.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -5697,25 +5697,25 @@ class CdlWizardBody :
     CdlWizardBody();
     CdlWizardBody(const CdlWizardBody&);
     CdlWizardBody& operator=(const CdlWizardBody&);
-    
+
     enum {
-        CdlWizardBody_Invalid   = 0,
-        CdlWizardBody_Magic     = 0x4ec1c39a
+       CdlWizardBody_Invalid   = 0,
+       CdlWizardBody_Magic     = 0x4ec1c39a
     } cdlwizardbody_cookie;
 };
 
 //}}}
-//{{{  CdlInterface class                               
+//{{{  CdlInterface class
 
 // ----------------------------------------------------------------------------
 // Similarly for interfaces.
 
 class CdlInterfaceBody : public virtual CdlNodeBody,
-                         public virtual CdlUserVisibleBody,
-                         public virtual CdlValuableBody,
-                         public virtual CdlParentableBody,
-                         public virtual CdlBuildableBody,
-                         public virtual CdlDefinableBody
+                        public virtual CdlUserVisibleBody,
+                        public virtual CdlValuableBody,
+                        public virtual CdlParentableBody,
+                        public virtual CdlBuildableBody,
+                        public virtual CdlDefinableBody
 {
     friend class CdlTest;
 
@@ -5725,9 +5725,9 @@ class CdlInterfaceBody : public virtual CdlNodeBody,
 
     void                get_implementers(std::vector<CdlValuable>&) const;
     void                recalculate(CdlTransaction);
-    
+
     static int          parse_interface(CdlInterpreter, int, const char*[]);
-    
+
     // Persistence support. The interface data cannot sensibly be modified
     // by users, it is all calculated. However it is useful to have the
     // interface data present in the saved file so that users can examine
@@ -5745,10 +5745,10 @@ class CdlInterfaceBody : public virtual CdlNodeBody,
   private:
     CdlInterfaceBody(std::string, bool /* generated */);
     bool        generated;
-    
+
     enum {
-        CdlInterfaceBody_Invalid   = 0,
-        CdlInterfaceBody_Magic     = 0x67f7fbe5
+       CdlInterfaceBody_Invalid   = 0,
+       CdlInterfaceBody_Magic     = 0x67f7fbe5
     } cdlinterfacebody_cookie;
     CdlInterfaceBody();
     CdlInterfaceBody(const CdlInterfaceBody&);
index f6ecc281ea39c5866784b83bcb757e47f941f4d0..febdfae0d7ddf9c8afba426aaaf418e1bbe5cdb4 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                                                   
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,28 +8,28 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -43,7 +43,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                                               
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include <string.h>
@@ -79,7 +79,7 @@
 
 //}}}
 
-//{{{  Cdl::is_valid_xxx()                                      
+//{{{  Cdl::is_valid_xxx()
 
 // ---------------------------------------------------------------------------
 
@@ -93,11 +93,11 @@ Cdl::is_valid_value_flavor(CdlValueFlavor data)
       case CdlValueFlavor_Bool     :
       case CdlValueFlavor_BoolData :
       case CdlValueFlavor_Data     :
-        result = true;
-        break;
+       result = true;
+       break;
 
       default:
-        break;
+       break;
     }
 
     return result;
@@ -113,11 +113,11 @@ Cdl::is_valid_value_source(CdlValueSource data)
       case CdlValueSource_User            :
       case CdlValueSource_Wizard          :
       case CdlValueSource_Inferred        :
-        result = true;
-        break;
+       result = true;
+       break;
 
       default:
-        break;
+       break;
     }
 
     return result;
@@ -128,48 +128,48 @@ Cdl::is_valid_value_source(CdlValueSource data)
 // preprocessor. This may cause problems in future, e.g. i18n.
 
 bool
-Cdl::is_valid_cdl_name(const std::stringname)
+Cdl::is_valid_cdl_name(const std::string &name)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::is_valid_cdl_name", "result %d");
 
     bool result = is_valid_c_preprocessor_symbol(name);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
-Cdl::is_valid_c_preprocessor_symbol(const std::stringsymbol)
+Cdl::is_valid_c_preprocessor_symbol(const std::string &symbol)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::is_valid_c_preprocessor_symbol", "result %d");
 
     bool result = true;
     if ("" == symbol) {
-        result = false;
+       result = false;
     } else {
-        // A valid preprocessor symbol should begin with either an underscore
-        // or a letter. It should then be followed by some number of underscores,
-        // letters, or digits.
-        //
-        // In some locales isalpha() may succeed for characters which are not
-        // legal for C preprocessor symbols. Instead ASCII is assumed here.
-        if (('_' != symbol[0]) &&
-            !(('a' <= symbol[0]) && (symbol[0] <= 'z')) &&
-            !(('A' <= symbol[0]) && (symbol[0] <= 'Z'))) {
-            
-            result = false;
-        } else {
-            for (unsigned int i = 1; i < symbol.size(); i++) {
-                if (('_' != symbol[i]) &&
-                    !(('a' <= symbol[i]) && (symbol[i] <= 'z')) &&
-                    !(('A' <= symbol[i]) && (symbol[i] <= 'Z')) &&
-                    !(('0' <= symbol[i]) && (symbol[i] <= '9'))) {
-                    
-                    result = false;
-                    break;
-                }
-            }
-        }
+       // A valid preprocessor symbol should begin with either an underscore
+       // or a letter. It should then be followed by some number of underscores,
+       // letters, or digits.
+       //
+       // In some locales isalpha() may succeed for characters which are not
+       // legal for C preprocessor symbols. Instead ASCII is assumed here.
+       if (('_' != symbol[0]) &&
+           !(('a' <= symbol[0]) && (symbol[0] <= 'z')) &&
+           !(('A' <= symbol[0]) && (symbol[0] <= 'Z'))) {
+
+           result = false;
+       } else {
+           for (unsigned int i = 1; i < symbol.size(); i++) {
+               if (('_' != symbol[i]) &&
+                   !(('a' <= symbol[i]) && (symbol[i] <= 'z')) &&
+                   !(('A' <= symbol[i]) && (symbol[i] <= 'Z')) &&
+                   !(('0' <= symbol[i]) && (symbol[i] <= '9'))) {
+
+                   result = false;
+                   break;
+               }
+           }
+       }
     }
 
     CYG_REPORT_RETVAL(result);
@@ -177,7 +177,7 @@ Cdl::is_valid_c_preprocessor_symbol(const std::string& symbol)
 }
 
 //}}}
-//{{{  Cdl::xxx_to_yyy() - strings, ints, doubles, ...          
+//{{{  Cdl::xxx_to_yyy() - strings, ints, doubles, ...
 
 // ---------------------------------------------------------------------------
 // Conversion routines between strings, integers, doubles, bools, ...
@@ -190,156 +190,156 @@ Cdl::is_valid_c_preprocessor_symbol(const std::string& symbol)
 // ASCII rather than EBCDIC is assumed.
 //
 // Some of the routines may fail, e.g. string to integer conversions.
-// Others are guaranteed to succeed. 
+// Others are guaranteed to succeed.
 
-//{{{  string_to_integer()                      
+//{{{  string_to_integer()
 
 // ----------------------------------------------------------------------------
 bool
-Cdl::string_to_integer(std::string data, cdl_inttarget)
+Cdl::string_to_integer(std::string data, cdl_int &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_integer", "success %d");
 
     bool negative       = false;
     bool seen_plus      = false;
     bool seen_minus     = false;
-    
+
     // Life is a bit easier if I can check for '\0'
-    const charptr           = data.c_str();
+    const char *ptr           = data.c_str();
 
     // Not essential but harmless.
     while (isspace(*ptr))
-        ptr++;
+       ptr++;
 
     if ('+' == *ptr) {
-        if (seen_plus) {
-            target = 0;
-            CYG_REPORT_RETVAL(false);
-            return false;
-        }
-        seen_plus = true;
-        ptr++;
+       if (seen_plus) {
+           target = 0;
+           CYG_REPORT_RETVAL(false);
+           return false;
+       }
+       seen_plus = true;
+       ptr++;
     }
-    
+
     if ('-' == *ptr) {
-        if (seen_minus) {
-            target = 0;
-            CYG_REPORT_RETVAL(false);
-            return false;
-        }
-        seen_minus = true;
-        negative = true;
-        ptr++;
+       if (seen_minus) {
+           target = 0;
+           CYG_REPORT_RETVAL(false);
+           return false;
+       }
+       seen_minus = true;
+       negative = true;
+       ptr++;
     }
 
     cdl_int acc = 0;
     if ('0' == *ptr) {
-        // This happens sufficiently often to be worth a special case.
-        if ('\0' == ptr[1]) {
-            target = 0;
-            CYG_REPORT_RETVAL(true);
-            return true;
-        }
-        // Hex is always worth supporting. 
-        if (('x' == ptr[1]) || ('X' == ptr[1])) {
-            ptr++; ptr++;
-            if (!isxdigit(*ptr)) {
-                CYG_REPORT_RETVAL(false);
-                return false;
-            }
-            while (isxdigit(*ptr)) {
-                cdl_int new_acc = acc * 16;
-                if (isdigit(*ptr)) {
-                    new_acc += (*ptr - '0');
-                } else if (('a' <= *ptr) && (*ptr <= 'f')) {
-                    new_acc += (*ptr + 10 - 'a');
-                } else if (('A' <= *ptr) && (*ptr <= 'F')) {
-                    new_acc += (*ptr + 10 - 'A');
-                } else {
-                    CYG_FAIL("this platform's implementation of isxdigit() is broken");
-                }
-                if (new_acc < acc) {
-                    CYG_REPORT_RETVAL(false);
-                    return false;
-                }
-                acc = new_acc;
-                ptr++;
-            }
-            if ('\0' != *ptr) {
-                CYG_REPORT_RETVAL(false);
-                return false;
-            }
-            if (negative) {
-                cdl_int new_acc = 0 - acc;
-                if (new_acc > 0) {
-                    CYG_REPORT_RETVAL(false);
-                    return false;
-                } else {
-                    acc = new_acc;
-                }
-            }
-            target = acc;
-            CYG_REPORT_RETVAL(true);
-            return true;
-        }
-
-        // Octal? Oh well, might as well be complete.
-        if (('0' <= ptr[1]) && (ptr[1] <= '7')) {
-            ptr++;
-            do {
-                cdl_int new_acc = 8 * acc;
-                new_acc += (*ptr - '0');
-                if (new_acc < acc) {
-                    CYG_REPORT_RETVAL(false);
-                    return false;
-                }
-                acc = new_acc;
-                ptr++;
-            } while (('0' <= *ptr) && (*ptr <= '7'));
-            if ('\0' != *ptr) {
-                CYG_REPORT_RETVAL(false);
-                return false;
-            }
-            if (negative) {
-                cdl_int new_acc = 0 - acc;
-                if (new_acc > 0) {
-                    CYG_REPORT_RETVAL(false);
-                    return false;
-                }
-                else {
-                    acc = new_acc;
-                }
-            }
-            target = acc;
-            CYG_REPORT_RETVAL(true);
-            return true;
-        }
-
-        // Drop through for the case of a decimal.
+       // This happens sufficiently often to be worth a special case.
+       if ('\0' == ptr[1]) {
+           target = 0;
+           CYG_REPORT_RETVAL(true);
+           return true;
+       }
+       // Hex is always worth supporting.
+       if (('x' == ptr[1]) || ('X' == ptr[1])) {
+           ptr++; ptr++;
+           if (!isxdigit(*ptr)) {
+               CYG_REPORT_RETVAL(false);
+               return false;
+           }
+           while (isxdigit(*ptr)) {
+               cdl_int new_acc = acc * 16;
+               if (isdigit(*ptr)) {
+                   new_acc += (*ptr - '0');
+               } else if (('a' <= *ptr) && (*ptr <= 'f')) {
+                   new_acc += (*ptr + 10 - 'a');
+               } else if (('A' <= *ptr) && (*ptr <= 'F')) {
+                   new_acc += (*ptr + 10 - 'A');
+               } else {
+                   CYG_FAIL("this platform's implementation of isxdigit() is broken");
+               }
+               if (new_acc < acc) {
+                   CYG_REPORT_RETVAL(false);
+                   return false;
+               }
+               acc = new_acc;
+               ptr++;
+           }
+           if ('\0' != *ptr) {
+               CYG_REPORT_RETVAL(false);
+               return false;
+           }
+           if (negative) {
+               cdl_int new_acc = 0 - acc;
+               if (new_acc > 0) {
+                   CYG_REPORT_RETVAL(false);
+                   return false;
+               } else {
+                   acc = new_acc;
+               }
+           }
+           target = acc;
+           CYG_REPORT_RETVAL(true);
+           return true;
+       }
+
+       // Octal? Oh well, might as well be complete.
+       if (('0' <= ptr[1]) && (ptr[1] <= '7')) {
+           ptr++;
+           do {
+               cdl_int new_acc = 8 * acc;
+               new_acc += (*ptr - '0');
+               if (new_acc < acc) {
+                   CYG_REPORT_RETVAL(false);
+                   return false;
+               }
+               acc = new_acc;
+               ptr++;
+           } while (('0' <= *ptr) && (*ptr <= '7'));
+           if ('\0' != *ptr) {
+               CYG_REPORT_RETVAL(false);
+               return false;
+           }
+           if (negative) {
+               cdl_int new_acc = 0 - acc;
+               if (new_acc > 0) {
+                   CYG_REPORT_RETVAL(false);
+                   return false;
+               }
+               else {
+                   acc = new_acc;
+               }
+           }
+           target = acc;
+           CYG_REPORT_RETVAL(true);
+           return true;
+       }
+
+       // Drop through for the case of a decimal.
     }
 
     while(isdigit(*ptr)) {
-        cdl_int new_acc = 10 * acc;
-        new_acc += (*ptr - '0');
-        if (new_acc < acc) {
-            CYG_REPORT_RETVAL(false);
-            return false;
-        }
-        acc = new_acc;
-        ptr++;
+       cdl_int new_acc = 10 * acc;
+       new_acc += (*ptr - '0');
+       if (new_acc < acc) {
+           CYG_REPORT_RETVAL(false);
+           return false;
+       }
+       acc = new_acc;
+       ptr++;
     }
     if ('\0' != *ptr) {
-        CYG_REPORT_RETVAL(false);
-        return false;
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
     if (negative) {
-        cdl_int new_acc = 0 - acc;
-        if (new_acc > 0) {
-            CYG_REPORT_RETVAL(false);
-            return false;
-        } else {
-            acc = new_acc;
-        }
+       cdl_int new_acc = 0 - acc;
+       if (new_acc > 0) {
+           CYG_REPORT_RETVAL(false);
+           return false;
+       } else {
+           acc = new_acc;
+       }
     }
     target = acc;
     CYG_REPORT_RETVAL(true);
@@ -347,7 +347,7 @@ Cdl::string_to_integer(std::string data, cdl_int& target)
 }
 
 //}}}
-//{{{  string_to_double()                       
+//{{{  string_to_double()
 
 // ----------------------------------------------------------------------------
 // There is no point in doing this the hard way, just use standard
@@ -361,41 +361,41 @@ Cdl::string_to_integer(std::string data, cdl_int& target)
 // tcl_precision variable.
 
 bool
-Cdl::string_to_double(std::string value, doubletarget)
+Cdl::string_to_double(std::string value, double &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_double", "success %d");
 
     bool        result      = true;
-    const charstart_ptr   = value.c_str();
-    char*       end_ptr;
+    const char *start_ptr   = value.c_str();
+    char       *end_ptr;
     int         old_errno   = errno;
-    
+
     errno                   = 0;
     double conv             = strtod(start_ptr, &end_ptr);
     if (0 != errno) {
-        CYG_ASSERT(ERANGE == errno, "standard-compliant C library");
-        result = false;
+       CYG_ASSERT(ERANGE == errno, "standard-compliant C library");
+       result = false;
     } else if ('\0' != *end_ptr) {
-        result = false;
+       result = false;
     } else {
-        target = conv;
-        result = true;
+       target = conv;
+       result = true;
     }
-     
+
     errno = old_errno;
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  string_to_bool()                         
+//{{{  string_to_bool()
 
 // ----------------------------------------------------------------------------
 // Conversions to and from bools. The only real issue here is exactly
 // what strings should be accepted as synonyms for true and false.
 // It is not actually clear that these functions are useful.
 bool
-Cdl::string_to_bool(std::string data, booltarget)
+Cdl::string_to_bool(std::string data, bool &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_bool", "success %d");
 
@@ -404,13 +404,13 @@ Cdl::string_to_bool(std::string data, bool& target)
 
     // What is truth ?
     if (( data == "1"   ) || (data == "true") ||
-        ( data == "True") || (data == "TRUE") ) {
-        result = true;
-        target = true;
+       ( data == "True") || (data == "TRUE") ) {
+       result = true;
+       target = true;
     } else if ((data == "0"    ) || (data == "false") ||
-               (data == "False") || (data == "FALSE") ) {
-        result = true;
-        target = false;
+              (data == "False") || (data == "FALSE") ) {
+       result = true;
+       target = false;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -419,7 +419,7 @@ Cdl::string_to_bool(std::string data, bool& target)
 
 //}}}
 
-//{{{  integer_to_string()                      
+//{{{  integer_to_string()
 
 // ----------------------------------------------------------------------------
 
@@ -432,20 +432,20 @@ Cdl::integer_to_string(cdl_int value, CdlValueFormat format)
 }
 
 void
-Cdl::integer_to_string(cdl_int value, std::stringtarget, CdlValueFormat format)
+Cdl::integer_to_string(cdl_int value, std::string &target, CdlValueFormat format)
 {
     CYG_REPORT_FUNCNAME("Cdl::integer_to_string");
     CYG_REPORT_FUNCARG2XV((long) value, format);
 
     // Optimise this special case.
     if (0 == value) {
-        if (CdlValueFormat_Hex == format) {
-            target = "0x0";
-        } else {
-            target = "0";
-        }
-        CYG_REPORT_RETVAL(true);
-        return;
+       if (CdlValueFormat_Hex == format) {
+           target = "0x0";
+       } else {
+           target = "0";
+       }
+       CYG_REPORT_RETVAL(true);
+       return;
     }
 
     // A local buffer to construct partial strings. This avoids
@@ -455,93 +455,93 @@ Cdl::integer_to_string(cdl_int value, std::string& target, CdlValueFormat format
     char local_buf[24];
     char *local_ptr = &(local_buf[23]);
     *local_ptr-- = '\0';
-    
+
     if (CdlValueFormat_Hex == format) {
 
-        // Output the data as 0x... with either 8 or 16 digits,
-        // depending on the size.
-        int i;
-        for (i = 0; i < 8; i++) {
-            int tmp = (int) (value & 0x0F);
-            value   = value >> 4;
-            if (tmp < 10) {
-                *local_ptr-- = '0' + tmp;
-            } else {
-                *local_ptr-- = 'A' + (tmp - 10);
-            }
-        }
-        // Beware of right shifts that preserve the sign bit.
-        {
-            int tmp1 = (value & 0x0FFFF);
-            int tmp2 = ((value >> 16) & 0x0FFFF);
-            value    = (tmp2 << 16) + tmp1;
-        }
-        if (value != 0) {
-            for (i = 0; i < 8; i++) {
-                int tmp = (int) (value & 0x0F);
-                value   = value >> 4;
-                if (tmp < 10) {
-                    *local_ptr-- = '0' + tmp;
-                } else {
-                    *local_ptr-- = 'A' + (tmp - 10);
-                }
-            }
-        }
-        *local_ptr-- = 'x';
-        *local_ptr   = '0';
-        target = std::string(local_ptr);
-        
+       // Output the data as 0x... with either 8 or 16 digits,
+       // depending on the size.
+       int i;
+       for (i = 0; i < 8; i++) {
+           int tmp = (int) (value & 0x0F);
+           value   = value >> 4;
+           if (tmp < 10) {
+               *local_ptr-- = '0' + tmp;
+           } else {
+               *local_ptr-- = 'A' + (tmp - 10);
+           }
+       }
+       // Beware of right shifts that preserve the sign bit.
+       {
+           int tmp1 = (value & 0x0FFFF);
+           int tmp2 = ((value >> 16) & 0x0FFFF);
+           value    = (tmp2 << 16) + tmp1;
+       }
+       if (value != 0) {
+           for (i = 0; i < 8; i++) {
+               int tmp = (int) (value & 0x0F);
+               value   = value >> 4;
+               if (tmp < 10) {
+                   *local_ptr-- = '0' + tmp;
+               } else {
+                   *local_ptr-- = 'A' + (tmp - 10);
+               }
+           }
+       }
+       *local_ptr-- = 'x';
+       *local_ptr   = '0';
+       target = std::string(local_ptr);
+
     } else if (CdlValueFormat_Octal == format) {
 
-        // Simply output the data three bits at a time, do not worry about any
-        // particular width restrictions. However it is necessary to worry
-        // about masking.
-        cdl_int mask = 0x1FFFFFFF;
-        mask = (mask << 16) | 0x0FFFF;
-        mask = (mask << 16) | 0x0FFFF;
-
-        target = "";
-        while (value > 0) {
-            int tmp = value & 0x07;
-            value   = (value >> 3) & mask;
-            *local_ptr-- = '0' + tmp;
-        }
-        *local_ptr = '0';
-        target = std::string(local_ptr);
-        
+       // Simply output the data three bits at a time, do not worry about any
+       // particular width restrictions. However it is necessary to worry
+       // about masking.
+       cdl_int mask = 0x1FFFFFFF;
+       mask = (mask << 16) | 0x0FFFF;
+       mask = (mask << 16) | 0x0FFFF;
+
+       target = "";
+       while (value > 0) {
+           int tmp = value & 0x07;
+           value   = (value >> 3) & mask;
+           *local_ptr-- = '0' + tmp;
+       }
+       *local_ptr = '0';
+       target = std::string(local_ptr);
+
     } else {
-        // A simple decimal number      
-        // Switch to positive arithmetic.
-        bool negative = false;
-        if (value < 0) {
-            negative = true;
-            value    = 0 - value;
-            // Only MININT cannot be converted using the above line
-            if (value < 0) {
-                target = "-9223372036854775808";
-                CYG_REPORT_RETVAL(true);
-                return;
-            }
-        }
-
-        while (value > 0) {
-            int rem = (int) (value % 10);
-            value   = value / 10;
-            *local_ptr-- = '0' + rem;
-        }
-        if (negative) {
-            *local_ptr-- = '-';
-        }
-        local_ptr++;
-        target = std::string(local_ptr);
+       // A simple decimal number
+       // Switch to positive arithmetic.
+       bool negative = false;
+       if (value < 0) {
+           negative = true;
+           value    = 0 - value;
+           // Only MININT cannot be converted using the above line
+           if (value < 0) {
+               target = "-9223372036854775808";
+               CYG_REPORT_RETVAL(true);
+               return;
+           }
+       }
+
+       while (value > 0) {
+           int rem = (int) (value % 10);
+           value   = value / 10;
+           *local_ptr-- = '0' + rem;
+       }
+       if (negative) {
+           *local_ptr-- = '-';
+       }
+       local_ptr++;
+       target = std::string(local_ptr);
     }
-    
+
     CYG_REPORT_RETURN();
     return;
 }
 
 //}}}
-//{{{  double_to_string()                       
+//{{{  double_to_string()
 
 // ----------------------------------------------------------------------------
 
@@ -554,7 +554,7 @@ Cdl::double_to_string(double value, CdlValueFormat format)
 }
 
 void
-Cdl::double_to_string(double value, std::stringresult, CdlValueFormat format)
+Cdl::double_to_string(double value, std::string &result, CdlValueFormat format)
 {
     CYG_REPORT_FUNCNAME("Cdl::double_to_String");
 
@@ -567,7 +567,7 @@ Cdl::double_to_string(double value, std::string& result, CdlValueFormat format)
 }
 
 //}}}
-//{{{  bool_to_string()                         
+//{{{  bool_to_string()
 
 // ----------------------------------------------------------------------------
 // Should the string results be 1/0 or true/false? Not that
@@ -581,22 +581,22 @@ Cdl::bool_to_string(bool value)
 }
 
 void
-Cdl::bool_to_string(bool value, std::stringtarget)
+Cdl::bool_to_string(bool value, std::string &target)
 {
     CYG_REPORT_FUNCNAME("Cdl::bool_to_string");
     CYG_REPORT_FUNCARG1( "value arg %ld", (long) value);
 
     if (value)
-        target = "1";
+       target = "1";
     else
-        target = "0";
+       target = "0";
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
-//{{{  integer_to_double()                      
+//{{{  integer_to_double()
 
 // ----------------------------------------------------------------------------
 // Currently integer to double cannot fail, although there may well be loss
@@ -614,7 +614,7 @@ Cdl::integer_to_double(cdl_int value)
 }
 
 void
-Cdl::integer_to_double(cdl_int value, doubletarget)
+Cdl::integer_to_double(cdl_int value, double &target)
 {
     CYG_REPORT_FUNCNAME("Cdl::integer_to_double");
 
@@ -624,29 +624,29 @@ Cdl::integer_to_double(cdl_int value, double& target)
 }
 
 //}}}
-//{{{  double_to_integer()                      
+//{{{  double_to_integer()
 
 // Conversion from double to integer is only allowed if there is no loss
 // of data. modf() is useful here
 bool
-Cdl::double_to_integer(double value, cdl_inttarget)
+Cdl::double_to_integer(double value, cdl_int &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::double_to_integer", "result %d");
 
     bool   result = false;
-    
+
     double integral;
     double frac;
 
     frac = modf(value, &integral);
     if (0.0 == frac) {
-        // Looking good, but integral may still be too big.
-        cdl_int tmp = (cdl_int) integral;
-        if (tmp == value) {
-            // No fraction, no loss of data, everything looking good
-            target = tmp;
-            result = true;
-        }
+       // Looking good, but integral may still be too big.
+       cdl_int tmp = (cdl_int) integral;
+       if (tmp == value) {
+           // No fraction, no loss of data, everything looking good
+           target = tmp;
+           result = true;
+       }
     }
 
     CYG_REPORT_RETVAL(result);
@@ -656,24 +656,24 @@ Cdl::double_to_integer(double value, cdl_int& target)
 //}}}
 
 //}}}
-//{{{  Cdl::xxx_to_yyy() - CDL-specific data types              
+//{{{  Cdl::xxx_to_yyy() - CDL-specific data types
 
 // ----------------------------------------------------------------------------
 // Conversions between strings and flavors.
 
 static struct {
-    char*               name;
-    CdlValueFlavor      flavor;
+    const char         *name;
+    CdlValueFlavor     flavor;
 } valid_flavors[] = {
-    { "none",           CdlValueFlavor_None     },
-    { "bool",           CdlValueFlavor_Bool     },
-    { "booldata",       CdlValueFlavor_BoolData },
-    { "data",           CdlValueFlavor_Data     },
-    { 0,                CdlValueFlavor_Invalid  }
+    { "none",          CdlValueFlavor_None     },
+    { "bool",          CdlValueFlavor_Bool     },
+    { "booldata",      CdlValueFlavor_BoolData },
+    { "data",          CdlValueFlavor_Data     },
+    { 0,               CdlValueFlavor_Invalid  }
 };
 
 bool
-Cdl::string_to_flavor(std::string name, CdlValueFlavortarget)
+Cdl::string_to_flavor(std::string name, CdlValueFlavor &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_flavor", "success %d");
 
@@ -683,51 +683,51 @@ Cdl::string_to_flavor(std::string name, CdlValueFlavor& target)
     // Tcl is a case-sensitive language, but the conversion is unlikely ever
     // to be harmfull.
     for (std::string::iterator str_i = name.begin(); str_i != name.end(); str_i++) {
-        if (isupper(*str_i)) {
-            *str_i = tolower(*str_i);
-        }
+       if (isupper(*str_i)) {
+           *str_i = tolower(*str_i);
+       }
     }
-           
+
     // Now look for a match in the table.
     int match           = -1;
     int i;
-    const charc_str   = name.c_str();
+    const char *c_str   = name.c_str();
     int len             = strlen(c_str);
 
     for (i = 0; 0 != valid_flavors[i].name; i++) {
-        if (0 == strncmp(c_str, valid_flavors[i].name, len)) {
-            // Check for an ambiguous string match.
-            // This cannot actually happen with the current flavor names.
-            if ( -1 != match) {
-                break;
-            }
-            match = i;
-        }
-        
+       if (0 == strncmp(c_str, valid_flavors[i].name, len)) {
+           // Check for an ambiguous string match.
+           // This cannot actually happen with the current flavor names.
+           if ( -1 != match) {
+               break;
+           }
+           match = i;
+       }
+
     }
     if (-1 != match) {
-        target = valid_flavors[match].flavor;
-        result = true;
+       target = valid_flavors[match].flavor;
+       result = true;
     }
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
-Cdl::flavor_to_string(CdlValueFlavor flavor, std::stringtarget)
+Cdl::flavor_to_string(CdlValueFlavor flavor, std::string &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::flavor_to_string", "success %d");
 
     bool result = false;
 
     for (int i = 0; 0 != valid_flavors[i].name; i++) {
-        if (flavor == valid_flavors[i].flavor) {
-            target = valid_flavors[i].name;
-            result = true;
-            break;
-        }
+       if (flavor == valid_flavors[i].flavor) {
+           target = valid_flavors[i].name;
+           result = true;
+           break;
+       }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -736,18 +736,18 @@ Cdl::flavor_to_string(CdlValueFlavor flavor, std::string& target)
 // Similar support for value sources.
 
 static struct {
-    char*               name;
-    CdlValueSource      source;
+    const char         *name;
+    CdlValueSource     source;
 } valid_sources[] = {
-    { "default",        CdlValueSource_Default  },
-    { "inferred",       CdlValueSource_Inferred },
-    { "wizard",         CdlValueSource_Wizard   },
-    { "user",           CdlValueSource_User     },
-    { 0,                CdlValueSource_Invalid  }
+    { "default",       CdlValueSource_Default  },
+    { "inferred",      CdlValueSource_Inferred },
+    { "wizard",                CdlValueSource_Wizard   },
+    { "user",          CdlValueSource_User     },
+    { 0,               CdlValueSource_Invalid  }
 };
 
 bool
-Cdl::string_to_source(std::string name, CdlValueSourcetarget)
+Cdl::string_to_source(std::string name, CdlValueSource &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_source", "success %d");
 
@@ -757,57 +757,57 @@ Cdl::string_to_source(std::string name, CdlValueSource& target)
     // Tcl is a case-sensitive language, but the conversion is unlikely ever
     // to be harmfull.
     for (std::string::iterator str_i = name.begin(); str_i != name.end(); str_i++) {
-        if (isupper(*str_i)) {
-            *str_i = tolower(*str_i);
-        }
+       if (isupper(*str_i)) {
+           *str_i = tolower(*str_i);
+       }
     }
-           
+
     // Now look for a match in the table.
     int match           = -1;
     int i;
-    const charc_str   = name.c_str();
+    const char *c_str   = name.c_str();
     int len             = strlen(c_str);
 
     for (i = 0; 0 != valid_sources[i].name; i++) {
-        if (0 == strncmp(c_str, valid_sources[i].name, len)) {
-            // Check for an ambiguous string match.
-            // This cannot actually happen with the current source names.
-            if ( -1 != match) {
-                break;
-            }
-            match = i;
-        }
-        
+       if (0 == strncmp(c_str, valid_sources[i].name, len)) {
+           // Check for an ambiguous string match.
+           // This cannot actually happen with the current source names.
+           if ( -1 != match) {
+               break;
+           }
+           match = i;
+       }
+
     }
     if (-1 != match) {
-        target = valid_sources[match].source;
-        result = true;
+       target = valid_sources[match].source;
+       result = true;
     }
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
-Cdl::source_to_string(CdlValueSource source, std::stringtarget)
+Cdl::source_to_string(CdlValueSource source, std::string &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::source_to_string", "success %d");
 
     bool result = false;
 
     for (int i = 0; 0 != valid_sources[i].name; i++) {
-        if (source == valid_sources[i].source) {
-            target = valid_sources[i].name;
-            result = true;
-            break;
-        }
+       if (source == valid_sources[i].source) {
+           target = valid_sources[i].name;
+           result = true;
+           break;
+       }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Cdl::get_library_version()                               
+//{{{  Cdl::get_library_version()
 
 // ----------------------------------------------------------------------------
 // The version of the library actually lives inside configure.in. It gets
@@ -819,7 +819,7 @@ Cdl::get_library_version(void)
 }
 
 //}}}
-//{{{  Cdl::set_interactive()                                   
+//{{{  Cdl::set_interactive()
 
 // ----------------------------------------------------------------------------
 // Some CDL scripts and some bits of the library may want to adapt depending
@@ -847,7 +847,7 @@ Cdl::is_interactive(void)
 }
 
 //}}}
-//{{{  version support()                                        
+//{{{  version support()
 
 // ----------------------------------------------------------------------------
 // Packages may need to impose constraints on which versions of other
@@ -881,134 +881,134 @@ is_separator(int ch)
 {
     return ('.' == ch) || ('-' == ch) || ('_' == ch);
 }
-    
+
 int
 Cdl::compare_versions(std::string arg1, std::string arg2)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::compare_versions", "result %d");
 
     if (arg1 == arg2) {
-        CYG_REPORT_RETVAL(0);
-        return 0;
+       CYG_REPORT_RETVAL(0);
+       return 0;
     }
 
     // The version number "current" is special, it always indicates the most
     // recent version e.g. as checked out from a CVS repository.
     if ("current" == arg1) {
-        CYG_REPORT_RETVAL(-1);
-        return -1;
+       CYG_REPORT_RETVAL(-1);
+       return -1;
     }
     if ("current" == arg2) {
-        CYG_REPORT_RETVAL(1);
-        return 1;
+       CYG_REPORT_RETVAL(1);
+       return 1;
     }
 
-    const charptr1 = arg1.c_str();
-    const char* ptr2 = arg2.c_str();      
+    const char *ptr1 = arg1.c_str();
+    const char *ptr2 = arg2.c_str();
     int num1    = 0;
     int num2    = 0;
 
     // If both strings start with 'v' or 'V', skip this. A minor variation in
     // case at the start of a string should be ignored.
     if ((('v' == *ptr1) || ('V' == *ptr1)) &&
-        (('v' == *ptr2) || ('V' == *ptr2))) {
-        ptr1++;
-        ptr2++;
+       (('v' == *ptr2) || ('V' == *ptr2))) {
+       ptr1++;
+       ptr2++;
     }
 
     // Now process the rest of the version string, one unit at a time.
     while (1) {
 
-        if (('\0' == *ptr1) && ('\0' == *ptr2)) {
-            // Both strings have terminated at the same time. There
-            // may have been some spurious leading zeroes in numbers,
-            // or irrelevant differences in the separators.
-            CYG_REPORT_RETVAL(0);
-            return 0;
-        }
-        
-        if ('\0' == *ptr1) {
-            // The first string has ended first. If the second string currently
-            // points at a separator then arg2 is a derived version, e.g.
-            // v0.3.p1, and hence newer. Otherwise arg2 is an experimental
-            // version v0.3beta and hence older.
-            if (is_separator(*ptr2)) {
-                CYG_REPORT_RETVAL(1);
-                return 1;
-            } else {
-                CYG_REPORT_RETVAL(-1);
-                return -1;
-            }
-        }
-
-        if ('\0' == *ptr2) {
-            // As per the previous test.
-            if (is_separator(*ptr1)) {
-                CYG_REPORT_RETVAL(-1);
-                return -1;
-            } else {
-                CYG_REPORT_RETVAL(1);
-                return 1;
-            }
-        }
-
-        // If both strings currently point at numerical data, do a conversion and
-        // a numerical comparison.
-        if (isdigit(*ptr1) && isdigit(*ptr2)) {
-            num1 = 0;
-            num2 = 0;
-            // Strictly speaking there should be some overflow tests here, but it
-            // is not worth the trouble.
-            do {
-                num1 = (10 * num1) + (*ptr1++ - '0');
-            } while(isdigit(*ptr1));
-            do {
-                num2 = (10 * num2) + (*ptr2++ - '0');
-            } while(isdigit(*ptr2));
-            // v2.0 is newer than v1.0
-            if (num1 < num2) {
-                CYG_REPORT_RETVAL(1);
-                return 1;
-            } else if (num1 > num2) {
-                CYG_REPORT_RETVAL(-1);
-                return -1;
-            } else {
-                continue;
-            }
-        }
-
-        // Non-numerical data. If the two characters are the same then
-        // move on. Note: this has to happen after numerical conversions
-        // to distinguish v10.0 and v1.0
-        if (*ptr1 == *ptr2) {
-            ptr1++; ptr2++;
-            continue;
-        }
-
-        // If both strings are currently at a separator then move on. All
-        // separators can be used interchangeably.
-        if (is_separator(*ptr1) && is_separator(*ptr2)) {
-            ptr1++; ptr2++;
-            continue;
-        }
-
-        // If only one string is at a separator, special action
-        // is needed. v1.1alpha is interpreted as earlier than
-        // v1.1, but v1.1.3 is a later release.
-        if (is_separator(*ptr1)) {
-            return -1;
-        } else if (is_separator(*ptr2)) {
-            return 1;
-        }
-        
-        // Two different characters, e.g. v1.0alpha vs. v1.0beta
-        if (*ptr1 < *ptr2) {
-            CYG_REPORT_RETVAL(1);
-            return 1;
-        } else {
-            CYG_REPORT_RETVAL(-1);
-            return -1;
-        }
+       if (('\0' == *ptr1) && ('\0' == *ptr2)) {
+           // Both strings have terminated at the same time. There
+           // may have been some spurious leading zeroes in numbers,
+           // or irrelevant differences in the separators.
+           CYG_REPORT_RETVAL(0);
+           return 0;
+       }
+
+       if ('\0' == *ptr1) {
+           // The first string has ended first. If the second string currently
+           // points at a separator then arg2 is a derived version, e.g.
+           // v0.3.p1, and hence newer. Otherwise arg2 is an experimental
+           // version v0.3beta and hence older.
+           if (is_separator(*ptr2)) {
+               CYG_REPORT_RETVAL(1);
+               return 1;
+           } else {
+               CYG_REPORT_RETVAL(-1);
+               return -1;
+           }
+       }
+
+       if ('\0' == *ptr2) {
+           // As per the previous test.
+           if (is_separator(*ptr1)) {
+               CYG_REPORT_RETVAL(-1);
+               return -1;
+           } else {
+               CYG_REPORT_RETVAL(1);
+               return 1;
+           }
+       }
+
+       // If both strings currently point at numerical data, do a conversion and
+       // a numerical comparison.
+       if (isdigit(*ptr1) && isdigit(*ptr2)) {
+           num1 = 0;
+           num2 = 0;
+           // Strictly speaking there should be some overflow tests here, but it
+           // is not worth the trouble.
+           do {
+               num1 = (10 * num1) + (*ptr1++ - '0');
+           } while(isdigit(*ptr1));
+           do {
+               num2 = (10 * num2) + (*ptr2++ - '0');
+           } while(isdigit(*ptr2));
+           // v2.0 is newer than v1.0
+           if (num1 < num2) {
+               CYG_REPORT_RETVAL(1);
+               return 1;
+           } else if (num1 > num2) {
+               CYG_REPORT_RETVAL(-1);
+               return -1;
+           } else {
+               continue;
+           }
+       }
+
+       // Non-numerical data. If the two characters are the same then
+       // move on. Note: this has to happen after numerical conversions
+       // to distinguish v10.0 and v1.0
+       if (*ptr1 == *ptr2) {
+           ptr1++; ptr2++;
+           continue;
+       }
+
+       // If both strings are currently at a separator then move on. All
+       // separators can be used interchangeably.
+       if (is_separator(*ptr1) && is_separator(*ptr2)) {
+           ptr1++; ptr2++;
+           continue;
+       }
+
+       // If only one string is at a separator, special action
+       // is needed. v1.1alpha is interpreted as earlier than
+       // v1.1, but v1.1.3 is a later release.
+       if (is_separator(*ptr1)) {
+           return -1;
+       } else if (is_separator(*ptr2)) {
+           return 1;
+       }
+
+       // Two different characters, e.g. v1.0alpha vs. v1.0beta
+       if (*ptr1 < *ptr2) {
+           CYG_REPORT_RETVAL(1);
+           return 1;
+       } else {
+           CYG_REPORT_RETVAL(-1);
+           return -1;
+       }
     }
 
     // Not reachable.
@@ -1020,32 +1020,32 @@ Cdl::compare_versions(std::string arg1, std::string arg2)
 // iterates through the string looking for sequences of numbers.
 
 static void
-version_extract_number(const std::string& version, unsigned int& index, std::string& result)
+version_extract_number(const std::string &version, unsigned int &index, std::string &result)
 {
     CYG_REPORT_FUNCNAME("version_extract_number");
 
     // The calling code is expected to supply a sensible default.
     // Search for a digit
     for ( ; index < version.size(); index++) {
-        if (isdigit(version[index])) {
-            break;
-        }
+       if (isdigit(version[index])) {
+           break;
+       }
     }
     if (index != version.size()) {
-        result = "";
-        if ((index > 0) && ('-' == version[index-1])) {
-            result = "-";
-        }
-        do {
-            result += version[index++];
-        } while ((index < version.size()) && isdigit(version[index]));
+       result = "";
+       if ((index > 0) && ('-' == version[index-1])) {
+           result = "-";
+       }
+       do {
+           result += version[index++];
+       } while ((index < version.size()) && isdigit(version[index]));
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
 void
-Cdl::split_version_string(const std::string& version, std::string& major, std::string& minor, std::string& release)
+Cdl::split_version_string(const std::string &version, std::string &major, std::string &minor, std::string &release)
 {
     CYG_REPORT_FUNCNAME("CdlMisc::split_version_string");
 
@@ -1053,12 +1053,12 @@ Cdl::split_version_string(const std::string& version, std::string& major, std::s
     version_extract_number(version, index, major);
     version_extract_number(version, index, minor);
     version_extract_number(version, index, release);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Cdl::get_short_form()                                    
+//{{{  Cdl::get_short_form()
 
 // ----------------------------------------------------------------------------
 // It is occasionally useful to take a full CDL name such as CYgpkg_KERNEL
@@ -1066,7 +1066,7 @@ Cdl::split_version_string(const std::string& version, std::string& major, std::s
 // everything up to and including the first underscore, then lowercasing
 // all subsequent characters.
 std::string
-Cdl::get_short_form(const std::stringoriginal)
+Cdl::get_short_form(const std::string &original)
 {
     CYG_REPORT_FUNCNAME("CdlMisc::get_short_form");
 
@@ -1074,21 +1074,21 @@ Cdl::get_short_form(const std::string& original)
     unsigned int size = original.size();
     unsigned int i;
     for (i = 0; i < size; i++) {
-        if ('_' == original[i]) {
-            i++;
-            break;
-        }
+       if ('_' == original[i]) {
+           i++;
+           break;
+       }
     }
 
     // Either at end of string, or just past the first underscore
     for ( ; i < size; i++) {
-        if (isupper(original[i])) {
-            result += tolower(original[i]);
-        } else {
-            result += original[i];
-        }
+       if (isupper(original[i])) {
+           result += tolower(original[i]);
+       } else {
+           result += original[i];
+       }
     }
-    
+
     CYG_REPORT_RETURN();
     return result;
 }
index 180fe7ff88c98b4b5cf35ca5ec66cc6a3c2767c5..a2e8b3838501a66bb9232599beb1cb8b1c5dd23e 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlComponentBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 CdlComponentBody::CdlComponentBody(std::string name_arg)
@@ -90,7 +90,7 @@ CdlComponentBody::CdlComponentBody(std::string name_arg)
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 
@@ -102,12 +102,12 @@ CdlComponentBody::~CdlComponentBody()
 
     cdlcomponentbody_cookie = CdlComponentBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_component()                
+//{{{  parse_component()
 
 // ----------------------------------------------------------------------------
 // Parsing a component definition. This routine gets invoked directly from the
@@ -119,12 +119,12 @@ CdlComponentBody::parse_component(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("CdlComponentBody::parse_component", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
-    CdlContainer parent         = interp->get_container();       
+    CdlContainer parent         = interp->get_container();
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL.
@@ -141,57 +141,57 @@ CdlComponentBody::parse_component(CdlInterpreter interp, int argc, const char* a
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
-    
-        // Currently there are no options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                         "'\nExpecting name and properties list.");
-            ok = false;
-            goto done;
-        }
-        if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Invalid property list for cdl_component `") + argv[1] + "'.");
-            ok = false;
-            goto done;
-        }
-
-        if (0 != toplevel->lookup(argv[1])) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Component `") + argv[1] +
-                                   "' cannot be loaded.\nThe name is already in use.");
-            ok = false;
-        } else {
-            new_component = new CdlComponentBody(argv[1]);
-            toplevel->add_node(package, parent, new_component);
-        }
+
+       // Currently there are no options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                        "'\nExpecting name and properties list.");
+           ok = false;
+           goto done;
+       }
+       if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Invalid property list for cdl_component `") + argv[1] + "'.");
+           ok = false;
+           goto done;
+       }
+
+       if (0 != toplevel->lookup(argv[1])) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Component `") + argv[1] +
+                                  "' cannot be loaded.\nThe name is already in use.");
+           ok = false;
+       } else {
+           new_component = new CdlComponentBody(argv[1]);
+           toplevel->add_node(package, parent, new_component);
+       }
 
       done:
-        if (!ok) {
-            // Just because this component cannot be created, that is no
-            // reason to abort the whole parsing process.
-            CYG_REPORT_RETVAL(TCL_OK);
-            return TCL_OK;
-        }
+       if (!ok) {
+           // Just because this component cannot be created, that is no
+           // reason to abort the whole parsing process.
+           CYG_REPORT_RETVAL(TCL_OK);
+           return TCL_OK;
+       }
     } catch(std::bad_alloc e) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch(CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
     if (TCL_OK != result) {
-        CYG_REPORT_RETVAL(result);
-        return result;
+       CYG_REPORT_RETVAL(result);
+       return result;
     }
 
     // At this stage new_component has been created and added to the hierarchy.
     // The main work now is to add the properties.
-    
+
     // Push the component as the current node early on. This aids
     // diagnostics. Also make it the new container.
     CdlNode      old_node       = interp->push_node(new_component);
@@ -206,122 +206,122 @@ CdlComponentBody::parse_component(CdlInterpreter interp, int argc, const char* a
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("script",             &CdlComponentBody::parse_script    ),
-        CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
-        CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
-        CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
-        CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
-        CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
-        CdlInterpreterCommandEntry("",                   0                                  )
+       CdlInterpreterCommandEntry("script",             &CdlComponentBody::parse_script    ),
+       CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
+       CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
+       CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
+       CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
+       CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
+       CdlInterpreterCommandEntry("",                   0                                  )
     };
     static CdlInterpreterCommandEntry   script_commands[] =
     {
-        CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
-        CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
-        CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
-        CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
-        CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
-        CdlInterpreterCommandEntry("",                   0                                  ),
+       CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
+       CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
+       CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
+       CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
+       CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
+       CdlInterpreterCommandEntry("",                   0                                  ),
     };
     int i;
-    
+
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
-        for (i = 0; 0 != commands[i].command; i++) {
-            new_commands.push_back(commands[i]);
-        }
-        CdlBuildableBody::add_property_parsers(new_commands);
-        CdlDefinableBody::add_property_parsers(new_commands);
-        CdlParentableBody::add_property_parsers(new_commands);
-        CdlValuableBody::add_property_parsers(new_commands);
-        CdlUserVisibleBody::add_property_parsers(new_commands);
-        CdlNodeBody::add_property_parsers(new_commands);
-    
-        // Now evaluate the body. If an error occurs then typically
-        // this will be reported via CdlParse::report_error(),
-        // but any exceptions will have been intercepted and
-        // turned into a Tcl error.
-        old_commands = interp->push_commands(new_commands);
-        result = interp->eval(argv[2], tcl_result);
-        interp->pop_commands(old_commands);
-        
-        if (TCL_OK != result) {
-            // No point in taking any further action, just go with the flow
-            goto done2;
-        }
-
-        // Even if there were errors, they were not fatal. There may
-        // now be a number of properties for this component, and some
-        // validation should take place. Start with the base classes.
-        new_component->CdlNodeBody::check_properties(interp);
-        new_component->CdlUserVisibleBody::check_properties(interp);
-        new_component->CdlValuableBody::check_properties(interp);
-        new_component->CdlParentableBody::check_properties(interp);
-        new_component->CdlBuildableBody::check_properties(interp);
-        new_component->CdlDefinableBody::check_properties(interp);
-
-        // There should be at most one each of wizard and script.
-        if (new_component->count_properties(CdlPropertyId_Wizard) > 1) {
-            CdlParse::report_error(interp, "", "A component should have at most one `wizard' property.");
-        }
-        if (new_component->count_properties(CdlPropertyId_Script) > 1) {
-            CdlParse::report_error(interp, "", "A component should have at most one `script' property.");
-        }
-
-        // If there is a script property, life gets more interesting.
-        if (new_component->has_property(CdlPropertyId_Script)) {
-            CdlProperty_String prop = dynamic_cast<CdlProperty_String>(new_component->get_property(CdlPropertyId_Script));
-            CYG_PRECONDITION_CLASSC(prop);
-            std::string script_name = prop->get_string();
-
-            // Try to locate this script.
-            std::string script_filename = package->find_absolute_file(script_name, "cdl", false);
-            if ("" == script_filename) {
-                CdlParse::report_error(interp, "", "Unable to find script `" + script_name + "'.");
-            } else {
-                // The script exists, so we need to try and execute it.
-                // The current container is still set correctly, but we need
-                // to change the filename and install a different set
-                // of commands.
-                old_context = interp->push_context(script_filename);
-                new_commands.clear();
-                for (i = 0; 0 != script_commands[i].command; i++) {
-                    new_commands.push_back(script_commands[i]);
-                }
-                old_commands = interp->push_commands(new_commands);
-                result = interp->eval_file(script_filename, tcl_result);
-                interp->pop_commands(old_commands);
-                interp->pop_context(old_context);
-            }
-        }
+       for (i = 0; 0 != commands[i].command; i++) {
+           new_commands.push_back(commands[i]);
+       }
+       CdlBuildableBody::add_property_parsers(new_commands);
+       CdlDefinableBody::add_property_parsers(new_commands);
+       CdlParentableBody::add_property_parsers(new_commands);
+       CdlValuableBody::add_property_parsers(new_commands);
+       CdlUserVisibleBody::add_property_parsers(new_commands);
+       CdlNodeBody::add_property_parsers(new_commands);
+
+       // Now evaluate the body. If an error occurs then typically
+       // this will be reported via CdlParse::report_error(),
+       // but any exceptions will have been intercepted and
+       // turned into a Tcl error.
+       old_commands = interp->push_commands(new_commands);
+       result = interp->eval(argv[2], tcl_result);
+       interp->pop_commands(old_commands);
+
+       if (TCL_OK != result) {
+           // No point in taking any further action, just go with the flow
+           goto done2;
+       }
+
+       // Even if there were errors, they were not fatal. There may
+       // now be a number of properties for this component, and some
+       // validation should take place. Start with the base classes.
+       new_component->CdlNodeBody::check_properties(interp);
+       new_component->CdlUserVisibleBody::check_properties(interp);
+       new_component->CdlValuableBody::check_properties(interp);
+       new_component->CdlParentableBody::check_properties(interp);
+       new_component->CdlBuildableBody::check_properties(interp);
+       new_component->CdlDefinableBody::check_properties(interp);
+
+       // There should be at most one each of wizard and script.
+       if (new_component->count_properties(CdlPropertyId_Wizard) > 1) {
+           CdlParse::report_error(interp, "", "A component should have at most one `wizard' property.");
+       }
+       if (new_component->count_properties(CdlPropertyId_Script) > 1) {
+           CdlParse::report_error(interp, "", "A component should have at most one `script' property.");
+       }
+
+       // If there is a script property, life gets more interesting.
+       if (new_component->has_property(CdlPropertyId_Script)) {
+           CdlProperty_String prop = dynamic_cast<CdlProperty_String>(new_component->get_property(CdlPropertyId_Script));
+           CYG_PRECONDITION_CLASSC(prop);
+           std::string script_name = prop->get_string();
+
+           // Try to locate this script.
+           std::string script_filename = package->find_absolute_file(script_name, "cdl", false);
+           if ("" == script_filename) {
+               CdlParse::report_error(interp, "", "Unable to find script `" + script_name + "'.");
+           } else {
+               // The script exists, so we need to try and execute it.
+               // The current container is still set correctly, but we need
+               // to change the filename and install a different set
+               // of commands.
+               old_context = interp->push_context(script_filename);
+               new_commands.clear();
+               for (i = 0; 0 != script_commands[i].command; i++) {
+                   new_commands.push_back(script_commands[i]);
+               }
+               old_commands = interp->push_commands(new_commands);
+               result = interp->eval_file(script_filename, tcl_result);
+               interp->pop_commands(old_commands);
+               interp->pop_context(old_context);
+           }
+       }
 
       done2:
-        // Dummy command just to keep the compiler happy
-        old_context = "";
-        
+       // Dummy command just to keep the compiler happy
+       old_context = "";
+
     } catch (std::bad_alloc e) {
-        // Errors at this stage should be reported via Tcl, not via C++.
-        // However there is no point in continuing with the parsing operation,
-        // just give up.
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       // Errors at this stage should be reported via Tcl, not via C++.
+       // However there is no point in continuing with the parsing operation,
+       // just give up.
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch (CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     interp->pop_container(old_container);
     if (0 != old_commands) {
-        interp->pop_commands(old_commands);
+       interp->pop_commands(old_commands);
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -335,13 +335,13 @@ CdlComponentBody::parse_script(CdlInterpreter interp, int argc, const char* argv
     CYG_REPORT_FUNCNAMETYPE("parse_script", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Script, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Propagation support              
+//{{{  Propagation support
 
 // ----------------------------------------------------------------------------
 void
@@ -351,12 +351,12 @@ CdlComponentBody::update(CdlTransaction transaction, CdlUpdate update)
 
     this->CdlValuableBody::update(transaction, update);
     this->CdlContainerBody::update(transaction, update);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Persistence support              
+//{{{  Persistence support
 
 // ----------------------------------------------------------------------------
 void
@@ -379,31 +379,31 @@ CdlComponentBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation,
     CYG_PRECONDITION_CLASSC(interp);
 
     if (!minimal || this->has_additional_savefile_information() || this->value_savefile_entry_needed()) {
-        // Start with the UserVisible data, which will result in a suitable set
-        // of comments before the package definition itself.
-        this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
-
-        // Now output the line "cdl_component <name> {"
-        // The name is guaranteed to be a valid C preprocessor symbol, so it
-        // is not going to need any quoting.
-        std::string data = std::string(indentation, ' ') + "cdl_component " + get_name() + " {\n";
-        interp->write_data(chan, data);
-
-        // Deal with the value
-        bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
-            !this->has_property(CdlPropertyId_Calculated);
-        this->CdlValuableBody::save(interp, chan, indentation + 4, modifiable, minimal);
-
-        // And with any unrecognised data
-        this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
-    
-        // Close the cdl_component body. A blank line is added here.
-        interp->write_data(chan, "};\n\n");
+       // Start with the UserVisible data, which will result in a suitable set
+       // of comments before the package definition itself.
+       this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
+
+       // Now output the line "cdl_component <name> {"
+       // The name is guaranteed to be a valid C preprocessor symbol, so it
+       // is not going to need any quoting.
+       std::string data = std::string(indentation, ' ') + "cdl_component " + get_name() + " {\n";
+       interp->write_data(chan, data);
+
+       // Deal with the value
+       bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
+           !this->has_property(CdlPropertyId_Calculated);
+       this->CdlValuableBody::_save(interp, chan, indentation + 4, modifiable, minimal);
+
+       // And with any unrecognised data
+       this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
+
+       // Close the cdl_component body. A blank line is added here.
+       interp->write_data(chan, "};\n\n");
     }
-    
+
     // Packages are containers, so dump the contents as well.
     this->CdlContainerBody::save(interp, chan, indentation, minimal);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -422,41 +422,41 @@ CdlComponentBody::savefile_component_command(CdlInterpreter interp, int argc, co
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
-    
+
     try {
-        
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", "Invalid cdl_component command in savefile, expecting two arguments.");
-        } else {
-
-            CdlNode current_node = config->lookup(argv[1]);
-            if (0 == current_node) {
-                // FIXME: save value in limbo
-                CdlParse::report_error(interp, "", 
-                                       std::string("The savefile contains a cdl_component command for an unknown component `")
-                                       + argv[1] + "'");
-            } else {
-                config->get_savefile_subcommands("cdl_component", subcommands);
-                toplevel_commands = interp->push_commands(subcommands);
-                old_node = interp->push_node(current_node);
-                
-                std::string tcl_result;
-                result = interp->eval(argv[2], tcl_result);
-            
-                interp->pop_commands(toplevel_commands);
-                toplevel_commands = 0;
-                interp->pop_node(old_node);
-                old_node = 0;
-            }
-        }
+
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", "Invalid cdl_component command in savefile, expecting two arguments.");
+       } else {
+
+           CdlNode current_node = config->lookup(argv[1]);
+           if (0 == current_node) {
+               // FIXME: save value in limbo
+               CdlParse::report_error(interp, "",
+                                      std::string("The savefile contains a cdl_component command for an unknown component `")
+                                      + argv[1] + "'");
+           } else {
+               config->get_savefile_subcommands("cdl_component", subcommands);
+               toplevel_commands = interp->push_commands(subcommands);
+               old_node = interp->push_node(current_node);
+
+               std::string tcl_result;
+               result = interp->eval(argv[2], tcl_result);
+
+               interp->pop_commands(toplevel_commands);
+               toplevel_commands = 0;
+               interp->pop_node(old_node);
+               old_node = 0;
+           }
+       }
     } catch(...) {
-        if (0 != old_node) {
-            interp->pop_node(old_node);
-        }
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != old_node) {
+           interp->pop_node(old_node);
+       }
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -464,7 +464,7 @@ CdlComponentBody::savefile_component_command(CdlInterpreter interp, int argc, co
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 
@@ -472,21 +472,21 @@ bool
 CdlComponentBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlComponentBody_Magic != cdlcomponentbody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     return CdlNodeBody::check_this(zeal)        &&
-           CdlContainerBody::check_this(zeal)   &&
-           CdlUserVisibleBody::check_this(zeal) &&
-           CdlParentableBody::check_this(zeal)  &&
-           CdlValuableBody::check_this(zeal)    &&
-           CdlBuildableBody::check_this(zeal)   &&
-           CdlDefinableBody::check_this(zeal);
+          CdlContainerBody::check_this(zeal)   &&
+          CdlUserVisibleBody::check_this(zeal) &&
+          CdlParentableBody::check_this(zeal)  &&
+          CdlValuableBody::check_this(zeal)    &&
+          CdlBuildableBody::check_this(zeal)   &&
+          CdlDefinableBody::check_this(zeal);
 }
 
 //}}}
-//{{{  Misc                             
+//{{{  Misc
 
 // ----------------------------------------------------------------------------
 
index 3aeb5c50bd92529d2a4d8ab65502445123527609..478a4d7da88ffef90b3623ad3b94bf1e837af861 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                                           
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
-//{{{  CdlConfiguration constants and statics           
+//{{{  CdlConfiguration constants and statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlConfigurationBody);
 
 //}}}
-//{{{  CdlConfiguration:: creation                      
+//{{{  CdlConfiguration:: creation
 
 // ----------------------------------------------------------------------------
 // The toplevel class will take care of just about everything.
@@ -84,10 +84,10 @@ CdlConfigurationBody::CdlConfigurationBody(std::string name, CdlPackagesDatabase
     database            = db;
     save_file           = "";
     description         = "";
-    
+
     cdlconfigurationbody_cookie = CdlConfigurationBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -110,7 +110,7 @@ CdlConfigurationBody::make(std::string name, CdlPackagesDatabase db, CdlInterpre
 }
 
 //}}}
-//{{{  CdlConfiguration:: destructor                    
+//{{{  CdlConfiguration:: destructor
 
 // ----------------------------------------------------------------------------
 CdlConfigurationBody::~CdlConfigurationBody()
@@ -135,27 +135,27 @@ CdlConfigurationBody::~CdlConfigurationBody()
     CdlLocalTransaction transaction(this);
     const std::vector<CdlLoadable>& loadables = this->get_loadables();
     for (int i = loadables.size() - 1; i >= 0; i--) {
-        CdlPackage pkg = dynamic_cast<CdlPackage>(loadables[i]);
-        if (0 != pkg) {
-            this->unload_package(transaction.get(), pkg);
-        }
+       CdlPackage pkg = dynamic_cast<CdlPackage>(loadables[i]);
+       if (0 != pkg) {
+           this->unload_package(transaction.get(), pkg);
+       }
     }
     transaction.propagate();
     transaction.commit();
-    
+
     cdlconfigurationbody_cookie = CdlConfigurationBody_Invalid;
     current_hardware            = "";
     current_template            = "";
     database                    = 0;
     save_file                   = "";
-    
+
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlConfiguration::check_this()                   
+//{{{  CdlConfiguration::check_this()
 
 // ----------------------------------------------------------------------------
 // There is very little information associated with a configuration.
@@ -164,38 +164,38 @@ bool
 CdlConfigurationBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlConfigurationBody_Magic != cdlconfigurationbody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     switch(zeal) {
       case cyg_system_test      :
       case cyg_extreme          :
-          if ((0 == database) || !database->check_this(cyg_quick)) {
-              return false;
-          }
+         if ((0 == database) || !database->check_this(cyg_quick)) {
+             return false;
+         }
       case cyg_thorough         :
-          if (("" != current_hardware) && !database->is_known_target(current_hardware)) {
-              return false;
-          }
-          if (("" != current_template) && !database->is_known_template(current_template)) {
-              return false;
-          }
+         if (("" != current_hardware) && !database->is_known_target(current_hardware)) {
+             return false;
+         }
+         if (("" != current_template) && !database->is_known_template(current_template)) {
+             return false;
+         }
       case cyg_quick            :
-          if (0 == database) {
-              return false;
-          }
+         if (0 == database) {
+             return false;
+         }
       case cyg_trivial          :
       case cyg_none             :
       default                   :
-          break;
+         break;
     }
 
     return CdlNodeBody::check_this(zeal) && CdlContainerBody::check_this(zeal) && CdlToplevelBody::check_this(zeal);
 }
 
 //}}}
-//{{{  CdlConfiguration:: basic info                    
+//{{{  CdlConfiguration:: basic info
 
 // ----------------------------------------------------------------------------
 // Provide ready access to configuration-specific data.
@@ -230,7 +230,7 @@ CdlConfigurationBody::set_hardware_name(std::string new_name)
     CYG_PRECONDITION_THISC();
 
     current_hardware = new_name;
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -253,7 +253,7 @@ CdlConfigurationBody::set_template_name(std::string new_name)
     CYG_PRECONDITION_THISC();
 
     current_template = new_name;
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -280,7 +280,7 @@ CdlConfigurationBody::get_class_name() const
 }
 
 //}}}
-//{{{  Load and unload operations - wrappers            
+//{{{  Load and unload operations - wrappers
 
 // ----------------------------------------------------------------------------
 // These members are basically wrappers for the functions that do the
@@ -289,7 +289,7 @@ CdlConfigurationBody::get_class_name() const
 
 void
 CdlConfigurationBody::load_package(std::string name, std::string version,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::load_package");
     CYG_REPORT_FUNCARG1XV(this);
@@ -349,7 +349,7 @@ CdlConfigurationBody::unload_package(CdlTransaction transaction, std::string nam
 
 void
 CdlConfigurationBody::change_package_version(std::string name, std::string version,
-                                             CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                            CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG1XV(this);
@@ -363,7 +363,7 @@ CdlConfigurationBody::change_package_version(std::string name, std::string versi
 
 void
 CdlConfigurationBody::change_package_version(CdlPackage package, std::string version,
-                                             CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                            CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG1XV(this);
@@ -377,7 +377,7 @@ CdlConfigurationBody::change_package_version(CdlPackage package, std::string ver
 
 void
 CdlConfigurationBody::change_package_version(CdlTransaction transaction, std::string name, std::string new_version,
-                                             CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                            CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG2XV(this, transaction);
@@ -388,15 +388,15 @@ CdlConfigurationBody::change_package_version(CdlTransaction transaction, std::st
     CdlPackage package = 0;
     CdlNode node = this->lookup(name);
     if (0 != node) {
-        package = dynamic_cast<CdlPackage>(node);
+       package = dynamic_cast<CdlPackage>(node);
     }
     // For now it is illegal to change the version of package that has
     // not been loaded yet
     if (0 == package) {
-        throw CdlInputOutputException(std::string("Cannot change version of \"") + name + "\" , this package is not loaded");
+       throw CdlInputOutputException(std::string("Cannot change version of \"") + name + "\" , this package is not loaded");
     }
     CYG_ASSERT_CLASSC(package);
-    
+
     this->change_package_version(transaction, package, new_version, error_fn, warn_fn, limbo);
 
     CYG_REPORT_RETURN();
@@ -404,7 +404,7 @@ CdlConfigurationBody::change_package_version(CdlTransaction transaction, std::st
 
 void
 CdlConfigurationBody::add(std::string filename,
-                          CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
+                         CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::add");
     CYG_REPORT_FUNCARG1XV(this);
@@ -418,7 +418,7 @@ CdlConfigurationBody::add(std::string filename,
 
 void
 CdlConfigurationBody::set_template(std::string name, std::string version,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template");
     CYG_REPORT_FUNCARG1XV(this);
@@ -432,7 +432,7 @@ CdlConfigurationBody::set_template(std::string name, std::string version,
 
 void
 CdlConfigurationBody::set_template_file(std::string filename,
-                                        CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                       CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template_file");
     CYG_REPORT_FUNCARG1XV(this);
@@ -446,23 +446,23 @@ CdlConfigurationBody::set_template_file(std::string filename,
 
 void
 CdlConfigurationBody::set_template(CdlTransaction transaction, std::string template_name, std::string version,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template");
     CYG_REPORT_FUNCARG2XV(this, transaction);
 
     // Some consistency checks before doing anything damaging
     if (!this->database->is_known_template(template_name)) {
-        throw CdlInputOutputException("Unknown template " + template_name);
+       throw CdlInputOutputException("Unknown template " + template_name);
     }
     std::string template_filename = this->database->get_template_filename(template_name, version);
     if ("" == template_filename) {
-        if ("" == version) {
-            throw CdlInputOutputException("There is no template file corresponding to " + template_name);
-        } else {
-            throw CdlInputOutputException("There is no temmplate file corresponding to version "
-                                          + version + " of " + template_name);
-        }
+       if ("" == version) {
+           throw CdlInputOutputException("There is no template file corresponding to " + template_name);
+       } else {
+           throw CdlInputOutputException("There is no temmplate file corresponding to version "
+                                         + version + " of " + template_name);
+       }
     }
 
     // Now use set_template_file() to do the hard work.
@@ -487,7 +487,7 @@ CdlConfigurationBody::unload_template(bool limbo)
 
 void
 CdlConfigurationBody::set_hardware(std::string name,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_hardware");
     CYG_REPORT_FUNCARG1XV(this);
@@ -513,7 +513,7 @@ CdlConfigurationBody::unload_hardware(bool limbo)
 }
 
 //}}}
-//{{{  Load and unload - transaction support            
+//{{{  Load and unload - transaction support
 
 // ----------------------------------------------------------------------------
 // A number of commit/cancel auxiliary classes are needed to allow the
@@ -527,30 +527,30 @@ class CdlConfiguration_CommitCancelLoad :
   public:
 
     CdlConfiguration_CommitCancelLoad(CdlPackage package_arg)
-        : CdlTransactionCommitCancelOp()
+       : CdlTransactionCommitCancelOp()
     {
-        CYG_ASSERT_CLASSC(package_arg);
-        package = package_arg;
+       CYG_ASSERT_CLASSC(package_arg);
+       package = package_arg;
     }
     ~CdlConfiguration_CommitCancelLoad()
     {
-        package = 0;
+       package = 0;
     }
     void commit(CdlTransaction transaction)
     {
-        CYG_ASSERT_CLASSC(package);
-        CdlLoadableBody::transaction_commit_load(transaction, package);
-        package = 0;
+       CYG_ASSERT_CLASSC(package);
+       CdlLoadableBody::transaction_commit_load(transaction, package);
+       package = 0;
     }
     void cancel(CdlTransaction transaction)
     {
-        CYG_ASSERT_CLASSC(package);
-        CdlLoadableBody::transaction_cancel_load(transaction, package);
-        package = 0;
+       CYG_ASSERT_CLASSC(package);
+       CdlLoadableBody::transaction_cancel_load(transaction, package);
+       package = 0;
     }
-    
+
   protected:
-    
+
   private:
     CdlConfiguration_CommitCancelLoad()
     {
@@ -565,26 +565,26 @@ class CdlConfiguration_CommitCancelUnload :
 
   public:
     CdlConfiguration_CommitCancelUnload(CdlPackage package_arg)
-        : CdlTransactionCommitCancelOp()
+       : CdlTransactionCommitCancelOp()
     {
-        CYG_ASSERT_CLASSC(package_arg);
-        package = package_arg;
+       CYG_ASSERT_CLASSC(package_arg);
+       package = package_arg;
     }
     ~CdlConfiguration_CommitCancelUnload()
     {
-        package = 0;
+       package = 0;
     }
     void commit(CdlTransaction transaction)
     {
-        CYG_PRECONDITION_CLASSC(package);
-        CdlLoadableBody::transaction_commit_unload(transaction, package);
-        package = 0;
+       CYG_PRECONDITION_CLASSC(package);
+       CdlLoadableBody::transaction_commit_unload(transaction, package);
+       package = 0;
     }
     void cancel(CdlTransaction transaction)
     {
-        CYG_PRECONDITION_CLASSC(package);
-        CdlLoadableBody::transaction_cancel_unload(transaction, package);
-        package = 0;
+       CYG_PRECONDITION_CLASSC(package);
+       CdlLoadableBody::transaction_cancel_unload(transaction, package);
+       package = 0;
     }
 
   protected:
@@ -603,34 +603,34 @@ class CdlConfiguration_CommitCancelHardwareName :
     public CdlTransactionCommitCancelOp
 {
     friend class CdlTest;
-    
+
   public:
     CdlConfiguration_CommitCancelHardwareName(std::string old_name_arg)
-        : CdlTransactionCommitCancelOp()
+       : CdlTransactionCommitCancelOp()
     {
-        old_name = old_name_arg;
+       old_name = old_name_arg;
     }
     ~CdlConfiguration_CommitCancelHardwareName()
     {
-        old_name = "";
+       old_name = "";
     }
     void commit(CdlTransaction transaction)
     {
-        // The new name is already installed, nothing more needs to happen.
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       // The new name is already installed, nothing more needs to happen.
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     void cancel(CdlTransaction transaction)
     {
-        // Restore the old name
-        CdlToplevel toplevel = transaction->get_toplevel();
-        CYG_ASSERTC(0 != toplevel);
-        CdlConfiguration configuration = dynamic_cast<CdlConfiguration>(toplevel);
-        CYG_ASSERT_CLASSC(configuration);
+       // Restore the old name
+       CdlToplevel toplevel = transaction->get_toplevel();
+       CYG_ASSERTC(0 != toplevel);
+       CdlConfiguration configuration = dynamic_cast<CdlConfiguration>(toplevel);
+       CYG_ASSERT_CLASSC(configuration);
 
-        configuration->set_hardware_name(old_name);
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       configuration->set_hardware_name(old_name);
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
-    
+
   protected:
 
   private:
@@ -644,34 +644,34 @@ class CdlConfiguration_CommitCancelTemplateName :
     public CdlTransactionCommitCancelOp
 {
     friend class CdlTest;
-    
+
   public:
     CdlConfiguration_CommitCancelTemplateName(std::string old_name_arg)
-        : CdlTransactionCommitCancelOp()
+       : CdlTransactionCommitCancelOp()
     {
-        old_name = old_name_arg;
+       old_name = old_name_arg;
     }
     ~CdlConfiguration_CommitCancelTemplateName()
     {
-        old_name = "";
+       old_name = "";
     }
     void commit(CdlTransaction transaction)
     {
-        // The new name is already installed, nothing more needs to happen.
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       // The new name is already installed, nothing more needs to happen.
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     void cancel(CdlTransaction transaction)
     {
-        // Restore the old name
-        CdlToplevel toplevel = transaction->get_toplevel();
-        CYG_ASSERTC(0 != toplevel);
-        CdlConfiguration configuration = dynamic_cast<CdlConfiguration>(toplevel);
-        CYG_ASSERT_CLASSC(configuration);
+       // Restore the old name
+       CdlToplevel toplevel = transaction->get_toplevel();
+       CYG_ASSERTC(0 != toplevel);
+       CdlConfiguration configuration = dynamic_cast<CdlConfiguration>(toplevel);
+       CYG_ASSERT_CLASSC(configuration);
 
-        configuration->set_template_name(old_name);
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       configuration->set_template_name(old_name);
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
-    
+
   protected:
 
   private:
@@ -682,7 +682,7 @@ class CdlConfiguration_CommitCancelTemplateName :
 };
 
 //}}}
-//{{{  CdlConfiguration::load_package()                 
+//{{{  CdlConfiguration::load_package()
 
 // ----------------------------------------------------------------------------
 // Loading a package into the current level. This involves the following
@@ -726,7 +726,7 @@ class CdlConfiguration_CommitCancelTemplateName :
 
 void
 CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name, std::string version,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::load_package");
     CYG_REPORT_FUNCARG1XV(this);
@@ -737,15 +737,15 @@ CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name,
     // Locate the database entry. Also check the version (filling it in if necessary).
     // Get hold of the package directory and the initial script.
     if (!database->is_known_package(name)) {
-        throw CdlInputOutputException("Unknown package " + name);
+       throw CdlInputOutputException("Unknown package " + name);
     }
     const std::vector<std::string>& versions = database->get_package_versions(name);
     if ("" == version) {
-        version = *(versions.begin());
+       version = *(versions.begin());
     } else {
-        if (std::find(versions.begin(), versions.end(), version) == versions.end()) {
-            throw CdlInputOutputException("Package " + name + " does not have an installed version `" + version + "'.");
-        }
+       if (std::find(versions.begin(), versions.end(), version) == versions.end()) {
+           throw CdlInputOutputException("Package " + name + " does not have an installed version `" + version + "'.");
+       }
     }
     std::string directory       = database->get_package_directory(name);
     std::string script          = database->get_package_script(name);
@@ -759,137 +759,137 @@ CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name,
     std::string tcl_cmd = "regsub -all -- {\\\\} [file join " + directory + " " + version + "] / result; return $result";
     std::string tcl_result;
     if (TCL_OK != interp->eval(tcl_cmd, tcl_result)) {
-        throw CdlInputOutputException("Cannot load package `" + name + "', internal error constructing pathname.");
+       throw CdlInputOutputException("Cannot load package `" + name + "', internal error constructing pathname.");
     }
     directory = tcl_result;
-    
+
     tcl_cmd   = "file isdirectory [file join \"" + database->get_component_repository() + "\" " + directory + "]";
     if ((TCL_OK != interp->eval(tcl_cmd, tcl_result)) || ("1" != tcl_result)) {
-        throw CdlInputOutputException("Cannot load package `" + name + "', there is no directory `" + directory + "'.");
+       throw CdlInputOutputException("Cannot load package `" + name + "', there is no directory `" + directory + "'.");
     }
-    
+
     // Make sure that there is no name conflict. No resources have been allocated
     // yet, so this is a good time.
     CdlNode node = lookup(name);
     if (0 != node) {
-        if (0 != dynamic_cast<CdlPackage>(node)) {
-            throw CdlInputOutputException("Package `" + name + "' is already loaded.");
-        } else {
+       if (0 != dynamic_cast<CdlPackage>(node)) {
+           throw CdlInputOutputException("Package `" + name + "' is already loaded.");
+       } else {
 
-            std::string msg = "Name clash for package `" + name + "',there is a `" +
-                node->get_class_name() + " " + name + "' already loaded";
-            CdlLoadable owner_pkg = node->get_owner();
-            if (0 != owner_pkg) {
-                msg += " in package " + owner_pkg->get_name();
-            }
-            throw CdlInputOutputException(msg);
-        }
+           std::string msg = "Name clash for package `" + name + "',there is a `" +
+               node->get_class_name() + " " + name + "' already loaded";
+           CdlLoadable owner_pkg = node->get_owner();
+           if (0 != owner_pkg) {
+               msg += " in package " + owner_pkg->get_name();
+           }
+           throw CdlInputOutputException(msg);
+       }
     }
 
     // Now create the package object itself.
     CdlPackage package  = 0;
     bool       bound    = false;
     CdlConfiguration_CommitCancelLoad* load_op  = 0;
-    
+
     try {
-        package = new CdlPackageBody(name, this, directory);
-
-        // The package should be added to the hierarchy immediately.
-        // All nodes will get added to the hierarchy as they are
-        // created, an operation that has to be undone during
-        // failure. 
-        this->add_node(package, this, package);
-        
-        // Load the package data. The various nodes will all end up
-        // in a hierarchy below the package, but without any checks
-        // for name conflicts etc and ignoring any re-parenting.
-        CdlInterpreter interp = package->get_interpreter();
-        CYG_ASSERT_CLASSC(interp);
-
-        interp->add_command("unknown",  &CdlParse::unknown_command);
-        CdlInterpreterBody::DiagSupport diag_support(interp, error_fn, warn_fn);
-        
-        // Next figure out the script name, and make sure that it exists.
-        std::string actual_script = package->find_absolute_file(script, "cdl");
-        if ("" == actual_script) {
-            throw CdlInputOutputException("Package " + name + ", unable to find initial script " + script);
-        }
-        tcl_cmd = "file isfile \"" + actual_script + "\"";
-        if ((TCL_OK != interp->eval(tcl_cmd, tcl_result)) || ("1" != tcl_result)) {
-            throw CdlInputOutputException("Package " + name + ", " + actual_script + " is not a CDL script");
-        }
-
-        // The script is valid. Set up the interpreter appropriately.
-        CdlParse::clear_error_count(interp);
-        static CdlInterpreterCommandEntry commands[] =
-        {
-            CdlInterpreterCommandEntry("cdl_package",    &CdlPackageBody::parse_package     ),
-            CdlInterpreterCommandEntry("cdl_component",  &CdlComponentBody::parse_component ),
-            CdlInterpreterCommandEntry("cdl_option",     &CdlOptionBody::parse_option       ),
-            CdlInterpreterCommandEntry("cdl_interface",  &CdlInterfaceBody::parse_interface ),
-            CdlInterpreterCommandEntry("cdl_dialog",     &CdlDialogBody::parse_dialog       ),
-            CdlInterpreterCommandEntry("cdl_wizard",     &CdlWizardBody::parse_wizard       ),
-            CdlInterpreterCommandEntry("",               0                                  )
-        };
-        CdlInterpreterBody::CommandSupport   interp_cmds(interp, commands);
-        CdlInterpreterBody::ContainerSupport interp_container(interp, package);
-        CdlInterpreterBody::ContextSupport   interp_context(interp, actual_script);
-        
-        // The interpreter is now ready.
-        (void) interp->eval_file(actual_script);
-
-        // Clean out the commands etc. This interpreter may get used again
-        // in future, and it should not be possible to define new options
-        // etc. in that invocation.
-        interp->remove_command("unknown");
-        
-        // All the data has been read in without generating an
-        // exception. However there may have been errors reported via
-        // the parse_error_fn, and any errors at all should result
-        // in an exception.
-        int error_count = CdlParse::get_error_count(interp);
-        if (error_count > 0) {
-            std::string tmp;
-            Cdl::integer_to_string(error_count, tmp);
-            throw CdlParseException("Package " + name + ", " + tmp + " error" +
-                                    ((error_count > 1) ? "s" : "") +
-                                    " occurred while reading in the CDL data.");
-        }
-
-        // All the data has been read in, implying that there are no
-        // fatal problems with the data. Now try to bind all
-        // references to and from this loadable.
-        package->bind(transaction);
-        bound = true;
-
-        // Finally, create a suitable transaction commit/cancel object
-        // and add it to the transaction.
-        load_op = new CdlConfiguration_CommitCancelLoad(package);
-        transaction->add_commit_cancel_op(load_op);
-        
+       package = new CdlPackageBody(name, this, directory);
+
+       // The package should be added to the hierarchy immediately.
+       // All nodes will get added to the hierarchy as they are
+       // created, an operation that has to be undone during
+       // failure.
+       this->add_node(package, this, package);
+
+       // Load the package data. The various nodes will all end up
+       // in a hierarchy below the package, but without any checks
+       // for name conflicts etc and ignoring any re-parenting.
+       CdlInterpreter interp = package->get_interpreter();
+       CYG_ASSERT_CLASSC(interp);
+
+       interp->add_command("unknown",  &CdlParse::unknown_command);
+       CdlInterpreterBody::DiagSupport diag_support(interp, error_fn, warn_fn);
+
+       // Next figure out the script name, and make sure that it exists.
+       std::string actual_script = package->find_absolute_file(script, "cdl");
+       if ("" == actual_script) {
+           throw CdlInputOutputException("Package " + name + ", unable to find initial script " + script);
+       }
+       tcl_cmd = "file isfile \"" + actual_script + "\"";
+       if ((TCL_OK != interp->eval(tcl_cmd, tcl_result)) || ("1" != tcl_result)) {
+           throw CdlInputOutputException("Package " + name + ", " + actual_script + " is not a CDL script");
+       }
+
+       // The script is valid. Set up the interpreter appropriately.
+       CdlParse::clear_error_count(interp);
+       static CdlInterpreterCommandEntry commands[] =
+       {
+           CdlInterpreterCommandEntry("cdl_package",    &CdlPackageBody::parse_package     ),
+           CdlInterpreterCommandEntry("cdl_component",  &CdlComponentBody::parse_component ),
+           CdlInterpreterCommandEntry("cdl_option",     &CdlOptionBody::parse_option       ),
+           CdlInterpreterCommandEntry("cdl_interface",  &CdlInterfaceBody::parse_interface ),
+           CdlInterpreterCommandEntry("cdl_dialog",     &CdlDialogBody::parse_dialog       ),
+           CdlInterpreterCommandEntry("cdl_wizard",     &CdlWizardBody::parse_wizard       ),
+           CdlInterpreterCommandEntry("",               0                                  )
+       };
+       CdlInterpreterBody::CommandSupport   interp_cmds(interp, commands);
+       CdlInterpreterBody::ContainerSupport interp_container(interp, package);
+       CdlInterpreterBody::ContextSupport   interp_context(interp, actual_script);
+
+       // The interpreter is now ready.
+       (void) interp->eval_file(actual_script);
+
+       // Clean out the commands etc. This interpreter may get used again
+       // in future, and it should not be possible to define new options
+       // etc. in that invocation.
+       interp->remove_command("unknown");
+
+       // All the data has been read in without generating an
+       // exception. However there may have been errors reported via
+       // the parse_error_fn, and any errors at all should result
+       // in an exception.
+       int error_count = CdlParse::get_error_count(interp);
+       if (error_count > 0) {
+           std::string tmp;
+           Cdl::integer_to_string(error_count, tmp);
+           throw CdlParseException("Package " + name + ", " + tmp + " error" +
+                                   ((error_count > 1) ? "s" : "") +
+                                   " occurred while reading in the CDL data.");
+       }
+
+       // All the data has been read in, implying that there are no
+       // fatal problems with the data. Now try to bind all
+       // references to and from this loadable.
+       package->bind(transaction);
+       bound = true;
+
+       // Finally, create a suitable transaction commit/cancel object
+       // and add it to the transaction.
+       load_op = new CdlConfiguration_CommitCancelLoad(package);
+       transaction->add_commit_cancel_op(load_op);
+
     } catch (...) {
 
-        // Something went wrong during the create or load. It is necessary
-        // to delete the package. Undo all the operations above, in
-        // reverse order. The add_commit_cancel_op() was the last step,
-        // so need not be undone here.
-        if (0 != load_op) {
-            delete load_op;
-        }
-        
-        if (0 != package) {
-            // Note: no attempt is made to recover from errors here
-            if (bound) {
-                package->unbind(transaction);
-            }
-            this->remove_loadable_from_toplevel(package);
-            delete package;
-        } 
-        throw;
+       // Something went wrong during the create or load. It is necessary
+       // to delete the package. Undo all the operations above, in
+       // reverse order. The add_commit_cancel_op() was the last step,
+       // so need not be undone here.
+       if (0 != load_op) {
+           delete load_op;
+       }
+
+       if (0 != package) {
+           // Note: no attempt is made to recover from errors here
+           if (bound) {
+               package->unbind(transaction);
+           }
+           this->remove_loadable_from_toplevel(package);
+           delete package;
+       }
+       throw;
     }
 
     // FIXME: implement limbo support
-    
+
     // We also have a sensible value for the package as a whole.
     // Use this value for both default and user - after all the
     // user has selected the package.
@@ -900,7 +900,7 @@ CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name,
 }
 
 //}}}
-//{{{  CdlConfiguration::unload_package()               
+//{{{  CdlConfiguration::unload_package()
 
 // ----------------------------------------------------------------------------
 // Unloading a package is very simple. If requested, save all current
@@ -924,52 +924,52 @@ CdlConfigurationBody::unload_package(CdlTransaction transaction, CdlPackage pack
     CYG_PRECONDITION_CLASSC(package);
 
     if (limbo) {
-        const std::vector<CdlNode>& pkg_contents = package->get_owned();
-        std::vector<CdlNode>::const_iterator node_i;
-
-        for (node_i = pkg_contents.begin(); node_i != pkg_contents.end(); node_i++) {
-            CdlValuable valuable = dynamic_cast<CdlValuable>(*node_i);
-            if (0 != valuable) {
-                if (valuable->has_source(CdlValueSource_Inferred) ||
-                    valuable->has_source(CdlValueSource_Wizard)   ||
-                    valuable->has_source(CdlValueSource_User)) {
-                    
-                    set_limbo_value(valuable);
-                }
-            }
-        }
+       const std::vector<CdlNode>& pkg_contents = package->get_owned();
+       std::vector<CdlNode>::const_iterator node_i;
+
+       for (node_i = pkg_contents.begin(); node_i != pkg_contents.end(); node_i++) {
+           CdlValuable valuable = dynamic_cast<CdlValuable>(*node_i);
+           if (0 != valuable) {
+               if (valuable->has_source(CdlValueSource_Inferred) ||
+                   valuable->has_source(CdlValueSource_Wizard)   ||
+                   valuable->has_source(CdlValueSource_User)) {
+
+                   set_limbo_value(valuable);
+               }
+           }
+       }
     }
 
     bool unbound = false;
     bool removed = false;
     CdlConfiguration_CommitCancelUnload* unload_op = 0;
     try {
-        
-        package->unbind(transaction);
-        unbound = true;
-        this->remove_loadable_from_toplevel(package);
-        removed = true;
-        unload_op = new CdlConfiguration_CommitCancelUnload(package);
-        transaction->add_commit_cancel_op(unload_op);
-        
+
+       package->unbind(transaction);
+       unbound = true;
+       this->remove_loadable_from_toplevel(package);
+       removed = true;
+       unload_op = new CdlConfiguration_CommitCancelUnload(package);
+       transaction->add_commit_cancel_op(unload_op);
+
     } catch(...) {
-        if (0 != unload_op) {
-            delete unload_op;
-        }
-        if (removed) {
-            this->add_loadable_to_toplevel(package);
-        }
-        if (unbound) {
-            package->bind(transaction);
-        }
-        throw;
-    }
-    
+       if (0 != unload_op) {
+           delete unload_op;
+       }
+       if (removed) {
+           this->add_loadable_to_toplevel(package);
+       }
+       if (unbound) {
+           package->bind(transaction);
+       }
+       throw;
+    }
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlConfiguration::change_package_version()       
+//{{{  CdlConfiguration::change_package_version()
 
 // ----------------------------------------------------------------------------
 // Changing a package version is just a case of unloading the old version
@@ -979,7 +979,7 @@ CdlConfigurationBody::unload_package(CdlTransaction transaction, CdlPackage pack
 
 void
 CdlConfigurationBody::change_package_version(CdlTransaction transaction, CdlPackage package, std::string new_version,
-                                             CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                            CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG3XV(this, transaction, package);
@@ -993,34 +993,34 @@ CdlConfigurationBody::change_package_version(CdlTransaction transaction, CdlPack
     std::string name = package->get_name();
     const std::vector<std::string>& pkg_versions = database->get_package_versions(name);
     if ("" == new_version) {
-        new_version = *(pkg_versions.begin());
+       new_version = *(pkg_versions.begin());
     } else if (std::find(pkg_versions.begin(), pkg_versions.end(), new_version) == pkg_versions.end()) {
-        throw CdlInputOutputException("Version " + new_version + " of package " + name + " is not installed.");
+       throw CdlInputOutputException("Version " + new_version + " of package " + name + " is not installed.");
     }
 
     bool unloaded = false;
     try {
-        this->unload_package(transaction, package, limbo);
-        unloaded = true;
-        this->load_package(transaction, name, new_version, error_fn, warn_fn, limbo);
+       this->unload_package(transaction, package, limbo);
+       unloaded = true;
+       this->load_package(transaction, name, new_version, error_fn, warn_fn, limbo);
     } catch(...) {
-        if (unloaded) {
-            // There should be a commit/cancel op for the unload package step.
-            // This can be undone.
-            CdlTransactionCommitCancelOp* unload_op = transaction->get_last_commit_cancel_op();
-            CYG_ASSERTC(0 != unload_op);
-            CYG_ASSERTC(0 != dynamic_cast<CdlConfiguration_CommitCancelUnload*>(unload_op));
-            transaction->cancel_last_commit_cancel_op();
-            CYG_UNUSED_PARAM(CdlTransactionCommitCancelOp*, unload_op);
-        }
-        throw;
+       if (unloaded) {
+           // There should be a commit/cancel op for the unload package step.
+           // This can be undone.
+           CdlTransactionCommitCancelOp* unload_op = transaction->get_last_commit_cancel_op();
+           CYG_ASSERTC(0 != unload_op);
+           CYG_ASSERTC(0 != dynamic_cast<CdlConfiguration_CommitCancelUnload*>(unload_op));
+           transaction->cancel_last_commit_cancel_op();
+           CYG_UNUSED_PARAM(CdlTransactionCommitCancelOp*, unload_op);
+       }
+       throw;
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlConfiguration::set_hardware() etc.            
+//{{{  CdlConfiguration::set_hardware() etc.
 
 // ----------------------------------------------------------------------------
 // Setting the hardware involves unloading the old hardware, if any, and
@@ -1031,7 +1031,7 @@ CdlConfigurationBody::change_package_version(CdlTransaction transaction, CdlPack
 
 void
 CdlConfigurationBody::set_hardware(CdlTransaction transaction, std::string target_name,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_hardware");
     CYG_REPORT_FUNCARG2XV(this, transaction);
@@ -1040,153 +1040,153 @@ CdlConfigurationBody::set_hardware(CdlTransaction transaction, std::string targe
 
     // Minimal consistency check before attempting anything complicated.
     if (!database->is_known_target(target_name)) {
-        throw CdlInputOutputException("Unknown target " + target_name);
+       throw CdlInputOutputException("Unknown target " + target_name);
     }
 
     CdlInterpreter interp = this->get_interpreter();
     CdlInterpreterBody::DiagSupport    diag_support(interp, error_fn, warn_fn);
     CdlInterpreterBody::ContextSupport context_support(interp, "Hardware selection");
-    
+
     CdlConfiguration_CommitCancelHardwareName* rename_op = new CdlConfiguration_CommitCancelHardwareName(current_hardware);
     try {
-        transaction->add_commit_cancel_op(rename_op);
-        const std::vector<CdlLoadable>& loadables = this->get_loadables();
-        int i;
-        for (i = (int) loadables.size() - 1; i >= 0; i--) {
-            CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
-            if ((0 != package) && package->belongs_to_hardware()) {
-                this->unload_package(transaction, package, limbo);
-            }
-        }
-        current_hardware = "";
-
-        if ("" != target_name) {
-            
-            const std::vector<std::string>& packages = database->get_target_packages(target_name);
-            std::vector<std::string>::const_iterator    name_i;
-            for (name_i = packages.begin(); name_i != packages.end(); name_i++) {
-                // Target specifications may refer to packages that are not
-                // installed. This is useful in e.g. an anoncvs environment.
-                if (database->is_known_package(*name_i)) {
-                    // It is possible for a hardware package to have been
-                    // loaded separately, in which case there is no point in
-                    // loading it again.
-                    if (0 == this->lookup(*name_i)) {
-                        this->load_package(transaction, *name_i, "",
-                                           error_fn, warn_fn, limbo);
-                        CdlPackage package = dynamic_cast<CdlPackage>(this->lookup(*name_i));
-                        CYG_LOOP_INVARIANT_CLASSC(package);
-                        package->loaded_for_hardware = true;
-                    }
-                } else {
-                    CdlParse::report_warning(interp, "",
-                                             std::string("The target specification lists a package `") + *name_i +
-                                             "' which is not present in the component repository.");
-                }
-            }
-        }
-        current_hardware = target_name;
-        
+       transaction->add_commit_cancel_op(rename_op);
+       const std::vector<CdlLoadable>& loadables = this->get_loadables();
+       int i;
+       for (i = (int) loadables.size() - 1; i >= 0; i--) {
+           CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
+           if ((0 != package) && package->belongs_to_hardware()) {
+               this->unload_package(transaction, package, limbo);
+           }
+       }
+       current_hardware = "";
+
+       if ("" != target_name) {
+
+           const std::vector<std::string>& packages = database->get_target_packages(target_name);
+           std::vector<std::string>::const_iterator    name_i;
+           for (name_i = packages.begin(); name_i != packages.end(); name_i++) {
+               // Target specifications may refer to packages that are not
+               // installed. This is useful in e.g. an anoncvs environment.
+               if (database->is_known_package(*name_i)) {
+                   // It is possible for a hardware package to have been
+                   // loaded separately, in which case there is no point in
+                   // loading it again.
+                   if (0 == this->lookup(*name_i)) {
+                       this->load_package(transaction, *name_i, "",
+                                          error_fn, warn_fn, limbo);
+                       CdlPackage package = dynamic_cast<CdlPackage>(this->lookup(*name_i));
+                       CYG_LOOP_INVARIANT_CLASSC(package);
+                       package->loaded_for_hardware = true;
+                   }
+               } else {
+                   CdlParse::report_warning(interp, "",
+                                            std::string("The target specification lists a package `") + *name_i +
+                                            "' which is not present in the component repository.");
+               }
+           }
+       }
+       current_hardware = target_name;
+
     } catch(...) {
-        // Cancel all operations up to and including the rename_op
-        CdlTransactionCommitCancelOp* cancel_op = 0;
-        do {
-            cancel_op = transaction->get_last_commit_cancel_op();
-            CYG_LOOP_INVARIANTC(0 != cancel_op);
-            transaction->cancel_last_commit_cancel_op();
-        } while(cancel_op != rename_op);
-        throw;
+       // Cancel all operations up to and including the rename_op
+       CdlTransactionCommitCancelOp* cancel_op = 0;
+       do {
+           cancel_op = transaction->get_last_commit_cancel_op();
+           CYG_LOOP_INVARIANTC(0 != cancel_op);
+           transaction->cancel_last_commit_cancel_op();
+       } while(cancel_op != rename_op);
+       throw;
     }
 
     // There may have been enables/disables and value data for that target
     // FIXME: any problems get ignored quietly. There should at least
     // be some warnings.
     if ("" != target_name) {
-        const std::vector<std::string>& enables  = database->get_target_enables(target_name);
-        const std::vector<std::string>& disables = database->get_target_disables(target_name);
-        const std::vector<std::pair<std::string, std::string> >& set_values = database->get_target_set_values(target_name);
-        
-        if ((0 != enables.size()) || (0 != disables.size()) || (0 != set_values.size())) {
-            std::vector<std::string>::const_iterator opt_i;
-            CdlNode     node;
-            CdlValuable valuable;
-            CdlValueFlavor flavor;
-            
-            for (opt_i = enables.begin(); opt_i != enables.end(); opt_i++) {
-                valuable = 0;
-                node     = this->lookup(*opt_i);
-                if (0 != node) {
-                    valuable = dynamic_cast<CdlValuable>(node);
-                    if (0 != valuable) {
-                    }
-                }
-                if (0 != valuable) {
-                    flavor = valuable->get_flavor();
-                    if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-                        valuable->enable(transaction, CdlValueSource_User);
-                    } else {
-                        CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                                 std::string("The option `") + *opt_i +
-                                                 "' is supposed to be enabled for this target.\n" +
-                                                 "However the option does not have a bool or booldata flavors.");
-                    }
-                } else {
-                    CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                             std::string("The option `") + *opt_i +
-                                             "' is supposed to be enabled for this target.\n" +
-                                             "However this option is not in the current configuration.");
-                }
-            }
-            for (opt_i = disables.begin(); opt_i != disables.end(); opt_i++) {
-                valuable = 0;
-                node = this->lookup(*opt_i);
-                if (0 != node) {
-                    valuable = dynamic_cast<CdlValuable>(node);
-                }
-                if (0 != valuable) {
-                    flavor = valuable->get_flavor();
-                    if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-                        valuable->disable(transaction, CdlValueSource_User);
-                    } else {
-                        CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                                 std::string("The option `") + *opt_i +
-                                                 "' is supposed to be disabled for this target.\n" +
-                                                 "However the option does not have a bool or booldata flavors.");
-                    }
-                } else {
-                    CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                             std::string("The option `") + *opt_i +
-                                             "' is supposed to be disabled for this target.\n" +
-                                             "However this option is not in the current configuration.");
-                }
-            }
-            std::vector<std::pair<std::string,std::string> >::const_iterator value_i;
-            for (value_i = set_values.begin(); value_i != set_values.end(); value_i++) {
-                valuable = 0;
-                node = this->lookup(value_i->first);
-                if (0 != node) {
-                    valuable = dynamic_cast<CdlValuable>(node);
-                }
-                if (0 != valuable) {
-                    flavor = valuable->get_flavor();
-                    if ((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor)) {
-                        valuable->set_value(transaction, value_i->second, CdlValueSource_User);
-                    } else {
-                        CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                                 std::string("The option `") + *opt_i +
-                                                 "' is supposed to be given the value `" + value_i->second +
-                                                 "' for this target.\n" +
-                                                 "However the option does not have a data or booldata flavor.");
-                    }
-                } else {
-                    CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                             std::string("The option `") + *opt_i +
-                                             "' is supposed to be given the value `" + value_i->second +
-                                             "' for this target.\n" +
-                                             "However this option is not in the current configuration.");
-                }
-            }
-        }
+       const std::vector<std::string>& enables  = database->get_target_enables(target_name);
+       const std::vector<std::string>& disables = database->get_target_disables(target_name);
+       const std::vector<std::pair<std::string, std::string> >& set_values = database->get_target_set_values(target_name);
+
+       if ((0 != enables.size()) || (0 != disables.size()) || (0 != set_values.size())) {
+           std::vector<std::string>::const_iterator opt_i;
+           CdlNode     node;
+           CdlValuable valuable;
+           CdlValueFlavor flavor;
+
+           for (opt_i = enables.begin(); opt_i != enables.end(); opt_i++) {
+               valuable = 0;
+               node     = this->lookup(*opt_i);
+               if (0 != node) {
+                   valuable = dynamic_cast<CdlValuable>(node);
+                   if (0 != valuable) {
+                   }
+               }
+               if (0 != valuable) {
+                   flavor = valuable->get_flavor();
+                   if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
+                       valuable->enable(transaction, CdlValueSource_User);
+                   } else {
+                       CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                                std::string("The option `") + *opt_i +
+                                                "' is supposed to be enabled for this target.\n" +
+                                                "However the option does not have a bool or booldata flavors.");
+                   }
+               } else {
+                   CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                            std::string("The option `") + *opt_i +
+                                            "' is supposed to be enabled for this target.\n" +
+                                            "However this option is not in the current configuration.");
+               }
+           }
+           for (opt_i = disables.begin(); opt_i != disables.end(); opt_i++) {
+               valuable = 0;
+               node = this->lookup(*opt_i);
+               if (0 != node) {
+                   valuable = dynamic_cast<CdlValuable>(node);
+               }
+               if (0 != valuable) {
+                   flavor = valuable->get_flavor();
+                   if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
+                       valuable->disable(transaction, CdlValueSource_User);
+                   } else {
+                       CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                                std::string("The option `") + *opt_i +
+                                                "' is supposed to be disabled for this target.\n" +
+                                                "However the option does not have a bool or booldata flavors.");
+                   }
+               } else {
+                   CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                            std::string("The option `") + *opt_i +
+                                            "' is supposed to be disabled for this target.\n" +
+                                            "However this option is not in the current configuration.");
+               }
+           }
+           std::vector<std::pair<std::string,std::string> >::const_iterator value_i;
+           for (value_i = set_values.begin(); value_i != set_values.end(); value_i++) {
+               valuable = 0;
+               node = this->lookup(value_i->first);
+               if (0 != node) {
+                   valuable = dynamic_cast<CdlValuable>(node);
+               }
+               if (0 != valuable) {
+                   flavor = valuable->get_flavor();
+                   if ((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor)) {
+                       valuable->set_value(transaction, value_i->second, CdlValueSource_User);
+                   } else {
+                       CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                                std::string("The option `") + *opt_i +
+                                                "' is supposed to be given the value `" + value_i->second +
+                                                "' for this target.\n" +
+                                                "However the option does not have a data or booldata flavor.");
+                   }
+               } else {
+                   CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                            std::string("The option `") + *opt_i +
+                                            "' is supposed to be given the value `" + value_i->second +
+                                            "' for this target.\n" +
+                                            "However this option is not in the current configuration.");
+               }
+           }
+       }
     }
 
     CYG_REPORT_RETURN();
@@ -1201,41 +1201,41 @@ CdlConfigurationBody::unload_hardware(CdlTransaction transaction, bool limbo)
 
     CdlConfiguration_CommitCancelHardwareName* rename_op = new CdlConfiguration_CommitCancelHardwareName(current_hardware);
     try {
-        transaction->add_commit_cancel_op(rename_op);
+       transaction->add_commit_cancel_op(rename_op);
     } catch(...) {
-        delete rename_op;
-        throw;
+       delete rename_op;
+       throw;
     }
     current_hardware = "";
 
     try {
-        const std::vector<CdlLoadable>& loadables = this->get_loadables();
-        for (int i = (int) loadables.size() - 1; i >= 0; i--) {
-            CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
-            if ((0 != package) && package->belongs_to_hardware()) {
-                this->unload_package(transaction, package, limbo);
-            }
-        }
+       const std::vector<CdlLoadable>& loadables = this->get_loadables();
+       for (int i = (int) loadables.size() - 1; i >= 0; i--) {
+           CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
+           if ((0 != package) && package->belongs_to_hardware()) {
+               this->unload_package(transaction, package, limbo);
+           }
+       }
     } catch(...) {
-        CdlTransactionCommitCancelOp* cancel_op = 0;
-        do {
-            cancel_op = transaction->get_last_commit_cancel_op();
-            CYG_LOOP_INVARIANTC(0 != cancel_op);
-            transaction->cancel_last_commit_cancel_op();
-        } while(cancel_op != rename_op);
-        throw;
+       CdlTransactionCommitCancelOp* cancel_op = 0;
+       do {
+           cancel_op = transaction->get_last_commit_cancel_op();
+           CYG_LOOP_INVARIANTC(0 != cancel_op);
+           transaction->cancel_last_commit_cancel_op();
+       } while(cancel_op != rename_op);
+       throw;
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlConfiguration::set_template() etc             
+//{{{  CdlConfiguration::set_template() etc
 
 // ----------------------------------------------------------------------------
 void
 CdlConfigurationBody::set_template_file(CdlTransaction transaction, std::string filename,
-                                        CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                       CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template_file");
     CYG_REPORT_FUNCARG3XV(this, transaction, limbo);
@@ -1258,46 +1258,46 @@ CdlConfigurationBody::set_template_file(CdlTransaction transaction, std::string
     // with savefiles.
     const std::vector<CdlLoadable>& loadables = this->get_loadables();
     unsigned int load_i = loadables.size();
-    
+
     try {
-        transaction->add_commit_cancel_op(rename_op);
-        const std::vector<CdlLoadable>& loadables = this->get_loadables();
-        for (i = (int) loadables.size() - 1; i >= 0; i--) {
-            CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
-            if ((0 != package) && package->belongs_to_template()) {
-                this->unload_package(transaction, package, limbo);
-            }
-        }
-        current_template = "";
-
-        this->add(transaction, filename, error_fn, warn_fn);
-        this->current_template = filename;
-        this->set_name(saved_name);
-        this->description = saved_description;
-        this->current_hardware = saved_hardware;
-
-        for ( ; load_i < loadables.size(); load_i++) {
-            CdlPackage pkg = dynamic_cast<CdlPackage>(loadables[load_i]);
-            CYG_ASSERT_CLASSC(pkg);
-            pkg->loaded_for_template = true;
-        }
-        
+       transaction->add_commit_cancel_op(rename_op);
+       const std::vector<CdlLoadable>& loadables = this->get_loadables();
+       for (i = (int) loadables.size() - 1; i >= 0; i--) {
+           CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
+           if ((0 != package) && package->belongs_to_template()) {
+               this->unload_package(transaction, package, limbo);
+           }
+       }
+       current_template = "";
+
+       this->add(transaction, filename, error_fn, warn_fn);
+       this->current_template = filename;
+       this->set_name(saved_name);
+       this->description = saved_description;
+       this->current_hardware = saved_hardware;
+
+       for ( ; load_i < loadables.size(); load_i++) {
+           CdlPackage pkg = dynamic_cast<CdlPackage>(loadables[load_i]);
+           CYG_ASSERT_CLASSC(pkg);
+           pkg->loaded_for_template = true;
+       }
+
     } catch(...) {
-        
-        this->set_name(saved_name);
-        this->description = saved_description;
-        this->current_hardware = saved_hardware;
-        
-        // Cancel all operations up to and including the rename_op
-        CdlTransactionCommitCancelOp* cancel_op = 0;
-        do {
-            cancel_op = transaction->get_last_commit_cancel_op();
-            CYG_LOOP_INVARIANTC(0 != cancel_op);
-            transaction->cancel_last_commit_cancel_op();
-        } while(cancel_op != rename_op);
-        throw;
-    }
-    
+
+       this->set_name(saved_name);
+       this->description = saved_description;
+       this->current_hardware = saved_hardware;
+
+       // Cancel all operations up to and including the rename_op
+       CdlTransactionCommitCancelOp* cancel_op = 0;
+       do {
+           cancel_op = transaction->get_last_commit_cancel_op();
+           CYG_LOOP_INVARIANTC(0 != cancel_op);
+           transaction->cancel_last_commit_cancel_op();
+       } while(cancel_op != rename_op);
+       throw;
+    }
+
 
     CYG_REPORT_RETURN();
 }
@@ -1312,38 +1312,38 @@ CdlConfigurationBody::unload_template(CdlTransaction transaction, bool limbo)
 
     CdlConfiguration_CommitCancelTemplateName* rename_op = new CdlConfiguration_CommitCancelTemplateName(current_template);
     try {
-        transaction->add_commit_cancel_op(rename_op);
+       transaction->add_commit_cancel_op(rename_op);
     } catch(...) {
-        delete rename_op;
-        throw;
+       delete rename_op;
+       throw;
     }
     current_template = "";
 
     try {
-        const std::vector<CdlLoadable>& loadables = this->get_loadables();
-        for (int i = (int) loadables.size() - 1; i >= 0; i--) {
-            CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
-            if ((0 != package) && package->belongs_to_template()) {
-                this->unload_package(transaction, package, limbo);
-            }
-        }
+       const std::vector<CdlLoadable>& loadables = this->get_loadables();
+       for (int i = (int) loadables.size() - 1; i >= 0; i--) {
+           CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
+           if ((0 != package) && package->belongs_to_template()) {
+               this->unload_package(transaction, package, limbo);
+           }
+       }
     } catch(...) {
-        CdlTransactionCommitCancelOp* cancel_op = 0;
-        do {
-            cancel_op = transaction->get_last_commit_cancel_op();
-            CYG_LOOP_INVARIANTC(0 != cancel_op);
-            transaction->cancel_last_commit_cancel_op();
-        } while(cancel_op != rename_op);
-        throw;
-    }
-    
+       CdlTransactionCommitCancelOp* cancel_op = 0;
+       do {
+           cancel_op = transaction->get_last_commit_cancel_op();
+           CYG_LOOP_INVARIANTC(0 != cancel_op);
+           transaction->cancel_last_commit_cancel_op();
+       } while(cancel_op != rename_op);
+       throw;
+    }
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Persistence support                              
+//{{{  Persistence support
 
-//{{{  initialize_savefile_support()                    
+//{{{  initialize_savefile_support()
 
 // ----------------------------------------------------------------------------
 // Initialization. The purpose of this code is to determine all the
@@ -1361,7 +1361,7 @@ CdlConfigurationBody::initialize_savefile_support()
     CYG_REPORT_FUNCNAME("CdlConfiguration::initialize_savefile_support");
     CYG_REPORT_FUNCARG1XV(this);
     CYG_PRECONDITION_THISC();
-    
+
     // Start with the generic stuff such as cdl_savefile_version and
     // cdl_command.
     this->CdlToplevelBody::initialize_savefile_support();
@@ -1380,7 +1380,7 @@ CdlConfigurationBody::initialize_savefile_support()
 }
 
 //}}}
-//{{{  CdlConfiguration::save() - internal              
+//{{{  CdlConfiguration::save() - internal
 
 // ----------------------------------------------------------------------------
 // The exported interface is CdlConfiguration::save(). This takes a single
@@ -1401,7 +1401,7 @@ CdlConfigurationBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentat
 
     std::string text = "";
     if (!minimal) {
-      text = 
+      text =
 "# This section defines the toplevel configuration object. The only\n\
 # values that can be changed are the name of the configuration and\n\
 # the description field. It is not possible to modify the target,\n\
@@ -1415,38 +1415,38 @@ CdlConfigurationBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentat
 
     std::string config_data = this->get_description();
     if (!minimal || ("" != text)) {
-        text += "    description " + CdlInterpreterBody::quote(config_data) + " ;\n";
+       text += "    description " + CdlInterpreterBody::quote(config_data) + " ;\n";
     }
 
     // Repeat the warning.
     if (!minimal) {
-        text += "\n    # These fields should not be modified.\n";
+       text += "\n    # These fields should not be modified.\n";
     }
     config_data = this->get_hardware();
     if ("" != config_data) {
-        text += "    hardware    " + CdlInterpreterBody::quote(config_data) + " ;\n";
+       text += "    hardware    " + CdlInterpreterBody::quote(config_data) + " ;\n";
     }
     config_data = this->get_template();
     if ("" != config_data) {
-        text += "    template    " + CdlInterpreterBody::quote(config_data) + " ;\n";
+       text += "    template    " + CdlInterpreterBody::quote(config_data) + " ;\n";
     }
     std::vector<CdlLoadable>::const_iterator load_i;
     const std::vector<CdlLoadable>& packages = get_loadables();
     for (load_i = packages.begin(); load_i != packages.end(); load_i++) {
-        CdlPackage pkg = dynamic_cast<CdlPackage>(*load_i);
-        CYG_ASSERT_CLASSC(pkg);
-        text += "    package ";
-        if (pkg->belongs_to_template()) {
-            text += "-template ";
-        }
-        if (pkg->belongs_to_hardware()) {
-            text += "-hardware ";
-        }
-        text += CdlInterpreterBody::quote(pkg->get_name()) + " " + CdlInterpreterBody::quote(pkg->get_value()) + " ;\n";
+       CdlPackage pkg = dynamic_cast<CdlPackage>(*load_i);
+       CYG_ASSERT_CLASSC(pkg);
+       text += "    package ";
+       if (pkg->belongs_to_template()) {
+           text += "-template ";
+       }
+       if (pkg->belongs_to_hardware()) {
+           text += "-hardware ";
+       }
+       text += CdlInterpreterBody::quote(pkg->get_name()) + " " + CdlInterpreterBody::quote(pkg->get_value()) + " ;\n";
     }
 
     interp->write_data(chan, text);
-    
+
     // If the package was loaded from a file then there may be additional
     // data associated with the configuration that is not currently
     // recognised. This call preserves that data.
@@ -1458,7 +1458,7 @@ CdlConfigurationBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentat
 }
 
 //}}}
-//{{{  CdlConfiguration::save() - exported interface    
+//{{{  CdlConfiguration::save() - exported interface
 
 // ----------------------------------------------------------------------------
 // This is the exported interface for saving a configuration. The specified
@@ -1478,7 +1478,7 @@ CdlConfigurationBody::save(std::string filename, bool minimal)
     // This happens during the first save or load operation, or when
     // the application starts to register its own savefile extensions.
     if (!CdlToplevelBody::savefile_support_initialized()) {
-        this->initialize_savefile_support();
+       this->initialize_savefile_support();
     }
 
     // A Tcl interpreter is needed for the call to OpenFileChannel(),
@@ -1490,7 +1490,7 @@ CdlConfigurationBody::save(std::string filename, bool minimal)
     // is not manipulated in any way. Instead just pass it to Tcl.
     Tcl_Channel chan = Tcl_OpenFileChannel(interp->get_tcl_interpreter(), const_cast<char*>(filename.c_str()), "w", 0666);
     if (0 == chan) {
-        throw CdlInputOutputException("Unable to open file " + filename + "\n" + interp->get_result());
+       throw CdlInputOutputException("Unable to open file " + filename + "\n" + interp->get_result());
     }
 
     // The channel may end up being registered in various different
@@ -1504,37 +1504,37 @@ CdlConfigurationBody::save(std::string filename, bool minimal)
     std::string tmp;
     try {
 
-        if (!minimal) {
-            interp->write_data(chan, "# eCos saved configuration\n\n");
-        }
-        
-        CdlToplevelBody::save_separator(interp, chan, "commands", minimal);
-        this->CdlToplevelBody::save_command_details(interp, chan, 0, minimal);
-        CdlToplevelBody::save_separator(interp, chan, "toplevel", minimal);
-        this->save(interp, chan, 0, minimal);
-        CdlToplevelBody::save_separator(interp, chan, "conflicts", minimal);
-        this->CdlToplevelBody::save_conflicts(interp, chan, 0, minimal);
-        CdlToplevelBody::save_separator(interp, chan, "contents", minimal);
-        this->CdlContainerBody::save(interp, chan, 0, minimal);
-        this->save_unsupported_commands(interp, chan, 0, minimal);
-        
+       if (!minimal) {
+           interp->write_data(chan, "# eCos saved configuration\n\n");
+       }
+
+       CdlToplevelBody::save_separator(interp, chan, "commands", minimal);
+       this->CdlToplevelBody::save_command_details(interp, chan, 0, minimal);
+       CdlToplevelBody::save_separator(interp, chan, "toplevel", minimal);
+       this->save(interp, chan, 0, minimal);
+       CdlToplevelBody::save_separator(interp, chan, "conflicts", minimal);
+       this->CdlToplevelBody::save_conflicts(interp, chan, 0, minimal);
+       CdlToplevelBody::save_separator(interp, chan, "contents", minimal);
+       this->CdlContainerBody::save(interp, chan, 0, minimal);
+       this->save_unsupported_commands(interp, chan, 0, minimal);
+
     } catch(...) {
-        Tcl_UnregisterChannel(0, chan);
-        // NOTE: deleting the file is necessary, it is a bad idea to
-        // end up with incomplete save files. It would be even better
-        // to write to a temporary file and only overwrite the old
-        // savefile on success.
-        //
-        // Tcl does not provide direct access to the file delete
-        // facility, so it is necessary to evaluate a script. This
-        // introduces quoting and security problems, since the
-        // filename might contain spaces, square brackets, braces...
-        // To avoid these problems a variable is used.
-        interp->set_variable("__cdlconfig_filename", filename);
-        interp->eval("file delete $__cdlconfig_filename", tmp);
-        interp->unset_variable("__cdlconfig_filename");
-        
-        throw;
+       Tcl_UnregisterChannel(0, chan);
+       // NOTE: deleting the file is necessary, it is a bad idea to
+       // end up with incomplete save files. It would be even better
+       // to write to a temporary file and only overwrite the old
+       // savefile on success.
+       //
+       // Tcl does not provide direct access to the file delete
+       // facility, so it is necessary to evaluate a script. This
+       // introduces quoting and security problems, since the
+       // filename might contain spaces, square brackets, braces...
+       // To avoid these problems a variable is used.
+       interp->set_variable("__cdlconfig_filename", filename);
+       interp->eval("file delete $__cdlconfig_filename", tmp);
+       interp->unset_variable("__cdlconfig_filename");
+
+       throw;
     }
 
     // This call will perform the appropriate close.
@@ -1542,32 +1542,32 @@ CdlConfigurationBody::save(std::string filename, bool minimal)
 }
 
 //}}}
-//{{{  CdlConfiguration::load() and add()               
+//{{{  CdlConfiguration::load() and add()
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in add(). load() simply creates a new configuration
 // and then invokes add().
 CdlConfiguration
 CdlConfigurationBody::load(std::string filename, CdlPackagesDatabase db, CdlInterpreter interp,
-                           CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
+                          CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
 {
     CYG_REPORT_FUNCNAMETYPE("CdlConfiguration::load", "result %p");
     CYG_REPORT_FUNCARG4XV(db, interp, error_fn, warn_fn);
     CYG_PRECONDITION_CLASSC(db);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlConfiguration result = CdlConfigurationBody::make("eCos", db, interp);
     if (0 == result) {
-        CYG_REPORT_RETVAL(result);
-        return result;
+       CYG_REPORT_RETVAL(result);
+       return result;
     }
-    
+
     try {
-        result->add(filename, error_fn, warn_fn);
-        result->save_file = filename;
+       result->add(filename, error_fn, warn_fn);
+       result->save_file = filename;
     } catch(...) {
-        delete result;
-        throw;
+       delete result;
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1577,7 +1577,7 @@ CdlConfigurationBody::load(std::string filename, CdlPackagesDatabase db, CdlInte
 // ----------------------------------------------------------------------------
 void
 CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
-                          CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
+                         CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::add");
     CYG_REPORT_FUNCARG3XV(this, error_fn, warn_fn);
@@ -1586,9 +1586,9 @@ CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
     // Initialize the savefile support, so that it is known what
     // commands can occur in a savefile.
     if (!CdlToplevelBody::savefile_support_initialized()) {
-        this->initialize_savefile_support();
+       this->initialize_savefile_support();
     }
-    
+
     // The interpreter should not have any left-over junk.
     CdlInterpreter interp = this->get_interpreter();
     CYG_PRECONDITION_CLASSC(interp);
@@ -1603,30 +1603,30 @@ CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
     CdlInterpreterBody::ContextSupport context_support(interp, filename);
 
     try {
-        interp->set_transaction(transaction);
-
-        std::vector<CdlInterpreterCommandEntry> commands;
-        this->get_savefile_commands(commands);
-        CdlInterpreterBody::CommandSupport interp_cmds(interp, commands);
-
-        interp->eval_file(filename);
-        
-        // All the data has been read in without generating an
-        // exception. However there may have been errors reported via
-        // the error_fn handling, and any errors at all should result
-        // in an exception.
-        int error_count = CdlParse::get_error_count(interp);
-        if (error_count > 0) {
-            std::string tmp;
-            Cdl::integer_to_string(error_count, tmp);
-            throw CdlInputOutputException("Invalid savefile \"" + filename + "\".\n" +
-                                          tmp + " error" + ((error_count > 1) ? "s" : "") +
-                                          " occurred while reading in the savefile data.");
-        }
-        
+       interp->set_transaction(transaction);
+
+       std::vector<CdlInterpreterCommandEntry> commands;
+       this->get_savefile_commands(commands);
+       CdlInterpreterBody::CommandSupport interp_cmds(interp, commands);
+
+       interp->eval_file(filename);
+
+       // All the data has been read in without generating an
+       // exception. However there may have been errors reported via
+       // the error_fn handling, and any errors at all should result
+       // in an exception.
+       int error_count = CdlParse::get_error_count(interp);
+       if (error_count > 0) {
+           std::string tmp;
+           Cdl::integer_to_string(error_count, tmp);
+           throw CdlInputOutputException("Invalid savefile \"" + filename + "\".\n" +
+                                         tmp + " error" + ((error_count > 1) ? "s" : "") +
+                                         " occurred while reading in the savefile data.");
+       }
+
     } catch(...) {
-        interp->set_transaction(0);
-        throw;
+       interp->set_transaction(0);
+       throw;
     }
 
     interp->set_transaction(0);
@@ -1635,7 +1635,7 @@ CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
 }
 
 //}}}
-//{{{  savefile commands                                
+//{{{  savefile commands
 
 // ----------------------------------------------------------------------------
 // A cdl_configuration command does not actually do very much. It acts as
@@ -1645,7 +1645,7 @@ CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
 // This is not done, to allow multiple savefiles to be loaded into
 // a single configuration in future.
 int
-CdlConfigurationBody::savefile_configuration_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_configuration_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("CdlConfiguration::savefile_configuration_command", "result %d");
     CYG_PRECONDITION_CLASSC(interp);
@@ -1658,32 +1658,32 @@ CdlConfigurationBody::savefile_configuration_command(CdlInterpreter interp, int
 
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
-    
+
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, "cdl_configuration command", 0, argc, argv, 1, options);
-
-        // A broken cdl_configuration command is pretty fatal, chances are
-        // that the entire load is going to fail.
-        if (data_index != (argc - 2)) {
-            CdlParse::report_error(interp, "", "Invalid cdl_configuration command in savefile, expecting two arguments.");
-        } else {
-            config->set_name(argv[1]);
-            config->get_savefile_subcommands("cdl_configuration", subcommands);
-            toplevel_commands = interp->push_commands(subcommands);
-
-            std::string tcl_result;
-            result = interp->eval(argv[2], tcl_result);
-            
-            interp->pop_commands(toplevel_commands);
-            toplevel_commands = 0;
-        }
-        
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, "cdl_configuration command", 0, argc, argv, 1, options);
+
+       // A broken cdl_configuration command is pretty fatal, chances are
+       // that the entire load is going to fail.
+       if (data_index != (argc - 2)) {
+           CdlParse::report_error(interp, "", "Invalid cdl_configuration command in savefile, expecting two arguments.");
+       } else {
+           config->set_name(argv[1]);
+           config->get_savefile_subcommands("cdl_configuration", subcommands);
+           toplevel_commands = interp->push_commands(subcommands);
+
+           std::string tcl_result;
+           result = interp->eval(argv[2], tcl_result);
+
+           interp->pop_commands(toplevel_commands);
+           toplevel_commands = 0;
+       }
+
     } catch(...) {
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1692,7 +1692,7 @@ CdlConfigurationBody::savefile_configuration_command(CdlInterpreter interp, int
 
 // ----------------------------------------------------------------------------
 int
-CdlConfigurationBody::savefile_description_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_description_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_description_command");
     CYG_PRECONDITION_CLASSC(interp);
@@ -1704,19 +1704,19 @@ CdlConfigurationBody::savefile_description_command(CdlInterpreter interp, int ar
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/description command", 0, argc, argv, 1, options);
-        
+
     if (data_index != (argc - 1)) {
-        CdlParse::report_warning(interp, "",
-                                 "Ignoring invalid configuration description command, expecting a single argument.");
+       CdlParse::report_warning(interp, "",
+                                "Ignoring invalid configuration description command, expecting a single argument.");
     } else {
-        config->description = argv[1];
-    }    
+       config->description = argv[1];
+    }
     return TCL_OK;
 }
 
 // ----------------------------------------------------------------------------
 int
-CdlConfigurationBody::savefile_hardware_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_hardware_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_hardware_command");
     CYG_PRECONDITION_CLASSC(interp);
@@ -1728,11 +1728,11 @@ CdlConfigurationBody::savefile_hardware_command(CdlInterpreter interp, int argc,
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/hardware command", 0, argc, argv, 1, options);
-        
+
     if (data_index != (argc - 1)) {
-        CdlParse::report_warning(interp, "", "Ignoring invalid configuration hardware command, expecting a single argument.");
+       CdlParse::report_warning(interp, "", "Ignoring invalid configuration hardware command, expecting a single argument.");
     } else {
-        config->current_hardware = argv[1];
+       config->current_hardware = argv[1];
     }
 
     return TCL_OK;
@@ -1740,7 +1740,7 @@ CdlConfigurationBody::savefile_hardware_command(CdlInterpreter interp, int argc,
 
 // ----------------------------------------------------------------------------
 int
-CdlConfigurationBody::savefile_template_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_template_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_template_command");
     CYG_PRECONDITION_CLASSC(interp);
@@ -1752,23 +1752,23 @@ CdlConfigurationBody::savefile_template_command(CdlInterpreter interp, int argc,
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/template command", 0, argc, argv, 1, options);
-        
+
     if (data_index != (argc - 1)) {
-        CdlParse::report_warning(interp, "", "Ignoring invalid configuration template command, expecting a single argument.");
+       CdlParse::report_warning(interp, "", "Ignoring invalid configuration template command, expecting a single argument.");
     } else {
-        config->current_template = argv[1];
+       config->current_template = argv[1];
     }
-    
+
     return TCL_OK;
 }
 
 // ----------------------------------------------------------------------------
 int
-CdlConfigurationBody::savefile_package_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_package_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_package_command");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlToplevel toplevel = interp->get_toplevel();
     CYG_ASSERT_CLASSC(toplevel);
     CdlConfiguration config = dynamic_cast<CdlConfiguration>(toplevel);
@@ -1779,86 +1779,85 @@ CdlConfigurationBody::savefile_package_command(CdlInterpreter interp, int argc,
     std::string pkgname;
     std::string pkgversion;
     CdlPackage  pkg = 0;
-    
+
     std::vector<std::pair<std::string,std::string> > options;
-    static char* optlist[] = {
-        "template:f",
-        "hardware:f",
-        0
+    static const char *optlist[] = {
+       "template:f",
+       "hardware:f",
+       0
     };
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/package command", optlist, argc, argv, 1, options);
 
     if (data_index == (argc - 1)) {
-        CdlParse::report_warning(interp, "", std::string("Missing version information for package `")
-                                 + argv[argc - 1] + "'.");
-        pkgname = argv[argc - 1];
-        pkgversion = "";
+       CdlParse::report_warning(interp, "", std::string("Missing version information for package `")
+                                + argv[argc - 1] + "'.");
+       pkgname = argv[argc - 1];
+       pkgversion = "";
     } else if (data_index == (argc - 2)) {
-        pkgname = argv[argc - 2];
-        pkgversion = argv[argc - 1];
+       pkgname = argv[argc - 2];
+       pkgversion = argv[argc - 1];
     } else {
-        // If we cannot load all the packages then much of the
-        // savefile is likely to be problematical.
-        CdlParse::report_error(interp, "", "Invalid cdl_configuration/package command, expecting name and version");
-        CYG_REPORT_RETURN();
-        return TCL_OK;
+       // If we cannot load all the packages then much of the
+       // savefile is likely to be problematical.
+       CdlParse::report_error(interp, "", "Invalid cdl_configuration/package command, expecting name and version");
+       CYG_REPORT_RETURN();
+       return TCL_OK;
     }
 
     if (0 != config->lookup(pkgname)) {
-        // If the package was already loaded, check the version string. If the versions
-        // are identical then we do not need to worry any further. Otherwise a mismatch
-        // warning is appropriate.
-        CdlNode node = config->lookup(pkgname);
-        CYG_ASSERT_CLASSC(node);
-        pkg = dynamic_cast<CdlPackage>(node);
-        if (0 == pkg) {
-            // The name is in use, but it is not a package
-            CdlParse::report_error(interp, "",
-                                   std::string("Unable to load package `") + pkgname + "', the name is already in use.");
-        } else if (pkgversion != pkg->get_value()) {
-            CdlParse::report_warning(interp, "",
-                                     std::string("Cannot load version `") + pkgversion + "' of package `" +
-                                     pkgname + "', version `" + pkg->get_value() + "' is already loaded.");
-        }
+       // If the package was already loaded, check the version string. If the versions
+       // are identical then we do not need to worry any further. Otherwise a mismatch
+       // warning is appropriate.
+       CdlNode node = config->lookup(pkgname);
+       CYG_ASSERT_CLASSC(node);
+       pkg = dynamic_cast<CdlPackage>(node);
+       if (0 == pkg) {
+           // The name is in use, but it is not a package
+           CdlParse::report_error(interp, "",
+                                  std::string("Unable to load package `") + pkgname + "', the name is already in use.");
+       } else if (pkgversion != pkg->get_value()) {
+           CdlParse::report_warning(interp, "",
+                                    std::string("Cannot load version `") + pkgversion + "' of package `" +
+                                    pkgname + "', version `" + pkg->get_value() + "' is already loaded.");
+       }
     } else if (!db->is_known_package(pkgname)) {
-        CdlParse::report_error(interp, "",
-                               std::string("Attempt to load an unknown package `") + pkgname + "'.");
+       CdlParse::report_error(interp, "",
+                              std::string("Attempt to load an unknown package `") + pkgname + "'.");
     } else {
-        if ("" != pkgversion) {
-            const std::vector<std::string>& versions = db->get_package_versions(pkgname);
-            if (versions.end() == std::find(versions.begin(), versions.end(), pkgversion)) {
-                CdlParse::report_warning(interp, "",
-                                         std::string("The savefile specifies version `") + pkgversion +
-                                         "' for package `" + pkgname + "'\nThis version is not available.\n" +
-                                         "Using the most recent version instead.");
-                pkgversion = "";
-            }
-        }
-        CdlDiagnosticFnPtr error_fn    = interp->get_error_fn_ptr();
-        CdlDiagnosticFnPtr warn_fn     = interp->get_warning_fn_ptr();
-        CdlTransaction     transaction = interp->get_transaction();
-        config->load_package(transaction, pkgname, pkgversion, error_fn, warn_fn, false);
-        CdlNode pkg_node = config->lookup(pkgname);
-        CYG_ASSERTC(0 != pkg_node);
-        pkg = dynamic_cast<CdlPackage>(pkg_node);
-        CYG_ASSERT_CLASSC(pkg);
+       if ("" != pkgversion) {
+           const std::vector<std::string>& versions = db->get_package_versions(pkgname);
+           if (versions.end() == std::find(versions.begin(), versions.end(), pkgversion)) {
+               CdlParse::report_warning(interp, "",
+                                        std::string("The savefile specifies version `") + pkgversion +
+                                        "' for package `" + pkgname + "'\nThis version is not available.\n" +
+                                        "Using the most recent version instead.");
+               pkgversion = "";
+           }
+       }
+       CdlDiagnosticFnPtr error_fn    = interp->get_error_fn_ptr();
+       CdlDiagnosticFnPtr warn_fn     = interp->get_warning_fn_ptr();
+       CdlTransaction     transaction = interp->get_transaction();
+       config->load_package(transaction, pkgname, pkgversion, error_fn, warn_fn, false);
+       CdlNode pkg_node = config->lookup(pkgname);
+       CYG_ASSERTC(0 != pkg_node);
+       pkg = dynamic_cast<CdlPackage>(pkg_node);
+       CYG_ASSERT_CLASSC(pkg);
     }
 
     if ((0 != pkg) && (0 != options.size())) {
-        std::vector<std::pair<std::string,std::string> >::const_iterator opt_i;
-        for (opt_i = options.begin(); opt_i != options.end(); opt_i++) {
-            if (opt_i->first == "template") {
-                pkg->loaded_for_template = true;
-            } else if (opt_i->first == "hardware") {
-                pkg->loaded_for_hardware = true;
-            } 
-        }
-    }
-        
+       std::vector<std::pair<std::string,std::string> >::const_iterator opt_i;
+       for (opt_i = options.begin(); opt_i != options.end(); opt_i++) {
+           if (opt_i->first == "template") {
+               pkg->loaded_for_template = true;
+           } else if (opt_i->first == "hardware") {
+               pkg->loaded_for_hardware = true;
+           }
+       }
+    }
+
     return TCL_OK;
 }
 
 //}}}
 
 //}}}
-
index 1ff986d893779d80a0689363be74a9cfa8473151..d5efdabf69923294fc95e6af98747cf482576a5d 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                                                   
+//{{{  Banner
 
 //============================================================================
 //
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -46,7 +46,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                                               
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
-//{{{  Statics                                                  
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 // Some test cases may want to read in a file other than
 // "ecos.db", e.g. to facilitate testing the error conditions.
-char*
+const char*
 CdlPackagesDatabaseBody::database_name = "ecos.db";
 
 // Should warnings be issued for minor database inconsistencies?
@@ -96,9 +96,9 @@ static std::string diag_target  = std::string("target ");
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlPackagesDatabaseBody);
 
 //}}}
-//{{{  Tcl commands for the parser                              
+//{{{  Tcl commands for the parser
 
-//{{{  CdlDbParser class                                
+//{{{  CdlDbParser class
 
 // ----------------------------------------------------------------------------
 // Commands that get invoked from inside the Tcl interpreter. These
@@ -124,7 +124,7 @@ class CdlDbParser {
 };
 
 //}}}
-//{{{  CdlDbParser::package-related                     
+//{{{  CdlDbParser::package-related
 
 // ----------------------------------------------------------------------------
 // package <name> <body>
@@ -138,125 +138,125 @@ CdlDbParser::new_package(CdlInterpreter interp, int argc, const char* argv[])
 
     CdlPackagesDatabase db      = static_cast<CdlPackagesDatabase>(interp->get_assoc_data(dbparser_database_key));
     CYG_INVARIANT_CLASSC(CdlPackagesDatabaseBody, db);
-    
+
     if (3 != argc) {
-        if (argc < 2) {
-            CdlParse::report_error(interp, "", "Invalid package command, missing name and contents.");
-        } else if (argc == 2) {
-            CdlParse::report_error(interp, diag_package + argv[1], "Invalid package command, missing body.");
-        } else {
-            CdlParse::report_error(interp, diag_package + argv[1],
-                                   "Invalid package command, expecting just name and body.");
-        }
-        CYG_REPORT_RETVAL(TCL_OK);
-        return TCL_OK;
+       if (argc < 2) {
+           CdlParse::report_error(interp, "", "Invalid package command, missing name and contents.");
+       } else if (argc == 2) {
+           CdlParse::report_error(interp, diag_package + argv[1], "Invalid package command, missing body.");
+       } else {
+           CdlParse::report_error(interp, diag_package + argv[1],
+                                  "Invalid package command, expecting just name and body.");
+       }
+       CYG_REPORT_RETVAL(TCL_OK);
+       return TCL_OK;
     }
     std::string pkg_name        = argv[1];
 
     // Better make sure that this is not a duplicate definition.
     if (std::find(db->package_names.begin(), db->package_names.end(), pkg_name) != db->package_names.end()) {
-        CdlParse::report_warning(interp, diag_package + pkg_name, "Duplicate package entry, ignoring second occurence.");
-        CYG_REPORT_RETVAL(TCL_OK);
-        return TCL_OK;
+       CdlParse::report_warning(interp, diag_package + pkg_name, "Duplicate package entry, ignoring second occurence.");
+       CYG_REPORT_RETVAL(TCL_OK);
+       return TCL_OK;
     }
-    
+
     // The package data is constructed locally. It only gets added to
     // the database in the absence of errors.
     bool package_ok      = true;
     int  old_error_count = CdlParse::get_error_count(interp);
-        
+
     CdlPackagesDatabaseBody::package_data package;
     package.description = "";
     package.directory   = "";
     package.script      = "";
     package.hardware    = false;
-    
+
     // aliases and versions are vectors and will take care of themselves
     // And the name had better be valid as well.
     if (!Cdl::is_valid_cdl_name(pkg_name)) {
-        CdlParse::report_error(interp, diag_package + pkg_name, "This is not a valid CDL name.");
+       CdlParse::report_error(interp, diag_package + pkg_name, "This is not a valid CDL name.");
     }
-    
+
     // Sort out the commands, then invoke the script in argv[2]. There is
     // no need to worry about error recovery here, any errors will be
     // fatal anyway.
     CdlInterpreterCommandEntry commands[] = {
-        CdlInterpreterCommandEntry("description", &CdlDbParser::package_description ),
-        CdlInterpreterCommandEntry("alias",       &CdlDbParser::package_alias       ),
-        CdlInterpreterCommandEntry("directory",   &CdlDbParser::package_directory   ),
-        CdlInterpreterCommandEntry("script",      &CdlDbParser::package_script      ),
-        CdlInterpreterCommandEntry("hardware",    &CdlDbParser::package_hardware    ),
-        CdlInterpreterCommandEntry("",            0                                 )
+       CdlInterpreterCommandEntry("description", &CdlDbParser::package_description ),
+       CdlInterpreterCommandEntry("alias",       &CdlDbParser::package_alias       ),
+       CdlInterpreterCommandEntry("directory",   &CdlDbParser::package_directory   ),
+       CdlInterpreterCommandEntry("script",      &CdlDbParser::package_script      ),
+       CdlInterpreterCommandEntry("hardware",    &CdlDbParser::package_hardware    ),
+       CdlInterpreterCommandEntry("",            0                                 )
     };
     CdlInterpreterBody::CommandSupport  cmds(interp, commands);
     CdlInterpreterBody::VariableSupport interp_name(interp, dbparser_pkgname, pkg_name);
     CdlInterpreterBody::AssocSupport    interp_data(interp, dbparser_pkgdata, static_cast<ClientData>(&package));
     int result = interp->eval(argv[2]);
     if (TCL_OK == result) {
-        
-        // The body has been parsed OK. Check that it is valid.
-        if ("" == package.directory) {
-            CdlParse::report_error(interp, diag_package + pkg_name, "Missing directory specification.");
-        }
-        if ("" == package.script) {
-            CdlParse::report_error(interp, diag_package + pkg_name, "Missing script specification.");
-        }
-        if (0 == package.aliases.size()) {
-            CdlParse::report_error(interp, diag_package + pkg_name, "At least one alias should be supplied.");
-        }
-
-        // Additional checks. Is the package directory actually present?
-        // Note that there are scenarios where a package may be listed
-        // in the database but not installed, e.g. an anoncvs checkout
-        // of selected modules.
-        if ("" != package.directory) {
-            std::string repo = interp->get_variable(dbparser_component_repository);
-            CYG_ASSERTC("" != repo);
-
-            std::string pkgdir = repo + "/" + package.directory;
-            if (!interp->is_directory(pkgdir)) {
-                if (CdlPackagesDatabaseBody::verbose_mode) {
-                    CdlParse::report_warning(interp, diag_package + pkg_name,
-                                             std::string("This package is not present in the component repository.\n"
-                                                         "There is no directory `") + pkgdir + "'.");
-                }
-                package_ok = false;
-            } else {
-                
-                // Now look for version subdirectories. There should be at least one.
-                std::vector<std::string> subdirs;
-                unsigned int i;
-                interp->locate_subdirs(pkgdir, subdirs);
-                std::sort(subdirs.begin(), subdirs.end(), Cdl::version_cmp());
-                
-                for (i = 0; i < subdirs.size(); i++) {
-                    if (("CVS" == subdirs[i]) || ("cvs" == subdirs[i])) {
-                        continue;
-                    }
-                    if ("" != package.script) {
-                        if (!(interp->is_file(pkgdir + "/" + subdirs[i] + "/cdl/" + package.script) ||
-                              interp->is_file(pkgdir + "/" + subdirs[i] + "/" + package.script))) {
-                            CdlParse::report_warning(interp, diag_package + pkg_name,
-                                                     std::string("Version subdirectory `") + subdirs[i] +
-                                                     "' does not have a CDL script `" + package.script + "'.");
-                            continue;
-                        }
-                    }
-                    package.versions.push_back(subdirs[i]);
-                }
-                if (0 == package.versions.size()) {
-                    CdlParse::report_warning(interp, diag_package + pkg_name,
-                                             "This package does not have any valid version subdirectories.");
-                    package_ok = false;
-                }
-            }
-        }
+
+       // The body has been parsed OK. Check that it is valid.
+       if ("" == package.directory) {
+           CdlParse::report_error(interp, diag_package + pkg_name, "Missing directory specification.");
+       }
+       if ("" == package.script) {
+           CdlParse::report_error(interp, diag_package + pkg_name, "Missing script specification.");
+       }
+       if (0 == package.aliases.size()) {
+           CdlParse::report_error(interp, diag_package + pkg_name, "At least one alias should be supplied.");
+       }
+
+       // Additional checks. Is the package directory actually present?
+       // Note that there are scenarios where a package may be listed
+       // in the database but not installed, e.g. an anoncvs checkout
+       // of selected modules.
+       if ("" != package.directory) {
+           std::string repo = interp->get_variable(dbparser_component_repository);
+           CYG_ASSERTC("" != repo);
+
+           std::string pkgdir = repo + "/" + package.directory;
+           if (!interp->is_directory(pkgdir)) {
+               if (CdlPackagesDatabaseBody::verbose_mode) {
+                   CdlParse::report_warning(interp, diag_package + pkg_name,
+                                            std::string("This package is not present in the component repository.\n"
+                                                        "There is no directory `") + pkgdir + "'.");
+               }
+               package_ok = false;
+           } else {
+
+               // Now look for version subdirectories. There should be at least one.
+               std::vector<std::string> subdirs;
+               unsigned int i;
+               interp->locate_subdirs(pkgdir, subdirs);
+               std::sort(subdirs.begin(), subdirs.end(), Cdl::version_cmp());
+
+               for (i = 0; i < subdirs.size(); i++) {
+                   if (("CVS" == subdirs[i]) || ("cvs" == subdirs[i])) {
+                       continue;
+                   }
+                   if ("" != package.script) {
+                       if (!(interp->is_file(pkgdir + "/" + subdirs[i] + "/cdl/" + package.script) ||
+                             interp->is_file(pkgdir + "/" + subdirs[i] + "/" + package.script))) {
+                           CdlParse::report_warning(interp, diag_package + pkg_name,
+                                                    std::string("Version subdirectory `") + subdirs[i] +
+                                                    "' does not have a CDL script `" + package.script + "'.");
+                           continue;
+                       }
+                   }
+                   package.versions.push_back(subdirs[i]);
+               }
+               if (0 == package.versions.size()) {
+                   CdlParse::report_warning(interp, diag_package + pkg_name,
+                                            "This package does not have any valid version subdirectories.");
+                   package_ok = false;
+               }
+           }
+       }
     }
 
     // If the package is still ok, now is the time to add it to the database.
     if (package_ok && (old_error_count == CdlParse::get_error_count(interp))) {
-        db->package_names.push_back(pkg_name);
-        db->packages[pkg_name] = package;
+       db->package_names.push_back(pkg_name);
+       db->packages[pkg_name] = package;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -274,16 +274,16 @@ CdlDbParser::package_description(CdlInterpreter interp, int argc, const char* ar
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_package + name, "Invalid description, expecting a single string.");
+       CdlParse::report_error(interp, diag_package + name, "Invalid description, expecting a single string.");
     } else if ("" != package->description) {
-        CdlParse::report_warning(interp, diag_package + name, "A package should have only one description.");
+       CdlParse::report_warning(interp, diag_package + name, "A package should have only one description.");
     } else {
-        package->description = argv[1];
+       package->description = argv[1];
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -300,33 +300,33 @@ CdlDbParser::package_alias(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     // There should be one argument, a list of valid packages.
     // Also, the alias command should be used only once
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_package + name,
-                               "The alias command should be followed by a list of known aliases.");
+       CdlParse::report_error(interp, diag_package + name,
+                              "The alias command should be followed by a list of known aliases.");
     } else if (0 < package->aliases.size()) {
-        CdlParse::report_warning(interp, diag_package + name, "There should be only one list of aliases.");
+       CdlParse::report_warning(interp, diag_package + name, "There should be only one list of aliases.");
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_package + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            if (0 == list_count) {
-                CdlParse::report_error(interp, diag_package + name, "At least one alias should be supplied.");
-            } else {
-                for (int i = 0; i < list_count; i++) {
-                    package->aliases.push_back(list_entries[i]);
-                }
-            }
-            Tcl_Free((char*)list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_package + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           if (0 == list_count) {
+               CdlParse::report_error(interp, diag_package + name, "At least one alias should be supplied.");
+           } else {
+               for (int i = 0; i < list_count; i++) {
+                   package->aliases.push_back(list_entries[i]);
+               }
+           }
+           Tcl_Free((char*)list_entries);
+       }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -343,16 +343,16 @@ CdlDbParser::package_directory(CdlInterpreter interp, int argc, const char* argv
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     // There should be exactly one argument, and the directory command
     // should be used only once.
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_package + name, "Only one directory can be specified.");
+       CdlParse::report_error(interp, diag_package + name, "Only one directory can be specified.");
     } else if ("" != package->directory) {
-        CdlParse::report_warning(interp, diag_package + name, "A package can be located in only one directory.");
+       CdlParse::report_warning(interp, diag_package + name, "A package can be located in only one directory.");
     } else {
-        package->directory = argv[1];
+       package->directory = argv[1];
     }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
@@ -370,16 +370,16 @@ CdlDbParser::package_hardware(CdlInterpreter interp, int argc, const char* argv[
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     if (1 != argc) {
-        CdlParse::report_error(interp, diag_package + name, "There should be no further data after hardware.");
+       CdlParse::report_error(interp, diag_package + name, "There should be no further data after hardware.");
     } else if (package->hardware) {
-        CdlParse::report_warning(interp, diag_package + name, "The hardware property should be specified only once");
+       CdlParse::report_warning(interp, diag_package + name, "The hardware property should be specified only once");
     } else {
-        package->hardware    = true;
+       package->hardware    = true;
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -395,16 +395,16 @@ CdlDbParser::package_script(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     // There should be exactly one argument, and the script command
     // should be used only once
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_package + name, "Only one CDL script can be specified.");
+       CdlParse::report_error(interp, diag_package + name, "Only one CDL script can be specified.");
     } else if ("" != package->script) {
-        CdlParse::report_warning(interp, diag_package + name, "A package can have only one starting CDL script.");
+       CdlParse::report_warning(interp, diag_package + name, "A package can have only one starting CDL script.");
     } else {
-        package->script = argv[1];
+       package->script = argv[1];
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
@@ -412,7 +412,7 @@ CdlDbParser::package_script(CdlInterpreter interp, int argc, const char* argv[])
 }
 
 //}}}
-//{{{  CdlDbParser::target-related                      
+//{{{  CdlDbParser::target-related
 
 // ----------------------------------------------------------------------------
 // target <name> <body>
@@ -426,27 +426,27 @@ CdlDbParser::new_target(CdlInterpreter interp, int argc, const char* argv[])
 
     CdlPackagesDatabase db      = static_cast<CdlPackagesDatabase>(interp->get_assoc_data(dbparser_database_key));
     CYG_INVARIANT_CLASSC(CdlPackagesDatabaseBody, db);
-    
+
     if (3 != argc) {
-        if (argc < 2) {
-            CdlParse::report_error(interp, "", "Invalid target command, missing name and contents.");
-        } else if (argc == 2) {
-            CdlParse::report_error(interp, diag_target + argv[1], "Invalid target command, missing body.");
-        } else {
-            CdlParse::report_error(interp, diag_target + argv[1], "Invalid target command, expecting just name and body.");
-        }
-        CYG_REPORT_RETVAL(TCL_OK);
-        return TCL_OK;
+       if (argc < 2) {
+           CdlParse::report_error(interp, "", "Invalid target command, missing name and contents.");
+       } else if (argc == 2) {
+           CdlParse::report_error(interp, diag_target + argv[1], "Invalid target command, missing body.");
+       } else {
+           CdlParse::report_error(interp, diag_target + argv[1], "Invalid target command, expecting just name and body.");
+       }
+       CYG_REPORT_RETVAL(TCL_OK);
+       return TCL_OK;
     }
-    
+
     std::string target_name     = argv[1];
 
     // Better make sure that this is not a duplicate definition.
     if (std::find(db->target_names.begin(), db->target_names.end(), target_name) != db->target_names.end()) {
-        CdlParse::report_warning(interp, diag_target + target_name,
-                                 "Duplicate target entry, ignoring second occurence.");
-        CYG_REPORT_RETVAL(TCL_OK);
-        return TCL_OK;
+       CdlParse::report_warning(interp, diag_target + target_name,
+                                "Duplicate target entry, ignoring second occurence.");
+       CYG_REPORT_RETVAL(TCL_OK);
+       return TCL_OK;
     }
 
     // The target data is constructed locally. It only gets added to the
@@ -462,34 +462,34 @@ CdlDbParser::new_target(CdlInterpreter interp, int argc, const char* argv[])
     // no need to worry about error recovery here, any errors will be
     // fatal anyway.
     CdlInterpreterCommandEntry commands[] = {
-        CdlInterpreterCommandEntry("description",    &CdlDbParser::target_description    ),
-        CdlInterpreterCommandEntry("alias",          &CdlDbParser::target_alias          ),
-        CdlInterpreterCommandEntry("packages",       &CdlDbParser::target_packages       ),
-        CdlInterpreterCommandEntry("enable",         &CdlDbParser::target_enable         ),
-        CdlInterpreterCommandEntry("disable",        &CdlDbParser::target_disable        ),
-        CdlInterpreterCommandEntry("set_value",      &CdlDbParser::target_set_value      ),
-        CdlInterpreterCommandEntry("",               0                                   )
+       CdlInterpreterCommandEntry("description",    &CdlDbParser::target_description    ),
+       CdlInterpreterCommandEntry("alias",          &CdlDbParser::target_alias          ),
+       CdlInterpreterCommandEntry("packages",       &CdlDbParser::target_packages       ),
+       CdlInterpreterCommandEntry("enable",         &CdlDbParser::target_enable         ),
+       CdlInterpreterCommandEntry("disable",        &CdlDbParser::target_disable        ),
+       CdlInterpreterCommandEntry("set_value",      &CdlDbParser::target_set_value      ),
+       CdlInterpreterCommandEntry("",               0                                   )
     };
     CdlInterpreterBody::CommandSupport  interp_cmds(interp, commands);
     CdlInterpreterBody::VariableSupport interp_name(interp, dbparser_targetname, target_name);
     CdlInterpreterBody::AssocSupport    interp_data(interp, dbparser_targetdata, static_cast<ClientData>(&target));
     int result = interp->eval(argv[2]);
     if (TCL_OK == result) {
-        
-        if (0 == target.aliases.size()) {
-            CdlParse::report_error(interp, diag_target + target_name, "At least one alias should be supplied.");
-        }
-        
-        // There is no check for > 0 hardware packages. This is an unlikely
-        // scenario but should be allowed for.
-        // Add this target to the list.
+
+       if (0 == target.aliases.size()) {
+           CdlParse::report_error(interp, diag_target + target_name, "At least one alias should be supplied.");
+       }
+
+       // There is no check for > 0 hardware packages. This is an unlikely
+       // scenario but should be allowed for.
+       // Add this target to the list.
     }
 
     if (target_ok && (old_error_count == CdlParse::get_error_count(interp))) {
-        db->target_names.push_back(target_name);
-        db->targets[target_name] = target;
+       db->target_names.push_back(target_name);
+       db->targets[target_name] = target;
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -505,16 +505,16 @@ CdlDbParser::target_description(CdlInterpreter interp, int argc, const char* arg
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "The target description should be a single string.");
+       CdlParse::report_error(interp, diag_target + name, "The target description should be a single string.");
     } else if ("" != target->description) {
-        CdlParse::report_warning(interp, diag_target + name, "A target should have only one description.");
+       CdlParse::report_warning(interp, diag_target + name, "A target should have only one description.");
     } else {
-        target->description = argv[1];
+       target->description = argv[1];
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -531,32 +531,32 @@ CdlDbParser::target_alias(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid aliases
     // The alias command should be used only once
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "The alias command should be followed by a list of known aliases");
+       CdlParse::report_error(interp, diag_target + name, "The alias command should be followed by a list of known aliases");
     } else if (0 < target->aliases.size()) {
-        CdlParse::report_warning(interp, diag_target + name, "There should be only one list of aliases.");
+       CdlParse::report_warning(interp, diag_target + name, "There should be only one list of aliases.");
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            if (0 == list_count) {
-                CdlParse::report_error(interp, diag_target + name, "At least one alias should be supplied.");
-            } else {
-                for (int i = 0; i < list_count; i++) {
-                    target->aliases.push_back(list_entries[i]);
-                }
-            }
-            Tcl_Free((char*)list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           if (0 == list_count) {
+               CdlParse::report_error(interp, diag_target + name, "At least one alias should be supplied.");
+           } else {
+               for (int i = 0; i < list_count; i++) {
+                   target->aliases.push_back(list_entries[i]);
+               }
+           }
+           Tcl_Free((char*)list_entries);
+       }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -573,31 +573,31 @@ CdlDbParser::target_packages(CdlInterpreter interp, int argc, const char* argv[]
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid packages.
     // The packages command should be used only once
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "`packages' should be followed by a list of known packages.");
+       CdlParse::report_error(interp, diag_target + name, "`packages' should be followed by a list of known packages.");
     } else if (0 < target->packages.size()) {
-        CdlParse::report_warning(interp, diag_target + name, "There should be only one list of packages.");
+       CdlParse::report_warning(interp, diag_target + name, "There should be only one list of packages.");
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            // Allow for a dummy target spec, just in case it proves useful.
-            if (0 != list_count) {
-                for (int i = 0; i < list_count; i++) {
-                    target->packages.push_back(list_entries[i]);
-                }
-            }
-            Tcl_Free((char*)list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           // Allow for a dummy target spec, just in case it proves useful.
+           if (0 != list_count) {
+               for (int i = 0; i < list_count; i++) {
+                   target->packages.push_back(list_entries[i]);
+               }
+           }
+           Tcl_Free((char*)list_entries);
+       }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -614,30 +614,30 @@ CdlDbParser::target_enable(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid flags.
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "`enable' should be followed by a list of CDL options.");
+       CdlParse::report_error(interp, diag_target + name, "`enable' should be followed by a list of CDL options.");
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            for (int i = 0; i < list_count; i++) {
-                target->enable.push_back(list_entries[i]);
-            }
-            Tcl_Free((char *) list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           for (int i = 0; i < list_count; i++) {
+               target->enable.push_back(list_entries[i]);
+           }
+           Tcl_Free((char *) list_entries);
+       }
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
 
-                           
+
 // Syntax: disable { opt1 opt2 ... }
 // For example: disable { CYGPKG_HAL_ARM_CL7xxx_7111 }
 int
@@ -650,23 +650,23 @@ CdlDbParser::target_disable(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid flags.
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "`disable' should be followed by a list of CDL options.");
+       CdlParse::report_error(interp, diag_target + name, "`disable' should be followed by a list of CDL options.");
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            for (int i = 0; i < list_count; i++) {
-                target->disable.push_back(list_entries[i]);
-            }
-            Tcl_Free((char *) list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           for (int i = 0; i < list_count; i++) {
+               target->disable.push_back(list_entries[i]);
+           }
+           Tcl_Free((char *) list_entries);
+       }
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
@@ -685,13 +685,13 @@ CdlDbParser::target_set_value(CdlInterpreter interp, int argc, const char* argv[
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid flags.
     if (3 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "`set_value' should be followed by an option name and its value.");
+       CdlParse::report_error(interp, diag_target + name, "`set_value' should be followed by an option name and its value.");
     } else {
-        target->set_values.push_back(std::make_pair(std::string(argv[1]), std::string(argv[2])));
+       target->set_values.push_back(std::make_pair(std::string(argv[1]), std::string(argv[2])));
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
@@ -701,7 +701,7 @@ CdlDbParser::target_set_value(CdlInterpreter interp, int argc, const char* argv[
 //}}}
 
 //}}}
-//{{{  CdlPackagesDatabase:: creation                           
+//{{{  CdlPackagesDatabase:: creation
 
 // ----------------------------------------------------------------------------
 // The exported interface is make(). The hard work is done inside the
@@ -715,22 +715,22 @@ CdlPackagesDatabaseBody::make(std::string repo, CdlDiagnosticFnPtr error_fn, Cdl
     // Where is the component repository? The location may come from the
     // parent or from an environment variable ECOS_REPOSITORY
     if ("" == repo) {
-        char *env = getenv("ECOS_REPOSITORY");
-        if (0 == env) {
-            throw CdlInputOutputException(std::string("No component repository specified and no ") +
-                                          std::string("ECOS_REPOSITORY environment variable"));
-        } else {
-            repo = env;
-        }
+       char *env = getenv("ECOS_REPOSITORY");
+       if (0 == env) {
+           throw CdlInputOutputException(std::string("No component repository specified and no ") +
+                                         std::string("ECOS_REPOSITORY environment variable"));
+       } else {
+           repo = env;
+       }
     }
 
     // Replace any backslashes in the repository with forward slashes.
     // The latter are used throughout the library
     // NOTE: this is not i18n-friendly.
     for (unsigned int i = 0; i < repo.size(); i++) {
-        if ('\\' == repo[i]) {
-            repo[i] = '/';
-        }
+       if ('\\' == repo[i]) {
+           repo[i] = '/';
+       }
     }
     CdlPackagesDatabase result = new CdlPackagesDatabaseBody(repo, error_fn, warn_fn);
     CYG_REPORT_RETVAL(result);
@@ -748,7 +748,7 @@ CdlPackagesDatabaseBody::CdlPackagesDatabaseBody(std::string repo, CdlDiagnostic
     // so make sure that the database is valid first.
     component_repository                = repo;
     cdlpackagesdatabasebody_cookie      = CdlPackagesDatabaseBody_Magic;
-    
+
     // We want to read in the entire packages file. Portability problems
     // can be largely eliminated by using a Tcl interpreter for this, but
     // under Windows there is a problem if the pathname is a cygwin one.
@@ -767,104 +767,104 @@ CdlPackagesDatabaseBody::CdlPackagesDatabaseBody(std::string repo, CdlDiagnostic
     CdlInterpreter interp = CdlInterpreterBody::make();
 
     try {
-        
-        CdlInterpreterBody::ContextSupport context(interp, database_name);
-        CdlInterpreterCommandEntry commands[] =
-        {
-            CdlInterpreterCommandEntry("package",  &CdlDbParser::new_package  ),
-            CdlInterpreterCommandEntry("target",   &CdlDbParser::new_target   ),
-            CdlInterpreterCommandEntry("",         0                          )
-        };
-        CdlInterpreterBody::CommandSupport cmds(interp, commands);
-        CdlInterpreterBody::DiagSupport diag(interp, error_fn, warn_fn);
-        CdlInterpreterBody::AssocSupport assoc(interp, dbparser_database_key, static_cast<ClientData>(this));
-        CdlInterpreterBody::VariableSupport var(interp, dbparser_component_repository, repo);
-        interp->add_command("unknown", &CdlParse::unknown_command);
-        CdlParse::clear_error_count(interp);
-
-        // Ignore errors at this stage, instead check error count at the end.
-        (void) interp->eval_file(component_repository + "/" + database_name);
-    
-        // Now start looking for templates. These should reside in the
-        // templates subdirectory of the component repository. Each template
-        // should be in its own directory, and inside each directory should
-        // be versioned template files with a .ect extension.
-        std::string templates_dir = repo + "/" + "templates";
-        std::vector<std::string> subdirs;
-        interp->locate_subdirs(templates_dir, subdirs);
-
-        unsigned int i;
-        for (i = 0; i < subdirs.size(); i++) {
-            // Do not add the template to the known ones until we are sure there is
-            // at least one valid template.
-            std::vector<std::string> files;
-            interp->locate_files(templates_dir + "/" + subdirs[i], files);
-            unsigned int j;
-            for (j = 0; j < files.size(); j++) {
-                if ((4 < files[j].size()) && (".ect" == files[j].substr(files[j].size() - 4))) {
-                    break;
-                }
-            }
-            if (j != files.size()) {
-                this->template_names.push_back(subdirs[i]);
-                for ( ; j < files.size(); j++) {
-                    if ((4 < files[j].size()) && (".ect" == files[j].substr(files[j].size() - 4))) {
-                        this->templates[subdirs[i]].versions.push_back(files[j].substr(0, files[j].size() - 4));
-                    }
-                }
-            }
-        }
-
-        // Consistency checks. All target-specific packages should
-        // have the hardware attribute. Also, all the packages should
-        // exist. Problems only result in warnings and only when
-        // operating in verbose mode, to allow for somewhat
-        // inconsistent repositories e.g. an anoncvs tree.
-        if (CdlPackagesDatabaseBody::verbose_mode) {
-            std::vector<std::string>::const_iterator name_i;
-            std::vector<std::string>::const_iterator name_j;
-            for (name_i = target_names.begin(); name_i != target_names.end(); name_i++) {
-                for (name_j = targets[*name_i].packages.begin(); name_j != targets[*name_i].packages.end(); name_j++) {
-                    if (std::find(package_names.begin(), package_names.end(), *name_j) == package_names.end()) {
-                        CdlParse::report_warning(interp, diag_target + *name_i,
-                                                 std::string("This target refers to an unknown package `") + *name_j + "'.");
-                    }
-                    if (!packages[*name_j].hardware) {
-                        CdlParse::report_warning(interp, diag_target + *name_i,
-                                                 std::string("This target refers to a package `") + *name_j +
-                                                 "' that is not hardware-specific.");
-                    }
-                }
-            }
-        }
-        // Now, were there any errors while reading in the database?
-        // If so it is necessary to throw an exception here, to make sure
-        // that things get cleaned up properly.
-        int error_count = CdlParse::get_error_count(interp);
-        if (0 != error_count) {
-            throw CdlInputOutputException("Invalid package database.");
-        }
+
+       CdlInterpreterBody::ContextSupport context(interp, database_name);
+       CdlInterpreterCommandEntry commands[] =
+       {
+           CdlInterpreterCommandEntry("package",  &CdlDbParser::new_package  ),
+           CdlInterpreterCommandEntry("target",   &CdlDbParser::new_target   ),
+           CdlInterpreterCommandEntry("",         0                          )
+       };
+       CdlInterpreterBody::CommandSupport cmds(interp, commands);
+       CdlInterpreterBody::DiagSupport diag(interp, error_fn, warn_fn);
+       CdlInterpreterBody::AssocSupport assoc(interp, dbparser_database_key, static_cast<ClientData>(this));
+       CdlInterpreterBody::VariableSupport var(interp, dbparser_component_repository, repo);
+       interp->add_command("unknown", &CdlParse::unknown_command);
+       CdlParse::clear_error_count(interp);
+
+       // Ignore errors at this stage, instead check error count at the end.
+       (void) interp->eval_file(component_repository + "/" + database_name);
+
+       // Now start looking for templates. These should reside in the
+       // templates subdirectory of the component repository. Each template
+       // should be in its own directory, and inside each directory should
+       // be versioned template files with a .ect extension.
+       std::string templates_dir = repo + "/" + "templates";
+       std::vector<std::string> subdirs;
+       interp->locate_subdirs(templates_dir, subdirs);
+
+       unsigned int i;
+       for (i = 0; i < subdirs.size(); i++) {
+           // Do not add the template to the known ones until we are sure there is
+           // at least one valid template.
+           std::vector<std::string> files;
+           interp->locate_files(templates_dir + "/" + subdirs[i], files);
+           unsigned int j;
+           for (j = 0; j < files.size(); j++) {
+               if ((4 < files[j].size()) && (".ect" == files[j].substr(files[j].size() - 4))) {
+                   break;
+               }
+           }
+           if (j != files.size()) {
+               this->template_names.push_back(subdirs[i]);
+               for ( ; j < files.size(); j++) {
+                   if ((4 < files[j].size()) && (".ect" == files[j].substr(files[j].size() - 4))) {
+                       this->templates[subdirs[i]].versions.push_back(files[j].substr(0, files[j].size() - 4));
+                   }
+               }
+           }
+       }
+
+       // Consistency checks. All target-specific packages should
+       // have the hardware attribute. Also, all the packages should
+       // exist. Problems only result in warnings and only when
+       // operating in verbose mode, to allow for somewhat
+       // inconsistent repositories e.g. an anoncvs tree.
+       if (CdlPackagesDatabaseBody::verbose_mode) {
+           std::vector<std::string>::const_iterator name_i;
+           std::vector<std::string>::const_iterator name_j;
+           for (name_i = target_names.begin(); name_i != target_names.end(); name_i++) {
+               for (name_j = targets[*name_i].packages.begin(); name_j != targets[*name_i].packages.end(); name_j++) {
+                   if (std::find(package_names.begin(), package_names.end(), *name_j) == package_names.end()) {
+                       CdlParse::report_warning(interp, diag_target + *name_i,
+                                                std::string("This target refers to an unknown package `") + *name_j + "'.");
+                   }
+                   if (!packages[*name_j].hardware) {
+                       CdlParse::report_warning(interp, diag_target + *name_i,
+                                                std::string("This target refers to a package `") + *name_j +
+                                                "' that is not hardware-specific.");
+                   }
+               }
+           }
+       }
+       // Now, were there any errors while reading in the database?
+       // If so it is necessary to throw an exception here, to make sure
+       // that things get cleaned up properly.
+       int error_count = CdlParse::get_error_count(interp);
+       if (0 != error_count) {
+           throw CdlInputOutputException("Invalid package database.");
+       }
     } catch(...) {
-        // Something has gone wrong. Clear out all of the data accumulated so far, as well
-        // as the interpreter.
-        delete interp;
-        package_names.clear();
-        target_names.clear();
-        template_names.clear();
-        packages.clear();
-        targets.clear();
-        templates.clear();
-        throw;
+       // Something has gone wrong. Clear out all of the data accumulated so far, as well
+       // as the interpreter.
+       delete interp;
+       package_names.clear();
+       target_names.clear();
+       template_names.clear();
+       packages.clear();
+       targets.clear();
+       templates.clear();
+       throw;
     }
 
     delete interp;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: destructor                         
+//{{{  CdlPackagesDatabase:: destructor
 
 // ----------------------------------------------------------------------------
 CdlPackagesDatabaseBody::~CdlPackagesDatabaseBody()
@@ -883,12 +883,12 @@ CdlPackagesDatabaseBody::~CdlPackagesDatabaseBody()
     templates.clear();
 
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: check_this()                       
+//{{{  CdlPackagesDatabase:: check_this()
 
 // ----------------------------------------------------------------------------
 
@@ -896,7 +896,7 @@ bool
 CdlPackagesDatabaseBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlPackagesDatabaseBody_Magic != cdlpackagesdatabasebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
@@ -904,68 +904,68 @@ CdlPackagesDatabaseBody::check_this(cyg_assert_class_zeal zeal) const
       case cyg_system_test :
       case cyg_extreme :
       {
-          std::vector<std::string>::const_iterator              names_i;
-          std::map<std::string,package_data>::const_iterator    pkgs_i;
-          
-          // Every entry in the names vector should have an entry in the packages vector.
-          for (names_i = package_names.begin(); names_i != package_names.end(); names_i++) {
-              if (packages.find(*names_i) == packages.end()) {
-                  return false;
-              }
-          }
-          // The inverse should be true as well
-          for (pkgs_i = packages.begin(); pkgs_i != packages.end(); pkgs_i++) {
-              if (std::find(package_names.begin(), package_names.end(), pkgs_i->first) == package_names.end()) {
-                  return false;
-              }
-          }
-          
-          // Repeat for targets.
-          std::map<std::string,target_data>::const_iterator     targets_i;
-          for (names_i = target_names.begin(); names_i != target_names.end(); names_i++) {
-              if (targets.find(*names_i) == targets.end()) {
-                  return false;
-              }
-          }
-          for (targets_i = targets.begin(); targets_i != targets.end(); targets_i++) {
-              if (std::find(target_names.begin(), target_names.end(), targets_i->first) == target_names.end()) {
-                  return false;
-              }
-          }
-
-          // And for templates
-          std::map<std::string,template_data>::const_iterator    templates_i;
-          for (names_i = template_names.begin(); names_i != template_names.end(); names_i++) {
-              if (templates.find(*names_i) == templates.end()) {
-                  return false;
-              }
-          }
-          // The inverse should be true as well
-          for (templates_i = templates.begin(); templates_i != templates.end(); templates_i++) {
-              if (std::find(template_names.begin(), template_names.end(), templates_i->first) == template_names.end()) {
-                  return false;
-              }
-          }
-          
-          // Possibly the package directories should be validated as
-          // well, not to mention the various version subdirectories,
-          // but doing file I/O inside an assertion is excessive.
+         std::vector<std::string>::const_iterator              names_i;
+         std::map<std::string,package_data>::const_iterator    pkgs_i;
+
+         // Every entry in the names vector should have an entry in the packages vector.
+         for (names_i = package_names.begin(); names_i != package_names.end(); names_i++) {
+             if (packages.find(*names_i) == packages.end()) {
+                 return false;
+             }
+         }
+         // The inverse should be true as well
+         for (pkgs_i = packages.begin(); pkgs_i != packages.end(); pkgs_i++) {
+             if (std::find(package_names.begin(), package_names.end(), pkgs_i->first) == package_names.end()) {
+                 return false;
+             }
+         }
+
+         // Repeat for targets.
+         std::map<std::string,target_data>::const_iterator     targets_i;
+         for (names_i = target_names.begin(); names_i != target_names.end(); names_i++) {
+             if (targets.find(*names_i) == targets.end()) {
+                 return false;
+             }
+         }
+         for (targets_i = targets.begin(); targets_i != targets.end(); targets_i++) {
+             if (std::find(target_names.begin(), target_names.end(), targets_i->first) == target_names.end()) {
+                 return false;
+             }
+         }
+
+         // And for templates
+         std::map<std::string,template_data>::const_iterator    templates_i;
+         for (names_i = template_names.begin(); names_i != template_names.end(); names_i++) {
+             if (templates.find(*names_i) == templates.end()) {
+                 return false;
+             }
+         }
+         // The inverse should be true as well
+         for (templates_i = templates.begin(); templates_i != templates.end(); templates_i++) {
+             if (std::find(template_names.begin(), template_names.end(), templates_i->first) == template_names.end()) {
+                 return false;
+             }
+         }
+
+         // Possibly the package directories should be validated as
+         // well, not to mention the various version subdirectories,
+         // but doing file I/O inside an assertion is excessive.
       }
       case cyg_thorough :
       case cyg_quick:
-          if ("" == component_repository) {
-              return false;
-          }
+         if ("" == component_repository) {
+             return false;
+         }
       case cyg_trivial:
       case cyg_none :
-        break;
+       break;
     }
 
     return true;
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: misc                               
+//{{{  CdlPackagesDatabase:: misc
 
 // ----------------------------------------------------------------------------
 
@@ -987,12 +987,12 @@ CdlPackagesDatabaseBody::set_verbose(bool new_mode)
     CYG_REPORT_FUNCARG1XV(new_mode);
 
     verbose_mode = new_mode;
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: get package information            
+//{{{  CdlPackagesDatabase:: get package information
 
 // ----------------------------------------------------------------------------
 
@@ -1016,7 +1016,7 @@ CdlPackagesDatabaseBody::is_known_package(std::string name) const
 
     bool result = false;
     if (std::find(package_names.begin(), package_names.end(), name) != package_names.end()) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1032,10 +1032,10 @@ CdlPackagesDatabaseBody::get_package_description(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.description;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.description;
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_description()");
     static std::string dummy = "";
     return dummy;
@@ -1050,10 +1050,10 @@ CdlPackagesDatabaseBody::get_package_aliases(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.aliases;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.aliases;
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_aliases()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1068,10 +1068,10 @@ CdlPackagesDatabaseBody::get_package_versions(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.versions;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.versions;
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_versions()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1086,10 +1086,10 @@ CdlPackagesDatabaseBody::get_package_directory(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.directory;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.directory;
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_directory()");
     static std::string dummy = "";
     return dummy;
@@ -1104,10 +1104,10 @@ CdlPackagesDatabaseBody::get_package_script(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.script;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.script;
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_script()");
     static std::string dummy = "";
     return dummy;
@@ -1122,16 +1122,16 @@ CdlPackagesDatabaseBody::is_hardware_package(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.hardware;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.hardware;
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::is_hardware_package()");
     return false;
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: get target information             
+//{{{  CdlPackagesDatabase:: get target information
 
 // ----------------------------------------------------------------------------
 
@@ -1154,7 +1154,7 @@ CdlPackagesDatabaseBody::is_known_target(std::string name) const
 
     bool result = false;
     if (std::find(target_names.begin(), target_names.end(), name) != target_names.end()) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1169,10 +1169,10 @@ CdlPackagesDatabaseBody::get_target_description(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.description;
+       CYG_REPORT_RETURN();
+       return target_i->second.description;
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_description()");
     static std::string dummy = "";
     return dummy;
@@ -1186,10 +1186,10 @@ CdlPackagesDatabaseBody::get_target_aliases(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.aliases;
+       CYG_REPORT_RETURN();
+       return target_i->second.aliases;
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_aliases()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1203,10 +1203,10 @@ CdlPackagesDatabaseBody::get_target_packages(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.packages;
+       CYG_REPORT_RETURN();
+       return target_i->second.packages;
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_packages()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1220,10 +1220,10 @@ CdlPackagesDatabaseBody::get_target_enables(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.enable;
+       CYG_REPORT_RETURN();
+       return target_i->second.enable;
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_enables()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1237,10 +1237,10 @@ CdlPackagesDatabaseBody::get_target_disables(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.disable;
+       CYG_REPORT_RETURN();
+       return target_i->second.disable;
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_disables()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1254,17 +1254,17 @@ CdlPackagesDatabaseBody::get_target_set_values(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.set_values;
+       CYG_REPORT_RETURN();
+       return target_i->second.set_values;
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_values()");
     static std::vector<std::pair<std::string, std::string> > dummy;
     return dummy;
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: get template information           
+//{{{  CdlPackagesDatabase:: get template information
 
 // ----------------------------------------------------------------------------
 // Templates are different from packages and targets. The ecos.db file
@@ -1292,7 +1292,7 @@ CdlPackagesDatabaseBody::is_known_template(std::string name) const
 
     bool result = false;
     if (std::find(template_names.begin(), template_names.end(), name) != template_names.end()) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1308,10 +1308,10 @@ CdlPackagesDatabaseBody::get_template_versions(std::string template_name) const
 
     std::map<std::string,template_data>::const_iterator template_i = templates.find(template_name);
     if (template_i != templates.end()) {
-        CYG_REPORT_RETURN();
-        return template_i->second.versions;
+       CYG_REPORT_RETURN();
+       return template_i->second.versions;
     }
-    
+
     CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_versions()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1330,21 +1330,21 @@ CdlPackagesDatabaseBody::get_template_filename(std::string template_name, std::s
     // version should be used.
     std::map<std::string,template_data>::const_iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
-        CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_filename");
-        CYG_REPORT_RETURN();
-        return "";
+       CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_filename");
+       CYG_REPORT_RETURN();
+       return "";
     }
     if ("" == version_name) {
-        CYG_ASSERTC(0 != template_i->second.versions.size());
-        version_name = template_i->second.versions[0];
+       CYG_ASSERTC(0 != template_i->second.versions.size());
+       version_name = template_i->second.versions[0];
     } else {
-        std::vector<std::string>::const_iterator vsn_i = std::find(template_i->second.versions.begin(),
-                                                                   template_i->second.versions.end(), version_name);
-        if (vsn_i == template_i->second.versions.end()) {
-            CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_template_filename");
-            CYG_REPORT_RETURN();
-            return "";
-        }
+       std::vector<std::string>::const_iterator vsn_i = std::find(template_i->second.versions.begin(),
+                                                                  template_i->second.versions.end(), version_name);
+       if (vsn_i == template_i->second.versions.end()) {
+           CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_template_filename");
+           CYG_REPORT_RETURN();
+           return "";
+       }
     }
 
     std::string result = component_repository + "/templates/" + template_name + "/" + version_name + ".ect";
@@ -1367,23 +1367,23 @@ CdlPackagesDatabaseBody::get_template_description(std::string template_name, std
     // Is this a known template?
     std::map<std::string, struct template_data>::iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
-        CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_description");
-        CYG_REPORT_RETURN();
-        return "";
+       CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_description");
+       CYG_REPORT_RETURN();
+       return "";
     }
 
     // Is it a known version of the template?
     if ("" == version_name) {
-        CYG_ASSERTC(0 != template_i->second.versions.size());
-        version_name = template_i->second.versions[0];
+       CYG_ASSERTC(0 != template_i->second.versions.size());
+       version_name = template_i->second.versions[0];
     } else {
-        if (std::find(template_i->second.versions.begin(), template_i->second.versions.end(), version_name) ==
-            template_i->second.versions.end()) {
+       if (std::find(template_i->second.versions.begin(), template_i->second.versions.end(), version_name) ==
+           template_i->second.versions.end()) {
 
-            CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_template_description");
-            CYG_REPORT_RETURN();
-            return "";
-        }
+           CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_template_description");
+           CYG_REPORT_RETURN();
+           return "";
+       }
     }
 
     // We have a valid template and version. Has the version file in
@@ -1391,17 +1391,17 @@ CdlPackagesDatabaseBody::get_template_description(std::string template_name, std
     std::map<std::string, struct template_version_data>::iterator version_i;
     version_i = template_i->second.version_details.find(version_name);
     if (version_i != template_i->second.version_details.end()) {
-        CYG_REPORT_RETURN();
-        return version_i->second.description;
+       CYG_REPORT_RETURN();
+       return version_i->second.description;
     }
-    
+
     std::string filename = this->get_template_filename(template_name, version_name);
     if ("" == filename) {
-        CYG_REPORT_RETURN();
-        return "";
-    } 
+       CYG_REPORT_RETURN();
+       return "";
+    }
     extract_template_details(filename, template_i->second.version_details[version_name].description,
-                             template_i->second.version_details[version_name].packages);
+                            template_i->second.version_details[version_name].packages);
     CYG_REPORT_RETURN();
     return template_i->second.version_details[version_name].description;
 }
@@ -1417,27 +1417,27 @@ CdlPackagesDatabaseBody::get_template_packages(std::string template_name, std::s
     CYG_PRECONDITION_THISC();
 
     static std::vector<std::string> dummy;
-    
+
     // Is this a known template?
     std::map<std::string, struct template_data>::iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
-        CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_packages");
-        CYG_REPORT_RETURN();
-        return dummy;
+       CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_packages");
+       CYG_REPORT_RETURN();
+       return dummy;
     }
 
     // Is it a known version of the template?
     if ("" == version_name) {
-        CYG_ASSERTC(0 != template_i->second.versions.size());
-        version_name = template_i->second.versions[0];
+       CYG_ASSERTC(0 != template_i->second.versions.size());
+       version_name = template_i->second.versions[0];
     } else {
-        if (std::find(template_i->second.versions.begin(), template_i->second.versions.end(), version_name) ==
-            template_i->second.versions.end()) {
+       if (std::find(template_i->second.versions.begin(), template_i->second.versions.end(), version_name) ==
+           template_i->second.versions.end()) {
 
-            CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_packages");
-            CYG_REPORT_RETURN();
-            return dummy;
-        }
+           CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_packages");
+           CYG_REPORT_RETURN();
+           return dummy;
+       }
     }
 
     // We have a valid template and version. Has the version file in
@@ -1445,17 +1445,17 @@ CdlPackagesDatabaseBody::get_template_packages(std::string template_name, std::s
     std::map<std::string, struct template_version_data>::iterator version_i;
     version_i = template_i->second.version_details.find(version_name);
     if (version_i != template_i->second.version_details.end()) {
-        CYG_REPORT_RETURN();
-        return version_i->second.packages;
+       CYG_REPORT_RETURN();
+       return version_i->second.packages;
     }
-    
+
     std::string filename = this->get_template_filename(template_name, version_name);
     if ("" == filename) {
-        CYG_REPORT_RETURN();
-        return dummy;
-    } 
+       CYG_REPORT_RETURN();
+       return dummy;
+    }
     extract_template_details(filename, template_i->second.version_details[version_name].description,
-                             template_i->second.version_details[version_name].packages);
+                            template_i->second.version_details[version_name].packages);
     CYG_REPORT_RETURN();
     return template_i->second.version_details[version_name].packages;
 }
@@ -1481,23 +1481,23 @@ extract_cdl_configuration(CdlInterpreter interp, int argc, const char* argv[])
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
-    
+
     // usage: cdl_configuration <name> <body>
     if (3 != argc) {
-        interp->set_result("Invalid cdl_configuration command in template, expecting two arguments");
-        result = TCL_ERROR;
+       interp->set_result("Invalid cdl_configuration command in template, expecting two arguments");
+       result = TCL_ERROR;
     } else {
-        // Ignore the first argument for now.
-        std::string tmp;
-        result = interp->eval(argv[2], tmp);
-        
-        // After processing the cdl_configuration command the description and
-        // package information should be known. There is no point in processing
-        // the rest of the file.
-        if (TCL_OK == result) {
-            interp->set_result("OK");
-            result = TCL_ERROR;
-        }
+       // Ignore the first argument for now.
+       std::string tmp;
+       result = interp->eval(argv[2], tmp);
+
+       // After processing the cdl_configuration command the description and
+       // package information should be known. There is no point in processing
+       // the rest of the file.
+       if (TCL_OK == result) {
+           interp->set_result("OK");
+           result = TCL_ERROR;
+       }
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1512,16 +1512,16 @@ extract_cdl_description(CdlInterpreter interp, int argc, const char* argv[])
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
-    
+
     // usage: package <name>
     if (2 != argc) {
-        interp->set_result("Invalid description command in template, expecting just one argument");
-        result = TCL_ERROR;
+       interp->set_result("Invalid description command in template, expecting just one argument");
+       result = TCL_ERROR;
     } else {
-        ClientData client_data = interp->get_assoc_data(template_description_key);
-        CYG_ASSERTC(0 != client_data);
-        std::string* result_ptr = static_cast<std::string*>(client_data);
-        *result_ptr = argv[1];
+       ClientData client_data = interp->get_assoc_data(template_description_key);
+       CYG_ASSERTC(0 != client_data);
+       std::string* result_ptr = static_cast<std::string*>(client_data);
+       *result_ptr = argv[1];
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1536,16 +1536,16 @@ extract_cdl_package(CdlInterpreter interp, int argc, const char* argv[])
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
-    
+
     // usage: package <name> <version>
     if (2 > argc) {
-        interp->set_result("Invalid package command in template, expecting two arguments");
-        result = TCL_ERROR;
+       interp->set_result("Invalid package command in template, expecting two arguments");
+       result = TCL_ERROR;
     } else {
-        ClientData client_data = interp->get_assoc_data(template_packages_key);
-        CYG_ASSERTC(0 != client_data);
-        std::vector<std::string>* result_ptr = static_cast<std::vector<std::string>*>(client_data);
-        result_ptr->push_back(argv[1]);
+       ClientData client_data = interp->get_assoc_data(template_packages_key);
+       CYG_ASSERTC(0 != client_data);
+       std::vector<std::string>* result_ptr = static_cast<std::vector<std::string>*>(client_data);
+       result_ptr->push_back(argv[1]);
     }
     CYG_REPORT_RETVAL(result);
     return result;
@@ -1554,7 +1554,7 @@ extract_cdl_package(CdlInterpreter interp, int argc, const char* argv[])
 
 void
 CdlPackagesDatabaseBody::extract_template_details(std::string filename, std::string& description,
-                                                      std::vector<std::string>& packages)
+                                                     std::vector<std::string>& packages)
 {
     CYG_REPORT_FUNCNAME("CdlPackagesDatabase::extract_template_description");
 
@@ -1563,19 +1563,19 @@ CdlPackagesDatabaseBody::extract_template_details(std::string filename, std::str
     interp->set_assoc_data(template_packages_key,    static_cast<ClientData>(&packages));
     static CdlInterpreterCommandEntry extract_commands[] =
     {
-        CdlInterpreterCommandEntry("cdl_savefile_version",  &extract_ignore                 ),
-        CdlInterpreterCommandEntry("cdl_savefile_command",  &extract_ignore                 ),
-        CdlInterpreterCommandEntry("cdl_configuration",     &extract_cdl_configuration      ),
-        CdlInterpreterCommandEntry("hardware",              &extract_ignore                 ),
-        CdlInterpreterCommandEntry("template",              &extract_ignore                 ),
-        CdlInterpreterCommandEntry("description",           &extract_cdl_description        ),
-        CdlInterpreterCommandEntry("package",               &extract_cdl_package            ),
-        CdlInterpreterCommandEntry("unknown",               &extract_ignore                 ),
-        CdlInterpreterCommandEntry("",                      0                               )
+       CdlInterpreterCommandEntry("cdl_savefile_version",  &extract_ignore                 ),
+       CdlInterpreterCommandEntry("cdl_savefile_command",  &extract_ignore                 ),
+       CdlInterpreterCommandEntry("cdl_configuration",     &extract_cdl_configuration      ),
+       CdlInterpreterCommandEntry("hardware",              &extract_ignore                 ),
+       CdlInterpreterCommandEntry("template",              &extract_ignore                 ),
+       CdlInterpreterCommandEntry("description",           &extract_cdl_description        ),
+       CdlInterpreterCommandEntry("package",               &extract_cdl_package            ),
+       CdlInterpreterCommandEntry("unknown",               &extract_ignore                 ),
+       CdlInterpreterCommandEntry("",                      0                               )
     };
     std::vector<CdlInterpreterCommandEntry> new_commands;
     for (int i = 0; 0 != extract_commands[i].command; i++) {
-        new_commands.push_back(extract_commands[i]);
+       new_commands.push_back(extract_commands[i]);
     }
     interp->push_commands(new_commands);
 
@@ -1583,20 +1583,20 @@ CdlPackagesDatabaseBody::extract_template_details(std::string filename, std::str
     int result = interp->eval_file(filename, tmp);
     // Special escape mechanism, see extract_cdl_configuration() above
     if ((TCL_ERROR == result) && ("OK" == tmp)) {
-        result = TCL_OK;
+       result = TCL_OK;
     }
-#if 0    
+#if 0
     if (TCL_OK != result) {
-        // No obvious way of recovering just yet
+       // No obvious way of recovering just yet
     }
 #endif
     delete interp;
-                           
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: get_valid_cflags()                 
+//{{{  CdlPackagesDatabase:: get_valid_cflags()
 
 // ----------------------------------------------------------------------------
 
@@ -1607,18 +1607,18 @@ CdlPackagesDatabaseBody::get_valid_cflags()
 
     static std::vector<std::string> result_vec;
     static const char* valid_flags[] = {
-        "ARCHFLAGS",  "CARCHFLAGS",  "CXXARCHFLAGS",  "LDARCHFLAGS",
-        "ERRFLAGS",   "CERRFLAGS",   "CXXERRFLAGS",   "LDERRFLAGS",
-        "LANGFLAGS",  "CLANGFLAGS",  "CXXLANGFLAGS",  "LDLANGFLAGS",
-        "DBGFLAGS",   "CDBGFLAGS",   "CXXDBGFLAGS",   "LDDBGFLAGS",
-        "EXTRAFLAGS", "CEXTRAFLAGS", "CXXEXTRAFLAGS", "LDEXTRAFLAGS",
-        0
+       "ARCHFLAGS",  "CARCHFLAGS",  "CXXARCHFLAGS",  "LDARCHFLAGS",
+       "ERRFLAGS",   "CERRFLAGS",   "CXXERRFLAGS",   "LDERRFLAGS",
+       "LANGFLAGS",  "CLANGFLAGS",  "CXXLANGFLAGS",  "LDLANGFLAGS",
+       "DBGFLAGS",   "CDBGFLAGS",   "CXXDBGFLAGS",   "LDDBGFLAGS",
+       "EXTRAFLAGS", "CEXTRAFLAGS", "CXXEXTRAFLAGS", "LDEXTRAFLAGS",
+       0
     };
 
     if (0 == result_vec.size()) {
-        for (int i = 0; 0 != valid_flags[i]; i++) {
-            result_vec.push_back(valid_flags[i]);
-        }
+       for (int i = 0; 0 != valid_flags[i]; i++) {
+           result_vec.push_back(valid_flags[i]);
+       }
     }
     CYG_REPORT_RETURN();
     return result_vec;
index fcf91c644218be8c9f17348fe1cc91fafe477d2d..b8ab38103f83cc92f504c2abef7c49a3c4e843ea 100644 (file)
@@ -106,8 +106,8 @@ CdlDialogBody::dialogs_are_enabled()
 // There is no data associated with a custom dialog object.
 CdlDialogBody::CdlDialogBody(std::string name_arg)
     : CdlNodeBody(name_arg),
-      CdlParentableBody(),
-      CdlUserVisibleBody()
+      CdlUserVisibleBody(),
+      CdlParentableBody()
 {
     CYG_REPORT_FUNCNAME("CdlDialogBody:: constructor");
     CYG_REPORT_FUNCARG1XV(this);
index 20a7224c30be15b153c4a13aa96a525d6197c92e..8e57e5f41889f298f7e10a7bbd630e73e6c4a4a3 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlInterfaceBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 CdlInterfaceBody::CdlInterfaceBody(std::string name_arg, bool generated_arg)
@@ -90,7 +90,7 @@ CdlInterfaceBody::CdlInterfaceBody(std::string name_arg, bool generated_arg)
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 CdlInterfaceBody::~CdlInterfaceBody()
@@ -101,12 +101,12 @@ CdlInterfaceBody::~CdlInterfaceBody()
 
     cdlinterfacebody_cookie = CdlInterfaceBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_interface()                
+//{{{  parse_interface()
 
 // ----------------------------------------------------------------------------
 // Parsing an interface definition. This is basically the same as parsing
@@ -118,11 +118,11 @@ CdlInterfaceBody::parse_interface(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("CdlInterface::parse_interface", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
-    CdlContainer parent         = interp->get_container();       
+    CdlContainer parent         = interp->get_container();
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(parent);
@@ -138,52 +138,52 @@ CdlInterfaceBody::parse_interface(CdlInterpreter interp, int argc, const char* a
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
-    
-        // Currently there are no command-line options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                   "'\nExpecting name and properties list.");
-            ok = false;
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "", std::string("Invalid property list for cdl_interface `") + argv[1] + "'.");
-            ok = false;
-        } else if (0 != toplevel->lookup(argv[1])) {
-            // FIXME: interfaces can be generated implicitly because of an
-            // unresolved implements property. This code should look for
-            // an existing auto-generated interface object and replace it
-            // if necessary.
-            CdlParse::report_error(interp, "", std::string("Interface `") + argv[1] +
-                                   "' cannot be loaded.\nThe name is already in use.");
-            ok = false;
-        } else {
-            new_interface = new CdlInterfaceBody(argv[1], false);
-            toplevel->add_node(loadable, parent, new_interface);
-        }
-
-        if (!ok) {
-            // Just because this component cannot be created, that is no
-            // reason to abort the whole parsing process.
-            CYG_REPORT_RETVAL(TCL_OK);
-            return TCL_OK;
-        }
+
+       // Currently there are no command-line options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                  "'\nExpecting name and properties list.");
+           ok = false;
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "", std::string("Invalid property list for cdl_interface `") + argv[1] + "'.");
+           ok = false;
+       } else if (0 != toplevel->lookup(argv[1])) {
+           // FIXME: interfaces can be generated implicitly because of an
+           // unresolved implements property. This code should look for
+           // an existing auto-generated interface object and replace it
+           // if necessary.
+           CdlParse::report_error(interp, "", std::string("Interface `") + argv[1] +
+                                  "' cannot be loaded.\nThe name is already in use.");
+           ok = false;
+       } else {
+           new_interface = new CdlInterfaceBody(argv[1], false);
+           toplevel->add_node(loadable, parent, new_interface);
+       }
+
+       if (!ok) {
+           // Just because this component cannot be created, that is no
+           // reason to abort the whole parsing process.
+           CYG_REPORT_RETVAL(TCL_OK);
+           return TCL_OK;
+       }
     } catch(std::bad_alloc e) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch(CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
     if (TCL_OK != result) {
-        CYG_REPORT_RETVAL(result);
-        return result;
+       CYG_REPORT_RETVAL(result);
+       return result;
     }
 
     // At this stage new_interface has been created and added to the
     // hierarchy. The main work now is to add the properties.
-    
+
     // Push the option as the current node early on. This aids
     // diagnostics.
     CdlNode old_node = interp->push_node(new_interface);
@@ -195,120 +195,120 @@ CdlInterfaceBody::parse_interface(CdlInterpreter interp, int argc, const char* a
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry   commands[] =
     {
-        CdlInterpreterCommandEntry("", 0)
+       CdlInterpreterCommandEntry("", 0)
     };
     int i;
-    
+
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
-        for (i = 0; 0 != commands[i].command; i++) {
-            new_commands.push_back(commands[i]);
-        }
-        CdlDefinableBody::add_property_parsers(new_commands);
-        CdlBuildableBody::add_property_parsers(new_commands);
-        CdlParentableBody::add_property_parsers(new_commands);
-        CdlValuableBody::add_property_parsers(new_commands);
-        CdlUserVisibleBody::add_property_parsers(new_commands);
-        CdlNodeBody::add_property_parsers(new_commands);
-    
-        // Now evaluate the body. If an error occurs then typically
-        // this will be reported via CdlParse::report_error(),
-        // but any exceptions will have been intercepted and
-        // turned into a Tcl error.
-        old_commands = interp->push_commands(new_commands);
-        result = interp->eval(argv[2], tcl_result);
-        interp->pop_commands(old_commands);
-        
-        if (TCL_OK == result) {
-            // Even if there were errors, they were not fatal. There may
-            // now be a number of properties for this option, and some
-            // validation should take place. Start with the base classes.
-            new_interface->CdlNodeBody::check_properties(interp);
-            new_interface->CdlUserVisibleBody::check_properties(interp);
-            new_interface->CdlValuableBody::check_properties(interp);
-            new_interface->CdlParentableBody::check_properties(interp);
-            new_interface->CdlBuildableBody::check_properties(interp);
-            new_interface->CdlDefinableBody::check_properties(interp);
-
-            // The flavor "none" makes no sense for interfaces.
-            // The flavor "bool" makes very little sense, but may be useful
-            // in weird cases. Both booldata and data make sense.
-            // The default flavor is "data", because interfaces are
-            // essentially just counters.
-            if (new_interface->has_property(CdlPropertyId_Flavor)) {
-                if (CdlValueFlavor_None == new_interface->get_flavor()) {
-                    CdlParse::report_error(interp, "", "An interface should not have the `none' flavor.");
-                }
-            }
-            
-            // Interfaces cannot be modified directly by the user, so
-            // there is no point in entry_proc, check_proc, dialog or
-            // wizard
-            if (new_interface->has_property(CdlPropertyId_EntryProc)) {
-                CdlParse::report_error(interp, "", "An interface should not have an `entry_proc' property.");
-            }
-            if (new_interface->has_property(CdlPropertyId_CheckProc)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `check_proc' property.");
-            }
-            if (new_interface->has_property(CdlPropertyId_Dialog)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `dialog' property.");
-            }
-            if (new_interface->has_property(CdlPropertyId_Wizard)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `wizard' property.");
-            }
-            // Calculated does not make sense, an interface is implicitly calculated
-            // Nor does default_value.
-            if (new_interface->has_property(CdlPropertyId_Calculated)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `calculated' property.");
-            }
-            if (new_interface->has_property(CdlPropertyId_DefaultValue)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `default_value' property.");
-            }
-            // active_if might make sense, as a way of controlling
-            // whether or not a #define will be generated.
-            
-            // legal_values, requires and implements are all sensible
-            // properties for an interface.
-
-            // group may or may not make sense, allow it for now.
-
-            // For the uservisible base class, allow all of display,
-            // doc and description. At worst these are harmless
-
-            // For the parentable base class, allow parent. Again this
-            // is harmless.
-
-            // Also allow all of the definable and buildable
-            // properties.
-        }
+       for (i = 0; 0 != commands[i].command; i++) {
+           new_commands.push_back(commands[i]);
+       }
+       CdlDefinableBody::add_property_parsers(new_commands);
+       CdlBuildableBody::add_property_parsers(new_commands);
+       CdlParentableBody::add_property_parsers(new_commands);
+       CdlValuableBody::add_property_parsers(new_commands);
+       CdlUserVisibleBody::add_property_parsers(new_commands);
+       CdlNodeBody::add_property_parsers(new_commands);
+
+       // Now evaluate the body. If an error occurs then typically
+       // this will be reported via CdlParse::report_error(),
+       // but any exceptions will have been intercepted and
+       // turned into a Tcl error.
+       old_commands = interp->push_commands(new_commands);
+       result = interp->eval(argv[2], tcl_result);
+       interp->pop_commands(old_commands);
+
+       if (TCL_OK == result) {
+           // Even if there were errors, they were not fatal. There may
+           // now be a number of properties for this option, and some
+           // validation should take place. Start with the base classes.
+           new_interface->CdlNodeBody::check_properties(interp);
+           new_interface->CdlUserVisibleBody::check_properties(interp);
+           new_interface->CdlValuableBody::check_properties(interp);
+           new_interface->CdlParentableBody::check_properties(interp);
+           new_interface->CdlBuildableBody::check_properties(interp);
+           new_interface->CdlDefinableBody::check_properties(interp);
+
+           // The flavor "none" makes no sense for interfaces.
+           // The flavor "bool" makes very little sense, but may be useful
+           // in weird cases. Both booldata and data make sense.
+           // The default flavor is "data", because interfaces are
+           // essentially just counters.
+           if (new_interface->has_property(CdlPropertyId_Flavor)) {
+               if (CdlValueFlavor_None == new_interface->get_flavor()) {
+                   CdlParse::report_error(interp, "", "An interface should not have the `none' flavor.");
+               }
+           }
+
+           // Interfaces cannot be modified directly by the user, so
+           // there is no point in entry_proc, check_proc, dialog or
+           // wizard
+           if (new_interface->has_property(CdlPropertyId_EntryProc)) {
+               CdlParse::report_error(interp, "", "An interface should not have an `entry_proc' property.");
+           }
+           if (new_interface->has_property(CdlPropertyId_CheckProc)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `check_proc' property.");
+           }
+           if (new_interface->has_property(CdlPropertyId_Dialog)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `dialog' property.");
+           }
+           if (new_interface->has_property(CdlPropertyId_Wizard)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `wizard' property.");
+           }
+           // Calculated does not make sense, an interface is implicitly calculated
+           // Nor does default_value.
+           if (new_interface->has_property(CdlPropertyId_Calculated)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `calculated' property.");
+           }
+           if (new_interface->has_property(CdlPropertyId_DefaultValue)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `default_value' property.");
+           }
+           // active_if might make sense, as a way of controlling
+           // whether or not a #define will be generated.
+
+           // legal_values, requires and implements are all sensible
+           // properties for an interface.
+
+           // group may or may not make sense, allow it for now.
+
+           // For the uservisible base class, allow all of display,
+           // doc and description. At worst these are harmless
+
+           // For the parentable base class, allow parent. Again this
+           // is harmless.
+
+           // Also allow all of the definable and buildable
+           // properties.
+       }
     } catch (std::bad_alloc e) {
-        // Errors at this stage should be reported via Tcl, not via C++.
-        // However there is no point in continuing with the parsing operation,
-        // just give up.
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       // Errors at this stage should be reported via Tcl, not via C++.
+       // However there is no point in continuing with the parsing operation,
+       // just give up.
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch (CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     if (0 != old_commands) {
-        interp->pop_commands(old_commands);
+       interp->pop_commands(old_commands);
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Persistence support              
+//{{{  Persistence support
 
 // ----------------------------------------------------------------------------
 
@@ -334,46 +334,46 @@ CdlInterfaceBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation,
     // Interfaces contain only calculated data, so for a minimal save
     // there is no point in storing any of the data.
     if (!minimal || this->has_additional_savefile_information()) {
-        // Start with the UserVisible data, which will result in a suitable set
-        // of comments before the package definition itself.
-        this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
-
-        // Now output the line "cdl_interface <name> {"
-        // The name is guaranteed to be a valid C preprocessor symbol, so it
-        // is not going to need any quoting.
-        std::string data = std::string(indentation, ' ') + "cdl_interface " + get_name() + " {\n";
-
-        // Start with details of everything that implements this interface.
-        if (!minimal) {
-            const std::vector<CdlReferrer>& referrers = this->get_referrers();
-            std::vector<CdlReferrer>::const_iterator ref_i;
-            int real_referrers = 0;
-            for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
-                CdlNode     node = ref_i->get_source();
-                CdlProperty prop = ref_i->get_source_property();
-
-                CdlValuable valuable = dynamic_cast<CdlValuable>(node);
-                if ((0 != valuable) && (CdlPropertyId_Implements == prop->get_property_name())) {
-                    real_referrers++;
-                    data += std::string(indentation, ' ') + "    # Implemented by " + valuable->get_name() + ", " +
-                        (valuable->is_active()  ? "active"  : "inactive") + ", " +
-                        (valuable->is_enabled() ? "enabled" : "disabled") + '\n';
-                }
-            }
-            if (0 == real_referrers) {
-                data += std::string(indentation, ' ') + "    # No options implement this inferface\n";
-            }
-        }
-        interp->write_data(chan, data);
-
-        // Deal with the value
-        this->CdlValuableBody::save(interp, chan, indentation + 4, false, minimal);
-
-        // Close the cdl_interface body. A blank line is added here.
-        data = "};\n\n";
-        interp->write_data(chan, data);
+       // Start with the UserVisible data, which will result in a suitable set
+       // of comments before the package definition itself.
+       this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
+
+       // Now output the line "cdl_interface <name> {"
+       // The name is guaranteed to be a valid C preprocessor symbol, so it
+       // is not going to need any quoting.
+       std::string data = std::string(indentation, ' ') + "cdl_interface " + get_name() + " {\n";
+
+       // Start with details of everything that implements this interface.
+       if (!minimal) {
+           const std::vector<CdlReferrer>& referrers = this->get_referrers();
+           std::vector<CdlReferrer>::const_iterator ref_i;
+           int real_referrers = 0;
+           for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
+               CdlNode     node = ref_i->get_source();
+               CdlProperty prop = ref_i->get_source_property();
+
+               CdlValuable valuable = dynamic_cast<CdlValuable>(node);
+               if ((0 != valuable) && (CdlPropertyId_Implements == prop->get_property_name())) {
+                   real_referrers++;
+                   data += std::string(indentation, ' ') + "    # Implemented by " + valuable->get_name() + ", " +
+                       (valuable->is_active()  ? "active"  : "inactive") + ", " +
+                       (valuable->is_enabled() ? "enabled" : "disabled") + '\n';
+               }
+           }
+           if (0 == real_referrers) {
+               data += std::string(indentation, ' ') + "    # No options implement this inferface\n";
+           }
+       }
+       interp->write_data(chan, data);
+
+       // Deal with the value
+       this->CdlValuableBody::_save(interp, chan, indentation + 4, false, minimal);
+
+       // Close the cdl_interface body. A blank line is added here.
+       data = "};\n\n";
+       interp->write_data(chan, data);
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -390,41 +390,41 @@ CdlInterfaceBody::savefile_interface_command(CdlInterpreter interp, int argc, co
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
-    
+
     try {
-        
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", "Invalid cdl_interface command in savefile, expecting two arguments.");
-        } else {
-
-            CdlNode current_node = toplevel->lookup(argv[1]);
-            if (0 == current_node) {
-                // FIXME: save value in limbo
-                CdlParse::report_error(interp, "",
-                                       std::string("The savefile contains a cdl_interface command for an unknown interface `")
-                                       + argv[1] + "'.");
-            } else {
-                toplevel->get_savefile_subcommands("cdl_interface", subcommands);
-                toplevel_commands = interp->push_commands(subcommands);
-                old_node = interp->push_node(current_node);
-                
-                std::string tcl_result;
-                result = interp->eval(argv[2], tcl_result);
-            
-                interp->pop_commands(toplevel_commands);
-                toplevel_commands = 0;
-                interp->pop_node(old_node);
-                old_node = 0;
-            }
-        }
+
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", "Invalid cdl_interface command in savefile, expecting two arguments.");
+       } else {
+
+           CdlNode current_node = toplevel->lookup(argv[1]);
+           if (0 == current_node) {
+               // FIXME: save value in limbo
+               CdlParse::report_error(interp, "",
+                                      std::string("The savefile contains a cdl_interface command for an unknown interface `")
+                                      + argv[1] + "'.");
+           } else {
+               toplevel->get_savefile_subcommands("cdl_interface", subcommands);
+               toplevel_commands = interp->push_commands(subcommands);
+               old_node = interp->push_node(current_node);
+
+               std::string tcl_result;
+               result = interp->eval(argv[2], tcl_result);
+
+               interp->pop_commands(toplevel_commands);
+               toplevel_commands = 0;
+               interp->pop_node(old_node);
+               old_node = 0;
+           }
+       }
     } catch(...) {
-        if (0 != old_node) {
-            interp->pop_node(old_node);
-        }
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != old_node) {
+           interp->pop_node(old_node);
+       }
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -432,7 +432,7 @@ CdlInterfaceBody::savefile_interface_command(CdlInterpreter interp, int argc, co
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 
@@ -440,19 +440,19 @@ bool
 CdlInterfaceBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlInterfaceBody_Magic != cdlinterfacebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal)        &&
-           CdlUserVisibleBody::check_this(zeal) &&
-           CdlValuableBody::check_this(zeal)    &&
-           CdlParentableBody::check_this(zeal)  &&
-           CdlBuildableBody::check_this(zeal)   &&
-           CdlDefinableBody::check_this(zeal);
+          CdlUserVisibleBody::check_this(zeal) &&
+          CdlValuableBody::check_this(zeal)    &&
+          CdlParentableBody::check_this(zeal)  &&
+          CdlBuildableBody::check_this(zeal)   &&
+          CdlDefinableBody::check_this(zeal);
 }
 
 //}}}
-//{{{  recalculate()                    
+//{{{  recalculate()
 
 // ----------------------------------------------------------------------------
 // There has been a change in the configuration which may affect the value
@@ -472,57 +472,57 @@ CdlInterfaceBody::recalculate(CdlTransaction transaction)
     std::vector<CdlValuable>::const_iterator valuable_i;
     this->get_implementers(implementers);
     for (valuable_i = implementers.begin(); valuable_i != implementers.end(); valuable_i++) {
-        if (transaction->is_active(*valuable_i)) {
-            const CdlValue& implementer_value = transaction->get_whole_value(*valuable_i);
-            if (implementer_value.is_enabled()) {
-                count++;
-            }
-        }
+       if (transaction->is_active(*valuable_i)) {
+           const CdlValue& implementer_value = transaction->get_whole_value(*valuable_i);
+           if (implementer_value.is_enabled()) {
+               count++;
+           }
+       }
     }
 
     // What to do with the count depends on the flavor.
     switch(this->get_flavor()) {
       case CdlValueFlavor_Bool :
-        {
-            bool new_bool = (count > 0);
-            if (new_bool != old_value.is_enabled()) {
-                CdlValue new_value = old_value;
-                new_value.set_enabled(new_bool, CdlValueSource_Default);
-                transaction->set_whole_value(this, old_value, new_value);
-            }
-            break;
-        }
+       {
+           bool new_bool = (count > 0);
+           if (new_bool != old_value.is_enabled()) {
+               CdlValue new_value = old_value;
+               new_value.set_enabled(new_bool, CdlValueSource_Default);
+               transaction->set_whole_value(this, old_value, new_value);
+           }
+           break;
+       }
       case CdlValueFlavor_BoolData:
-        {
-            // The only thing that actually needs checking is the count value.
-            // Iff that has changed then the boolean part may need changing as well.
-            if (count != old_value.get_integer_value()) {
-                CdlValue new_value = old_value;
-                new_value.set_enabled_and_value(count > 0, count, CdlValueSource_Default);
-                transaction->set_whole_value(this, old_value, new_value);
-            }
-
-            break;
-        }
+       {
+           // The only thing that actually needs checking is the count value.
+           // Iff that has changed then the boolean part may need changing as well.
+           if (count != old_value.get_integer_value()) {
+               CdlValue new_value = old_value;
+               new_value.set_enabled_and_value(count > 0, count, CdlValueSource_Default);
+               transaction->set_whole_value(this, old_value, new_value);
+           }
+
+           break;
+       }
       case CdlValueFlavor_Data:
-        {
-            if (count != old_value.get_integer_value()) {
-                CdlValue new_value = old_value;
-                new_value.set_integer_value(count, CdlValueSource_Default);
-                transaction->set_whole_value(this, old_value, new_value);
-            }
-            break;
-        }
-          
+       {
+           if (count != old_value.get_integer_value()) {
+               CdlValue new_value = old_value;
+               new_value.set_integer_value(count, CdlValueSource_Default);
+               transaction->set_whole_value(this, old_value, new_value);
+           }
+           break;
+       }
+
       default:
-        break;
+       break;
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  misc                             
+//{{{  misc
 
 // ----------------------------------------------------------------------------
 
@@ -553,15 +553,15 @@ CdlInterfaceBody::get_implementers(std::vector<CdlValuable>& implementers) const
     const std::vector<CdlReferrer>& referrers = this->get_referrers();
     std::vector<CdlReferrer>::const_iterator ref_i;
     for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
-        CdlNode     node = ref_i->get_source();
-        CdlProperty prop = ref_i->get_source_property();
+       CdlNode     node = ref_i->get_source();
+       CdlProperty prop = ref_i->get_source_property();
 
-        CdlValuable valuable = dynamic_cast<CdlValuable>(node);
-        if ((0 != valuable) && (CdlPropertyId_Implements == prop->get_property_name())) {
-            implementers.push_back(valuable);
-        }
+       CdlValuable valuable = dynamic_cast<CdlValuable>(node);
+       if ((0 != valuable) && (CdlPropertyId_Implements == prop->get_property_name())) {
+           implementers.push_back(valuable);
+       }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
index 28408dd67cc98a097e463ba952572799a5492259..823b4c047c7c25b645a0ea1a346260f586b1527f 100644 (file)
@@ -67,7 +67,7 @@
 // ----------------------------------------------------------------------------
 // This key is used for accessing AssocData in the Tcl interpreters,
 // specifically the CdlInterpreter object.
-char* CdlInterpreterBody::cdlinterpreter_assoc_data_key = "__cdlinterpreter";
+const char* CdlInterpreterBody::cdlinterpreter_assoc_data_key = "__cdlinterpreter";
 
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlInterpreterBody);
 
index e4b07059bf871ba06f25a7fb6b7f0077a14959cb..1d408a8745f0a9776819129f728478508df00e7b 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlOptionBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 CdlOptionBody::CdlOptionBody(std::string name_arg)
@@ -89,7 +89,7 @@ CdlOptionBody::CdlOptionBody(std::string name_arg)
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 
@@ -101,12 +101,12 @@ CdlOptionBody::~CdlOptionBody()
 
     cdloptionbody_cookie = CdlOptionBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_option()                   
+//{{{  parse_option()
 
 // ----------------------------------------------------------------------------
 // Parsing an option definition. This is basically the same as
@@ -119,12 +119,12 @@ CdlOptionBody::parse_option(CdlInterpreter interp, int argc, const char* argv[])
     CYG_REPORT_FUNCNAMETYPE("CdlOptionBody::parse_option", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
-    CdlContainer parent         = interp->get_container();       
+    CdlContainer parent         = interp->get_container();
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL
@@ -141,50 +141,50 @@ CdlOptionBody::parse_option(CdlInterpreter interp, int argc, const char* argv[])
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
-    
-        // Currently there are no command-line options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                         "'\nExpecting name and properties list.");
-            ok = false;
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Invalid property list for cdl_option `") + argv[1] + "'.");
-            ok = false;
-        } else if (0 != toplevel->lookup(argv[1])) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Option `") + argv[1] + "' cannot be loaded.\nThe name is already in use.");
-            ok = false;
-        } else {
-            new_option = new CdlOptionBody(argv[1]);
-            toplevel->add_node(package, parent, new_option);
-        }
-
-        if (!ok) {
-            // Just because this component cannot be created, that is no
-            // reason to abort the whole parsing process.
-            CYG_REPORT_RETVAL(TCL_OK);
-            return TCL_OK;
-        }
+
+       // Currently there are no command-line options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                        "'\nExpecting name and properties list.");
+           ok = false;
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Invalid property list for cdl_option `") + argv[1] + "'.");
+           ok = false;
+       } else if (0 != toplevel->lookup(argv[1])) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Option `") + argv[1] + "' cannot be loaded.\nThe name is already in use.");
+           ok = false;
+       } else {
+           new_option = new CdlOptionBody(argv[1]);
+           toplevel->add_node(package, parent, new_option);
+       }
+
+       if (!ok) {
+           // Just because this component cannot be created, that is no
+           // reason to abort the whole parsing process.
+           CYG_REPORT_RETVAL(TCL_OK);
+           return TCL_OK;
+       }
     } catch(std::bad_alloc e) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch(CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
     if (TCL_OK != result) {
-        CYG_REPORT_RETVAL(result);
-        return result;
+       CYG_REPORT_RETVAL(result);
+       return result;
     }
 
     // At this stage new_option has been created and added to the hierarchy.
     // The main work now is to add the properties.
-    
+
     // Push the option as the current node early on. This aids
     // diagnostics.
     CdlNode old_node = interp->push_node(new_option);
@@ -196,70 +196,70 @@ CdlOptionBody::parse_option(CdlInterpreter interp, int argc, const char* argv[])
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("", 0 )
+       CdlInterpreterCommandEntry("", 0 )
     };
     int i;
-    
+
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
-        for (i = 0; 0 != commands[i].command; i++) {
-            new_commands.push_back(commands[i]);
-        }
-        CdlDefinableBody::add_property_parsers(new_commands);
-        CdlBuildableBody::add_property_parsers(new_commands);
-        CdlParentableBody::add_property_parsers(new_commands);
-        CdlValuableBody::add_property_parsers(new_commands);
-        CdlUserVisibleBody::add_property_parsers(new_commands);
-        CdlNodeBody::add_property_parsers(new_commands);
-    
-        // Now evaluate the body. If an error occurs then typically
-        // this will be reported via CdlParse::report_error(),
-        // but any exceptions will have been intercepted and
-        // turned into a Tcl error.
-        old_commands = interp->push_commands(new_commands);
-        result = interp->eval(argv[2], tcl_result);
-        interp->pop_commands(old_commands);
-        
-        if (TCL_OK == result) {
-            // Even if there were errors, they were not fatal. There may
-            // now be a number of properties for this option, and some
-            // validation should take place. Start with the base classes.
-            new_option->CdlNodeBody::check_properties(interp);
-            new_option->CdlUserVisibleBody::check_properties(interp);
-            new_option->CdlValuableBody::check_properties(interp);
-            new_option->CdlParentableBody::check_properties(interp);
-            new_option->CdlBuildableBody::check_properties(interp);
-            new_option->CdlDefinableBody::check_properties(interp);
-        }
-        
+       for (i = 0; 0 != commands[i].command; i++) {
+           new_commands.push_back(commands[i]);
+       }
+       CdlDefinableBody::add_property_parsers(new_commands);
+       CdlBuildableBody::add_property_parsers(new_commands);
+       CdlParentableBody::add_property_parsers(new_commands);
+       CdlValuableBody::add_property_parsers(new_commands);
+       CdlUserVisibleBody::add_property_parsers(new_commands);
+       CdlNodeBody::add_property_parsers(new_commands);
+
+       // Now evaluate the body. If an error occurs then typically
+       // this will be reported via CdlParse::report_error(),
+       // but any exceptions will have been intercepted and
+       // turned into a Tcl error.
+       old_commands = interp->push_commands(new_commands);
+       result = interp->eval(argv[2], tcl_result);
+       interp->pop_commands(old_commands);
+
+       if (TCL_OK == result) {
+           // Even if there were errors, they were not fatal. There may
+           // now be a number of properties for this option, and some
+           // validation should take place. Start with the base classes.
+           new_option->CdlNodeBody::check_properties(interp);
+           new_option->CdlUserVisibleBody::check_properties(interp);
+           new_option->CdlValuableBody::check_properties(interp);
+           new_option->CdlParentableBody::check_properties(interp);
+           new_option->CdlBuildableBody::check_properties(interp);
+           new_option->CdlDefinableBody::check_properties(interp);
+       }
+
     } catch (std::bad_alloc e) {
-        // Errors at this stage should be reported via Tcl, not via C++.
-        // However there is no point in continuing with the parsing operation,
-        // just give up.
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       // Errors at this stage should be reported via Tcl, not via C++.
+       // However there is no point in continuing with the parsing operation,
+       // just give up.
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch (CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     if (0 != old_commands) {
-        interp->pop_commands(old_commands);
+       interp->pop_commands(old_commands);
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Persistence support              
+//{{{  Persistence support
 
 // ----------------------------------------------------------------------------
 void
@@ -282,28 +282,28 @@ CdlOptionBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bo
     CYG_PRECONDITION_CLASSC(interp);
 
     if (!minimal || this->has_additional_savefile_information() || this->value_savefile_entry_needed()) {
-        // Start with the UserVisible data, which will result in a suitable set
-        // of comments before the package definition itself.
-        this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
-
-        // Now output the line "cdl_option <name> {"
-        // The name is guaranteed to be a valid C preprocessor symbol, so it
-        // is not going to need any quoting.
-        std::string data = std::string(indentation, ' ') + "cdl_option " + get_name() + " {\n";
-        interp->write_data(chan, data);
-
-        // Deal with the value
-        bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
-            !this->has_property(CdlPropertyId_Calculated);
-        this->CdlValuableBody::save(interp, chan, indentation + 4, modifiable, minimal);
-
-        // And with any unrecognised data
-        this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
-    
-        // Close the cdl_option body. A blank line is added here.
-        interp->write_data(chan, "};\n\n");
+       // Start with the UserVisible data, which will result in a suitable set
+       // of comments before the package definition itself.
+       this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
+
+       // Now output the line "cdl_option <name> {"
+       // The name is guaranteed to be a valid C preprocessor symbol, so it
+       // is not going to need any quoting.
+       std::string data = std::string(indentation, ' ') + "cdl_option " + get_name() + " {\n";
+       interp->write_data(chan, data);
+
+       // Deal with the value
+       bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
+           !this->has_property(CdlPropertyId_Calculated);
+       this->CdlValuableBody::_save(interp, chan, indentation + 4, modifiable, minimal);
+
+       // And with any unrecognised data
+       this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
+
+       // Close the cdl_option body. A blank line is added here.
+       interp->write_data(chan, "};\n\n");
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -322,41 +322,41 @@ CdlOptionBody::savefile_option_command(CdlInterpreter interp, int argc, const ch
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
-    
+
     try {
-        
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", "Invalid cdl_option command in savefile, expecting two arguments.");
-        } else {
-
-            CdlNode current_node = config->lookup(argv[1]);
-            if (0 == current_node) {
-                // FIXME: save value in limbo
-                CdlParse::report_error(interp, "",
-                                       std::string("The savefile contains a cdl_option for an unknown option `")
-                                       + argv[1] + "'");
-            } else {
-                config->get_savefile_subcommands("cdl_option", subcommands);
-                toplevel_commands = interp->push_commands(subcommands);
-                old_node = interp->push_node(current_node);
-                
-                std::string tcl_result;
-                result = interp->eval(argv[2], tcl_result);
-            
-                interp->pop_commands(toplevel_commands);
-                toplevel_commands = 0;
-                interp->pop_node(old_node);
-                old_node = 0;
-            }
-        }
+
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", "Invalid cdl_option command in savefile, expecting two arguments.");
+       } else {
+
+           CdlNode current_node = config->lookup(argv[1]);
+           if (0 == current_node) {
+               // FIXME: save value in limbo
+               CdlParse::report_error(interp, "",
+                                      std::string("The savefile contains a cdl_option for an unknown option `")
+                                      + argv[1] + "'");
+           } else {
+               config->get_savefile_subcommands("cdl_option", subcommands);
+               toplevel_commands = interp->push_commands(subcommands);
+               old_node = interp->push_node(current_node);
+
+               std::string tcl_result;
+               result = interp->eval(argv[2], tcl_result);
+
+               interp->pop_commands(toplevel_commands);
+               toplevel_commands = 0;
+               interp->pop_node(old_node);
+               old_node = 0;
+           }
+       }
     } catch(...) {
-        if (0 != old_node) {
-            interp->pop_node(old_node);
-        }
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != old_node) {
+           interp->pop_node(old_node);
+       }
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -364,27 +364,27 @@ CdlOptionBody::savefile_option_command(CdlInterpreter interp, int argc, const ch
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 bool
 CdlOptionBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlOptionBody_Magic != cdloptionbody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
-        
+
     return CdlNodeBody::check_this(zeal)        &&
-           CdlUserVisibleBody::check_this(zeal) &&
-           CdlValuableBody::check_this(zeal)    &&
-           CdlParentableBody::check_this(zeal)  &&
-           CdlBuildableBody::check_this(zeal)   &&
-           CdlDefinableBody::check_this(zeal);
+          CdlUserVisibleBody::check_this(zeal) &&
+          CdlValuableBody::check_this(zeal)    &&
+          CdlParentableBody::check_this(zeal)  &&
+          CdlBuildableBody::check_this(zeal)   &&
+          CdlDefinableBody::check_this(zeal);
 }
 
 //}}}
-//{{{  misc                             
+//{{{  misc
 
 // ----------------------------------------------------------------------------
 
index 91e1879c50ba6ea7e8b11ee5b154e8cbf12a909f..c385f76473d6817cd213fdb080d8b5d019649292 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlPackageBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 // Constructor. The real work is actually done in the base classes
@@ -91,13 +91,13 @@ CdlPackageBody::CdlPackageBody(std::string name_arg, CdlConfiguration toplevel,
     loaded_for_hardware   = false;
     cdlpackagebody_cookie = CdlPackageBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in the base classes.
@@ -112,12 +112,12 @@ CdlPackageBody::~CdlPackageBody()
     loaded_for_hardware   = false;
     cdlpackagebody_cookie = CdlPackageBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_package()                  
+//{{{  parse_package()
 
 // ----------------------------------------------------------------------------
 // Parsing a package definition. This routine gets invoked directly from the
@@ -145,15 +145,15 @@ CdlPackageBody::parse_package(CdlInterpreter interp, int argc, const char* argv[
     CYG_REPORT_FUNCNAMETYPE("CdlPackageBody::parse_package", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
-    CdlContainer parent         = package->get_parent();       
+    CdlContainer parent         = package->get_parent();
     CdlToplevel  toplevel       = interp->get_toplevel();
     std::string filename        = interp->get_context();
+
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL
     CYG_ASSERT_CLASSC(toplevel);
@@ -166,10 +166,10 @@ CdlPackageBody::parse_package(CdlInterpreter interp, int argc, const char* argv[
     // can only exist at the toplevel of the original script courtesy
     // of commands being pushed and popped.
     CYG_ASSERTC(0 == interp->get_node());
-    
+
     // Also, the package should be the current container.
     CYG_ASSERTC(package == dynamic_cast<CdlPackage>(interp->get_container()));
-    
+
     // Declare these outside the scope of the try statement, to allow
     // goto calls for the error handling.
     const std::vector<CdlProperty>& properties = package->get_properties();
@@ -177,133 +177,133 @@ CdlPackageBody::parse_package(CdlInterpreter interp, int argc, const char* argv[
     CdlInterpreterBody::NodeSupport interp_node(interp, package);
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("hardware",           &parse_hardware                    ),
-        CdlInterpreterCommandEntry("license_proc",       &parse_license_proc                ),
-        CdlInterpreterCommandEntry("install_proc",       &parse_install_proc                ),
-        CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
-        CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
-        CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
-        CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
-        CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
-        CdlInterpreterCommandEntry("",                   0                                  )
+       CdlInterpreterCommandEntry("hardware",           &parse_hardware                    ),
+       CdlInterpreterCommandEntry("license_proc",       &parse_license_proc                ),
+       CdlInterpreterCommandEntry("install_proc",       &parse_install_proc                ),
+       CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
+       CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
+       CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
+       CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
+       CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
+       CdlInterpreterCommandEntry("",                   0                                  )
     };
     std::vector<CdlInterpreterCommandEntry>  new_commands;
     int i;
-    
+
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     int result = TCL_OK;
     try {
 
-        // Currently there are no options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                   "'\nExpecting name and properties list.");
-        } else if (argv[1] != loadable->get_name()) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Incorrect package name in CDL script.\n") +
-                                   "This package is `" + loadable->get_name() + "'\n" +
-                                   "The CDL script `" + filename + "' defines a package `" + argv[1] + "'.");
-        } else if (0 != properties.size()) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Duplicate cdl_package commands for package `") + argv[1] + "'.");
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Invalid property list for cdl_package `") + argv[1] + "'.");
-        } else {
-
-            for (i = 0; 0 != commands[i].command; i++) {
-                new_commands.push_back(commands[i]);
-            }
-        
-            CdlBuildLoadableBody::add_property_parsers(new_commands);
-            CdlBuildableBody::add_property_parsers(new_commands);
-            CdlDefineLoadableBody::add_property_parsers(new_commands);
-            CdlDefinableBody::add_property_parsers(new_commands);
-            CdlParentableBody::add_property_parsers(new_commands);
-            CdlValuableBody::add_property_parsers(new_commands);
-            CdlUserVisibleBody::add_property_parsers(new_commands);
-            CdlNodeBody::add_property_parsers(new_commands);
-
-            // Now evaluate the body. If an error occurs then typically
-            // this will be reported via CdlParse::report_error(),
-            // but any exceptions will have been intercepted and
-            // turned into a Tcl error.
-            CdlInterpreterBody::CommandSupport interp_cmds(interp, new_commands);
-            result = interp->eval(argv[2]);
-            if (TCL_OK == result) {
-
-                // Even if there were errors, they were not fatal. There may
-                // now be a number of properties for this package, and some
-                // validation should take place. Start with the base classes.
-                package->CdlNodeBody::check_properties(interp);
-                package->CdlUserVisibleBody::check_properties(interp);
-                package->CdlValuableBody::check_properties(interp);
-                package->CdlParentableBody::check_properties(interp);
-                package->CdlBuildableBody::check_properties(interp);
-                package->CdlBuildLoadableBody::check_properties(interp);
-                package->CdlDefinableBody::check_properties(interp);
-                package->CdlDefineLoadableBody::check_properties(interp);
-
-                // Some of the properties in the base classes are not actually
-                // appropriate. A package is valuable, but it can only be
-                // modified by loading and unloading. Many of the value-related
-                // properties do not make sense.
-                if (package->count_properties(CdlPropertyId_Flavor) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `flavor' property.");
-                }
-                if (package->count_properties(CdlPropertyId_EntryProc) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have an `entry_proc' property.");
-                }
-                if (package->count_properties(CdlPropertyId_CheckProc) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `check_proc' property.");
-                }
-                // BLV: this reasoning is faulty, it should be possible to
-                // control the enabled aspect via an expression. That would
-                // need option processing for the default_value property.
-                if (package->count_properties(CdlPropertyId_DefaultValue) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `default_value' property.");
-                }
-                if (package->count_properties(CdlPropertyId_LegalValues) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `legal_values' property.");
-                }
-                if (package->count_properties(CdlPropertyId_Calculated) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `calculated' property.");
-                }
-                if (package->count_properties(CdlPropertyId_Dialog) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `dialog' property.");
-                }
-
-                // There should be at most one each of license_proc, install_proc, include_dir,
-                // export_to, library, makefile, and wizard.
-                if (package->count_properties(CdlPropertyId_LicenseProc) > 1) {
-                    CdlParse::report_error(interp, "", "A package should have at most one `license_proc' property.");
-                }
-                if (package->count_properties(CdlPropertyId_InstallProc) > 1) {
-                    CdlParse::report_error(interp, "", "A package should have at most one `install_proc' property.");
-                }
-            }
-        }
-        
+       // Currently there are no options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                  "'\nExpecting name and properties list.");
+       } else if (argv[1] != loadable->get_name()) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Incorrect package name in CDL script.\n") +
+                                  "This package is `" + loadable->get_name() + "'\n" +
+                                  "The CDL script `" + filename + "' defines a package `" + argv[1] + "'.");
+       } else if (0 != properties.size()) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Duplicate cdl_package commands for package `") + argv[1] + "'.");
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Invalid property list for cdl_package `") + argv[1] + "'.");
+       } else {
+
+           for (i = 0; 0 != commands[i].command; i++) {
+               new_commands.push_back(commands[i]);
+           }
+
+           CdlBuildLoadableBody::add_property_parsers(new_commands);
+           CdlBuildableBody::add_property_parsers(new_commands);
+           CdlDefineLoadableBody::add_property_parsers(new_commands);
+           CdlDefinableBody::add_property_parsers(new_commands);
+           CdlParentableBody::add_property_parsers(new_commands);
+           CdlValuableBody::add_property_parsers(new_commands);
+           CdlUserVisibleBody::add_property_parsers(new_commands);
+           CdlNodeBody::add_property_parsers(new_commands);
+
+           // Now evaluate the body. If an error occurs then typically
+           // this will be reported via CdlParse::report_error(),
+           // but any exceptions will have been intercepted and
+           // turned into a Tcl error.
+           CdlInterpreterBody::CommandSupport interp_cmds(interp, new_commands);
+           result = interp->eval(argv[2]);
+           if (TCL_OK == result) {
+
+               // Even if there were errors, they were not fatal. There may
+               // now be a number of properties for this package, and some
+               // validation should take place. Start with the base classes.
+               package->CdlNodeBody::check_properties(interp);
+               package->CdlUserVisibleBody::check_properties(interp);
+               package->CdlValuableBody::check_properties(interp);
+               package->CdlParentableBody::check_properties(interp);
+               package->CdlBuildableBody::check_properties(interp);
+               package->CdlBuildLoadableBody::check_properties(interp);
+               package->CdlDefinableBody::check_properties(interp);
+               package->CdlDefineLoadableBody::check_properties(interp);
+
+               // Some of the properties in the base classes are not actually
+               // appropriate. A package is valuable, but it can only be
+               // modified by loading and unloading. Many of the value-related
+               // properties do not make sense.
+               if (package->count_properties(CdlPropertyId_Flavor) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `flavor' property.");
+               }
+               if (package->count_properties(CdlPropertyId_EntryProc) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have an `entry_proc' property.");
+               }
+               if (package->count_properties(CdlPropertyId_CheckProc) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `check_proc' property.");
+               }
+               // BLV: this reasoning is faulty, it should be possible to
+               // control the enabled aspect via an expression. That would
+               // need option processing for the default_value property.
+               if (package->count_properties(CdlPropertyId_DefaultValue) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `default_value' property.");
+               }
+               if (package->count_properties(CdlPropertyId_LegalValues) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `legal_values' property.");
+               }
+               if (package->count_properties(CdlPropertyId_Calculated) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `calculated' property.");
+               }
+               if (package->count_properties(CdlPropertyId_Dialog) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `dialog' property.");
+               }
+
+               // There should be at most one each of license_proc, install_proc, include_dir,
+               // export_to, library, makefile, and wizard.
+               if (package->count_properties(CdlPropertyId_LicenseProc) > 1) {
+                   CdlParse::report_error(interp, "", "A package should have at most one `license_proc' property.");
+               }
+               if (package->count_properties(CdlPropertyId_InstallProc) > 1) {
+                   CdlParse::report_error(interp, "", "A package should have at most one `install_proc' property.");
+               }
+           }
+       }
+
     } catch (std::bad_alloc e) {
-        // Errors at this stage should be reported via Tcl, not via C++
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       // Errors at this stage should be reported via Tcl, not via C++
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch (CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Package properties               
+//{{{  Package properties
 
 // ----------------------------------------------------------------------------
 // Syntax: hardware
@@ -313,7 +313,7 @@ CdlPackageBody::parse_hardware(CdlInterpreter interp, int argc, const char* argv
     CYG_REPORT_FUNCNAMETYPE("parse_hardware", "result %d");
 
     int result = CdlParse::parse_minimal_property(interp, argc, argv, CdlPropertyId_Hardware, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -326,7 +326,7 @@ CdlPackageBody::parse_install_proc(CdlInterpreter interp, int argc, const char*
     CYG_REPORT_FUNCNAMETYPE("parse_install_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_InstallProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -341,7 +341,7 @@ CdlPackageBody::parse_license_proc(CdlInterpreter interp, int argc, const char*
     CYG_REPORT_FUNCNAMETYPE("parse_license_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_LicenseProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -357,7 +357,7 @@ CdlPackageBody::is_hardware_package() const
 
     bool result = false;
     if (has_property(CdlPropertyId_Hardware)) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -373,7 +373,7 @@ CdlPackageBody::has_install_proc() const
 
     bool result = false;
     if (has_property(CdlPropertyId_InstallProc)) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -391,8 +391,8 @@ CdlPackageBody::get_install_proc() const
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_InstallProc);
     if (0 != prop) {
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
-        result = tclprop->get_code();
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
+       result = tclprop->get_code();
     }
 
     CYG_REPORT_RETURN();
@@ -408,7 +408,7 @@ CdlPackageBody::has_license_proc() const
 
     bool result = false;
     if (has_property(CdlPropertyId_LicenseProc)) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -426,8 +426,8 @@ CdlPackageBody::get_license_proc() const
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_LicenseProc);
     if (0 != prop) {
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
-        result = tclprop->get_code();
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
+       result = tclprop->get_code();
     }
 
     CYG_REPORT_RETURN();
@@ -435,7 +435,7 @@ CdlPackageBody::get_license_proc() const
 }
 
 //}}}
-//{{{  Propagation support              
+//{{{  Propagation support
 
 // ----------------------------------------------------------------------------
 void
@@ -445,12 +445,12 @@ CdlPackageBody::update(CdlTransaction transaction, CdlUpdate update)
 
     this->CdlValuableBody::update(transaction, update);
     this->CdlContainerBody::update(transaction, update);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Persistence support              
+//{{{  Persistence support
 
 // ----------------------------------------------------------------------------
 
@@ -475,43 +475,42 @@ CdlPackageBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, b
     // to allow the package to be loaded. It is still necessary to output
     // a cdl_package command if there were additional savefile strings.
     if (!minimal || this->has_additional_savefile_information()) {
-    
-        // Start with the UserVisible data, which will result in a suitable set
-        // of comments before the package definition itself.
-        this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
-
-        // Now output the line "cdl_package <name> {"
-        // The name is guaranteed to be a valid C preprocessor symbol, so it
-        // is not going to need any quoting.
-        std::string data = std::string(indentation, ' ') + "cdl_package " + get_name() + " {\n";
-        std::string indent_string = std::string(indentation + 4, ' ');
-
-        // The value associated with a package cannot be changed simply
-        // by editing the savefile. Add a comment to that effect.
-        if (!minimal) {
-            data += indent_string + "# Packages cannot be added or removed, nor can their version be changed,\n";
-            data += indent_string + "# simply by editing their value. Instead the appropriate configuration\n";
-            data += indent_string + "# should be used to perform these actions.\n\n";
-        }
-
-        // Output the command and the comment.
-        interp->write_data(chan, data);
-    
-        // Deal with the value
-        this->CdlValuableBody::save(interp, chan, indentation + 4, false, minimal);
-
-        // And with any unrecognised data
-        this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
-    
-        // Close the cdl_package body. A blank line is added here.
-        data = "};\n\n";
-        
-        interp->write_data(chan, data);
+       // Start with the UserVisible data, which will result in a suitable set
+       // of comments before the package definition itself.
+       this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
+
+       // Now output the line "cdl_package <name> {"
+       // The name is guaranteed to be a valid C preprocessor symbol, so it
+       // is not going to need any quoting.
+       std::string data = std::string(indentation, ' ') + "cdl_package " + get_name() + " {\n";
+       std::string indent_string = std::string(indentation + 4, ' ');
+
+       // The value associated with a package cannot be changed simply
+       // by editing the savefile. Add a comment to that effect.
+       if (!minimal) {
+           data += indent_string + "# Packages cannot be added or removed, nor can their version be changed,\n";
+           data += indent_string + "# simply by editing their value. Instead the appropriate configuration\n";
+           data += indent_string + "# should be used to perform these actions.\n\n";
+       }
+
+       // Output the command and the comment.
+       interp->write_data(chan, data);
+
+       // Deal with the value
+       this->CdlValuableBody::_save(interp, chan, indentation + 4, false, minimal);
+
+       // And with any unrecognised data
+       this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
+
+       // Close the cdl_package body. A blank line is added here.
+       data = "};\n\n";
+
+       interp->write_data(chan, data);
     }
-    
+
     // Packages are containers, so dump the contents as well.
     this->CdlContainerBody::save(interp, chan, indentation, minimal);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -530,40 +529,38 @@ CdlPackageBody::savefile_package_command(CdlInterpreter interp, int argc, const
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
-    
+
     try {
-        
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", "Invalid cdl_package command in savefile, expecting two arguments.");
-        } else {
-
-            CdlNode current_node = config->lookup(argv[1]);
-            if (0 == current_node) {
-                CdlParse::report_error(interp, "",
-                                       std::string("The savefile contains a cdl_package command for `") +
-                                       argv[1] + "' which has not been loaded.");
-            } else {
-                config->get_savefile_subcommands("cdl_package", subcommands);
-                toplevel_commands = interp->push_commands(subcommands);
-                old_node = interp->push_node(current_node);
-                
-                std::string tcl_result;
-                result = interp->eval(argv[2], tcl_result);
-            
-                interp->pop_commands(toplevel_commands);
-                toplevel_commands = 0;
-                interp->pop_node(old_node);
-                old_node = 0;
-            }
-        }
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", "Invalid cdl_package command in savefile, expecting two arguments.");
+       } else {
+           CdlNode current_node = config->lookup(argv[1]);
+           if (0 == current_node) {
+               CdlParse::report_error(interp, "",
+                                      std::string("The savefile contains a cdl_package command for `") +
+                                      argv[1] + "' which has not been loaded.");
+           } else {
+               config->get_savefile_subcommands("cdl_package", subcommands);
+               toplevel_commands = interp->push_commands(subcommands);
+               old_node = interp->push_node(current_node);
+
+               std::string tcl_result;
+               result = interp->eval(argv[2], tcl_result);
+
+               interp->pop_commands(toplevel_commands);
+               toplevel_commands = 0;
+               interp->pop_node(old_node);
+               old_node = 0;
+           }
+       }
     } catch(...) {
-        if (0 != old_node) {
-            interp->pop_node(old_node);
-        }
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != old_node) {
+           interp->pop_node(old_node);
+       }
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -571,7 +568,7 @@ CdlPackageBody::savefile_package_command(CdlInterpreter interp, int argc, const
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 
@@ -579,24 +576,24 @@ bool
 CdlPackageBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlPackageBody_Magic != cdlpackagebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
+
     return CdlNodeBody::check_this(zeal)                &&
-           CdlContainerBody::check_this(zeal)           &&
-           CdlLoadableBody::check_this(zeal)            &&
-           CdlUserVisibleBody::check_this(zeal)         &&
-           CdlValuableBody::check_this(zeal)            &&
-           CdlParentableBody::check_this(zeal)          &&
-           CdlBuildableBody::check_this(zeal)           &&
-           CdlBuildLoadableBody::check_this(zeal)       &&
-           CdlDefinableBody::check_this(zeal)           &&
-           CdlDefineLoadableBody::check_this(zeal);
+          CdlContainerBody::check_this(zeal)           &&
+          CdlLoadableBody::check_this(zeal)            &&
+          CdlUserVisibleBody::check_this(zeal)         &&
+          CdlValuableBody::check_this(zeal)            &&
+          CdlParentableBody::check_this(zeal)          &&
+          CdlBuildableBody::check_this(zeal)           &&
+          CdlBuildLoadableBody::check_this(zeal)       &&
+          CdlDefinableBody::check_this(zeal)           &&
+          CdlDefineLoadableBody::check_this(zeal);
 }
 
 //}}}
-//{{{  Misc                             
+//{{{  Misc
 
 // ----------------------------------------------------------------------------
 
@@ -623,15 +620,15 @@ CdlPackageBody::get_config_header() const
     CYG_PRECONDITION_CLASSC(this);
 
     std::string result = "";
-#if 0    
+#if 0
     if (has_property(CdlPropertyId_Hardware)) {
-        result = "hardware.h";
+       result = "hardware.h";
     } else {
-        result = CdlDefineLoadableBody::get_config_header();
+       result = CdlDefineLoadableBody::get_config_header();
     }
 #else
     result = CdlDefineLoadableBody::get_config_header();
-#endif  
+#endif
 
     CYG_REPORT_RETURN();
     return result;
@@ -645,7 +642,7 @@ CdlPackageBody::belongs_to_template() const
     CYG_PRECONDITION_THISC();
 
     bool result = loaded_for_template;
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -658,7 +655,7 @@ CdlPackageBody::belongs_to_hardware() const
     CYG_PRECONDITION_THISC();
 
     bool result = loaded_for_hardware;
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
index 2bcceee0eab48ab750ea06b2f97198f7f14525e9..e660ebffdf7e498c603fd42791d7b2feca936270 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                                   
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,43 +8,43 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //
-// Author(s):   bartv
-// Contact(s):  bartv
-// Date:        1999/02/23
-// Version:     0.02
+// Author(s):  bartv
+// Contact(s): bartv
+// Date:       1999/02/23
+// Version:    0.02
 //
 //####DESCRIPTIONEND####
 //============================================================================
 
 //}}}
-//{{{  #include's                               
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include <string.h>
@@ -62,7 +62,7 @@
 
 //}}}
 
-//{{{  Description                              
+//{{{  Description
 
 // ----------------------------------------------------------------------------
 // All CDL data is read via a Tcl interpreter, so the parsing is done by
@@ -74,7 +74,7 @@
 // stays in a consistent state. In particular it is not possible to let
 // arbitrary C++ exceptions to go straight through the Tcl interpreter,
 // this is likely to result in a corrupted interpreter.
-// 
+//
 // Also, it is not a good idea to abort parsing as soon as anything
 // goes wrong. Instead there should be an error handling callback associated
 // with the interpreter, which can be used to report errors. This
@@ -98,7 +98,7 @@
 // will be intercepted by the CdlInterpreter class.
 
 //}}}
-//{{{  Statics                                  
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 // The string "property " is needed in various places. Provide it as a static
 static std::string property_string = "property ";
 
 //}}}
-//{{{  Generic parsing-related utilities        
+//{{{  Generic parsing-related utilities
 
-//{{{  argv manipulation                        
+//{{{  argv manipulation
 
 // ----------------------------------------------------------------------------
 // Some of the properties have aliases in the CDL data, so argv[0] has to be
@@ -118,11 +118,11 @@ std::string
 CdlParse::get_tcl_cmd_name(std::string name)
 {
     std::string result;
-    
+
     if ((name[0] == ':') && (name[1] == ':')) {
-        result = std::string(name, 2, name.size() - 2);
+       result = std::string(name, 2, name.size() - 2);
     } else {
-        result = name;
+       result = name;
     }
     return result;
 }
@@ -137,12 +137,12 @@ CdlParse::concatenate_argv(int argc, const char* argv[], int index)
 
     std::string result = "";
     for ( int i = index ; i < argc; i++) {
-        if (i > index) {
-            result += ' ';
-        }
-        result += std::string(argv[i]);
+       if (i > index) {
+           result += ' ';
+       }
+       result += std::string(argv[i]);
     }
-    
+
     CYG_REPORT_RETURN();
     return result;
 }
@@ -201,168 +201,168 @@ CdlParse::concatenate_argv(int argc, const char* argv[], int index)
 // flags consist of zero or more characters indicating how the option
 // should be interpreted. Valid flags are:
 //
-// f    - this option takes no data, it is just a boolean flag. The
-//        default behaviour assumes name/value pairs.
+// f   - this option takes no data, it is just a boolean flag. The
+//       default behaviour assumes name/value pairs.
 //
-// m    - this option can occur multiple times. The default behaviour
-//        is that each option can only occur once.
+// m   - this option can occur multiple times. The default behaviour
+//       is that each option can only occur once.
 
 // Utility function to get hold of an option name without the colon
 // or terminating flags.
 
 static std::string
-get_option_string(char* name)
+get_option_string(const char* name)
 {
     std::string result = "";
     while ((*name != ':') && (*name != '\0')) {
-        result += *name++;
+       result += *name++;
     }
     return result;
 }
 
 int
-CdlParse::parse_options(CdlInterpreter interp, std::string diag_prefix, char** options,
-                                 int argc, const char* argv[], int index,
-                                 std::vector<std::pair<std::string,std::string> >& result)
+CdlParse::parse_options(CdlInterpreter interp, std::string diag_prefix, const char** options,
+                                int argc, const char* argv[], int index,
+                                std::vector<std::pair<std::string,std::string> >& result)
 {
     CYG_REPORT_FUNCNAMETYPE("CdlParse::parse_options", "final index %d");
     CYG_REPORT_FUNCARG4XV(interp, options, argc, argv);
     CYG_PRECONDITION_CLASSC(interp);
-    CYG_PRECONDITIONC(argc > 0);        // The property name must be present.
+    CYG_PRECONDITIONC(argc > 0);       // The property name must be present.
     // It is possible for some of the arguments to have been processed already.
     CYG_PRECONDITIONC((index > 0) && (index <= argc));
 
     while((index < argc) && ('-' == argv[index][0])) {
 
-        std::string name  = "";
-        std::string value = "";
-
-        // The sequence -- should always terminate option processing.
-        if (0 == strcmp(argv[index], "--")) {
-            index++;
-            break;
-        }
-
-        const char* arg_ptr       = argv[index];
-        // Skip the initial -, and the second one as well if it is present.
-        if ('-' == *++arg_ptr) {
-            arg_ptr++;
-        }
-
-        // Construct the option name. This is the current argument up
-        // to but not including the '=' character or EOD.
-        while (('=' != *arg_ptr) && ('\0' != *arg_ptr)) {
-            name += *arg_ptr++;
-        }
-
-        if ("" == name) {
-            // One of "-", "-=xxx", or "--=x"
-            CdlParse::report_warning(interp, diag_prefix, std::string("Invalid option string `") + argv[index] + "'.");
-        }
-
-        // Do not try to extract the value unless we are sure there
-        // should be one. Instead try to match the option name. The
-        // current value of name should be a unique substring of
-        // one of the known option strings.
-        //
-        // Note that the supplied options descriptor can be NULL,
-        // since most properties do not yet take any options.
-        // In that case opt_index will remain at -1, and we should
-        // get an "invalid option" diagnostic.
-        unsigned int i;
-        int opt_index = -1;
-        if (0 != options) {
-            for (i = 0; 0 != options[i]; i++) {
-                if (0 == strncmp(name.c_str(), options[i], name.size())) {
-                    if (-1 != opt_index) {
-                        CdlParse::report_warning(interp, diag_prefix,
-                                                 std::string("Ambiguous option name `") + name + "'.\n" +
-                                                 "It can match `" + get_option_string(options[opt_index]) + "'\n" +
-                                                 "or `" + get_option_string(options[i]) + "'.");
-                        index++;
-                        break;
-                    } else {
-                        opt_index = i;
-                    }
-                }
-            }
-        }
-        if (-1 == opt_index) {
-            CdlParse::report_warning(interp, diag_prefix, std::string("Invalid option `") + name + "'.");
-            index++;
-            break;
-        }
-
-        // The option has been identified successfully. Extract the flags.
-        bool    flag_flag       = false;
-        bool    multiple_flag   = false;
-        char*   tmp = options[opt_index];
-        while (('\0' != *tmp) && (':' != *tmp)) {
-            tmp++;
-        }
-        if (':' == *tmp) {
-            do {
-                tmp++;
-                if ('f' == *tmp) {
-                    flag_flag = true;
-                } else if ('m' == *tmp) {
-                    multiple_flag = true;
-                } else if ('\0' != *tmp) {
-                    CYG_FAIL("Invalid property option");
-                }
-            } while ('\0' != *tmp);
-        }
-
-        // We now know the full option name. Use it for future diagnostics.
-        name = get_option_string(options[opt_index]);
-
-        // Take care of the value.
-        if (flag_flag) {
-            // There should not be a value. If the current argument is of the
-            // form x=y then this is an error.
-            if ('=' == *arg_ptr) {
-                CdlParse::report_warning(interp, diag_prefix,  std::string("Option `") + name + "' does not take any data.");
-            }
-            // Leave index pointing at the next argument to be processed.
-            index++;
-        } else {
-            if ('=' == *arg_ptr) {
-                value = std::string(++arg_ptr);
-            } else if (++index == argc) {
-                CdlParse::report_warning(interp, diag_prefix,  std::string("Missing data for option `") + name + "'.");
-            } else {
-                value = argv[index];
-            }
-            index++;
-        }
-        // At this stage index points at the next argument to be processed, and should not
-        // be updated again.
-        
-        // Unless the option can occur multiple times, make sure that it is not already
-        // present in the options vector.
-        if (!multiple_flag) {
-            for (i = 0; i < result.size(); i++) {
-                if (name == result[i].first) {
-                    CdlParse::report_warning(interp, diag_prefix, std::string("Option `") + name + "' can only be used once.");
-                    break;
-                }
-            }
-        }
-
-        // The name/value pair is valid, so add it to the result vector.
-        result.push_back(std::make_pair(name, value));
+       std::string name  = "";
+       std::string value = "";
+
+       // The sequence -- should always terminate option processing.
+       if (0 == strcmp(argv[index], "--")) {
+           index++;
+           break;
+       }
+
+       const char* arg_ptr       = argv[index];
+       // Skip the initial -, and the second one as well if it is present.
+       if ('-' == *++arg_ptr) {
+           arg_ptr++;
+       }
+
+       // Construct the option name. This is the current argument up
+       // to but not including the '=' character or EOD.
+       while (('=' != *arg_ptr) && ('\0' != *arg_ptr)) {
+           name += *arg_ptr++;
+       }
+
+       if ("" == name) {
+           // One of "-", "-=xxx", or "--=x"
+           CdlParse::report_warning(interp, diag_prefix, std::string("Invalid option string `") + argv[index] + "'.");
+       }
+
+       // Do not try to extract the value unless we are sure there
+       // should be one. Instead try to match the option name. The
+       // current value of name should be a unique substring of
+       // one of the known option strings.
+       //
+       // Note that the supplied options descriptor can be NULL,
+       // since most properties do not yet take any options.
+       // In that case opt_index will remain at -1, and we should
+       // get an "invalid option" diagnostic.
+       unsigned int i;
+       int opt_index = -1;
+       if (options) {
+           for (i = 0; options[i] != NULL; i++) {
+               if (strncmp(name.c_str(), options[i], name.size()) == 0) {
+                   if (opt_index != -1) {
+                       CdlParse::report_warning(interp, diag_prefix,
+                                                std::string("Ambiguous option name `") + name + "'.\n" +
+                                                "It can match `" + get_option_string(options[opt_index]) + "'\n" +
+                                                "or `" + get_option_string(options[i]) + "'.");
+                       index++;
+                       break;
+                   } else {
+                       opt_index = i;
+                   }
+               }
+           }
+       }
+       if (opt_index == -1) {
+           CdlParse::report_warning(interp, diag_prefix, std::string("Invalid option `") + name + "'.");
+           index++;
+           break;
+       }
+
+       // The option has been identified successfully. Extract the flags.
+       bool    flag_flag       = false;
+       bool    multiple_flag   = false;
+       const char*     tmp = options[opt_index];
+       while (('\0' != *tmp) && (':' != *tmp)) {
+           tmp++;
+       }
+       if (':' == *tmp) {
+           do {
+               tmp++;
+               if ('f' == *tmp) {
+                   flag_flag = true;
+               } else if ('m' == *tmp) {
+                   multiple_flag = true;
+               } else if ('\0' != *tmp) {
+                   CYG_FAIL("Invalid property option");
+               }
+           } while ('\0' != *tmp);
+       }
+
+       // We now know the full option name. Use it for future diagnostics.
+       name = get_option_string(options[opt_index]);
+
+       // Take care of the value.
+       if (flag_flag) {
+           // There should not be a value. If the current argument is of the
+           // form x=y then this is an error.
+           if ('=' == *arg_ptr) {
+               CdlParse::report_warning(interp, diag_prefix,  std::string("Option `") + name + "' does not take any data.");
+           }
+           // Leave index pointing at the next argument to be processed.
+           index++;
+       } else {
+           if ('=' == *arg_ptr) {
+               value = std::string(++arg_ptr);
+           } else if (++index == argc) {
+               CdlParse::report_warning(interp, diag_prefix,  std::string("Missing data for option `") + name + "'.");
+           } else {
+               value = argv[index];
+           }
+           index++;
+       }
+       // At this stage index points at the next argument to be processed, and should not
+       // be updated again.
+
+       // Unless the option can occur multiple times, make sure that it is not already
+       // present in the options vector.
+       if (!multiple_flag) {
+           for (i = 0; i < result.size(); i++) {
+               if (name == result[i].first) {
+                   CdlParse::report_warning(interp, diag_prefix, std::string("Option `") + name + "' can only be used once.");
+                   break;
+               }
+           }
+       }
+
+       // The name/value pair is valid, so add it to the result vector.
+       result.push_back(std::make_pair(name, value));
     }
-    
+
     CYG_REPORT_RETVAL(index);
     return index;
 }
 
 //}}}
-//{{{  Diagnostic construction                  
+//{{{  Diagnostic construction
 
 // Construct a suitable diagnostic for a parsing error. This may occur
 // when reading in a CDL script, a savefile, a database, or anything
-// similar. 
+// similar.
 //
 // A diagnostic should take the following form:
 //
@@ -409,67 +409,67 @@ CdlParse::construct_diagnostic(CdlInterpreter interp, std::string classification
     CYG_REPORT_FUNCNAME("CdlParse::construct_diagnostic");
     CYG_PRECONDITION_CLASSC(interp);
 
-    std::string context      = interp->get_context();
-    CdlNode     current_node = interp->get_node();
+    std::string context             = interp->get_context();
+    CdlNode    current_node = interp->get_node();
 
     std::string result;
     if ("" == context) {
-        result = "<unknown context>";
+       result = "<unknown context>";
     } else {
-        result = context;
+       result = context;
     }
-    if (0 != current_node) {
-        result += ", " + current_node->get_class_name() + " " + current_node->get_name();
+    if (current_node) {
+       result += ", " + current_node->get_class_name() + " " + current_node->get_name();
     }
     if ("" != sub_id) {
-        result += ", " + sub_id;
+       result += ", " + sub_id;
     }
     result += ": " + classification;
-    
+
     // Now it is time to start worrying about layout, indenting
     // subsequent lines, and so on.
-    int index        = result.length();
+    int index       = result.length();
     int message_len  = message.length();
     int message_index;
     bool indent_needed = false;
 
     // Find out how many characters there are in the message up to the first newline
     for (message_index = 0; (message_index < message_len) && ('\n' != message[message_index]); message_index++) {
-        ;
+       ;
     }
 
     // Should the message start on the next line, suitably indented?
     // This depends in part on whether or not there was a classification.
     if ("" == classification) {
-        // The current result ends with a colon and a space.
-        if ((index + message_index) <= 72) {
-            // The first line of the message can still fit. No need to do anything.
-        } else {
-            // Start indenting immediately, do not add anything else to the current line.
-            indent_needed = true;
-        }
+       // The current result ends with a colon and a space.
+       if ((index + message_index) <= 72) {
+           // The first line of the message can still fit. No need to do anything.
+       } else {
+           // Start indenting immediately, do not add anything else to the current line.
+           indent_needed = true;
+       }
     } else {
-        // We may want a comma and a space after the classification
-        if ((index + 2 + message_index) <= 72) {
-            result += ", ";
-        } else {
-            indent_needed = true;
-        }
+       // We may want a comma and a space after the classification
+       if ((index + 2 + message_index) <= 72) {
+           result += ", ";
+       } else {
+           indent_needed = true;
+       }
     }
 
     // Now we can process the message one character at a time, adding
     // newlines and indentation just in time.
     for (message_index = 0; message_index < message_len; message_index++) {
-        if (indent_needed) {
-            result += "\n    ";
-            indent_needed = false;
-        }
-
-        if ('\n' == message[message_index]) {
-            indent_needed = true;
-        } else {
-            result += message[message_index];
-        }
+       if (indent_needed) {
+           result += "\n    ";
+           indent_needed = false;
+       }
+
+       if ('\n' == message[message_index]) {
+           indent_needed = true;
+       } else {
+           result += message[message_index];
+       }
     }
 
     CYG_REPORT_RETURN();
@@ -477,13 +477,13 @@ CdlParse::construct_diagnostic(CdlInterpreter interp, std::string classification
 }
 
 //}}}
-//{{{  Error count tracking                     
+//{{{  Error count tracking
 
 // Keep track of the number of errors that have occurred while doing some
 // parsing. This functionality is not provided directly by the CdlInterpreter
 // class, instead it is implemented using assoc data.
 
-static const char       error_count_key[]       = "CdlErrorCount";
+static const char      error_count_key[]       = "CdlErrorCount";
 
 static void
 error_count_delproc(ClientData data, Tcl_Interp* interp)
@@ -501,9 +501,9 @@ CdlParse::clear_error_count(CdlInterpreter interp)
     CYG_REPORT_FUNCARG1("interp %p", interp);
     CYG_PRECONDITION_CLASSC(interp);
 
-    int*        newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
-    if (0 != newed_ptr) {
-        *newed_ptr = 0;
+    int*       newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
+    if (newed_ptr) {
+       *newed_ptr = 0;
     }
 
     CYG_REPORT_RETURN();
@@ -516,14 +516,14 @@ CdlParse::incr_error_count(CdlInterpreter interp, int how_much)
     CYG_REPORT_FUNCARG2("interp %p, how_much %d", interp, how_much);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION(how_much > 0, "previous errors cannot be undone");
-    
+
     int* newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
     if (0 == newed_ptr) {
-        newed_ptr = new int(how_much);
-        interp->set_assoc_data(error_count_key, static_cast<void*>(newed_ptr), &error_count_delproc);
+       newed_ptr = new int(how_much);
+       interp->set_assoc_data(error_count_key, static_cast<void*>(newed_ptr), &error_count_delproc);
     } else {
-        CYG_ASSERT((*newed_ptr + how_much) > *newed_ptr, "number of parsing errors should not overflow");
-        *newed_ptr += how_much;
+       CYG_ASSERT((*newed_ptr + how_much) > *newed_ptr, "number of parsing errors should not overflow");
+       *newed_ptr += how_much;
     }
 
     CYG_REPORT_RETURN();
@@ -538,8 +538,8 @@ CdlParse::get_error_count(CdlInterpreter interp)
 
     int result = 0;
     int* newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
-    if (0 != newed_ptr) {
-        result = *newed_ptr;
+    if (newed_ptr) {
+       result = *newed_ptr;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -547,7 +547,7 @@ CdlParse::get_error_count(CdlInterpreter interp)
 }
 
 //}}}
-//{{{  Error and warning reporting              
+//{{{  Error and warning reporting
 
 // Report errors and warnings. These will be called during parsing
 // operations, both of CDL and similar data scripts and for savefiles.
@@ -560,7 +560,7 @@ CdlParse::get_error_count(CdlInterpreter interp)
 //     Tcl interpreter
 //     libcdl parsing code
 //     report_error()
-//     
+//
 // If the Tcl script is invalid then parsing errors may get reported
 // at the higher level code as well.
 //
@@ -597,11 +597,11 @@ CdlParse::report_error(CdlInterpreter interp, std::string sub_id, std::string me
     // Now, either invoke the callback if it is provided, or throw the exception.
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
     if (0 == fn) {
-        throw CdlParseException(full_message);
+       throw CdlParseException(full_message);
     } else {
-        (*fn)(full_message);
+       (*fn)(full_message);
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -615,16 +615,16 @@ CdlParse::report_warning(CdlInterpreter interp, std::string sub_id, std::string
     // If there is no warning callback, do nothing. This is really a
     // bug in the calling application.
     CdlDiagnosticFnPtr fn = interp->get_warning_fn_ptr();
-    if (0 != fn) {
-        std::string full_message = construct_diagnostic(interp, "warning", sub_id, message);
-        (*fn)(full_message);
+    if (fn) {
+       std::string full_message = construct_diagnostic(interp, "warning", sub_id, message);
+       fn(full_message);
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  The "unknown" command                    
+//{{{  The "unknown" command
 
 // ----------------------------------------------------------------------------
 // This routine should be installed in interpreters that get used for
@@ -644,14 +644,14 @@ CdlParse::unknown_command(CdlInterpreter interp, int argc, const char* argv[])
 
     report_error(interp, "", std::string("Unknown command `") + argv[1] + "'.");
     CYG_UNUSED_PARAM(int, argc);
-    
+
     return TCL_OK;
 }
 
 //}}}
 
 //}}}
-//{{{  Property-related parser utilities        
+//{{{  Property-related parser utilities
 
 // ----------------------------------------------------------------------------
 // Utilities related to parsing properties, rather than more general parsing.
@@ -663,19 +663,19 @@ CdlParse::report_property_parse_error(CdlInterpreter interp, std::string argv0,
     CYG_REPORT_FUNCNAME("CdlPase::report_property_parse_error");
 
     incr_error_count(interp);
-    
+
     std::string diag = construct_diagnostic(interp, "error",
-                                            std::string("property ") + CdlParse::get_tcl_cmd_name(argv0),
-                                            msg);
+                                           std::string("property ") + CdlParse::get_tcl_cmd_name(argv0),
+                                           msg);
 
     // Now, either invoke the callback if it is provided, or throw the exception.
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
     if (0 == fn) {
-        throw CdlParseException(diag);
+       throw CdlParseException(diag);
     } else {
-        (*fn)(diag);
+       (*fn)(diag);
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -694,13 +694,13 @@ CdlParse::report_property_parse_warning(CdlInterpreter interp, std::string argv0
     CYG_REPORT_FUNCNAME("CdlPase::report_property_parse_warning");
 
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
-    if (0 != fn) {
-        std::string diag = construct_diagnostic(interp, "error",
-                                                std::string("property ") + CdlParse::get_tcl_cmd_name(argv0),
-                                                msg);
-        (*fn)(diag);
+    if (fn) {
+       std::string diag = construct_diagnostic(interp, "error",
+                                               std::string("property ") + CdlParse::get_tcl_cmd_name(argv0),
+                                               msg);
+       fn(diag);
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -713,7 +713,7 @@ CdlParse::report_property_parse_warning(CdlInterpreter interp, CdlProperty prop,
 }
 
 //}}}
-//{{{  Generic property parsers                 
+//{{{  Generic property parsers
 
 // ----------------------------------------------------------------------------
 // Generic parsers
@@ -725,83 +725,78 @@ CdlParse::report_property_parse_warning(CdlInterpreter interp, CdlProperty prop,
 // function that performs a final sanity check before the property gets added
 // to the current entity.
 
-//{{{  parse_minimal_property()         
+//{{{  parse_minimal_property()
 
 // ----------------------------------------------------------------------------
 // A minimal property takes no arguments.
 
 int
 CdlParse::parse_minimal_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                 char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Minimal))
+                                const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Minimal))
 {
     CYG_REPORT_FUNCNAME("parse_minimal_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_Minimal new_property = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        if (data_index < argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string("Unexpected data `") + argv[data_index] + "'.");
-        } else {
-        
-            // The command is valid, turn it into a property.
-            // The property has been parsed successfully. Add it to the current node
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_MinimalBody::make(current_node, name, argc, argv, options);
-            if (0 != final_parser) {
-                (*final_parser)(interp, new_property);
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (data_index < argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string("Unexpected data `") + argv[data_index] + "'.");
+       } else {
+
+           // The command is valid, turn it into a property.
+           // The property has been parsed successfully. Add it to the current node
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(current_node != NULL);
+           new_property = CdlProperty_MinimalBody::make(current_node, name, argc, argv, options);
+           if (final_parser) {
+               final_parser(interp, new_property);
+           }
+       }
     } catch(...) {
-        
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_string_property()          
+//{{{  parse_string_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_string_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_String))
+                               const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_String))
 {
     CYG_REPORT_FUNCNAME("parse_string_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_String new_property = 0;
-    
+
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-
-        if (data_index == argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing argument.");
-        } else if ((data_index + 1) < argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string("Too many arguments, expecting just one."));
-        } else {
-        
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_StringBody::make(current_node, name, argv[data_index], argc, argv, options);
-            if (0 != final_parser) {
-                (*final_parser)(interp, new_property);
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (data_index == argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing argument.");
+       } else if ((data_index + 1) < argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string("Too many arguments, expecting just one."));
+       } else {
+
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(current_node != NULL);
+           new_property = CdlProperty_StringBody::make(current_node, name, argv[data_index], argc, argv, options);
+           if (final_parser) {
+               final_parser(interp, new_property);
+           }
+       }
     } catch(...) {
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
 
     CYG_REPORT_RETURN();
@@ -809,304 +804,275 @@ CdlParse::parse_string_property(CdlInterpreter interp, int argc, const char* arg
 }
 
 //}}}
-//{{{  parse_tclcode_property()         
+//{{{  parse_tclcode_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_tclcode_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                 char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_TclCode))
+                                const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_TclCode))
 {
     CYG_REPORT_FUNCNAME("parse_tclcode_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_TclCode new_property = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index      = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        if (data_index == argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing Tcl code.");
-        } else if ((data_index + 1) < argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string("Invalid number of arguments.\n") +
-                                         "Expecting one argument, a Tcl code fragment.");
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[data_index]))) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Incomplete Tcl code fragment.");
-        } else {
-        
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_TclCodeBody::make(current_node, name, argv[data_index], argc, argv, options);
-            if (0 != final_parser) {
-                (*final_parser)(interp, new_property);
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index      = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (data_index == argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing Tcl code.");
+       } else if ((data_index + 1) < argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string("Invalid number of arguments.\n") +
+                                        "Expecting one argument, a Tcl code fragment.");
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[data_index]))) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Incomplete Tcl code fragment.");
+       } else {
+
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(current_node != NULL);
+           new_property = CdlProperty_TclCodeBody::make(current_node, name, argv[data_index], argc, argv, options);
+           if (final_parser) {
+               final_parser(interp, new_property);
+           }
+       }
      } catch(...) {
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_stringvector_property()    
+//{{{  parse_stringvector_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_stringvector_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                      char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_StringVector),
-                                      bool allow_empty)
+                                     const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_StringVector),
+                                     bool allow_empty)
 {
     CYG_REPORT_FUNCNAME("parse_tclcode_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_StringVector new_property = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index      = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        if (!allow_empty && (data_index == argc)) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing arguments.");
-        } else {
-
-            // Creating the property requires a vector of strings.
-            std::vector<std::string>  strings;
-            for ( ; data_index < argc; data_index++) {
-                strings.push_back(argv[data_index]);
-            }
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_StringVectorBody::make(current_node, name, strings, argc, argv, options);
-            if (0 != final_parser) {
-                (*final_parser)(interp, new_property);
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index      = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (!allow_empty && (data_index == argc)) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing arguments.");
+       } else {
+
+           // Creating the property requires a vector of strings.
+           std::vector<std::string>  strings;
+           for ( ; data_index < argc; data_index++) {
+               strings.push_back(argv[data_index]);
+           }
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(current_node != NULL);
+           new_property = CdlProperty_StringVectorBody::make(current_node, name, strings, argc, argv, options);
+           if (final_parser) {
+               final_parser(interp, new_property);
+           }
+       }
     } catch(...) {
-
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_reference_property()       
+//{{{  parse_reference_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_reference_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                   char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Reference),
-                                   bool allow_empty, CdlUpdateHandler update_handler)
+                                  const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Reference),
+                                  bool allow_empty, CdlUpdateHandler update_handler)
 {
     CYG_REPORT_FUNCNAME("parse_reference_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_Reference new_property = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        if (data_index == argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing argument.");
-        } else if ((data_index + 1) < argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Too many arguments, expecting just one.");
-        } else {
-            std::string refname = argv[data_index];
-            if (!(Cdl::is_valid_cdl_name(refname) || (allow_empty && ("" == refname)))) {
-                CdlParse::report_property_parse_error(interp, argv[0], "`" + refname + "' is not a valid CDL name");
-            } else {
-                CdlNode current_node = interp->get_node();
-                CYG_ASSERTC(0 != current_node);
-                new_property = CdlProperty_ReferenceBody::make(current_node, name, refname,
-                                                               update_handler, argc, argv, options);
-                if (0 != final_parser) {
-                    (*final_parser)(interp, new_property);
-                }
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (data_index == argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing argument.");
+       } else if ((data_index + 1) < argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Too many arguments, expecting just one.");
+       } else {
+           std::string refname = argv[data_index];
+           if (!(Cdl::is_valid_cdl_name(refname) || (allow_empty && ("" == refname)))) {
+               CdlParse::report_property_parse_error(interp, argv[0], "`" + refname + "' is not a valid CDL name");
+           } else {
+               CdlNode current_node = interp->get_node();
+               CYG_ASSERTC(current_node != NULL);
+               new_property = CdlProperty_ReferenceBody::make(current_node, name, refname,
+                                                              update_handler, argc, argv, options);
+               if (final_parser) {
+                   final_parser(interp, new_property);
+               }
+           }
+       }
     } catch(...) {
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_expression_property()      
+//{{{  parse_expression_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_expression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                    char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Expression),
-                                    CdlUpdateHandler update_handler)
+                                   const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Expression),
+                                   CdlUpdateHandler update_handler)
 {
     CYG_REPORT_FUNCNAME("parse_expression_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_Expression new_property = 0;
     CdlExpression expr = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
-        if ("" == all_args) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing expression data.");
-        } else {
-        
-            // The CdlExpression class has its own parsing routine. This
-            // will raise an exception if there are any problems. It is
-            // desirable to catch the exception and report the error via
-            // the normal reporting mechanisms, which may allow parsing to
-            // continue.
-            try {
-                expr = CdlExpressionBody::parse(all_args);
-            } catch(CdlParseException e) {
-                CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
-            }
-            if (0 != expr) {
-                CdlNode current_node = interp->get_node();
-                CYG_ASSERTC(0 != current_node);
-                new_property = CdlProperty_ExpressionBody::make(current_node, name, expr, update_handler, argc, argv, options);
-                if (0 != final_parser) {
-                    (*final_parser)(interp, new_property);
-                }
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+       std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
+       if ("" == all_args) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing expression data.");
+       } else {
+
+           // The CdlExpression class has its own parsing routine. This
+           // will raise an exception if there are any problems. It is
+           // desirable to catch the exception and report the error via
+           // the normal reporting mechanisms, which may allow parsing to
+           // continue.
+           try {
+               expr = CdlExpressionBody::parse(all_args);
+           } catch(CdlParseException e) {
+               CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
+           }
+           if (expr) {
+               CdlNode current_node = interp->get_node();
+               CYG_ASSERTC(current_node != NULL);
+               new_property = CdlProperty_ExpressionBody::make(current_node, name, expr, update_handler, argc, argv, options);
+               if (final_parser) {
+                   final_parser(interp, new_property);
+               }
+           }
+       }
     } catch(...) {
-        if (0 != expr) {
-            delete expr;
-        }
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
-    }
-    
-    if (0 != expr) {
-        delete expr;
+       delete expr;
+       delete new_property;
+       throw;
     }
+
+    delete expr;
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_list_expression_property() 
+//{{{  parse_list_expression_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_listexpression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                        char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_ListExpression),
-                                        CdlUpdateHandler update_handler)
+                                       const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_ListExpression),
+                                       CdlUpdateHandler update_handler)
 {
     CYG_REPORT_FUNCNAME("parse_list_expression_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_ListExpression new_property = 0;
     CdlListExpression expr = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-
-        std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
-        if ("" == all_args) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing list expression data.");
-        } else {
-        
-            try {
-                expr = CdlListExpressionBody::parse(all_args);
-            } catch(CdlParseException e) {
-                CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
-            }
-            if (0 != expr) {
-                CdlNode current_node = interp->get_node();
-                CYG_ASSERTC(0 != current_node);
-                new_property = CdlProperty_ListExpressionBody::make(current_node, name, expr, update_handler,
-                                                                    argc, argv, options);
-                if (0 != final_parser) {
-                    (*final_parser)(interp, new_property);
-                }
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
+       if ("" == all_args) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing list expression data.");
+       } else {
+           try {
+               expr = CdlListExpressionBody::parse(all_args);
+           } catch(CdlParseException e) {
+               CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
+           }
+           if (expr) {
+               CdlNode current_node = interp->get_node();
+               CYG_ASSERTC(current_node != NULL);
+               new_property = CdlProperty_ListExpressionBody::make(current_node, name, expr, update_handler,
+                                                                   argc, argv, options);
+               if (final_parser) {
+                   final_parser(interp, new_property);
+               }
+           }
+       }
     } catch(...) {
-        if (0 != expr) {
-            delete expr;
-        }
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
-    }
-    if (0 != expr) {
-        delete expr;
+       delete expr;
+       delete new_property;
+       throw;
     }
+    delete expr;
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_goalexpression_property()  
+//{{{  parse_goalexpression_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_goalexpression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                        char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_GoalExpression),
-                                        CdlUpdateHandler update_handler)
+                                       const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_GoalExpression),
+                                       CdlUpdateHandler update_handler)
 {
     CYG_REPORT_FUNCNAMETYPE("parse_goal_expression_property", "result %d");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_GoalExpression new_property = 0;
     CdlGoalExpression expr = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-
-        std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
-        if ("" == all_args) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing goal expression data.");
-        } else {
-
-            try {
-                expr = CdlGoalExpressionBody::parse(all_args);
-            } catch(CdlParseException e) {
-                CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
-            }
-            if (0 != expr) {
-                CdlNode current_node = interp->get_node();
-                CYG_ASSERTC(0 != current_node);
-                new_property = CdlProperty_GoalExpressionBody::make(current_node, name, expr, update_handler,
-                                                                    argc, argv, options);
-                if (0 != final_parser) {
-                    (*final_parser)(interp, new_property);
-                }
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
+       if ("" == all_args) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing goal expression data.");
+       } else {
+           try {
+               expr = CdlGoalExpressionBody::parse(all_args);
+           } catch(CdlParseException e) {
+               CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
+           }
+           if (expr) {
+               CdlNode current_node = interp->get_node();
+               CYG_ASSERTC(current_node != NULL);
+               new_property = CdlProperty_GoalExpressionBody::make(current_node, name, expr, update_handler,
+                                                                   argc, argv, options);
+               if (final_parser) {
+                   final_parser(interp, new_property);
+               }
+           }
+       }
     } catch(...) {
-
-        if (0 != expr) {
-            delete expr;
-        }
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
-    }
-    if (0 != expr) {
-        delete expr;
+       delete expr;
+       delete new_property;
+       throw;
     }
+    delete expr;
 
     return TCL_OK;
 }
index 610fffcb32af948e44790b2472ff8817058571e6..b7961de904aef6248e6d10fa1f3c3b456cabafd7 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
@@ -61,7 +61,7 @@
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlValue);
@@ -69,9 +69,9 @@ CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlListValue);
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlValuableBody);
 
 //}}}
-//{{{  CdlSimpleValue class             
+//{{{  CdlSimpleValue class
 
-//{{{  Constructors                     
+//{{{  Constructors
 
 // ----------------------------------------------------------------------------
 
@@ -99,7 +99,7 @@ CdlSimpleValue::CdlSimpleValue(std::string val)
     double_value        = 0.0;
     valid_flags         = string_valid;
     format              = CdlValueFormat_Default;
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -113,7 +113,7 @@ CdlSimpleValue::CdlSimpleValue(cdl_int val)
     double_value        = 0.0;
     valid_flags         = int_valid;
     format              = CdlValueFormat_Default;
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -141,7 +141,7 @@ CdlSimpleValue::CdlSimpleValue(bool val)
     double_value        = 0.0;
     valid_flags         = string_valid | int_valid;
     format              = CdlValueFormat_Default;
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -155,12 +155,12 @@ CdlSimpleValue::CdlSimpleValue(const CdlSimpleValue& original)
     double_value        = original.double_value;
     valid_flags         = original.valid_flags;
     format              = original.format;
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 
@@ -179,7 +179,7 @@ CdlSimpleValue::~CdlSimpleValue()
 }
 
 //}}}
-//{{{  Assignment operators             
+//{{{  Assignment operators
 
 // ----------------------------------------------------------------------------
 
@@ -190,13 +190,13 @@ CdlSimpleValue::operator=(const CdlSimpleValue& original)
     CYG_REPORT_FUNCARG2XV(this, &original);
 
     if (this != &original) {
-        value           = original.value;
-        int_value       = original.int_value;
-        double_value    = original.double_value;
-        valid_flags     = original.valid_flags;
-        format          = original.format;
+       value           = original.value;
+       int_value       = original.int_value;
+       double_value    = original.double_value;
+       valid_flags     = original.valid_flags;
+       format          = original.format;
     }
-    
+
     CYG_REPORT_RETURN();
     return *this;
 }
@@ -228,7 +228,7 @@ CdlSimpleValue::operator=(cdl_int val)
     double_value        = 0.0;
     valid_flags         = int_valid;
     format              = CdlValueFormat_Default;
-    
+
     CYG_REPORT_RETURN();
     return *this;
 }
@@ -271,7 +271,7 @@ CdlSimpleValue::operator=(bool val)
 }
 
 //}}}
-//{{{  CdlValuable -> CdlSimpleValue    
+//{{{  CdlValuable -> CdlSimpleValue
 
 // ----------------------------------------------------------------------------
 // This routine bridges the gap between the full data held in the CdlValuable
@@ -288,70 +288,70 @@ CdlSimpleValue::eval_valuable(CdlEvalContext& context, CdlValuable valuable, Cdl
     // always zero for the purposes of expression evaluation.
     // FIXME: this check should be on a per-transaction basis.
     if (((0 != context.transaction) && !context.transaction->is_active(valuable)) ||
-        ((0 == context.transaction) && !valuable->is_active())) {
-        
-        result.value           = "0";
-        result.int_value       = 0;
-        result.double_value    = 0.0;
-        result.valid_flags     = string_valid | int_valid;
-        result.format          = CdlValueFormat_Default;
-        CYG_REPORT_RETURN();
-        return;
+       ((0 == context.transaction) && !valuable->is_active())) {
+
+       result.value           = "0";
+       result.int_value       = 0;
+       result.double_value    = 0.0;
+       result.valid_flags     = string_valid | int_valid;
+       result.format          = CdlValueFormat_Default;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Get hold of the underlying CdlValue object
     const CdlValue& val = (0 != context.transaction) ?
-        context.transaction->get_whole_value(valuable) : valuable->get_whole_value();
-        
+       context.transaction->get_whole_value(valuable) : valuable->get_whole_value();
+
     // Otherwise the value depends on the flavor.
     switch(val.get_flavor()) {
       case CdlValueFlavor_None :
       {
-        // This could be treated as an error, but since valuables with flavor
-        // none are permanently enabled a constant "1" is a better result.
-        result.value           = "1";
-        result.int_value       = 1;
-        result.double_value    = 0.0;
-        result.valid_flags     = string_valid | int_valid;
-        result.format          = CdlValueFormat_Default;
-        break;
+       // This could be treated as an error, but since valuables with flavor
+       // none are permanently enabled a constant "1" is a better result.
+       result.value           = "1";
+       result.int_value       = 1;
+       result.double_value    = 0.0;
+       result.valid_flags     = string_valid | int_valid;
+       result.format          = CdlValueFormat_Default;
+       break;
       }
       case CdlValueFlavor_Bool :
       {
-        bool enabled           = val.is_enabled();
-        result.value           = (enabled) ? "1" : "0";
-        result.int_value       = (enabled) ?  1  :  0;
-        result.double_value    = 0.0;
-        result.valid_flags     = string_valid | int_valid;
-        result.format          = CdlValueFormat_Default;
-        break;
+       bool enabled           = val.is_enabled();
+       result.value           = (enabled) ? "1" : "0";
+       result.int_value       = (enabled) ?  1  :  0;
+       result.double_value    = 0.0;
+       result.valid_flags     = string_valid | int_valid;
+       result.format          = CdlValueFormat_Default;
+       break;
       }
       case CdlValueFlavor_BoolData :
       {
-        if (!val.is_enabled()) {
-                    
-            result.value        = "0";
-            result.int_value    = 0;
-            result.double_value = 0.0;
-            result.valid_flags  = string_valid | int_valid;
-            result.format       = CdlValueFormat_Default;
-                    
-        } else {
-
-            // Just use a copy constructor, let the compiler optimise things.
-            result = val.get_simple_value();
-        }
-        break;
+       if (!val.is_enabled()) {
+
+           result.value        = "0";
+           result.int_value    = 0;
+           result.double_value = 0.0;
+           result.valid_flags  = string_valid | int_valid;
+           result.format       = CdlValueFormat_Default;
+
+       } else {
+
+           // Just use a copy constructor, let the compiler optimise things.
+           result = val.get_simple_value();
+       }
+       break;
       }
       case CdlValueFlavor_Data :
       {
-        // Just like BoolData, but with no need to check the enabled flag.
-        result = val.get_simple_value();
-        break;
+       // Just like BoolData, but with no need to check the enabled flag.
+       result = val.get_simple_value();
+       break;
       }
       default:
       {
-        CYG_FAIL("Valuable object with an unknown flavor encountered.");
+       CYG_FAIL("Valuable object with an unknown flavor encountered.");
       }
     }
 
@@ -359,7 +359,7 @@ CdlSimpleValue::eval_valuable(CdlEvalContext& context, CdlValuable valuable, Cdl
 }
 
 //}}}
-//{{{  Getting the value                
+//{{{  Getting the value
 
 // ----------------------------------------------------------------------------
 // Some of these calls involve conversion operators.
@@ -371,14 +371,14 @@ CdlSimpleValue::get_value() const
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & string_valid)) {
-        if (valid_flags & int_valid) {
-            Cdl::integer_to_string(int_value, value, format);
-        } else if (valid_flags & double_valid) {
-            Cdl::double_to_string(double_value, value, format);
-        } else {
-            CYG_FAIL("Attempt to use uninitialized SimpleValue");
-        }
-        valid_flags |= string_valid;
+       if (valid_flags & int_valid) {
+           Cdl::integer_to_string(int_value, value, format);
+       } else if (valid_flags & double_valid) {
+           Cdl::double_to_string(double_value, value, format);
+       } else {
+           CYG_FAIL("Attempt to use uninitialized SimpleValue");
+       }
+       valid_flags |= string_valid;
     }
 
     CYG_REPORT_RETURN();
@@ -392,23 +392,23 @@ CdlSimpleValue::has_integer_value() const
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & (int_valid | int_invalid))) {
-        if (valid_flags & double_valid) {
-            if (Cdl::double_to_integer(double_value, int_value)) {
-                valid_flags |= int_valid;
-            } else {
-                valid_flags |= int_invalid;
-            }
-        } else if (valid_flags & string_valid) {
-            if (Cdl::string_to_integer(value, int_value)) {
-                valid_flags |= int_valid;
-            } else {
-                valid_flags |= int_invalid;
-            }
-        } else {
-            CYG_FAIL("Attempt to use uninitialized SimpleValue");
-        }
+       if (valid_flags & double_valid) {
+           if (Cdl::double_to_integer(double_value, int_value)) {
+               valid_flags |= int_valid;
+           } else {
+               valid_flags |= int_invalid;
+           }
+       } else if (valid_flags & string_valid) {
+           if (Cdl::string_to_integer(value, int_value)) {
+               valid_flags |= int_valid;
+           } else {
+               valid_flags |= int_invalid;
+           }
+       } else {
+           CYG_FAIL("Attempt to use uninitialized SimpleValue");
+       }
     }
-    
+
     bool result = (valid_flags & int_valid);
     CYG_REPORT_RETVAL(result);
     return result;
@@ -422,7 +422,7 @@ CdlSimpleValue::get_integer_value() const
 
     cdl_int result = 0;
     if ((valid_flags & int_valid) || has_integer_value()) {
-        result = int_value;
+       result = int_value;
     }
 
     CYG_REPORT_RETVAL((int) result);
@@ -436,18 +436,18 @@ CdlSimpleValue::has_double_value() const
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & (double_valid | double_invalid))) {
-        if (valid_flags & int_valid) {
-            Cdl::integer_to_double(int_value, double_value);
-            valid_flags |= double_valid;
-        } else if (valid_flags & string_valid) {
-            if (Cdl::string_to_double(value, double_value)) {
-                valid_flags |= double_valid;
-            } else {
-                valid_flags |= double_invalid;
-            }
-        } else {
-            CYG_FAIL("Attempt to use uninitialized SimpleValue");
-        }
+       if (valid_flags & int_valid) {
+           Cdl::integer_to_double(int_value, double_value);
+           valid_flags |= double_valid;
+       } else if (valid_flags & string_valid) {
+           if (Cdl::string_to_double(value, double_value)) {
+               valid_flags |= double_valid;
+           } else {
+               valid_flags |= double_invalid;
+           }
+       } else {
+           CYG_FAIL("Attempt to use uninitialized SimpleValue");
+       }
     }
     bool result = (valid_flags & double_valid);
     CYG_REPORT_RETVAL(result);
@@ -462,7 +462,7 @@ CdlSimpleValue::get_double_value() const
 
     double result = 0.0;
     if ((valid_flags & double_valid) || has_double_value()) {
-        result = double_value;
+       result = double_value;
     }
 
     CYG_REPORT_RETURN();
@@ -477,26 +477,26 @@ CdlSimpleValue::get_bool_value() const
 
     bool result = false;
     if (valid_flags & int_valid) {
-        if (0 != int_value) {
-            result = true;
-        }
+       if (0 != int_value) {
+           result = true;
+       }
     } else if (valid_flags & double_valid) {
-        // Leave it to the compiler to decide what is valid
-        result = double_value;
+       // Leave it to the compiler to decide what is valid
+       result = double_value;
     } else if (valid_flags & string_valid) {
-        // string_to_bool copes with "1", "true", and a few other cases.
-        // If the current value does not match any of these then
-        // true corresponds to a non-empty string.
-        if (!Cdl::string_to_bool(value, result)) {
-            if ("" == value) {
-                result = false;
-            } else {
-                result = true;
-            }
-        }
+       // string_to_bool copes with "1", "true", and a few other cases.
+       // If the current value does not match any of these then
+       // true corresponds to a non-empty string.
+       if (!Cdl::string_to_bool(value, result)) {
+           if ("" == value) {
+               result = false;
+           } else {
+               result = true;
+           }
+       }
     } else {
-        // No value defined, default to false.
-        result = false;
+       // No value defined, default to false.
+       result = false;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -504,7 +504,7 @@ CdlSimpleValue::get_bool_value() const
 }
 
 //}}}
-//{{{  Updating the value               
+//{{{  Updating the value
 
 // ----------------------------------------------------------------------------
 // Normally the assignment operators will be used for this instead.
@@ -555,7 +555,7 @@ CdlSimpleValue::set_double_value(double val, CdlValueFormat new_format)
 }
 
 //}}}
-//{{{  Value format support             
+//{{{  Value format support
 
 // ----------------------------------------------------------------------------
 
@@ -577,7 +577,7 @@ CdlSimpleValue::set_value_format(CdlValueFormat new_format)
     CYG_REPORT_FUNCARG2XV(this, new_format);
 
     format      = new_format;
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -612,7 +612,7 @@ CdlSimpleValue::set_value_format(CdlSimpleValue& val1, CdlSimpleValue& val2)
 }
 
 //}}}
-//{{{  Comparison operators             
+//{{{  Comparison operators
 
 // ----------------------------------------------------------------------------
 
@@ -623,25 +623,25 @@ CdlSimpleValue::operator==(const CdlSimpleValue& other) const
     CYG_REPORT_FUNCARG2XV(this, &other);
 
     bool result = false;
-    
+
     if (has_integer_value()) {
-        if (other.has_integer_value()) {
-            cdl_int val1 = get_integer_value();
-            cdl_int val2 = other.get_integer_value();
-            result = (val1 == val2);
-        }
+       if (other.has_integer_value()) {
+           cdl_int val1 = get_integer_value();
+           cdl_int val2 = other.get_integer_value();
+           result = (val1 == val2);
+       }
     } else if (has_double_value()) {
-        if (other.has_double_value()) {
-            double val1 = get_double_value();
-            double val2 = other.get_double_value();
-            result = (val1 == val2);
-        }
+       if (other.has_double_value()) {
+           double val1 = get_double_value();
+           double val2 = other.get_double_value();
+           result = (val1 == val2);
+       }
     } else {
-        std::string val1 = get_value();
-        std::string val2 = other.get_value();
-        result = (val1 == val2);
+       std::string val1 = get_value();
+       std::string val2 = other.get_value();
+       result = (val1 == val2);
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -654,21 +654,21 @@ CdlSimpleValue::operator!=(const CdlSimpleValue& other) const
 
     bool result = true;
     if (has_integer_value()) {
-        if (other.has_integer_value()) {
-            cdl_int val1 = get_integer_value();
-            cdl_int val2 = other.get_integer_value();
-            result = (val1 != val2);
-        }
+       if (other.has_integer_value()) {
+           cdl_int val1 = get_integer_value();
+           cdl_int val2 = other.get_integer_value();
+           result = (val1 != val2);
+       }
     } else if (has_double_value()) {
-        if (other.has_double_value()) {
-            double val1 = get_double_value();
-            double val2 = other.get_double_value();
-            result = (val1 != val2);
-        }
+       if (other.has_double_value()) {
+           double val1 = get_double_value();
+           double val2 = other.get_double_value();
+           result = (val1 != val2);
+       }
     } else {
-        std::string val1 = get_value();
-        std::string val2 = other.get_value();
-        result = (val1 != val2);
+       std::string val1 = get_value();
+       std::string val2 = other.get_value();
+       result = (val1 != val2);
     }
 
 
@@ -679,7 +679,7 @@ CdlSimpleValue::operator!=(const CdlSimpleValue& other) const
 //}}}
 
 //}}}
-//{{{  CdlValue class                   
+//{{{  CdlValue class
 
 // ----------------------------------------------------------------------------
 // This should really be a class static constant, but VC++ does not implement
@@ -688,7 +688,7 @@ CdlSimpleValue::operator!=(const CdlSimpleValue& other) const
 
 static const int CdlValue_number_of_sources = 4;
 
-//{{{  Constructors                             
+//{{{  Constructors
 
 // ----------------------------------------------------------------------------
 // The default flavor depends on the type of entity being created. For
@@ -711,13 +711,13 @@ CdlValue::CdlValue(CdlValueFlavor flavor_arg)
     enabled[CdlValueSource_User]                = false;
 
     // The SimpleValues will initialize themselves.
-    
+
     cdlvalue_cookie         = CdlValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
 
     // This cannot happen until after the object is valid.
     set_flavor(flavor_arg);
-        
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -736,14 +736,14 @@ CdlValue::CdlValue(const CdlValue& original)
     flavor              = original.flavor;
     current_source      = original.current_source;
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
-        source_valid[i] = original.source_valid[i];
-        enabled[i]      = original.enabled[i];
-        values[i]       = original.values[i];
+       source_valid[i] = original.source_valid[i];
+       enabled[i]      = original.enabled[i];
+       values[i]       = original.values[i];
     }
 
     cdlvalue_cookie = CdlValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -759,13 +759,13 @@ CdlValue& CdlValue::operator=(const CdlValue& original)
     CYG_INVARIANT_CLASSOC(CdlValue, original);
 
     if (this != &original) {
-        flavor          = original.flavor;
-        current_source  = original.current_source;
-        for (int i = 0; i < CdlValue_number_of_sources; i++) {
-            source_valid[i]     = original.source_valid[i];
-            enabled[i]          = original.enabled[i];
-            values[i]           = original.values[i];
-        }
+       flavor          = original.flavor;
+       current_source  = original.current_source;
+       for (int i = 0; i < CdlValue_number_of_sources; i++) {
+           source_valid[i]     = original.source_valid[i];
+           enabled[i]          = original.enabled[i];
+           values[i]           = original.values[i];
+       }
     }
 
     cdlvalue_cookie = CdlValue_Magic;
@@ -775,7 +775,7 @@ CdlValue& CdlValue::operator=(const CdlValue& original)
 }
 
 //}}}
-//{{{  Destructor                               
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 
@@ -789,9 +789,9 @@ CdlValue::~CdlValue()
     flavor              = CdlValueFlavor_Invalid;
     current_source      = CdlValueSource_Invalid;
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
-        source_valid[i]         = false;
-        enabled[i]              = false;
-        // The CdlSimpleValue array will take care of itself.
+       source_valid[i]         = false;
+       enabled[i]              = false;
+       // The CdlSimpleValue array will take care of itself.
     }
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
@@ -799,41 +799,41 @@ CdlValue::~CdlValue()
 }
 
 //}}}
-//{{{  check_this()                             
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 bool
 CdlValue::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlValue_Magic != cdlvalue_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     if (!source_valid[CdlValueSource_Default]) {
-        return false;
+       return false;
     }
 
     if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Data == flavor)) {
-        for (int i = 0; i < CdlValue_number_of_sources; i++) {
-            if (!enabled[i]) {
-                return false;
-            }
-        }
+       for (int i = 0; i < CdlValue_number_of_sources; i++) {
+           if (!enabled[i]) {
+               return false;
+           }
+       }
     }
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
-        if (source_valid[i]) {
-            if (!values[i].check_this(zeal)) {
-                return false;
-            }
-        }
+       if (source_valid[i]) {
+           if (!values[i].check_this(zeal)) {
+               return false;
+           }
+       }
     }
-    
+
     return true;
 }
 
 //}}}
-//{{{  Flavor manipulation                      
+//{{{  Flavor manipulation
 
 // ----------------------------------------------------------------------------
 // Get hold of the current flavor.
@@ -863,94 +863,94 @@ CdlValue::set_flavor(CdlValueFlavor flavor_arg)
 {
     CYG_REPORT_FUNCNAME("CdlValue:: set_flavor");
     CYG_REPORT_FUNCARG2XV(this, flavor_arg);
-    
+
     // No precondition here, set_flavor() is called from inside the constructor
     CYG_PRECONDITIONC((CdlValueFlavor_None     == flavor_arg) || \
-                      (CdlValueFlavor_Bool     == flavor_arg) || \
-                      (CdlValueFlavor_BoolData == flavor_arg) || \
-                      (CdlValueFlavor_Data     == flavor_arg));
+                     (CdlValueFlavor_Bool     == flavor_arg) || \
+                     (CdlValueFlavor_BoolData == flavor_arg) || \
+                     (CdlValueFlavor_Data     == flavor_arg));
 
     flavor = flavor_arg;
     switch(flavor) {
       case CdlValueFlavor_None :
-        {
-            // All value sources are enabled, but "default" remains
-            // the only valid one. All data parts are set to "1",
-            // although that should not really matter.
-            enabled[CdlValueSource_Default]     = true;
-            enabled[CdlValueSource_Inferred]    = true;
-            enabled[CdlValueSource_Wizard]      = true;
-            enabled[CdlValueSource_User]        = true;
-            
-            CdlSimpleValue simple_val((cdl_int) 1);
-            values[CdlValueSource_Default]      = simple_val;
-            values[CdlValueSource_Inferred]     = simple_val;
-            values[CdlValueSource_Wizard]       = simple_val;
-            values[CdlValueSource_User]         = simple_val;
-            break;
-        }
-          
+       {
+           // All value sources are enabled, but "default" remains
+           // the only valid one. All data parts are set to "1",
+           // although that should not really matter.
+           enabled[CdlValueSource_Default]     = true;
+           enabled[CdlValueSource_Inferred]    = true;
+           enabled[CdlValueSource_Wizard]      = true;
+           enabled[CdlValueSource_User]        = true;
+
+           CdlSimpleValue simple_val((cdl_int) 1);
+           values[CdlValueSource_Default]      = simple_val;
+           values[CdlValueSource_Inferred]     = simple_val;
+           values[CdlValueSource_Wizard]       = simple_val;
+           values[CdlValueSource_User]         = simple_val;
+           break;
+       }
+
       case CdlValueFlavor_Bool :
-        {
-            // All value sources start out as disabled, but with a
-            // constant data part of 1. Users can only control the
-            // boolean part. This is consistent with header file
-            // generation: no #define is generated for disabled
-            // options, but if the option is enabled then the data
-            // part will be used for the value.
-            enabled[CdlValueSource_Default]     = false;
-            enabled[CdlValueSource_Inferred]    = false;
-            enabled[CdlValueSource_Wizard]      = false;
-            enabled[CdlValueSource_User]        = false;
-
-            // BLV - keep the data part at 0 for now. There is too
-            // much confusion in the code between value as a string
-            // representation, and value as the data part of the
-            // bool/data pair. This needs to be fixed, but it requires
-            // significant API changes.
-#if 0            
-            CdlSimpleValue simple_val(cdl_int(1));
+       {
+           // All value sources start out as disabled, but with a
+           // constant data part of 1. Users can only control the
+           // boolean part. This is consistent with header file
+           // generation: no #define is generated for disabled
+           // options, but if the option is enabled then the data
+           // part will be used for the value.
+           enabled[CdlValueSource_Default]     = false;
+           enabled[CdlValueSource_Inferred]    = false;
+           enabled[CdlValueSource_Wizard]      = false;
+           enabled[CdlValueSource_User]        = false;
+
+           // BLV - keep the data part at 0 for now. There is too
+           // much confusion in the code between value as a string
+           // representation, and value as the data part of the
+           // bool/data pair. This needs to be fixed, but it requires
+           // significant API changes.
+#if 0
+           CdlSimpleValue simple_val(cdl_int(1));
 #else
-            CdlSimpleValue simple_val(cdl_int(0));
-#endif            
-            values[CdlValueSource_Default]      = simple_val;
-            values[CdlValueSource_Inferred]     = simple_val;
-            values[CdlValueSource_Wizard]       = simple_val;
-            values[CdlValueSource_User]         = simple_val;
-            break;
-        }
-          
+           CdlSimpleValue simple_val(cdl_int(0));
+#endif
+           values[CdlValueSource_Default]      = simple_val;
+           values[CdlValueSource_Inferred]     = simple_val;
+           values[CdlValueSource_Wizard]       = simple_val;
+           values[CdlValueSource_User]         = simple_val;
+           break;
+       }
+
       case CdlValueFlavor_BoolData :
-        {
-            // All value sources start out as disabled, just like
-            // booleans. Nothing is known about the data part.
-            enabled[CdlValueSource_Default]       = false;
-            enabled[CdlValueSource_Inferred]      = false;
-            enabled[CdlValueSource_Wizard]        = false;
-            enabled[CdlValueSource_User]          = false;
-            break;
-        }
-          
+       {
+           // All value sources start out as disabled, just like
+           // booleans. Nothing is known about the data part.
+           enabled[CdlValueSource_Default]       = false;
+           enabled[CdlValueSource_Inferred]      = false;
+           enabled[CdlValueSource_Wizard]        = false;
+           enabled[CdlValueSource_User]          = false;
+           break;
+       }
+
       case CdlValueFlavor_Data :
-        {
-            // All value sources start out as enabled, and cannot be
-            // changed. Nothing is known about the data part.
-            enabled[CdlValueSource_Default]       = true;
-            enabled[CdlValueSource_Inferred]      = true;
-            enabled[CdlValueSource_Wizard]        = true;
-            enabled[CdlValueSource_User]          = true;
-            break;
-        }
+       {
+           // All value sources start out as enabled, and cannot be
+           // changed. Nothing is known about the data part.
+           enabled[CdlValueSource_Default]       = true;
+           enabled[CdlValueSource_Inferred]      = true;
+           enabled[CdlValueSource_Wizard]        = true;
+           enabled[CdlValueSource_User]          = true;
+           break;
+       }
 
       default :
-        break;
+       break;
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Source manipulation                      
+//{{{  Source manipulation
 
 // ----------------------------------------------------------------------------
 
@@ -1007,25 +1007,25 @@ CdlValue::invalidate_source(CdlValueSource source)
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
 
     if (CdlValueSource_Default != source) {
-        source_valid[source]        = false;
-        if (current_source == source) {
-            if (source_valid[CdlValueSource_User]) {
-                current_source = CdlValueSource_User;
-            } else if (source_valid[CdlValueSource_Wizard]) {
-                current_source = CdlValueSource_Wizard;
-            } else if (source_valid[CdlValueSource_Inferred]) {
-                current_source = CdlValueSource_Inferred;
-            } else {
-                current_source = CdlValueSource_Default;
-            }
-        }
+       source_valid[source]        = false;
+       if (current_source == source) {
+           if (source_valid[CdlValueSource_User]) {
+               current_source = CdlValueSource_User;
+           } else if (source_valid[CdlValueSource_Wizard]) {
+               current_source = CdlValueSource_Wizard;
+           } else if (source_valid[CdlValueSource_Inferred]) {
+               current_source = CdlValueSource_Inferred;
+           } else {
+               current_source = CdlValueSource_Default;
+           }
+       }
     }
-    
+
     CYG_POSTCONDITIONC(source_valid[current_source]);
 }
 
 //}}}
-//{{{  Retrieving the data                      
+//{{{  Retrieving the data
 
 // ----------------------------------------------------------------------------
 // Check the enabled flag for the appropriate source. The specified source
@@ -1044,7 +1044,7 @@ CdlValue::is_enabled(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1065,7 +1065,7 @@ CdlValue::get_value(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1083,7 +1083,7 @@ CdlValue::has_integer_value(CdlValueSource source) const
     CYG_INVARIANT_THISC(CdlValue);
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1099,9 +1099,9 @@ CdlValue::has_double_value(CdlValueSource source) const
     CYG_REPORT_FUNCNAMETYPE("CdlValue::has_value", "result %d");
     CYG_REPORT_FUNCARG2XV(this, source);
     CYG_INVARIANT_THISC(CdlValue);
-    
+
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1119,7 +1119,7 @@ CdlValue::get_integer_value(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1137,7 +1137,7 @@ CdlValue::get_double_value(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1155,7 +1155,7 @@ CdlValue::get_simple_value(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1165,7 +1165,7 @@ CdlValue::get_simple_value(CdlValueSource source) const
 }
 
 //}}}
-//{{{  Value modification                       
+//{{{  Value modification
 
 // ----------------------------------------------------------------------------
 
@@ -1181,9 +1181,9 @@ CdlValue::set_enabled(bool val, CdlValueSource source)
     enabled[source] = val;
     source_valid[source] = true;
     if (source > current_source) {
-        current_source = source;
+       current_source = source;
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1195,13 +1195,13 @@ CdlValue::set_value(CdlSimpleValue& val, CdlValueSource source)
     CYG_INVARIANT_THISC(CdlValue);
     CYG_PRECONDITIONC((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor));
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
-    
+
     values[source] = val;
     source_valid[source] = true;
     if (source > current_source) {
-        current_source = source;
+       current_source = source;
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1218,9 +1218,9 @@ CdlValue::set_enabled_and_value(bool enabled_arg, CdlSimpleValue& val, CdlValueS
     values[source]       = val;
     source_valid[source] = true;
     if (source > current_source) {
-        current_source = source;
+       current_source = source;
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1239,30 +1239,30 @@ CdlValue::set(CdlSimpleValue& val, CdlValueSource source)
 
     switch(flavor) {
       case CdlValueFlavor_Bool:
-        enabled[source] = val.get_bool_value();
-        break;
+       enabled[source] = val.get_bool_value();
+       break;
 
       case CdlValueFlavor_BoolData:
-        if (!val.get_bool_value()) {
-            enabled[source] = false;
-            values[source]  = (cdl_int) 0;
-        } else {
-            enabled[source] = true;
-            values[source]  = val;
-        }
-        break;
-                    
+       if (!val.get_bool_value()) {
+           enabled[source] = false;
+           values[source]  = (cdl_int) 0;
+       } else {
+           enabled[source] = true;
+           values[source]  = val;
+       }
+       break;
+
       case CdlValueFlavor_Data:
-        values[source] = val;
-        break;
-                    
+       values[source] = val;
+       break;
+
       default:
-        CYG_FAIL("Unknown value flavor detected.");
+       CYG_FAIL("Unknown value flavor detected.");
     }
-    
+
     source_valid[source] = true;
     if (source > current_source) {
-        current_source = source;
+       current_source = source;
     }
 
     CYG_REPORT_RETURN();
@@ -1271,7 +1271,7 @@ CdlValue::set(CdlSimpleValue& val, CdlValueSource source)
 //}}}
 
 //}}}
-//{{{  CdlListValue class               
+//{{{  CdlListValue class
 
 // ----------------------------------------------------------------------------
 // List values. Most of this is straightforward.
@@ -1285,7 +1285,7 @@ CdlListValue::CdlListValue()
     // filled in already.
     cdllistvalue_cookie = CdlListValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -1295,14 +1295,14 @@ CdlListValue::CdlListValue(const CdlListValue& original)
     CYG_REPORT_FUNCNAME("CdlListValue:: copy constructor");
     CYG_REPORT_FUNCARG2XV(this, &original);
     CYG_INVARIANT_CLASSOC(CdlListValue, original);
-    
+
     // This may get expensive, but should not happen very often.
     table               = original.table;
     integer_ranges      = original.integer_ranges;
     double_ranges       = original.double_ranges;
     cdllistvalue_cookie = CdlListValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -1314,14 +1314,14 @@ CdlListValue & CdlListValue::operator=(const CdlListValue& original)
     CYG_INVARIANT_CLASSOC(CdlListValue, original);
 
     if (this != &original) {
-        table.clear();
-        integer_ranges.clear();
-        double_ranges.clear();
-        table          = original.table;
-        integer_ranges = original.integer_ranges;
-        double_ranges  = original.double_ranges;
+       table.clear();
+       integer_ranges.clear();
+       double_ranges.clear();
+       table          = original.table;
+       integer_ranges = original.integer_ranges;
+       double_ranges  = original.double_ranges;
     }
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
     return *this;
@@ -1338,7 +1338,7 @@ CdlListValue::~CdlListValue()
     integer_ranges.clear();
     double_ranges.clear();
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -1418,15 +1418,15 @@ CdlListValue::is_member(CdlSimpleValue& val) const
 
     bool result = false;
     if (val.has_integer_value()) {
-        result = is_member(val.get_integer_value(), false);
+       result = is_member(val.get_integer_value(), false);
     }
     if (!result && val.has_double_value()) {
-        result = is_member(val.get_double_value(), false);
+       result = is_member(val.get_double_value(), false);
     }
     if (!result) {
-        result = is_member(val.get_value());
+       result = is_member(val.get_value());
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1440,23 +1440,23 @@ CdlListValue::is_member(std::string val, bool allow_conversions) const
 
     bool        result = false;
     if (allow_conversions) {
-        cdl_int     integer_value;
-        double      double_value;
-
-        if (Cdl::string_to_integer(val, integer_value)) {
-            result = is_member(integer_value, false);
-        }
-        if (!result && Cdl::string_to_double(val, double_value)) {
-            result = is_member(double_value, false);
-        }
+       cdl_int     integer_value;
+       double      double_value;
+
+       if (Cdl::string_to_integer(val, integer_value)) {
+           result = is_member(integer_value, false);
+       }
+       if (!result && Cdl::string_to_double(val, double_value)) {
+           result = is_member(double_value, false);
+       }
     }
     if (!result) {
-        for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
-            if (val_i->get_value() == val) {
-                result = true;
-                break;
-            }
-        }
+       for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
+           if (val_i->get_value() == val) {
+               result = true;
+               break;
+           }
+       }
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1472,23 +1472,23 @@ CdlListValue::is_member(cdl_int val, bool allow_conversions) const
 
     bool result = false;
     for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
-        if (val_i->has_integer_value() && (val_i->get_integer_value() == val)) {
-            result = true;
-            break;
-        }
+       if (val_i->has_integer_value() && (val_i->get_integer_value() == val)) {
+           result = true;
+           break;
+       }
     }
     if (!result) {
-        for (std::vector<std::pair<cdl_int,cdl_int> >::const_iterator i = integer_ranges.begin();
-             i != integer_ranges.end(); i++) {
-            if ((val >= i->first) && (val <= i->second)) {
-                result = true;
-                break;
-            }
-        }
+       for (std::vector<std::pair<cdl_int,cdl_int> >::const_iterator i = integer_ranges.begin();
+            i != integer_ranges.end(); i++) {
+           if ((val >= i->first) && (val <= i->second)) {
+               result = true;
+               break;
+           }
+       }
     }
     if (!result && allow_conversions) {
-        double double_value = Cdl::integer_to_double(val);
-        result = is_member(double_value, false);
+       double double_value = Cdl::integer_to_double(val);
+       result = is_member(double_value, false);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1504,25 +1504,25 @@ CdlListValue::is_member(double val, bool allow_conversions) const
 
     bool result = false;
     for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
-        if (val_i->has_double_value() && (val_i->get_double_value() == val)) {
-            result = true;
-            break;
-        }
+       if (val_i->has_double_value() && (val_i->get_double_value() == val)) {
+           result = true;
+           break;
+       }
     }
     if (!result) {
-        for (std::vector<std::pair<double,double> >::const_iterator i = double_ranges.begin();
-             i != double_ranges.end(); i++) {
-            if ((val >= i->first) && (val <= i->second)) {
-                result = true;
-                break;
-            }
-        }
+       for (std::vector<std::pair<double,double> >::const_iterator i = double_ranges.begin();
+            i != double_ranges.end(); i++) {
+           if ((val >= i->first) && (val <= i->second)) {
+               result = true;
+               break;
+           }
+       }
     }
     if (!result && allow_conversions) {
-        cdl_int integer_value;
-        if (Cdl::double_to_integer(val, integer_value)) {
-            result = is_member(integer_value, false);
-        }
+       cdl_int integer_value;
+       if (Cdl::double_to_integer(val, integer_value)) {
+           result = is_member(integer_value, false);
+       }
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1535,7 +1535,7 @@ bool
 CdlListValue::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlListValue_Magic != cdllistvalue_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
@@ -1547,37 +1547,37 @@ CdlListValue::check_this(cyg_assert_class_zeal zeal) const
 
 //}}}
 
-//{{{  dialog property                  
+//{{{  dialog property
 
 // ----------------------------------------------------------------------------
 // Syntax: dialog <reference>
 
 void
 CdlValuableBody::dialog_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                       CdlUpdate change)
+                                      CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::dialog_update_handler");
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_PRECONDITION_CLASSC(source);
     CYG_PRECONDITION_CLASSC(prop);
-    
+
     // The main update of interest is Loaded (iff dest != 0), and
     // Created. These updates indicate that the destination now exists,
     // so it is possible to check that the destination is a dialog.
     if (((CdlUpdate_Loaded == change) && (0 != dest)) ||
-        (CdlUpdate_Created == change)) {
-
-        CYG_ASSERT_CLASSC(dest);
-        CdlDialog dialog = dynamic_cast<CdlDialog>(dest);
-        if (0 == dialog) {
-            std::string msg = dest->get_class_name() + " " + dest->get_name() +
-                " cannot be used in a dialog property, it is not a custom dialog.";
-            CdlConflict_DataBody::make(transaction, source, prop, msg);
-        }
-        
+       (CdlUpdate_Created == change)) {
+
+       CYG_ASSERT_CLASSC(dest);
+       CdlDialog dialog = dynamic_cast<CdlDialog>(dest);
+       if (0 == dialog) {
+           std::string msg = dest->get_class_name() + " " + dest->get_name() +
+               " cannot be used in a dialog property, it is not a custom dialog.";
+           CdlConflict_DataBody::make(transaction, source, prop, msg);
+       }
+
     } else if (CdlUpdate_Destroyed == change) {
-        // If there was a data conflict object, it is no longer relevant
-        transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
+       // If there was a data conflict object, it is no longer relevant
+       transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
     }
 
     CYG_REPORT_RETURN();
@@ -1589,7 +1589,7 @@ CdlValuableBody::parse_dialog(CdlInterpreter interp, int argc, const char* argv[
     CYG_REPORT_FUNCNAMETYPE("parse_dialog", "result %d");
 
     int result = CdlParse::parse_reference_property(interp, argc, argv, CdlPropertyId_Dialog, 0, 0, false, &dialog_update_handler);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1606,16 +1606,16 @@ CdlValuableBody::has_dialog() const
     bool        result          = false;
     CdlProperty property        = get_property(CdlPropertyId_Dialog);
     if (0 != property) {
-        CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
-        CYG_ASSERTC(0 != ref_prop);
-
-        CdlNode destination = ref_prop->get_destination();
-        if (0 != destination) {
-            CdlDialog dialog = dynamic_cast<CdlDialog>(destination);
-            if (0 != dialog) {
-                result = true;
-            }
-        }
+       CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
+       CYG_ASSERTC(0 != ref_prop);
+
+       CdlNode destination = ref_prop->get_destination();
+       if (0 != destination) {
+           CdlDialog dialog = dynamic_cast<CdlDialog>(destination);
+           if (0 != dialog) {
+               result = true;
+           }
+       }
     }
     CYG_REPORT_RETVAL(result);
     return result;
@@ -1632,13 +1632,13 @@ CdlValuableBody::get_dialog() const
     CdlDialog   result          = 0;
     CdlProperty property        = get_property(CdlPropertyId_Dialog);
     if (0 != property) {
-        CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
-        CYG_ASSERTC(0 != ref_prop);
+       CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
+       CYG_ASSERTC(0 != ref_prop);
 
-        CdlNode destination = ref_prop->get_destination();
-        if (0 != destination) {
-            result = dynamic_cast<CdlDialog>(destination);
-        }
+       CdlNode destination = ref_prop->get_destination();
+       if (0 != destination) {
+           result = dynamic_cast<CdlDialog>(destination);
+       }
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1646,37 +1646,37 @@ CdlValuableBody::get_dialog() const
 }
 
 //}}}
-//{{{  wizard property                  
+//{{{  wizard property
 
 // ----------------------------------------------------------------------------
 // Syntax: wizard <reference>
 
 void
 CdlValuableBody::wizard_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                       CdlUpdate change)
+                                      CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::wizard_update_handler");
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_PRECONDITION_CLASSC(source);
     CYG_PRECONDITION_CLASSC(prop);
-    
+
     // The main update of interest is Loaded (iff dest != 0), and
     // Created. These updates indicate that the destination now exists,
     // so it is possible to check that the destination is a dialog.
     if (((CdlUpdate_Loaded == change) && (0 != dest)) ||
-        (CdlUpdate_Created == change)) {
-
-        CYG_ASSERT_CLASSC(dest);
-        CdlWizard wizard = dynamic_cast<CdlWizard>(dest);
-        if (0 == wizard) {
-            std::string msg = dest->get_class_name() + " " + dest->get_name() +
-                " cannot be used in a wizard property, it is not a wizard.";
-            CdlConflict_DataBody::make(transaction, source, prop, msg);
-        }
-        
+       (CdlUpdate_Created == change)) {
+
+       CYG_ASSERT_CLASSC(dest);
+       CdlWizard wizard = dynamic_cast<CdlWizard>(dest);
+       if (0 == wizard) {
+           std::string msg = dest->get_class_name() + " " + dest->get_name() +
+               " cannot be used in a wizard property, it is not a wizard.";
+           CdlConflict_DataBody::make(transaction, source, prop, msg);
+       }
+
     } else if (CdlUpdate_Destroyed == change) {
-        // If there was a data conflict object, it is no longer relevant
-        transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
+       // If there was a data conflict object, it is no longer relevant
+       transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
     }
 
     CYG_REPORT_RETURN();
@@ -1704,16 +1704,16 @@ CdlValuableBody::has_wizard() const
     bool        result          = false;
     CdlProperty property        = get_property(CdlPropertyId_Wizard);
     if (0 != property) {
-        CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
-        CYG_ASSERTC(0 != ref_prop);
-
-        CdlNode destination = ref_prop->get_destination();
-        if (0 != destination) {
-            CdlWizard wizard = dynamic_cast<CdlWizard>(destination);
-            CYG_ASSERTC(0 != wizard);
-            CYG_UNUSED_PARAM(CdlWizard, wizard);
-            result = true;
-        }
+       CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
+       CYG_ASSERTC(0 != ref_prop);
+
+       CdlNode destination = ref_prop->get_destination();
+       if (0 != destination) {
+           CdlWizard wizard = dynamic_cast<CdlWizard>(destination);
+           CYG_ASSERTC(0 != wizard);
+           CYG_UNUSED_PARAM(CdlWizard, wizard);
+           result = true;
+       }
     }
     CYG_REPORT_RETVAL(result);
     return result;
@@ -1729,14 +1729,14 @@ CdlValuableBody::get_wizard() const
     CdlWizard   result          = 0;
     CdlProperty property        = get_property(CdlPropertyId_Wizard);
     if (0 != property) {
-        CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
-        CYG_ASSERTC(0 != ref_prop);
-
-        CdlNode destination = ref_prop->get_destination();
-        if (0 != destination) {
-            result = dynamic_cast<CdlWizard>(destination);
-            CYG_ASSERTC(0 != result);
-        }
+       CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
+       CYG_ASSERTC(0 != ref_prop);
+
+       CdlNode destination = ref_prop->get_destination();
+       if (0 != destination) {
+           result = dynamic_cast<CdlWizard>(destination);
+           CYG_ASSERTC(0 != result);
+       }
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1744,14 +1744,14 @@ CdlValuableBody::get_wizard() const
 }
 
 //}}}
-//{{{  legal_values property            
+//{{{  legal_values property
 
 // ----------------------------------------------------------------------------
 // Syntax: legal_values <list expression>
 
 void
 CdlValuableBody::legal_values_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                             CdlUpdate change)
+                                            CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("legal_values_update_handler");
 
@@ -1761,8 +1761,8 @@ CdlValuableBody::legal_values_update_handler(CdlTransaction transaction, CdlNode
     // Any other change can affect the list expression and hence
     // invalidate the current value.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     CdlValuable valuable = dynamic_cast<CdlValuable>(source);
@@ -1783,7 +1783,7 @@ CdlValuableBody::parse_legal_values(CdlInterpreter interp, int argc, const char*
     CYG_REPORT_FUNCNAMETYPE("parse_legal_values", "result %d");
 
     int result = CdlParse::parse_listexpression_property(interp, argc, argv, CdlPropertyId_LegalValues, 0, 0,
-                                                         &legal_values_update_handler);
+                                                        &legal_values_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1810,8 +1810,8 @@ CdlValuableBody::get_legal_values() const
     CdlProperty_ListExpression result = 0;
     CdlProperty       property          = get_property(CdlPropertyId_LegalValues);
     if (0 != property) {
-        result = dynamic_cast<CdlProperty_ListExpression>(property);
-        CYG_ASSERTC(0 != result);
+       result = dynamic_cast<CdlProperty_ListExpression>(property);
+       CYG_ASSERTC(0 != result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1819,22 +1819,22 @@ CdlValuableBody::get_legal_values() const
 }
 
 //}}}
-//{{{  default_value property           
+//{{{  default_value property
 
 // ----------------------------------------------------------------------------
 // syntax: default_value <expr>
 
 void
 CdlValuableBody::default_value_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                              CdlUpdate change)
+                                             CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::default_value_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 
     // Loaded and unloading should be ignored.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Init, Created, Destroyed, ValueChange and ActiveChange should
@@ -1844,25 +1844,25 @@ CdlValuableBody::default_value_update_handler(CdlTransaction transaction, CdlNod
     CYG_ASSERTC(0 != valuable);
     CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
     CYG_ASSERTC(0 != expr);
-    
+
     CdlSimpleValue val;
 
     try {
-        
-        CdlEvalContext context(transaction, source, prop);
-        expr->eval(context, val);
 
-        valuable->set(transaction, val, CdlValueSource_Default);
+       CdlEvalContext context(transaction, source, prop);
+       expr->eval(context, val);
+
+       valuable->set(transaction, val, CdlValueSource_Default);
 
     } catch(CdlEvalException e) {
 
-        
-        // An EvalException conflict will have been created, so the
-        // user knows that this default_value is not kosher. It is
-        // still a good idea to make sure that the object retains a
-        // sensible value.
-        val = (cdl_int) 0;
-        valuable->set(transaction, val, CdlValueSource_Default);
+
+       // An EvalException conflict will have been created, so the
+       // user knows that this default_value is not kosher. It is
+       // still a good idea to make sure that the object retains a
+       // sensible value.
+       val = (cdl_int) 0;
+       valuable->set(transaction, val, CdlValueSource_Default);
     }
 
     CYG_UNUSED_PARAM(CdlNode, dest);
@@ -1874,7 +1874,7 @@ CdlValuableBody::parse_default_value(CdlInterpreter interp, int argc, const char
 {
     CYG_REPORT_FUNCNAMETYPE("parse_default_value", "result %d");
     int result = CdlParse::parse_expression_property(interp, argc, argv, CdlPropertyId_DefaultValue, 0, 0,
-                                                     &default_value_update_handler);
+                                                    &default_value_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1901,8 +1901,8 @@ CdlValuableBody::get_default_value_expression() const
     CdlProperty_Expression result = 0;
     CdlProperty property          = get_property(CdlPropertyId_DefaultValue);
     if (0 != property) {
-        result = dynamic_cast<CdlProperty_Expression>(property);
-        CYG_ASSERTC(0 != result);
+       result = dynamic_cast<CdlProperty_Expression>(property);
+       CYG_ASSERTC(0 != result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1910,22 +1910,22 @@ CdlValuableBody::get_default_value_expression() const
 }
 
 //}}}
-//{{{  calculated_property              
+//{{{  calculated_property
 
 // ----------------------------------------------------------------------------
 // Syntax: calculated <expression>
 
 void
 CdlValuableBody::calculated_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                           CdlUpdate change)
+                                          CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::default_value_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 
     // Loaded and unloading should be ignored.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Init, Created, Destroyed, ValueChange and ActiveChange should
@@ -1935,25 +1935,25 @@ CdlValuableBody::calculated_update_handler(CdlTransaction transaction, CdlNode s
     CYG_ASSERTC(0 != valuable);
     CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
     CYG_ASSERTC(0 != expr);
-    
+
     CdlSimpleValue val;
 
     try {
-        
-        CdlEvalContext context(transaction, source, prop);
-        expr->eval(context, val);
 
-        valuable->set(transaction, val, CdlValueSource_Default);
+       CdlEvalContext context(transaction, source, prop);
+       expr->eval(context, val);
+
+       valuable->set(transaction, val, CdlValueSource_Default);
 
     } catch(CdlEvalException e) {
 
-        
-        // An EvalException conflict will have been created, so the
-        // user knows that this default_value is not kosher. It is
-        // still a good idea to make sure that the object retains a
-        // sensible value.
-        val = (cdl_int) 0;
-        valuable->set(transaction, val, CdlValueSource_Default);
+
+       // An EvalException conflict will have been created, so the
+       // user knows that this default_value is not kosher. It is
+       // still a good idea to make sure that the object retains a
+       // sensible value.
+       val = (cdl_int) 0;
+       valuable->set(transaction, val, CdlValueSource_Default);
     }
 
     CYG_UNUSED_PARAM(CdlNode, dest);
@@ -1967,7 +1967,7 @@ CdlValuableBody::parse_calculated(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_calculated", "result %d");
 
     int result = CdlParse::parse_expression_property(interp, argc, argv, CdlPropertyId_Calculated, 0, 0,
-                                                     &calculated_update_handler);
+                                                    &calculated_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1994,8 +1994,8 @@ CdlValuableBody::get_calculated_expression() const
     CdlProperty_Expression result   = 0;
     CdlProperty            property = get_property(CdlPropertyId_Calculated);
     if (0 != property) {
-        result = dynamic_cast<CdlProperty_Expression>(property);
-        CYG_ASSERTC(0 != result);
+       result = dynamic_cast<CdlProperty_Expression>(property);
+       CYG_ASSERTC(0 != result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -2003,7 +2003,7 @@ CdlValuableBody::get_calculated_expression() const
 }
 
 //}}}
-//{{{  active_if property               
+//{{{  active_if property
 
 // ----------------------------------------------------------------------------
 // Syntax:
@@ -2011,7 +2011,7 @@ CdlValuableBody::get_calculated_expression() const
 
 void
 CdlValuableBody::active_if_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                      CdlUpdate change)
+                                     CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::active_if_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
@@ -2022,8 +2022,8 @@ CdlValuableBody::active_if_update_handler(CdlTransaction transaction, CdlNode so
     // Loaded should be ignored here, the world is still getting sorted out.
     // Unloading is of no interest, the source is disappearing anyway.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Any other change warrants re-evaluating the active status of the source.
@@ -2034,9 +2034,9 @@ CdlValuableBody::active_if_update_handler(CdlTransaction transaction, CdlNode so
     bool old_state = transaction->is_active(source);
     bool new_state = source->test_active(transaction);
     if (old_state != new_state) {
-        transaction->set_active(source, new_state);
+       transaction->set_active(source, new_state);
     }
-    
+
     CYG_UNUSED_PARAM(CdlNode, dest);
     CYG_REPORT_RETURN();
 }
@@ -2047,7 +2047,7 @@ CdlValuableBody::parse_active_if(CdlInterpreter interp, int argc, const char* ar
     CYG_REPORT_FUNCNAMETYPE("parse_active_if", "result %d");
 
     int result = CdlParse::parse_goalexpression_property(interp, argc, argv, CdlPropertyId_ActiveIf, 0, 0,
-                                                         &active_if_update_handler);
+                                                        &active_if_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2075,23 +2075,23 @@ CdlValuableBody::get_active_if_conditions(std::vector<CdlProperty_GoalExpression
     get_properties(CdlPropertyId_ActiveIf, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
-        CdlProperty_GoalExpression goal = dynamic_cast<CdlProperty_GoalExpression>(*i);
-        CYG_ASSERTC(0 != goal);
-        result.push_back(goal);
+       CdlProperty_GoalExpression goal = dynamic_cast<CdlProperty_GoalExpression>(*i);
+       CYG_ASSERTC(0 != goal);
+       result.push_back(goal);
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  requires property                
+//{{{  requires property
 
 // ----------------------------------------------------------------------------
 // Syntax: requires <goal expression>
 
 void
 CdlValuableBody::requires_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                         CdlUpdate change)
+                                        CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::requires_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
@@ -2099,10 +2099,10 @@ CdlValuableBody::requires_update_handler(CdlTransaction transaction, CdlNode sou
 
     // Loaded and Unloading are not of interest.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
-    
+
     // Any other change should cause normal handling. This happens in
     // a separate function because "requires" properties also need to
     // be checked when e.g. the source becomes inactive.
@@ -2123,7 +2123,7 @@ CdlValuableBody::parse_requires(CdlInterpreter interp, int argc, const char* arg
     CYG_REPORT_FUNCNAMETYPE("parse_requires", "result %d");
 
     int result = CdlParse::parse_goalexpression_property(interp, argc, argv, CdlPropertyId_Requires, 0, 0,
-                                                         &requires_update_handler);
+                                                        &requires_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2151,23 +2151,23 @@ CdlValuableBody::get_requires_goals(std::vector<CdlProperty_GoalExpression>& res
     get_properties(CdlPropertyId_Requires, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
-        CdlProperty_GoalExpression goal = dynamic_cast<CdlProperty_GoalExpression>(*i);
-        CYG_ASSERTC(0 != goal);
-        result.push_back(goal);
+       CdlProperty_GoalExpression goal = dynamic_cast<CdlProperty_GoalExpression>(*i);
+       CYG_ASSERTC(0 != goal);
+       result.push_back(goal);
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  implements property              
+//{{{  implements property
 
 // ----------------------------------------------------------------------------
 // Syntax: implements <reference to interface>
 
 void
 CdlValuableBody::implements_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                           CdlUpdate change)
+                                          CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::implements_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
@@ -2183,14 +2183,14 @@ CdlValuableBody::implements_update_handler(CdlTransaction transaction, CdlNode s
 
     // Any changes to the interface itself can be ignored.
     if ((CdlUpdate_ValueChange == change) || (CdlUpdate_ActiveChange == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // The second stage init is irrelevant
     if (CdlUpdate_Init == change) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Possibilities:
@@ -2209,24 +2209,24 @@ CdlValuableBody::implements_update_handler(CdlTransaction transaction, CdlNode s
     //
     // If the dest is invalid, a structural conflict has to be created.
     if (CdlUpdate_Destroyed == change) {
-        // There is no need to do any clean-ups in the dest.
-        dest = 0;
+       // There is no need to do any clean-ups in the dest.
+       dest = 0;
     }
     if (0 == dest) {
-        transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
+       transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
     } else {
-        CdlInterface interface = dynamic_cast<CdlInterface>(dest);
-
-        if (0 == interface) {
-            std::string msg = source->get_class_name() + " " + source->get_name() + " cannot implement " +
-                dest->get_name() + "\n    The latter is not an interface.";
-            CdlConflict_DataBody::make(transaction, source, prop, msg);
-        } else {
-            transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
-            interface->recalculate(transaction);
-        }
+       CdlInterface interface = dynamic_cast<CdlInterface>(dest);
+
+       if (0 == interface) {
+           std::string msg = source->get_class_name() + " " + source->get_name() + " cannot implement " +
+               dest->get_name() + "\n    The latter is not an interface.";
+           CdlConflict_DataBody::make(transaction, source, prop, msg);
+       } else {
+           transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
+           interface->recalculate(transaction);
+       }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -2236,8 +2236,8 @@ CdlValuableBody::parse_implements(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_implements", "result %d");
 
     int result = CdlParse::parse_reference_property(interp, argc, argv, CdlPropertyId_Implements, 0, 0, false,
-                                                    &implements_update_handler);
-    
+                                                   &implements_update_handler);
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2253,21 +2253,21 @@ CdlValuableBody::get_implemented_interfaces(std::vector<CdlInterface>& result) c
     get_properties(CdlPropertyId_Implements, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
-        CdlProperty_Reference refprop = dynamic_cast<CdlProperty_Reference>(*i);
-        CYG_ASSERTC(0 != refprop);
-        CdlNode node = refprop->get_destination();
-        if (0 != node) {
-            CdlInterface interface = dynamic_cast<CdlInterface>(node);
-            CYG_ASSERT_CLASSC(interface);
-            result.push_back(interface);
-        }
+       CdlProperty_Reference refprop = dynamic_cast<CdlProperty_Reference>(*i);
+       CYG_ASSERTC(0 != refprop);
+       CdlNode node = refprop->get_destination();
+       if (0 != node) {
+           CdlInterface interface = dynamic_cast<CdlInterface>(node);
+           CYG_ASSERT_CLASSC(interface);
+           result.push_back(interface);
+       }
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Other properties                 
+//{{{  Other properties
 
 // ----------------------------------------------------------------------------
 // Syntax: flavor <legal flavor>
@@ -2278,15 +2278,15 @@ parse_flavor_final_check(CdlInterpreter interp, CdlProperty_String prop)
     CYG_REPORT_FUNCNAME("parse_flavor_final_check");
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION_CLASSC(prop);
-    
+
     const std::string& str = prop->get_string();
     std::string copy = std::string(str);
     CdlValueFlavor flavor;
 
     if (!Cdl::string_to_flavor(copy, flavor)) {
-        CdlParse::report_property_parse_error(interp, prop, str + " is not a valid CDL flavor.");
+       CdlParse::report_property_parse_error(interp, prop, str + " is not a valid CDL flavor.");
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -2309,7 +2309,7 @@ CdlValuableBody::parse_group(CdlInterpreter interp, int argc, const char* argv[]
     CYG_REPORT_FUNCNAMETYPE("parse_group", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Group, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2323,7 +2323,7 @@ CdlValuableBody::parse_check_proc(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_check_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_CheckProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2350,11 +2350,11 @@ CdlValuableBody::get_check_proc() const
     cdl_tcl_code result         = "";
     CdlProperty  property       = get_property(CdlPropertyId_CheckProc);
     if (0 != property) {
-        CdlProperty_TclCode code_prop = dynamic_cast<CdlProperty_TclCode>(property);
-        CYG_ASSERTC(0 != code_prop);
-        result = code_prop->get_code();
+       CdlProperty_TclCode code_prop = dynamic_cast<CdlProperty_TclCode>(property);
+       CYG_ASSERTC(0 != code_prop);
+       result = code_prop->get_code();
     }
-    
+
     CYG_REPORT_RETURN();
     return result;
 }
@@ -2368,7 +2368,7 @@ CdlValuableBody::parse_entry_proc(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_entry_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_EntryProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2394,9 +2394,9 @@ CdlValuableBody::get_entry_proc() const
     cdl_tcl_code result         = "";
     CdlProperty  property       = get_property(CdlPropertyId_EntryProc);
     if (0 != property) {
-        CdlProperty_TclCode code_prop = dynamic_cast<CdlProperty_TclCode>(property);
-        CYG_ASSERTC(0 != code_prop);
-        result = code_prop->get_code();
+       CdlProperty_TclCode code_prop = dynamic_cast<CdlProperty_TclCode>(property);
+       CYG_ASSERTC(0 != code_prop);
+       result = code_prop->get_code();
     }
 
     CYG_REPORT_RETURN();
@@ -2405,7 +2405,7 @@ CdlValuableBody::get_entry_proc() const
 
 //}}}
 
-//{{{  CdlValuable misc                 
+//{{{  CdlValuable misc
 
 // ----------------------------------------------------------------------------
 // Objects with flavor none are not modifiable. Also, objects with the
@@ -2420,9 +2420,9 @@ CdlValuableBody::is_modifiable() const
 
     bool result = true;
     if (CdlValueFlavor_None == get_flavor()) {
-        result = false;
+       result = false;
     } else if (has_property(CdlPropertyId_Calculated)) {
-        result = false;
+       result = false;
     }
 
     CYG_REPORT_RETVAL(result);
@@ -2430,7 +2430,7 @@ CdlValuableBody::is_modifiable() const
 }
 
 //}}}
-//{{{  CdlValuable::get_widget_hint()   
+//{{{  CdlValuable::get_widget_hint()
 
 // ----------------------------------------------------------------------------
 
@@ -2452,219 +2452,219 @@ CdlValuableBody::get_widget_hint(CdlWidgetHint& hint)
     // separate dialog, followed by a tree redisplay
     CdlConstLoadable loadable = dynamic_cast<CdlConstLoadable>(this);
     if (0 != loadable) {
-        hint.value_widget = CdlValueWidget_Loadable;
-        CYG_REPORT_RETURN();
-        return;
+       hint.value_widget = CdlValueWidget_Loadable;
+       CYG_REPORT_RETURN();
+       return;
     }
-    
+
     // If the valuable is not modifiable then we are already done.
     CdlValueFlavor flavor = this->get_flavor();
     if ((CdlValueFlavor_None == flavor) || !this->is_modifiable()) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // If there is a custom dialog and dialogs are enabled, use it.
     if (this->has_dialog() && CdlDialogBody::dialogs_are_enabled()) {
-        if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-            hint.bool_widget = CdlBoolWidget_CustomDialog;
-        }
-        if ((CdlValueFlavor_Data == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-            hint.value_widget = CdlValueWidget_CustomDialog;
-        }
-        CYG_REPORT_RETURN();
-        return;
+       if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
+           hint.bool_widget = CdlBoolWidget_CustomDialog;
+       }
+       if ((CdlValueFlavor_Data == flavor) || (CdlValueFlavor_BoolData == flavor)) {
+           hint.value_widget = CdlValueWidget_CustomDialog;
+       }
+       CYG_REPORT_RETURN();
+       return;
     }
-    
+
     // Process the bool part, if any
     if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-        
-        // Default to a CheckButton
-        hint.bool_widget = CdlBoolWidget_CheckButton;
-
-        // Under some circumstances it is appropriate to use a radio button instead.
-        // This is the case when there are several mutually exclusive entities.
-        // Most of the time radio buttons should actually be handled by a single
-        // option which has a list of legal values. There are a couple of cases
-        // where this is not appropriate:
-        //
-        // 1) grouping. Some of the mutually exclusive entities could be containers.
-        //    With clever use of a single option and some active_if properties it
-        //    would be possible to get almost the same effect, but not quite.
-        //
-        // 2) external packages. It should be possible to have a third party package
-        //    which could add e.g. a new scheduler.
-        //
-        // The implementation of this involves interfaces. Basically mutually
-        // exclusive entities should implement the same interface, and that
-        // interface should have an explicit requires $cdl_value == 1
-        // In addition all of the options involved should have the same parent.
-        // An entity may implement multiple interfaces, so they all have to be checked
-        CdlInterface radio_interface = 0;
-        std::vector<CdlProperty> implements = this->get_properties(CdlPropertyId_Implements);
-        std::vector<CdlProperty>::const_iterator imp_i;
-        for (imp_i = implements.begin(); (imp_i != implements.end()) && (0 == radio_interface); imp_i++) {
-            CdlProperty_Reference refprop = dynamic_cast<CdlProperty_Reference>(*imp_i);
-            CYG_ASSERT_CLASSC(refprop);
-
-            CdlNode destnode = refprop->get_destination();
-            if (0 == destnode) {
-                continue;
-            }
-            CdlInterface interface = dynamic_cast<CdlInterface>(destnode);
-            CYG_ASSERT_CLASSC(interface);
-            std::vector<CdlProperty_GoalExpression> requires;
-            std::vector<CdlProperty_GoalExpression>::const_iterator req_i;
-            interface->get_requires_goals(requires);
-            for (req_i = requires.begin(); req_i != requires.end(); req_i++) {
-
-                CdlExpression expr = (*req_i)->get_expression();
-                CdlSubexpression& subexpr = expr->sub_expressions[expr->first_subexpression];
-                if (CdlExprOp_Equal != subexpr.op) {
-                    continue;
-                }
-                CdlSubexpression& lhs = expr->sub_expressions[subexpr.lhs_index];
-                CdlSubexpression& rhs = expr->sub_expressions[subexpr.rhs_index];
-                CdlSubexpression* ref_operand = &lhs;
-
-                // Allow for "a == 1" or "1 == a"
-                if ((CdlExprOp_IntegerConstant == lhs.op) && (1 == lhs.constants.get_integer_value())) {
-                    ref_operand = &rhs;
-                } else if ((CdlExprOp_IntegerConstant == rhs.op) && (1 == rhs.constants.get_integer_value())) {
-                    ref_operand = &lhs;
-                } else {
-                    continue;
-                }
-
-                if (CdlExprOp_Reference != ref_operand->op) {
-                    continue;
-                }
-                CdlReference& ref = expr->references[ref_operand->reference_index];
-                if (ref.get_destination() == interface) {
-                    break;
-                }
-            }
-            if (req_i == requires.end()) {
-                continue;
-            }
-
-            CdlContainer parent = this->get_parent();
-            CYG_ASSERT_CLASSC(parent);
-            std::vector<CdlValuable> implementers;
-            std::vector<CdlValuable>::const_iterator imp_i;
-            interface->get_implementers(implementers);
-            for (imp_i = implementers.begin(); imp_i != implementers.end(); imp_i++) {
-                if (parent != (*imp_i)->get_parent()) {
-                    break;
-                }
-            }
-
-            if (imp_i == implementers.end()) {
-                // An interface has been found that matches the constraints.
-                radio_interface = interface;
-            }
-        }
-        if (0 != radio_interface) {
-            hint.bool_widget = CdlBoolWidget_Radio;
-            hint.radio_button_interface = radio_interface->get_name();
-        }
+
+       // Default to a CheckButton
+       hint.bool_widget = CdlBoolWidget_CheckButton;
+
+       // Under some circumstances it is appropriate to use a radio button instead.
+       // This is the case when there are several mutually exclusive entities.
+       // Most of the time radio buttons should actually be handled by a single
+       // option which has a list of legal values. There are a couple of cases
+       // where this is not appropriate:
+       //
+       // 1) grouping. Some of the mutually exclusive entities could be containers.
+       //    With clever use of a single option and some active_if properties it
+       //    would be possible to get almost the same effect, but not quite.
+       //
+       // 2) external packages. It should be possible to have a third party package
+       //    which could add e.g. a new scheduler.
+       //
+       // The implementation of this involves interfaces. Basically mutually
+       // exclusive entities should implement the same interface, and that
+       // interface should have an explicit requires $cdl_value == 1
+       // In addition all of the options involved should have the same parent.
+       // An entity may implement multiple interfaces, so they all have to be checked
+       CdlInterface radio_interface = 0;
+       std::vector<CdlProperty> implements = this->get_properties(CdlPropertyId_Implements);
+       std::vector<CdlProperty>::const_iterator imp_i;
+       for (imp_i = implements.begin(); (imp_i != implements.end()) && (0 == radio_interface); imp_i++) {
+           CdlProperty_Reference refprop = dynamic_cast<CdlProperty_Reference>(*imp_i);
+           CYG_ASSERT_CLASSC(refprop);
+
+           CdlNode destnode = refprop->get_destination();
+           if (0 == destnode) {
+               continue;
+           }
+           CdlInterface interface = dynamic_cast<CdlInterface>(destnode);
+           CYG_ASSERT_CLASSC(interface);
+
+           std::vector<CdlProperty_GoalExpression> requires;
+           std::vector<CdlProperty_GoalExpression>::const_iterator req_i;
+           interface->get_requires_goals(requires);
+           for (req_i = requires.begin(); req_i != requires.end(); req_i++) {
+
+               CdlExpression expr = (*req_i)->get_expression();
+               CdlSubexpression& subexpr = expr->sub_expressions[expr->first_subexpression];
+               if (CdlExprOp_Equal != subexpr.op) {
+                   continue;
+               }
+
+               CdlSubexpression& lhs = expr->sub_expressions[subexpr.lhs_index];
+               CdlSubexpression& rhs = expr->sub_expressions[subexpr.rhs_index];
+               CdlSubexpression* ref_operand = &lhs;
+
+               // Allow for "a == 1" or "1 == a"
+               if ((CdlExprOp_IntegerConstant == lhs.op) && (1 == lhs.constants.get_integer_value())) {
+                   ref_operand = &rhs;
+               } else if ((CdlExprOp_IntegerConstant == rhs.op) && (1 == rhs.constants.get_integer_value())) {
+                   ref_operand = &lhs;
+               } else {
+                   continue;
+               }
+
+               if (CdlExprOp_Reference != ref_operand->op) {
+                   continue;
+               }
+               CdlReference& ref = expr->references[ref_operand->reference_index];
+               if (ref.get_destination() == interface) {
+                   break;
+               }
+           }
+           if (req_i == requires.end()) {
+               continue;
+           }
+
+           CdlContainer parent = this->get_parent();
+           CYG_ASSERT_CLASSC(parent);
+
+           std::vector<CdlValuable> implementers;
+           std::vector<CdlValuable>::const_iterator imp_i;
+           interface->get_implementers(implementers);
+           for (imp_i = implementers.begin(); imp_i != implementers.end(); imp_i++) {
+               if (parent != (*imp_i)->get_parent()) {
+                   break;
+               }
+           }
+
+           if (imp_i == implementers.end()) {
+               // An interface has been found that matches the constraints.
+               radio_interface = interface;
+           }
+       }
+       if (0 != radio_interface) {
+           hint.bool_widget = CdlBoolWidget_Radio;
+           hint.radio_button_interface = radio_interface->get_name();
+       }
     }
 
     // Process the data part, if any
     if ((CdlValueFlavor_Data == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-        
-        // Default to a simple entry box.
-        hint.value_widget = CdlValueWidget_EntryBox;
-        
-        // If there is a legal_values list, this will normally indicate
-        // which widget should be used.
-        if (this->has_legal_values()) {
-            // The legal_values expression needs to be evaluated and examined.
-            // If the result is a simple numerical range then all we need to
-            // figure out is whether to default to decimal, hex, octal or double.
-            // Otherwise if the result is a simple list and all of the entries
-            // are numerical, that is sufficient information. If a list with
-            // non-numerical entries that is fine as well. Anything more complicated
-            // needs to revert to an entry box.
-            CdlProperty_ListExpression lexpr = this->get_legal_values();
-            CdlEvalContext             context(0, this, lexpr);
-            CdlListValue               val;
-
-            try {
-                lexpr->eval(context, val);
-                const std::vector<CdlSimpleValue>& table = val.get_table();
-                const std::vector<std::pair<cdl_int, cdl_int> >& int_ranges = val.get_integer_ranges();
-                const std::vector<std::pair<double, double> >&   double_ranges = val.get_double_ranges();
-                
-                if ((0 == table.size()) && (0 == int_ranges.size()) && (1 == double_ranges.size())) {
-                    
-                    // A straightforward range of double precision numbers
-                    hint.value_widget = CdlValueWidget_DoubleRange;
-                    
-                } else if ((0 == table.size()) && (1 == int_ranges.size()) && (0 == double_ranges.size())) {
-
-                    // Bummer. The formatting information has been lost.
-                    // To fix this the two sets of ranges should be collapsed into pairs of
-                    // CdlSimpleValue's.
-                    hint.value_widget = CdlValueWidget_DecimalRange;
-                    
-                } else if ((1 <= table.size() && (0 == int_ranges.size()) && (0 == double_ranges.size()))) {
-
-                    // If all of the values are numerical, then we have a numeric set.
-                    // Otherwise we have a string set.
-                    bool all_numeric = true;
-                    std::vector<CdlSimpleValue>::const_iterator tab_i;
-                    for (tab_i = table.begin(); (tab_i != table.end()) && all_numeric; tab_i++) {
-                        if (!tab_i->has_double_value() && !tab_i->has_integer_value()) {
-                            all_numeric = false;
-                        }
-                    }
-                    if (all_numeric) {
-                        hint.value_widget = CdlValueWidget_NumericSet;
-                    } else {
-                        hint.value_widget = CdlValueWidget_StringSet;
-                    }
-                    
-                } else {
-                    // The list expression is a complex combination. Leave it as an entry box.
-                    // In some cases it would be possible to do better, for example
-                    //     legal_values -1 1 to 4 8 to 12
-                    // Support for cases like these may get added in future, if such cases
-                    // ever arise in practice.
-                }
-                
-            } catch(...) {
-                // Not a lot that can be done here, unfortunately
-            }
-        } else {
-            // There is no legal_values property, so an entry box is probably the
-            // right thing to use. There is a special case for multiline strings,
-            // identified by a default_value expression that contains a newline.
-            if (this->has_default_value_expression()) {
-                CdlProperty_Expression expr = this->get_default_value_expression();
-                CdlEvalContext         context(0, this, expr);
-                CdlSimpleValue         val;
-                try {
-                    expr->eval(context, val);
-                    std::string tmp = val.get_value();
-                    if (std::string::npos != tmp.find('\n')) {
-                        hint.value_widget = CdlValueWidget_MultilineString;
-                    }
-                } catch(...) {
-                    // Not a lot that can be done here, unfortunately
-                }
-            }
-        }
+
+       // Default to a simple entry box.
+       hint.value_widget = CdlValueWidget_EntryBox;
+
+       // If there is a legal_values list, this will normally indicate
+       // which widget should be used.
+       if (this->has_legal_values()) {
+           // The legal_values expression needs to be evaluated and examined.
+           // If the result is a simple numerical range then all we need to
+           // figure out is whether to default to decimal, hex, octal or double.
+           // Otherwise if the result is a simple list and all of the entries
+           // are numerical, that is sufficient information. If a list with
+           // non-numerical entries that is fine as well. Anything more complicated
+           // needs to revert to an entry box.
+           CdlProperty_ListExpression lexpr = this->get_legal_values();
+           CdlEvalContext             context(0, this, lexpr);
+           CdlListValue               val;
+
+           try {
+               lexpr->eval(context, val);
+               const std::vector<CdlSimpleValue>& table = val.get_table();
+               const std::vector<std::pair<cdl_int, cdl_int> >& int_ranges = val.get_integer_ranges();
+               const std::vector<std::pair<double, double> >&   double_ranges = val.get_double_ranges();
+
+               if ((0 == table.size()) && (0 == int_ranges.size()) && (1 == double_ranges.size())) {
+
+                   // A straightforward range of double precision numbers
+                   hint.value_widget = CdlValueWidget_DoubleRange;
+
+               } else if ((0 == table.size()) && (1 == int_ranges.size()) && (0 == double_ranges.size())) {
+
+                   // Bummer. The formatting information has been lost.
+                   // To fix this the two sets of ranges should be collapsed into pairs of
+                   // CdlSimpleValue's.
+                   hint.value_widget = CdlValueWidget_DecimalRange;
+
+               } else if ((1 <= table.size() && (0 == int_ranges.size()) && (0 == double_ranges.size()))) {
+
+                   // If all of the values are numerical, then we have a numeric set.
+                   // Otherwise we have a string set.
+                   bool all_numeric = true;
+                   std::vector<CdlSimpleValue>::const_iterator tab_i;
+                   for (tab_i = table.begin(); (tab_i != table.end()) && all_numeric; tab_i++) {
+                       if (!tab_i->has_double_value() && !tab_i->has_integer_value()) {
+                           all_numeric = false;
+                       }
+                   }
+                   if (all_numeric) {
+                       hint.value_widget = CdlValueWidget_NumericSet;
+                   } else {
+                       hint.value_widget = CdlValueWidget_StringSet;
+                   }
+
+               } else {
+                   // The list expression is a complex combination. Leave it as an entry box.
+                   // In some cases it would be possible to do better, for example
+                   //     legal_values -1 1 to 4 8 to 12
+                   // Support for cases like these may get added in future, if such cases
+                   // ever arise in practice.
+               }
+
+           } catch(...) {
+               // Not a lot that can be done here, unfortunately
+           }
+       } else {
+           // There is no legal_values property, so an entry box is probably the
+           // right thing to use. There is a special case for multiline strings,
+           // identified by a default_value expression that contains a newline.
+           if (this->has_default_value_expression()) {
+               CdlProperty_Expression expr = this->get_default_value_expression();
+               CdlEvalContext         context(0, this, expr);
+               CdlSimpleValue         val;
+               try {
+                   expr->eval(context, val);
+                   std::string tmp = val.get_value();
+                   if (std::string::npos != tmp.find('\n')) {
+                       hint.value_widget = CdlValueWidget_MultilineString;
+                   }
+               } catch(...) {
+                   // Not a lot that can be done here, unfortunately
+               }
+           }
+       }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlValuable get operations       
+//{{{  CdlValuable get operations
 
 // ----------------------------------------------------------------------------
 const CdlValue&
@@ -2926,7 +2926,7 @@ CdlValuableBody::get_simple_value(CdlTransaction transaction, CdlValueSource sou
 }
 
 //}}}
-//{{{  CdlValuable internal modify ops  
+//{{{  CdlValuable internal modify ops
 
 // ----------------------------------------------------------------------------
 // There has been a change to either the value itself or to the
@@ -2944,46 +2944,46 @@ CdlValuableBody::check_value(CdlTransaction transaction)
     // values.
     CdlValueFlavor flavor = value.get_flavor();
     if ((CdlValueFlavor_BoolData != flavor) && (CdlValueFlavor_Data != flavor)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // If the valuable is not currently active and enabled then it
     // does not matter whether or not the value is legal. Any old
     // conflicts should be destroyed.
     if (!(transaction->is_active(this) && this->is_enabled(transaction))) {
-        transaction->clear_conflicts(this, &CdlConflict_IllegalValueBody::test);
-        CYG_REPORT_RETURN();
-        return;
+       transaction->clear_conflicts(this, &CdlConflict_IllegalValueBody::test);
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // If there is a legal_values property, check membership.
     if (this->has_property(CdlPropertyId_LegalValues)) {
-        CdlProperty_ListExpression lexpr = dynamic_cast<CdlProperty_ListExpression>(get_property(CdlPropertyId_LegalValues));
-        CYG_ASSERT_CLASSC(lexpr);
-
-        CdlSimpleValue val = this->get_simple_value(transaction);
-        CdlEvalContext context(transaction, this, lexpr);
-        try {
-            if (!lexpr->is_member(context, val)) {
-                if (!transaction->has_conflict(this, lexpr, &CdlConflict_IllegalValueBody::test)) {
-                    CdlConflict_IllegalValueBody::make(transaction, this, lexpr);
-                }
-            
-            } else {
-                // Tne current value is legal. Get rid of any old conflicts.
-                transaction->clear_conflicts(this, lexpr, &CdlConflict_IllegalValueBody::test);
-            }
-        } catch(CdlEvalException e) {
-            // There should now be an EvalException conflict for this
-            // node, so there is no point in having an IllegalValue conflict
-            // as well.
-            transaction->clear_conflicts(this, lexpr, &CdlConflict_IllegalValueBody::test);
-        }              
-
-        // FIXME: add support for check_proc
+       CdlProperty_ListExpression lexpr = dynamic_cast<CdlProperty_ListExpression>(get_property(CdlPropertyId_LegalValues));
+       CYG_ASSERT_CLASSC(lexpr);
+
+       CdlSimpleValue val = this->get_simple_value(transaction);
+       CdlEvalContext context(transaction, this, lexpr);
+       try {
+           if (!lexpr->is_member(context, val)) {
+               if (!transaction->has_conflict(this, lexpr, &CdlConflict_IllegalValueBody::test)) {
+                   CdlConflict_IllegalValueBody::make(transaction, this, lexpr);
+               }
+
+           } else {
+               // Tne current value is legal. Get rid of any old conflicts.
+               transaction->clear_conflicts(this, lexpr, &CdlConflict_IllegalValueBody::test);
+           }
+       } catch(CdlEvalException e) {
+           // There should now be an EvalException conflict for this
+           // node, so there is no point in having an IllegalValue conflict
+           // as well.
+           transaction->clear_conflicts(this, lexpr, &CdlConflict_IllegalValueBody::test);
+       }
+
+       // FIXME: add support for check_proc
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3004,9 +3004,9 @@ CdlValuableBody::check_requires(CdlTransaction transaction)
     get_properties(CdlPropertyId_Requires, requires_properties);
     for (prop_i = requires_properties.begin(); prop_i != requires_properties.end(); prop_i++) {
 
-        CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(*prop_i);
-        CYG_ASSERT_CLASSC(gexpr);
-        this->check_requires(transaction, gexpr);
+       CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(*prop_i);
+       CYG_ASSERT_CLASSC(gexpr);
+       this->check_requires(transaction, gexpr);
     }
 
     CYG_REPORT_RETURN();
@@ -3024,29 +3024,29 @@ CdlValuableBody::check_requires(CdlTransaction transaction, CdlProperty_GoalExpr
     // If the valuable is not currently active and enabled then the "requires"
     // properties are irrelevant, and any old conflicts should be destroyed.
     if (!transaction->is_active(this) || !this->is_enabled(transaction)) {
-        transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
-        CYG_REPORT_RETURN();
-        return;
+       transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // What is the current value of the goal expression?
     try {
-        CdlEvalContext context(transaction, this, gexpr);
-        if (gexpr->eval(context)) {
-            // The goal is satisfied.
-            transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
-        } else {
-            // The goal is not satisfied. Make sure there is a conflict object.
-            if (!transaction->has_conflict(this, gexpr, &CdlConflict_RequiresBody::test)) {
-                CdlConflict_RequiresBody::make(transaction, this, gexpr);
-            }
-        }
+       CdlEvalContext context(transaction, this, gexpr);
+       if (gexpr->eval(context)) {
+           // The goal is satisfied.
+           transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
+       } else {
+           // The goal is not satisfied. Make sure there is a conflict object.
+           if (!transaction->has_conflict(this, gexpr, &CdlConflict_RequiresBody::test)) {
+               CdlConflict_RequiresBody::make(transaction, this, gexpr);
+           }
+       }
     } catch(CdlEvalException e) {
-        // There should now be an EvalException conflict associated with this node,
-        // having a requires conflict as well serves no purpose
-        transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
+       // There should now be an EvalException conflict associated with this node,
+       // having a requires conflict as well serves no purpose
+       transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3063,10 +3063,10 @@ CdlValuableBody::update(CdlTransaction transaction, CdlUpdate update)
     CYG_PRECONDITION_CLASSC(transaction);
 
     if ((CdlUpdate_ValueChange == update) || (CdlUpdate_ActiveChange == update)) {
-        this->check_value(transaction);
-        this->check_requires(transaction);
+       this->check_value(transaction);
+       this->check_requires(transaction);
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3085,31 +3085,31 @@ CdlValuableBody::test_active(CdlTransaction transaction)
 
     bool result = true;
     if (!this->CdlNodeBody::test_active(transaction)) {
-        result = false;
+       result = false;
     }
 
     if (result) {
-        std::vector<CdlProperty> active_if_properties;
-        std::vector<CdlProperty>::const_iterator prop_i;
-        
-        this->get_properties(CdlPropertyId_ActiveIf, active_if_properties);
-        for (prop_i = active_if_properties.begin(); result && (prop_i != active_if_properties.end()); prop_i++) {
-            
-            CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(*prop_i);
-            CYG_ASSERT_CLASSC(gexpr);
-            CdlEvalContext context(transaction, this, gexpr);
-            try {
-                if (!gexpr->eval(context)) {
-                    result = false;
-                }
-            } catch(CdlEvalException e) {
-                // Hmmm, an active_if property cannot be evaluated.
-                // Tricky. If the node is inactive then its conflicts
-                // are ignored, which would be a bad thing. For now
-                // assume that the node is active, unless it was already
-                // inactive for other reasons.
-            }
-        }
+       std::vector<CdlProperty> active_if_properties;
+       std::vector<CdlProperty>::const_iterator prop_i;
+
+       this->get_properties(CdlPropertyId_ActiveIf, active_if_properties);
+       for (prop_i = active_if_properties.begin(); result && (prop_i != active_if_properties.end()); prop_i++) {
+
+           CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(*prop_i);
+           CYG_ASSERT_CLASSC(gexpr);
+           CdlEvalContext context(transaction, this, gexpr);
+           try {
+               if (!gexpr->eval(context)) {
+                   result = false;
+               }
+           } catch(CdlEvalException e) {
+               // Hmmm, an active_if property cannot be evaluated.
+               // Tricky. If the node is inactive then its conflicts
+               // are ignored, which would be a bad thing. For now
+               // assume that the node is active, unless it was already
+               // inactive for other reasons.
+           }
+       }
     }
 
     CYG_REPORT_RETVAL(result);
@@ -3117,7 +3117,7 @@ CdlValuableBody::test_active(CdlTransaction transaction)
 }
 
 //}}}
-//{{{  CdlValuable modify operations    
+//{{{  CdlValuable modify operations
 
 // ----------------------------------------------------------------------------
 // Start with the non-transaction versions. These allocate a new transaction,
@@ -3130,7 +3130,7 @@ CdlValuableBody::set_source(CdlValueSource source)
     CYG_REPORT_FUNCNAME("CdlValuable::set_source (no transaction)");
     CYG_REPORT_FUNCARG2XV(this, source);
     CYG_PRECONDITION_THISC();
-    
+
     CdlTransaction transaction = CdlTransactionBody::make(get_toplevel());
     this->set_source(transaction, source);
     transaction->body();
@@ -3160,7 +3160,7 @@ CdlValuableBody::set_enabled(bool val, CdlValueSource source)
     CYG_REPORT_FUNCNAME("CdlValuable::set_enabled (no transaction)");
     CYG_REPORT_FUNCARG3XV(this, val, source);
     CYG_PRECONDITION_THISC();
-    
+
     CdlTransaction transaction = CdlTransactionBody::make(get_toplevel());
     this->set_enabled(transaction, val, source);
     transaction->body();
@@ -3234,7 +3234,7 @@ CdlValuableBody::set_source(CdlTransaction transaction, CdlValueSource source)
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_source(source);
@@ -3250,12 +3250,12 @@ CdlValuableBody::invalidate_source(CdlTransaction transaction, CdlValueSource so
     CYG_REPORT_FUNCARG3XV(this, transaction, source);
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.invalidate_source(source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3272,7 +3272,7 @@ CdlValuableBody::set_enabled(CdlTransaction transaction, bool enabled_arg, CdlVa
     CdlValue        new_value = old_value;
     new_value.set_enabled(enabled_arg, source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3284,30 +3284,30 @@ CdlValuableBody::set_value(CdlTransaction transaction, CdlSimpleValue& val, CdlV
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_value(val, source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
 void
 CdlValuableBody::set_enabled_and_value(CdlTransaction transaction, bool enabled_arg, CdlSimpleValue& val,
-                                       CdlValueSource source)
+                                      CdlValueSource source)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::set_enabled");
     CYG_REPORT_FUNCARG3XV(this, transaction, source);
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_enabled_and_value(enabled_arg, val, source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3319,12 +3319,12 @@ CdlValuableBody::set(CdlTransaction transaction, CdlSimpleValue& val, CdlValueSo
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set(val, source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3335,7 +3335,7 @@ CdlValuableBody::set(CdlTransaction transaction, const CdlValue& val)
     CYG_REPORT_FUNCARG2XV(this, transaction);
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = val;
     transaction->set_whole_value(this, old_value, new_value);
@@ -3344,7 +3344,7 @@ CdlValuableBody::set(CdlTransaction transaction, const CdlValue& val)
 }
 
 //}}}
-//{{{  CdlValuable basics               
+//{{{  CdlValuable basics
 
 // ----------------------------------------------------------------------------
 // The CdlValuable class implements the concept of CDL objects that take
@@ -3358,7 +3358,7 @@ CdlValuableBody::CdlValuableBody(CdlValueFlavor flavor)
 
     cdlvaluablebody_cookie = CdlValuableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -3371,7 +3371,7 @@ CdlValuableBody::~CdlValuableBody()
 
     cdlvaluablebody_cookie = CdlValuableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3391,20 +3391,20 @@ bool
 CdlValuableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlValuableBody_Magic != cdlvaluablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     if (has_property(CdlPropertyId_Calculated) && (CdlValueSource_Default != value.get_source())) {
-        CYG_FAIL("Calculated valuables can only have a default value.");
-        return false;
+       CYG_FAIL("Calculated valuables can only have a default value.");
+       return false;
     }
-    
+
     return CdlNodeBody::check_this(zeal) && value.check_this(zeal);
 }
 
 //}}}
-//{{{  CdlValuable parsing support      
+//{{{  CdlValuable parsing support
 
 // ----------------------------------------------------------------------------
 // Parsing support. Adding the appropriate parsers is straightforward.
@@ -3416,37 +3416,37 @@ CdlValuableBody::add_property_parsers(std::vector<CdlInterpreterCommandEntry>& p
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("active_if",          &parse_active_if    ),
-        CdlInterpreterCommandEntry("calculated",         &parse_calculated   ),
-        CdlInterpreterCommandEntry("check_proc",         &parse_check_proc   ),
-        CdlInterpreterCommandEntry("default_value",      &parse_default_value),
-        CdlInterpreterCommandEntry("dialog",             &parse_dialog       ),
-        CdlInterpreterCommandEntry("entry_proc",         &parse_entry_proc   ),
-        CdlInterpreterCommandEntry("flavor",             &parse_flavor       ),
-        CdlInterpreterCommandEntry("group",              &parse_group        ),
-        CdlInterpreterCommandEntry("implements",         &parse_implements   ),
-        CdlInterpreterCommandEntry("legal_values",       &parse_legal_values ),
-        CdlInterpreterCommandEntry("requires",           &parse_requires     ),
-        CdlInterpreterCommandEntry("wizard",             &parse_wizard       ),
-        CdlInterpreterCommandEntry("",                   0                   )
+       CdlInterpreterCommandEntry("active_if",          &parse_active_if    ),
+       CdlInterpreterCommandEntry("calculated",         &parse_calculated   ),
+       CdlInterpreterCommandEntry("check_proc",         &parse_check_proc   ),
+       CdlInterpreterCommandEntry("default_value",      &parse_default_value),
+       CdlInterpreterCommandEntry("dialog",             &parse_dialog       ),
+       CdlInterpreterCommandEntry("entry_proc",         &parse_entry_proc   ),
+       CdlInterpreterCommandEntry("flavor",             &parse_flavor       ),
+       CdlInterpreterCommandEntry("group",              &parse_group        ),
+       CdlInterpreterCommandEntry("implements",         &parse_implements   ),
+       CdlInterpreterCommandEntry("legal_values",       &parse_legal_values ),
+       CdlInterpreterCommandEntry("requires",           &parse_requires     ),
+       CdlInterpreterCommandEntry("wizard",             &parse_wizard       ),
+       CdlInterpreterCommandEntry("",                   0                   )
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
     }
     CdlNodeBody::add_property_parsers(parsers);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3466,49 +3466,49 @@ CdlValuableBody::check_properties(CdlInterpreter interp)
     //       This could prove useful if there are a sensible number
     //       of library check_proc's.
     if (count_properties(CdlPropertyId_Flavor) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one flavor property.");
+       CdlParse::report_error(interp, "", "There should be at most one flavor property.");
     }
     if (count_properties(CdlPropertyId_EntryProc) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one entry_proc property.");
+       CdlParse::report_error(interp, "", "There should be at most one entry_proc property.");
     }
     if (count_properties(CdlPropertyId_CheckProc) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one check_proc property.");
+       CdlParse::report_error(interp, "", "There should be at most one check_proc property.");
     }
     if (count_properties(CdlPropertyId_DefaultValue) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one default_value property.");
+       CdlParse::report_error(interp, "", "There should be at most one default_value property.");
     }
     if (count_properties(CdlPropertyId_LegalValues) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one legal_values property.");
+       CdlParse::report_error(interp, "", "There should be at most one legal_values property.");
     }
     if (count_properties(CdlPropertyId_Dialog) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one dialog property.");
+       CdlParse::report_error(interp, "", "There should be at most one dialog property.");
     }
     if (count_properties(CdlPropertyId_Wizard) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one wizard property.");
+       CdlParse::report_error(interp, "", "There should be at most one wizard property.");
     }
     if (count_properties(CdlPropertyId_Calculated) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one calculated property.");
+       CdlParse::report_error(interp, "", "There should be at most one calculated property.");
     }
 
     // If there is a flavor property, update the flavor in the base class
     if (has_property(CdlPropertyId_Flavor)) {
-        CdlProperty_String flavor_property = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Flavor));
-        CYG_ASSERTC(0 != flavor_property);
-        
-        std::string flavor_string = flavor_property->get_string();
-        CdlValueFlavor flavor;
-        // The property parsing code should have caught any problems already.
-        if (!Cdl::string_to_flavor(flavor_string, flavor)) {
-            CdlParse::report_error(interp, "", "Invalid flavor " + flavor_string);
-        } else {
-            value.set_flavor(flavor);
-        }
-
-        // If the flavor is "none" then the entity is not modifiable,
-        // and most of the properties do not make sense. However this
-        // is not enforced at parse-time: temporarily switching to
-        // flavor none may make sense during debugging.
-        // FIXME: no longer correct
+       CdlProperty_String flavor_property = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Flavor));
+       CYG_ASSERTC(0 != flavor_property);
+
+       std::string flavor_string = flavor_property->get_string();
+       CdlValueFlavor flavor;
+       // The property parsing code should have caught any problems already.
+       if (!Cdl::string_to_flavor(flavor_string, flavor)) {
+           CdlParse::report_error(interp, "", "Invalid flavor " + flavor_string);
+       } else {
+           value.set_flavor(flavor);
+       }
+
+       // If the flavor is "none" then the entity is not modifiable,
+       // and most of the properties do not make sense. However this
+       // is not enforced at parse-time: temporarily switching to
+       // flavor none may make sense during debugging.
+       // FIXME: no longer correct
     }
 
     // For boolean entities legal_values does not make much sense.
@@ -3519,14 +3519,14 @@ CdlValuableBody::check_properties(CdlInterpreter interp)
     // check_proc is allowed, this can be used to check programatically
     // that the current value is legal.
     if (CdlValueFlavor_Bool == get_flavor()) {
-        if (has_property(CdlPropertyId_LegalValues)) {
-            CdlParse::report_error(interp, "", "The \"legal_values\" property is not applicable to boolean entities."); 
-        }
+       if (has_property(CdlPropertyId_LegalValues)) {
+           CdlParse::report_error(interp, "", "The \"legal_values\" property is not applicable to boolean entities.");
+       }
     }
 
     // default_value and calculated are mutually exclusive
     if (has_property(CdlPropertyId_Calculated) && has_property(CdlPropertyId_DefaultValue)) {
-        CdlParse::report_error(interp, "", "The properties \"default_value\" and \"calculated\" cannot be used together.");
+       CdlParse::report_error(interp, "", "The properties \"default_value\" and \"calculated\" cannot be used together.");
     }
 
 #if 0
@@ -3535,20 +3535,20 @@ CdlValuableBody::check_properties(CdlInterpreter interp)
     // a text entry widget will be used and an entry_proc may well be
     // applicable.
     if (has_property(CdlPropertyId_Dialog) && has_property(CdlPropertyId_EntryProc)) {
-        CdlParse::report_error(interp, "", "The properties \"dialog\" and \"entry_proc\" cannot be used together.");
+       CdlParse::report_error(interp, "", "The properties \"dialog\" and \"entry_proc\" cannot be used together.");
     }
-#endif    
+#endif
 
     // All of the expressions may be invalid because of unresolved references,
-    // ditto for implements and for dialog. 
-    
+    // ditto for implements and for dialog.
+
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlValuable persistence support  
+//{{{  CdlValuable persistence support
 
 // ----------------------------------------------------------------------------
 void
@@ -3580,14 +3580,14 @@ CdlValuableBody::value_savefile_entry_needed() const
     bool result = false;
 
     if (this->is_modifiable()) {
-        if (this->has_source(CdlValueSource_User) ||
-            this->has_source(CdlValueSource_Wizard) ||
-            this->has_source(CdlValueSource_Inferred)) {
+       if (this->has_source(CdlValueSource_User) ||
+           this->has_source(CdlValueSource_Wizard) ||
+           this->has_source(CdlValueSource_Inferred)) {
 
-            result = true;
-        }
+           result = true;
+       }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -3604,21 +3604,21 @@ value_to_string(CdlValuable valuable, CdlValueSource source)
     CYG_REPORT_FUNCNAME("value_to_string");
 
     std::string data = "";
-    
+
     switch(valuable->get_flavor()) {
       case CdlValueFlavor_Bool :
-        data += (valuable->is_enabled(source) ? one : zero);
-        break;
+       data += (valuable->is_enabled(source) ? one : zero);
+       break;
       case CdlValueFlavor_BoolData :
-        data += (valuable->is_enabled(source) ? one : zero) + " " +
-            CdlInterpreterBody::quote(valuable->get_value(source));
-        break;
+       data += (valuable->is_enabled(source) ? one : zero) + " " +
+           CdlInterpreterBody::quote(valuable->get_value(source));
+       break;
       case CdlValueFlavor_Data:
-        data += CdlInterpreterBody::quote(valuable->get_value(source));
-        break;
+       data += CdlInterpreterBody::quote(valuable->get_value(source));
+       break;
       default:
-        CYG_FAIL("Invalid value flavor detected");
-        break;
+       CYG_FAIL("Invalid value flavor detected");
+       break;
     }
     return data;
 }
@@ -3632,13 +3632,13 @@ get_expected_source(CdlValuable valuable)
     CYG_REPORT_FUNCARG1XV(valuable);
 
     CdlValueSource expected_source = CdlValueSource_Default;
-        
+
     if (valuable->has_source(CdlValueSource_User)) {
-        expected_source = CdlValueSource_User;
+       expected_source = CdlValueSource_User;
     } else if (valuable->has_source(CdlValueSource_Wizard)) {
-        expected_source = CdlValueSource_Wizard;
+       expected_source = CdlValueSource_Wizard;
     } else if (valuable->has_source(CdlValueSource_Inferred)) {
-        expected_source = CdlValueSource_Inferred;
+       expected_source = CdlValueSource_Inferred;
     }
 
     CYG_REPORT_RETVAL((int) expected_source);
@@ -3668,25 +3668,25 @@ follow_expr_references(CdlProperty property, CdlExpression expr)
     std::string    data = "";
     CdlSimpleValue simple_value;
     std::vector<CdlReference>::const_iterator ref_i;
-    
+
     for (ref_i = expr->references.begin(); ref_i != expr->references.end(); ref_i++) {
-        const std::string& refname = ref_i->get_destination_name();
-        CdlNode refnode = ref_i->get_destination();
-        CdlValuable refvaluable = 0;
-        if (0 != refnode) {
-            refvaluable = dynamic_cast<CdlValuable>(refnode);
-        }
-        data += refname + " ";
-        if (0 == refvaluable) {
-            data += "(unknown) == 0";
-        } else {
-            CdlEvalContext context(0, refvaluable, property);
-            CdlSimpleValue::eval_valuable(context, refvaluable, simple_value);
-            data += "== " + CdlInterpreterBody::quote(simple_value.get_value());
-        }
-        data += '\n';
+       const std::string& refname = ref_i->get_destination_name();
+       CdlNode refnode = ref_i->get_destination();
+       CdlValuable refvaluable = 0;
+       if (0 != refnode) {
+           refvaluable = dynamic_cast<CdlValuable>(refnode);
+       }
+       data += refname + " ";
+       if (0 == refvaluable) {
+           data += "(unknown) == 0";
+       } else {
+           CdlEvalContext context(0, refvaluable, property);
+           CdlSimpleValue::eval_valuable(context, refvaluable, simple_value);
+           data += "== " + CdlInterpreterBody::quote(simple_value.get_value());
+       }
+       data += '\n';
     }
-    
+
     CYG_REPORT_RETURN();
     return data;
 }
@@ -3694,7 +3694,7 @@ follow_expr_references(CdlProperty property, CdlExpression expr)
 // ----------------------------------------------------------------------------
 
 void
-CdlValuableBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bool modifiable, bool minimal)
+CdlValuableBody::_save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bool modifiable, bool minimal)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::save");
     CYG_REPORT_FUNCARG5XV(this, interp, chan, indentation, minimal);
@@ -3714,274 +3714,271 @@ CdlValuableBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation,
     // but the alternative is an awful lot of "if (minimal)" tests
     // in the main code.
     if (minimal) {
-        
-        if (modifiable) {
-            if (this->has_source(CdlValueSource_User)) {
-                data += indent_string + "user_value " + value_to_string(this, CdlValueSource_User) + "\n";
-            }
-            if (this->has_source(CdlValueSource_Wizard)) {
-                data += indent_string + "wizard_value " + value_to_string(this, CdlValueSource_Wizard) + "\n";
-            }
-            if (this->has_source(CdlValueSource_Inferred)) {
-                data += indent_string + "inferred_value " + value_to_string(this, CdlValueSource_Inferred) + "\n";
-            }
-            CdlValueSource expected_source = get_expected_source(this);
-            if (expected_source != this->get_source()) {
-                std::string current_source_string;
-                if (!Cdl::source_to_string(this->get_source(), current_source_string)) {
-                    CYG_FAIL("Invalid current value source detected");
-                }
-                data += indent_string + "value_source " + current_source_string + "\n";
-            }
-        }
-        
+       if (modifiable) {
+           if (this->has_source(CdlValueSource_User)) {
+               data += indent_string + "user_value " + value_to_string(this, CdlValueSource_User) + "\n";
+           }
+           if (this->has_source(CdlValueSource_Wizard)) {
+               data += indent_string + "wizard_value " + value_to_string(this, CdlValueSource_Wizard) + "\n";
+           }
+           if (this->has_source(CdlValueSource_Inferred)) {
+               data += indent_string + "inferred_value " + value_to_string(this, CdlValueSource_Inferred) + "\n";
+           }
+           CdlValueSource expected_source = get_expected_source(this);
+           if (expected_source != this->get_source()) {
+               std::string current_source_string;
+               if (!Cdl::source_to_string(this->get_source(), current_source_string)) {
+                   CYG_FAIL("Invalid current value source detected");
+               }
+               data += indent_string + "value_source " + current_source_string + "\n";
+           }
+       }
     } else {
-    
-        // Right at the start, indicate whether or not this property is active.
-        if (!this->is_active()) {
-            data += indent_string + "# This option is not active\n";
-            // If the entity is inactive because the parent is inactive or disabled,
-            // say so here. This is in addition to any unsatisfied active_if
-            // conditions, which will be reported below.
-            CdlContainer parent = this->get_parent();
-            if (!parent->is_active()) {
-                data += indent_string + "# The parent " + parent->get_name() + " is not active\n";
-            }
-            CdlValuable tmp = dynamic_cast<CdlValuable>(parent);
-            if ((0 != tmp) && !tmp->is_enabled()) {
-                data += indent_string + "# The parent " + parent->get_name() + " is disabled\n";
-            }
-        }
-        if (this->has_active_if_conditions()) {
-            std::vector<CdlProperty_GoalExpression> active_if_conditions;
-            this->get_active_if_conditions(active_if_conditions);
-            std::vector<CdlProperty_GoalExpression>::const_iterator expr_i;
-            for (expr_i = active_if_conditions.begin(); expr_i != active_if_conditions.end(); expr_i++) {
-                data += indent_string + "# ActiveIf constraint: " +
-                    CdlInterpreterBody::extend_comment((*expr_i)->get_original_string(), indentation, 4) +
-                    '\n';
-
-                CdlExpression expr = (*expr_i)->get_expression();
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(*expr_i, expr), indentation, 4);
-                CdlEvalContext context(0, this, *expr_i);
-                bool active_if_value = false;
-                try {
-                    active_if_value = (*expr_i)->eval(context);
-                } catch(CdlEvalException e) {
-                    active_if_value = false;
-                } catch(std::bad_alloc) {
-                    throw;
-                }
-                data += indent_string + "#   --> " + (active_if_value ? one : zero) + "\n";
-            }
-        }
-        
-        // If there has been any information related to the active status,
-        // add a blank line before we start worrying about values.
-        if (0 < data.size()) {
-            data += '\n';
-        }
-
-        if (CdlValueFlavor_None == this->get_flavor()) {
-            data += indent_string + "# There is no associated value.\n";
-        } else if (this->has_property(CdlPropertyId_Calculated)) {
-            CdlProperty_Expression expr = this->get_calculated_expression();
-            data += indent_string + "# Calculated value: " +
-                CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4) + '\n';
-            data += CdlInterpreterBody::multiline_comment(follow_expr_references(expr, expr), indentation, 4);
-        } else if (!modifiable) {
-            data += indent_string + "# This value cannot be modified here.\n";
-        }
-         
-        // Output the flavor. This clutters up the savefile a bit.
-        // However it is necessary so that the user can distinguish
-        // between bool, booldata and data items
-        switch(this->get_flavor()) {
-          case CdlValueFlavor_Bool:
-            data += indent_string + "# Flavor: bool\n";
-            break;
-          case CdlValueFlavor_BoolData:
-            data += indent_string + "# Flavor: booldata\n";
-            break;
-          case CdlValueFlavor_Data:
-            data += indent_string + "# Flavor: data\n";
-            break;
-          default:
-            break;
-        }
-            
-        // If the value is not modifiable, just list the current value.
-        // This is not in a form that allows users to change it easily.
-        if (!modifiable) {
-            switch(this->get_flavor()) {
-              case CdlValueFlavor_None :
-                break;
-              case CdlValueFlavor_Bool :
-                data += indent_string + "# Current value: " + (this->is_enabled() ? one : zero) + '\n';
-                break;
-              case CdlValueFlavor_BoolData :
-                data += indent_string + "# Current value: " + (this->is_enabled() ? one : zero) + " " +
-                    CdlInterpreterBody::extend_comment(this->get_value(), indentation, 4) + '\n';
-                break;
-              case CdlValueFlavor_Data :
-                data += indent_string + "# Current_value: " +
-                    CdlInterpreterBody::extend_comment(this->get_value(), indentation, 4) + '\n';
-                break;
-              default:
-                break;
-            }
-        
-        } else if (CdlValueFlavor_None != this->get_flavor()) {
-
-            // If there is a user value, output it. Otherwise output
-            // a comment that allows users to edit the user value conveniently.
-            // It is assumed that the user will want a value similar to the
-            // default one, so that is provided as the starting point
-            if (this->has_source(CdlValueSource_User)) {
-                data += indent_string + "user_value " + value_to_string(this, CdlValueSource_User) + "\n";
-            } else {
-                data += indent_string + "# No user value, uncomment the following line to provide one.\n" +
-                    indent_string + "# user_value " +
-                    CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 0) + "\n";
-            }
-        
-            // Output a wizard value iff there is one. There is little point
-            // in letting users edit a wizard value, they should be running
-            // the wizard itself.
-            if (this->has_source(CdlValueSource_Wizard)) {
-                data += indent_string + "# The wizard value should not be edited directly.\n" +
-                    indent_string + "# Instead the wizard should be run again if necessary.\n";
-                data += indent_string + "wizard_value " + value_to_string(this, CdlValueSource_Wizard) + "\n";
-            }
-
-            // List the inferred value. This needs to be a command,
-            if (this->has_source(CdlValueSource_Inferred)) {
-                data += indent_string + "# The inferred value should not be edited directly.\n";
-                data += indent_string + "inferred_value " + value_to_string(this, CdlValueSource_Inferred) + "\n";
-            }
-        
-            // Output the value source iff it is unusual. If the current
-            // source is the highest priority one then there is no point
-            // in outputting a command, but a comment is usual. The value
-            // source needs to come after wizard and inferred values
-            std::string    current_source_string;
-            CdlValueSource expected_source = get_expected_source(this);
-            CdlValueSource current_source  = this->get_source();
-            if (!Cdl::source_to_string(current_source, current_source_string)) {
-                CYG_FAIL("Invalid current value source detected");
-            }
-            if (this->get_source() == expected_source) {
-                data += indent_string + "# value_source " + current_source_string + "\n";
-            } else {
-                data += indent_string + "value_source " + current_source_string + "\n";
-            }
-
-            // Always output the default value as a comment.
-            data += indent_string + "# Default value: ";
-            
-            // If there is no default_value expression or if the expression involves
-            // only constants, just output the current default value. Otherwise
-            // output both the expression and the value
-            CdlProperty prop = this->get_property(CdlPropertyId_DefaultValue);
-            CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
-            if ((0 == expr) || (0 == expr->references.size())) {
-                // There is no default_value expression, so just output the current value
-                data += CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 4)
-                    + "\n";
-            } else {
-                data += CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4) + "\n";
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(expr, expr), indentation, 4);
-                data += indent_string + "#   --> " +
-                    CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 4) + "\n";
-            }
-        }
-
-        // If there is a legal_values property, add the details.
-        if (this->has_property(CdlPropertyId_LegalValues)) {
-            CdlProperty_ListExpression lexpr = this->get_legal_values();
-            data += indent_string + "# Legal values: " +
-                CdlInterpreterBody::extend_comment(lexpr->get_original_string(), indentation, 4) + '\n';
-        
-            std::vector<CdlExpression>::const_iterator expr_i;
-            std::vector<std::pair<CdlExpression,CdlExpression> >::const_iterator ranges_i;
-            for (expr_i = lexpr->data.begin(); expr_i != lexpr->data.end(); expr_i++) {
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, *expr_i), indentation, 4);
-            }
-            for (ranges_i = lexpr->ranges.begin(); ranges_i != lexpr->ranges.end(); ranges_i++) {
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, ranges_i->first), indentation, 4);
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, ranges_i->second), indentation, 4);
-            }
-        }
-    
-        // If there is a check_proc property, mention this.
-        if (this->has_property(CdlPropertyId_CheckProc)) {
-            data += indent_string + "# There is a check_proc routine that will check the value.\n";
-        }
-
-        // Output all requires properties
-        if (this->has_property(CdlPropertyId_Requires)) {
-            std::vector<CdlProperty_GoalExpression> requires_goals;
-            this->get_requires_goals(requires_goals);
-            std::vector<CdlProperty_GoalExpression>::const_iterator expr_i;
-            for (expr_i = requires_goals.begin(); expr_i != requires_goals.end(); expr_i++) {
-                data += indent_string + "# Requires: " +
-                    CdlInterpreterBody::extend_comment((*expr_i)->get_original_string(), indentation, 4) + "\n";
-
-                CdlExpression expr = (*expr_i)->get_expression();
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(*expr_i, expr), indentation, 4);
-                CdlEvalContext context(0, this, *expr_i);
-                bool active_if_value = false;
-                try {
-                    active_if_value = (*expr_i)->eval(context);
-                } catch(CdlEvalException e) {
-                    active_if_value = false;
-                } catch(std::bad_alloc) {
-                    throw;
-                }
-                data += indent_string + "#   --> " + (active_if_value ? one : zero) + "\n";
-            }
-        }
-
-        // Output all dependencies that other entities may have on this one.
-        const std::vector<CdlReferrer>& referrers = this->get_referrers();
-        if (0 != referrers.size()) {
-            data += '\n' + indent_string + "# The following properties are affected by this value\n";
-            std::vector<CdlReferrer>::const_iterator ref_i;
-            for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
-            
-                CdlNode source = ref_i->get_source();
-                CdlProperty source_prop = ref_i->get_source_property();
-                std::string prop_id = source_prop->get_property_name();
-            
-                if ((prop_id == CdlPropertyId_ActiveIf)     ||
-                    (prop_id == CdlPropertyId_Calculated)   ||
-                    (prop_id == CdlPropertyId_DefaultValue) ||
-                    (prop_id == CdlPropertyId_LegalValues)  ||
-                    (prop_id == CdlPropertyId_Requires)) {
-                
-                    data += indent_string + "# " + source->get_class_name() + " " + source->get_name() + "\n";
-                    data += indent_string + "#     " + prop_id + ": ";
-                    if ((prop_id == CdlPropertyId_Calculated) || (prop_id == CdlPropertyId_DefaultValue)) {
-                        CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(source_prop);
-                        CYG_ASSERT_CLASSC(expr);
-                        data += CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4);
-                    } else if (prop_id == CdlPropertyId_LegalValues) {
-                        CdlProperty_ListExpression lexpr = dynamic_cast<CdlProperty_ListExpression>(source_prop);
-                        CYG_ASSERT_CLASSC(lexpr);
-                        data += CdlInterpreterBody::extend_comment(lexpr->get_original_string(), indentation, 4);
-                    } else if ((prop_id == CdlPropertyId_ActiveIf) || (prop_id == CdlPropertyId_Requires)) {
-                        CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(source_prop);
-                        CYG_ASSERT_CLASSC(gexpr);
-                        data += CdlInterpreterBody::extend_comment(gexpr->get_original_string(), indentation, 4);
-                    }
-                    data += '\n';
-                }
-            }
-        }
+       // Right at the start, indicate whether or not this property is active.
+       if (!this->is_active()) {
+           data += indent_string + "# This option is not active\n";
+           // If the entity is inactive because the parent is inactive or disabled,
+           // say so here. This is in addition to any unsatisfied active_if
+           // conditions, which will be reported below.
+           CdlContainer parent = this->get_parent();
+           if (!parent->is_active()) {
+               data += indent_string + "# The parent " + parent->get_name() + " is not active\n";
+           }
+           CdlValuable tmp = dynamic_cast<CdlValuable>(parent);
+           if ((0 != tmp) && !tmp->is_enabled()) {
+               data += indent_string + "# The parent " + parent->get_name() + " is disabled\n";
+           }
+       }
+       if (this->has_active_if_conditions()) {
+           std::vector<CdlProperty_GoalExpression> active_if_conditions;
+           this->get_active_if_conditions(active_if_conditions);
+           std::vector<CdlProperty_GoalExpression>::const_iterator expr_i;
+           for (expr_i = active_if_conditions.begin(); expr_i != active_if_conditions.end(); expr_i++) {
+               data += indent_string + "# ActiveIf constraint: " +
+                   CdlInterpreterBody::extend_comment((*expr_i)->get_original_string(), indentation, 4) +
+                   '\n';
+
+               CdlExpression expr = (*expr_i)->get_expression();
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(*expr_i, expr), indentation, 4);
+               CdlEvalContext context(0, this, *expr_i);
+               bool active_if_value = false;
+               try {
+                   active_if_value = (*expr_i)->eval(context);
+               } catch(CdlEvalException e) {
+                   active_if_value = false;
+               } catch(std::bad_alloc) {
+                   throw;
+               }
+               data += indent_string + "#   --> " + (active_if_value ? one : zero) + "\n";
+           }
+       }
+
+       // If there has been any information related to the active status,
+       // add a blank line before we start worrying about values.
+       if (0 < data.size()) {
+           data += '\n';
+       }
+
+       if (CdlValueFlavor_None == this->get_flavor()) {
+           data += indent_string + "# There is no associated value.\n";
+       } else if (this->has_property(CdlPropertyId_Calculated)) {
+           CdlProperty_Expression expr = this->get_calculated_expression();
+           data += indent_string + "# Calculated value: " +
+               CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4) + '\n';
+           data += CdlInterpreterBody::multiline_comment(follow_expr_references(expr, expr), indentation, 4);
+       } else if (!modifiable) {
+           data += indent_string + "# This value cannot be modified here.\n";
+       }
+
+       // Output the flavor. This clutters up the savefile a bit.
+       // However it is necessary so that the user can distinguish
+       // between bool, booldata and data items
+       switch(this->get_flavor()) {
+       case CdlValueFlavor_Bool:
+           data += indent_string + "# Flavor: bool\n";
+           break;
+       case CdlValueFlavor_BoolData:
+           data += indent_string + "# Flavor: booldata\n";
+           break;
+       case CdlValueFlavor_Data:
+           data += indent_string + "# Flavor: data\n";
+           break;
+       default:
+           break;
+       }
+
+       // If the value is not modifiable, just list the current value.
+       // This is not in a form that allows users to change it easily.
+       if (!modifiable) {
+           switch(this->get_flavor()) {
+             case CdlValueFlavor_None :
+               break;
+             case CdlValueFlavor_Bool :
+               data += indent_string + "# Current value: " + (this->is_enabled() ? one : zero) + '\n';
+               break;
+             case CdlValueFlavor_BoolData :
+               data += indent_string + "# Current value: " + (this->is_enabled() ? one : zero) + " " +
+                   CdlInterpreterBody::extend_comment(this->get_value(), indentation, 4) + '\n';
+               break;
+             case CdlValueFlavor_Data :
+               data += indent_string + "# Current_value: " +
+                   CdlInterpreterBody::extend_comment(this->get_value(), indentation, 4) + '\n';
+               break;
+             default:
+               break;
+           }
+
+       } else if (CdlValueFlavor_None != this->get_flavor()) {
+
+           // If there is a user value, output it. Otherwise output
+           // a comment that allows users to edit the user value conveniently.
+           // It is assumed that the user will want a value similar to the
+           // default one, so that is provided as the starting point
+           if (this->has_source(CdlValueSource_User)) {
+               data += indent_string + "user_value " + value_to_string(this, CdlValueSource_User) + "\n";
+           } else {
+               data += indent_string + "# No user value, uncomment the following line to provide one.\n" +
+                   indent_string + "# user_value " +
+                   CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 0) + "\n";
+           }
+
+           // Output a wizard value iff there is one. There is little point
+           // in letting users edit a wizard value, they should be running
+           // the wizard itself.
+           if (this->has_source(CdlValueSource_Wizard)) {
+               data += indent_string + "# The wizard value should not be edited directly.\n" +
+                   indent_string + "# Instead the wizard should be run again if necessary.\n";
+               data += indent_string + "wizard_value " + value_to_string(this, CdlValueSource_Wizard) + "\n";
+           }
+
+           // List the inferred value. This needs to be a command,
+           if (this->has_source(CdlValueSource_Inferred)) {
+               data += indent_string + "# The inferred value should not be edited directly.\n";
+               data += indent_string + "inferred_value " + value_to_string(this, CdlValueSource_Inferred) + "\n";
+           }
+
+           // Output the value source iff it is unusual. If the current
+           // source is the highest priority one then there is no point
+           // in outputting a command, but a comment is usual. The value
+           // source needs to come after wizard and inferred values
+           std::string    current_source_string;
+           CdlValueSource expected_source = get_expected_source(this);
+           CdlValueSource current_source  = this->get_source();
+           if (!Cdl::source_to_string(current_source, current_source_string)) {
+               CYG_FAIL("Invalid current value source detected");
+           }
+           if (this->get_source() == expected_source) {
+               data += indent_string + "# value_source " + current_source_string + "\n";
+           } else {
+               data += indent_string + "value_source " + current_source_string + "\n";
+           }
+
+           // Always output the default value as a comment.
+           data += indent_string + "# Default value: ";
+
+           // If there is no default_value expression or if the expression involves
+           // only constants, just output the current default value. Otherwise
+           // output both the expression and the value
+           CdlProperty prop = this->get_property(CdlPropertyId_DefaultValue);
+           CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
+           if ((0 == expr) || (0 == expr->references.size())) {
+               // There is no default_value expression, so just output the current value
+               data += CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 4)
+                   + "\n";
+           } else {
+               data += CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4) + "\n";
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(expr, expr), indentation, 4);
+               data += indent_string + "#   --> " +
+                   CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 4) + "\n";
+           }
+       }
+
+       // If there is a legal_values property, add the details.
+       if (this->has_property(CdlPropertyId_LegalValues)) {
+           CdlProperty_ListExpression lexpr = this->get_legal_values();
+           data += indent_string + "# Legal values: " +
+               CdlInterpreterBody::extend_comment(lexpr->get_original_string(), indentation, 4) + '\n';
+
+           std::vector<CdlExpression>::const_iterator expr_i;
+           std::vector<std::pair<CdlExpression,CdlExpression> >::const_iterator ranges_i;
+           for (expr_i = lexpr->data.begin(); expr_i != lexpr->data.end(); expr_i++) {
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, *expr_i), indentation, 4);
+           }
+           for (ranges_i = lexpr->ranges.begin(); ranges_i != lexpr->ranges.end(); ranges_i++) {
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, ranges_i->first), indentation, 4);
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, ranges_i->second), indentation, 4);
+           }
+       }
+
+       // If there is a check_proc property, mention this.
+       if (this->has_property(CdlPropertyId_CheckProc)) {
+           data += indent_string + "# There is a check_proc routine that will check the value.\n";
+       }
+
+       // Output all requires properties
+       if (this->has_property(CdlPropertyId_Requires)) {
+           std::vector<CdlProperty_GoalExpression> requires_goals;
+           this->get_requires_goals(requires_goals);
+           std::vector<CdlProperty_GoalExpression>::const_iterator expr_i;
+           for (expr_i = requires_goals.begin(); expr_i != requires_goals.end(); expr_i++) {
+               data += indent_string + "# Requires: " +
+                   CdlInterpreterBody::extend_comment((*expr_i)->get_original_string(), indentation, 4) + "\n";
+
+               CdlExpression expr = (*expr_i)->get_expression();
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(*expr_i, expr), indentation, 4);
+               CdlEvalContext context(0, this, *expr_i);
+               bool active_if_value = false;
+               try {
+                   active_if_value = (*expr_i)->eval(context);
+               } catch(CdlEvalException e) {
+                   active_if_value = false;
+               } catch(std::bad_alloc) {
+                   throw;
+               }
+               data += indent_string + "#   --> " + (active_if_value ? one : zero) + "\n";
+           }
+       }
+
+       // Output all dependencies that other entities may have on this one.
+       const std::vector<CdlReferrer>& referrers = this->get_referrers();
+       if (0 != referrers.size()) {
+           data += '\n' + indent_string + "# The following properties are affected by this value\n";
+           std::vector<CdlReferrer>::const_iterator ref_i;
+           for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
+
+               CdlNode source = ref_i->get_source();
+               CdlProperty source_prop = ref_i->get_source_property();
+               std::string prop_id = source_prop->get_property_name();
+
+               if ((prop_id == CdlPropertyId_ActiveIf)     ||
+                   (prop_id == CdlPropertyId_Calculated)   ||
+                   (prop_id == CdlPropertyId_DefaultValue) ||
+                   (prop_id == CdlPropertyId_LegalValues)  ||
+                   (prop_id == CdlPropertyId_Requires)) {
+
+                   data += indent_string + "# " + source->get_class_name() + " " + source->get_name() + "\n";
+                   data += indent_string + "#     " + prop_id + ": ";
+                   if ((prop_id == CdlPropertyId_Calculated) || (prop_id == CdlPropertyId_DefaultValue)) {
+                       CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(source_prop);
+                       CYG_ASSERT_CLASSC(expr);
+                       data += CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4);
+                   } else if (prop_id == CdlPropertyId_LegalValues) {
+                       CdlProperty_ListExpression lexpr = dynamic_cast<CdlProperty_ListExpression>(source_prop);
+                       CYG_ASSERT_CLASSC(lexpr);
+                       data += CdlInterpreterBody::extend_comment(lexpr->get_original_string(), indentation, 4);
+                   } else if ((prop_id == CdlPropertyId_ActiveIf) || (prop_id == CdlPropertyId_Requires)) {
+                       CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(source_prop);
+                       CYG_ASSERT_CLASSC(gexpr);
+                       data += CdlInterpreterBody::extend_comment(gexpr->get_original_string(), indentation, 4);
+                   }
+                   data += '\n';
+               }
+           }
+       }
     }
 
     interp->write_data(chan, data);
-    
+
     CYG_REPORT_RETURN();
 }
 
@@ -3999,18 +3996,18 @@ CdlValuableBody::savefile_value_source_command(CdlInterpreter interp, int argc,
 
     CdlValueSource source = CdlValueSource_Invalid;
     if ((2 != argc) || !Cdl::string_to_source(argv[1], source) || !valuable->has_source(transaction, source)) {
-        std::string msg = "Invalid value_source command for ";
-        msg += valuable->get_class_name() + " " + valuable->get_name() + "\n";
-        if (CdlValueSource_Invalid == source) {
-            msg += "Expecting one argument, which should \"user\", \"wizard\", \"inferred\" or \"default\"";
-        } else {
-            msg += "The specified value source is not valid.";
-        }
-        CdlParse::report_error(interp, "", msg);
+       std::string msg = "Invalid value_source command for ";
+       msg += valuable->get_class_name() + " " + valuable->get_name() + "\n";
+       if (CdlValueSource_Invalid == source) {
+           msg += "Expecting one argument, which should \"user\", \"wizard\", \"inferred\" or \"default\"";
+       } else {
+           msg += "The specified value source is not valid.";
+       }
+       CdlParse::report_error(interp, "", msg);
     } else {
-        valuable->set_source(transaction, source);
+       valuable->set_source(transaction, source);
     }
-    
+
     return TCL_OK;
 }
 
@@ -4030,55 +4027,55 @@ CdlValuableBody::savefile_xxx_value_command(CdlInterpreter interp, int argc, con
     bool warn  = false;
     std::string msg = "";
     if (CdlValueFlavor_None == valuable->get_flavor()) {
-        msg = "Options with flavor \"none\" cannot be modified.";
-        error = true;
+       msg = "Options with flavor \"none\" cannot be modified.";
+       error = true;
     } else if (!valuable->is_modifiable()) {
-        msg = "This option is not user-modifiable.";
-        error = true;
+       msg = "This option is not user-modifiable.";
+       error = true;
     } else {
-        switch(valuable->get_flavor()) {
-          case CdlValueFlavor_Bool :
-              if (2 != argc) {
-                  msg = "Invalid boolean value, expecting 0 or 1";
-                  error = true;
-              } else {
-                  bool x;
-                  Cdl::string_to_bool(argv[1], x);
-                  valuable->set_enabled(transact, x, source);
-              }
-              break;
-          case CdlValueFlavor_Data :
-              if (2 != argc) {
-                  msg = "Invalid data value, expecting a single string";
-                  error = true;
-              } else {
-                  valuable->set_value(transact, argv[1], source);
-              }
-              break;
-          case CdlValueFlavor_BoolData:
-              if (3 != argc) {
-                  msg = "Invalid booldata value, expecting a boolean followed by a string";
-                  error = true;
-              } else {
-                  bool x;
-                  Cdl::string_to_bool(argv[1], x);
-                  valuable->set_enabled_and_value(transact, x, argv[2], source);
-              }
-              break;
-          default:
-            CYG_FAIL("Invalid value flavor detected");
-            break;
-        }
+       switch(valuable->get_flavor()) {
+         case CdlValueFlavor_Bool :
+             if (2 != argc) {
+                 msg = "Invalid boolean value, expecting 0 or 1";
+                 error = true;
+             } else {
+                 bool x;
+                 Cdl::string_to_bool(argv[1], x);
+                 valuable->set_enabled(transact, x, source);
+             }
+             break;
+         case CdlValueFlavor_Data :
+             if (2 != argc) {
+                 msg = "Invalid data value, expecting a single string";
+                 error = true;
+             } else {
+                 valuable->set_value(transact, argv[1], source);
+             }
+             break;
+         case CdlValueFlavor_BoolData:
+             if (3 != argc) {
+                 msg = "Invalid booldata value, expecting a boolean followed by a string";
+                 error = true;
+             } else {
+                 bool x;
+                 Cdl::string_to_bool(argv[1], x);
+                 valuable->set_enabled_and_value(transact, x, argv[2], source);
+             }
+             break;
+         default:
+           CYG_FAIL("Invalid value flavor detected");
+           break;
+       }
     }
 
     if (error || warn) {
-        msg = std::string("Invalid value command for ") + valuable->get_class_name() + " " + valuable->get_name() + "\n"
-            + msg;
-        if (error) {
-            CdlParse::report_error(interp, "", msg);
-        } else {
-            CdlParse::report_warning(interp, "", msg);
-        }
+       msg = std::string("Invalid value command for ") + valuable->get_class_name() + " " + valuable->get_name() + "\n"
+           + msg;
+       if (error) {
+           CdlParse::report_error(interp, "", msg);
+       } else {
+           CdlParse::report_warning(interp, "", msg);
+       }
     }
 
     return TCL_OK;
index 96833efa24510abce93ca7dcb128a9ecd9555b02..bb3fb686b5dbaa4cd9124ef8f42563ceca6d8cb7 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program 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 of the License, or (at your option) 
+// This program 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 of the License, or (at your option)
 // any later version.
-// 
-// This program 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 
+//
+// This program 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
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlWizardBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 // Constructor. The real work is actually done in the parse routine.
 CdlWizardBody::CdlWizardBody(std::string name_arg)
     : CdlNodeBody(name_arg),
-      CdlParentableBody(),
-      CdlUserVisibleBody()
+      CdlUserVisibleBody(),
+      CdlParentableBody()
 {
     CYG_REPORT_FUNCNAME("CdlWizardBody:: constructor");
     CYG_REPORT_FUNCARG1XV(this);
 
     cdlwizardbody_cookie = CdlWizardBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 // The real work is done in the base classes.
@@ -99,12 +99,12 @@ CdlWizardBody::~CdlWizardBody()
 
     cdlwizardbody_cookie = CdlWizardBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_wizard()                   
+//{{{  parse_wizard()
 
 // ----------------------------------------------------------------------------
 // Parsing a wizard definition.
@@ -120,7 +120,7 @@ CdlWizardBody::parse_wizard(CdlInterpreter interp, int argc, const char* argv[])
     std::string diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
-    CdlContainer parent         = interp->get_container();       
+    CdlContainer parent         = interp->get_container();
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(parent);
@@ -134,128 +134,128 @@ CdlWizardBody::parse_wizard(CdlInterpreter interp, int argc, const char* argv[])
     // may result in an exception.
     CdlWizard    new_wizard     = 0;
     try {
-    
-        // Currently there are no command-line options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                   "'\nExpecting name and properties list.");
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "", std::string("Invalid property list for cdl_wizard `") + argv[1]+ "'.");
-        } else if (0 != toplevel->lookup(argv[1])) {
-            CdlParse::report_error(interp, "", std::string("Wizard `") + argv[1] +
-                                   "' cannot be loaded.\nThe name is already in use.");
-        } else {
-            new_wizard = new CdlWizardBody(argv[1]);
-            toplevel->add_node(loadable, parent, new_wizard);
-
-            // At this stage new_wizard has been created and added to the hierarchy.
-            // The main work now is to add the properties.
-    
-            // Push the wizard as the current base object early on.
-            // This aids diagnostics.
-            CdlNode old_node = 0;
-
-            std::string tcl_result;
-            std::vector<CdlInterpreterCommandEntry>  new_commands;
-            std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
-            static CdlInterpreterCommandEntry commands[] =
-            {
-                CdlInterpreterCommandEntry("init_proc",          &parse_init_proc       ),
-                CdlInterpreterCommandEntry("decoration_proc",    &parse_decoration_proc ),
-                CdlInterpreterCommandEntry("screen",             &parse_screen          ),
-                CdlInterpreterCommandEntry("confirm_proc",       &parse_confirm_proc    ),
-                CdlInterpreterCommandEntry("cancel_proc",        &parse_cancel_proc     ),
-                CdlInterpreterCommandEntry("",                   0                      ),
-            };
-            int i;
-            for (i = 0; 0 != commands[i].command; i++) {
-                new_commands.push_back(commands[i]);
-            }
-            CdlParentableBody::add_property_parsers(new_commands);
-            CdlUserVisibleBody::add_property_parsers(new_commands);
-            CdlNodeBody::add_property_parsers(new_commands);
-    
-            // Now evaluate the body. If an error occurs then typically
-            // this will be reported via CdlParse::report_error(),
-            // but any exceptions will have been intercepted and
-            // turned into a Tcl error.
-            old_node = interp->push_node(new_wizard);
-            old_commands = interp->push_commands(new_commands);
-            result = interp->eval(argv[2], tcl_result);
-            interp->pop_node(old_node);
-            interp->pop_commands(old_commands);
-        
-            if (TCL_OK == result) {
-                // Even if there were errors, they were not fatal. There may
-                // now be a number of properties for this option, and some
-                // validation should take place. Start with the base classes.
-                new_wizard->CdlNodeBody::check_properties(interp);
-                new_wizard->CdlUserVisibleBody::check_properties(interp);
-                new_wizard->CdlParentableBody::check_properties(interp);
-
-                // The init_proc and decoration_proc properties are
-                // optional. The confirm_proc and cancel_proc properties
-                // are compulsory, and there should be at least one screen
-                // definition.
-                if (new_wizard->count_properties(CdlPropertyId_InitProc) > 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have only one `init_proc' property.");
-                }
-                if (new_wizard->count_properties(CdlPropertyId_DecorationProc) > 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have only one `decoration_proc' property.");
-                }
-                if (new_wizard->count_properties(CdlPropertyId_ConfirmProc) != 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have one `confirm_proc' property.");
-                }
-                if (new_wizard->count_properties(CdlPropertyId_CancelProc) != 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have one `cancel_proc' property.");
-                }
-                if (new_wizard->count_properties(CdlPropertyId_Screen) < 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have at least one `screen' property.");
-                }
-
-                // It is necessary to check that all the screen properties have unique numbers
-                const std::vector<CdlProperty>& properties = new_wizard->get_properties();
-                std::vector<CdlProperty>::const_iterator prop_i, prop_j;
-                for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-                    if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-                        continue;
-                    }
-                    CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-                    CYG_ASSERT_CLASSC(tclprop);
-                    cdl_int num1 = tclprop->get_number();
-
-                    for (prop_j = ++prop_i; prop_j != properties.end(); prop_j++) {
-                        if (CdlPropertyId_Screen != (*prop_j)->get_property_name()) {
-                            continue;
-                        }
-                        CdlProperty_TclCode tclprop2 = dynamic_cast<CdlProperty_TclCode>(*prop_j);
-                        CYG_ASSERT_CLASSC(tclprop2);
-                        cdl_int num2 = tclprop2->get_number();
-
-                        if (num1 == num2) {
-                            std::string tmp = "";
-                            Cdl::integer_to_string(num1, tmp);
-                            CdlParse::report_error(interp, "", "Duplicate definition of screen `" + tmp + "'.");
-                            break;
-                        }
-                    } 
-               }
-
-                // There is no restriction on what screen numbers can be
-                // defined (screens may appear and disappear during
-                // development). It would be nice to validate that the
-                // Tcl fragments never switch to an invalid screen, but
-                // there is no easy way to do that.
-            }
-        }
-            
+
+       // Currently there are no command-line options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                  "'\nExpecting name and properties list.");
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "", std::string("Invalid property list for cdl_wizard `") + argv[1]+ "'.");
+       } else if (0 != toplevel->lookup(argv[1])) {
+           CdlParse::report_error(interp, "", std::string("Wizard `") + argv[1] +
+                                  "' cannot be loaded.\nThe name is already in use.");
+       } else {
+           new_wizard = new CdlWizardBody(argv[1]);
+           toplevel->add_node(loadable, parent, new_wizard);
+
+           // At this stage new_wizard has been created and added to the hierarchy.
+           // The main work now is to add the properties.
+
+           // Push the wizard as the current base object early on.
+           // This aids diagnostics.
+           CdlNode old_node = 0;
+
+           std::string tcl_result;
+           std::vector<CdlInterpreterCommandEntry>  new_commands;
+           std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
+           static CdlInterpreterCommandEntry commands[] =
+           {
+               CdlInterpreterCommandEntry("init_proc",          &parse_init_proc       ),
+               CdlInterpreterCommandEntry("decoration_proc",    &parse_decoration_proc ),
+               CdlInterpreterCommandEntry("screen",             &parse_screen          ),
+               CdlInterpreterCommandEntry("confirm_proc",       &parse_confirm_proc    ),
+               CdlInterpreterCommandEntry("cancel_proc",        &parse_cancel_proc     ),
+               CdlInterpreterCommandEntry("",                   0                      ),
+           };
+           int i;
+           for (i = 0; 0 != commands[i].command; i++) {
+               new_commands.push_back(commands[i]);
+           }
+           CdlParentableBody::add_property_parsers(new_commands);
+           CdlUserVisibleBody::add_property_parsers(new_commands);
+           CdlNodeBody::add_property_parsers(new_commands);
+
+           // Now evaluate the body. If an error occurs then typically
+           // this will be reported via CdlParse::report_error(),
+           // but any exceptions will have been intercepted and
+           // turned into a Tcl error.
+           old_node = interp->push_node(new_wizard);
+           old_commands = interp->push_commands(new_commands);
+           result = interp->eval(argv[2], tcl_result);
+           interp->pop_node(old_node);
+           interp->pop_commands(old_commands);
+
+           if (TCL_OK == result) {
+               // Even if there were errors, they were not fatal. There may
+               // now be a number of properties for this option, and some
+               // validation should take place. Start with the base classes.
+               new_wizard->CdlNodeBody::check_properties(interp);
+               new_wizard->CdlUserVisibleBody::check_properties(interp);
+               new_wizard->CdlParentableBody::check_properties(interp);
+
+               // The init_proc and decoration_proc properties are
+               // optional. The confirm_proc and cancel_proc properties
+               // are compulsory, and there should be at least one screen
+               // definition.
+               if (new_wizard->count_properties(CdlPropertyId_InitProc) > 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have only one `init_proc' property.");
+               }
+               if (new_wizard->count_properties(CdlPropertyId_DecorationProc) > 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have only one `decoration_proc' property.");
+               }
+               if (new_wizard->count_properties(CdlPropertyId_ConfirmProc) != 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have one `confirm_proc' property.");
+               }
+               if (new_wizard->count_properties(CdlPropertyId_CancelProc) != 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have one `cancel_proc' property.");
+               }
+               if (new_wizard->count_properties(CdlPropertyId_Screen) < 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have at least one `screen' property.");
+               }
+
+               // It is necessary to check that all the screen properties have unique numbers
+               const std::vector<CdlProperty>& properties = new_wizard->get_properties();
+               std::vector<CdlProperty>::const_iterator prop_i, prop_j;
+               for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
+                   if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+                       continue;
+                   }
+                   CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+                   CYG_ASSERT_CLASSC(tclprop);
+                   cdl_int num1 = tclprop->get_number();
+
+                   for (prop_j = ++prop_i; prop_j != properties.end(); prop_j++) {
+                       if (CdlPropertyId_Screen != (*prop_j)->get_property_name()) {
+                           continue;
+                       }
+                       CdlProperty_TclCode tclprop2 = dynamic_cast<CdlProperty_TclCode>(*prop_j);
+                       CYG_ASSERT_CLASSC(tclprop2);
+                       cdl_int num2 = tclprop2->get_number();
+
+                       if (num1 == num2) {
+                           std::string tmp = "";
+                           Cdl::integer_to_string(num1, tmp);
+                           CdlParse::report_error(interp, "", "Duplicate definition of screen `" + tmp + "'.");
+                           break;
+                       }
+                   }
+              }
+
+               // There is no restriction on what screen numbers can be
+               // defined (screens may appear and disappear during
+               // development). It would be nice to validate that the
+               // Tcl fragments never switch to an invalid screen, but
+               // there is no easy way to do that.
+           }
+       }
+
     } catch(...) {
-        if (0 != new_wizard) {
-            delete new_wizard;
-        }
-        throw;
+       if (0 != new_wizard) {
+           delete new_wizard;
+       }
+       throw;
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -269,7 +269,7 @@ CdlWizardBody::parse_cancel_proc(CdlInterpreter interp, int argc, const char* ar
     CYG_REPORT_FUNCNAMETYPE("parse_cancel_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_CancelProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -283,7 +283,7 @@ CdlWizardBody::parse_confirm_proc(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_confirm_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_ConfirmProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -297,7 +297,7 @@ CdlWizardBody::parse_decoration_proc(CdlInterpreter interp, int argc, const char
     CYG_REPORT_FUNCNAMETYPE("parse_decoration_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_DecorationProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -311,7 +311,7 @@ CdlWizardBody::parse_init_proc(CdlInterpreter interp, int argc, const char* argv
     CYG_REPORT_FUNCNAMETYPE("parse_init_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_InitProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -326,39 +326,39 @@ CdlWizardBody::parse_screen(CdlInterpreter interp, int argc, const char* argv[])
     CYG_REPORT_FUNCNAME("CdlParse::parse_screen");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_TclCode new_property = 0;
     cdl_int number = 0;
-    
+
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index      = CdlParse::parse_options(interp, std::string("property ") + argv[0], 0, argc, argv, 1, options);
-        if ((data_index + 2) != argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string("Invalid number of arguments.\n") +
-                                         "    Expecting two arguments, a number and some Tcl code.");
-        } else if (!Cdl::string_to_integer(argv[data_index], number)) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string(argv[data_index]) + " is not a valid number.");
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[data_index + 1]))) {
-            CdlParse::report_property_parse_error(interp, argv[0], "incomplete Tcl code fragment.");
-        } else {
-            
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_TclCodeBody::make(current_node, CdlPropertyId_Screen, number, argv[data_index + 1],
-                                                         argc, argv, options);
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index      = CdlParse::parse_options(interp, std::string("property ") + argv[0], 0, argc, argv, 1, options);
+       if ((data_index + 2) != argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string("Invalid number of arguments.\n") +
+                                        "    Expecting two arguments, a number and some Tcl code.");
+       } else if (!Cdl::string_to_integer(argv[data_index], number)) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string(argv[data_index]) + " is not a valid number.");
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[data_index + 1]))) {
+           CdlParse::report_property_parse_error(interp, argv[0], "incomplete Tcl code fragment.");
+       } else {
+
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(0 != current_node);
+           new_property = CdlProperty_TclCodeBody::make(current_node, CdlPropertyId_Screen, number, argv[data_index + 1],
+                                                        argc, argv, options);
+       }
     } catch(...) {
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       if (0 != new_property) {
+           delete new_property;
+       }
+       throw;
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
-//{{{  Persistence                      
+//{{{  Persistence
 
 // ----------------------------------------------------------------------------
 // For now there is no information in a wizard that should end up in a
@@ -376,12 +376,12 @@ CdlWizardBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bo
     CYG_UNUSED_PARAM(Tcl_Channel, chan);
     CYG_UNUSED_PARAM(int, indentation);
     CYG_UNUSED_PARAM(bool, minimal);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Data access                      
+//{{{  Data access
 
 // ----------------------------------------------------------------------------
 bool
@@ -419,15 +419,15 @@ CdlWizardBody::has_screen(cdl_int screen) const
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-        if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-            continue;
-        }
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        CYG_ASSERT_CLASSC(tclprop);
-        if (screen == tclprop->get_number()) {
-            result = true;
-            break;
-        }
+       if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+           continue;
+       }
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       CYG_ASSERT_CLASSC(tclprop);
+       if (screen == tclprop->get_number()) {
+           result = true;
+           break;
+       }
     }
     CYG_REPORT_RETVAL(result);
     return result;
@@ -444,9 +444,9 @@ CdlWizardBody::get_init_proc() const
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_InitProc);
     if (0 != prop) {
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
-        CYG_ASSERT_CLASSC(tclprop);
-        result = tclprop->get_code();
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
+       CYG_ASSERT_CLASSC(tclprop);
+       result = tclprop->get_code();
     }
 
     CYG_REPORT_RETURN();
@@ -464,9 +464,9 @@ CdlWizardBody::get_decoration_proc() const
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_DecorationProc);
     if (0 != prop) {
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
-        CYG_ASSERT_CLASSC(tclprop);
-        result = tclprop->get_code();
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
+       CYG_ASSERT_CLASSC(tclprop);
+       result = tclprop->get_code();
     }
 
     CYG_REPORT_RETURN();
@@ -526,15 +526,15 @@ CdlWizardBody::get_first_screen_number() const
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-        if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-            continue;
-        }
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        cdl_int its_num = tclprop->get_number();
-        if (!result_set || (its_num < result)) {
-            result = its_num;
-            result_set = true;
-        }
+       if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+           continue;
+       }
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       cdl_int its_num = tclprop->get_number();
+       if (!result_set || (its_num < result)) {
+           result = its_num;
+           result_set = true;
+       }
     }
 
     CYG_REPORT_RETVAL((int) result);
@@ -560,16 +560,16 @@ CdlWizardBody::get_first_screen() const
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-        if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-            continue;
-        }
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        cdl_int its_num = tclprop->get_number();
-        if (!result_set || (its_num < result_num)) {
-            result     = tclprop->get_code();
-            result_num = its_num;
-            result_set = true;
-        }
+       if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+           continue;
+       }
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       cdl_int its_num = tclprop->get_number();
+       if (!result_set || (its_num < result_num)) {
+           result     = tclprop->get_code();
+           result_num = its_num;
+           result_set = true;
+       }
     }
 
     CYG_REPORT_RETURN();
@@ -589,14 +589,14 @@ CdlWizardBody::get_screen(cdl_int screen) const
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-        if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-            continue;
-        }
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        if (tclprop->get_number() == screen) {
-            result     = tclprop->get_code();
-            break;
-        }
+       if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+           continue;
+       }
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       if (tclprop->get_number() == screen) {
+           result     = tclprop->get_code();
+           break;
+       }
     }
 
     CYG_REPORT_RETURN();
@@ -604,7 +604,7 @@ CdlWizardBody::get_screen(cdl_int screen) const
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 // check_this(). There is very little data associated with a wizard,
@@ -613,14 +613,14 @@ bool
 CdlWizardBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlWizardBody_Magic != cdlwizardbody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlUserVisibleBody::check_this(zeal);
 }
 
 //}}}
-//{{{  misc                             
+//{{{  misc
 
 // ----------------------------------------------------------------------------