0cc8e428009660a243d6993725de92e773427946
[karo-tx-redboot.git] / packages / redboot / v2_0 / cdl / redboot.cdl
1 # ====================================================================
2 #
3 #      redboot.cdl
4 #
5 #      Redboot package configuration data
6 #
7 # ====================================================================
8 #####ECOSGPLCOPYRIGHTBEGIN####
9 ## -------------------------------------------
10 ## This file is part of eCos, the Embedded Configurable Operating System.
11 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12 ## Copyright (C) 2002, 2003, 2004, 2005 Gary Thomas
13 ##
14 ## eCos is free software; you can redistribute it and/or modify it under
15 ## the terms of the GNU General Public License as published by the Free
16 ## Software Foundation; either version 2 or (at your option) any later version.
17 ##
18 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
19 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
21 ## for more details.
22 ##
23 ## You should have received a copy of the GNU General Public License along
24 ## with eCos; if not, write to the Free Software Foundation, Inc.,
25 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
26 ##
27 ## As a special exception, if other files instantiate templates or use macros
28 ## or inline functions from this file, or you compile this file and link it
29 ## with other works to produce a work based on this file, this file does not
30 ## by itself cause the resulting work to be covered by the GNU General Public
31 ## License. However the source code for this file must still be made available
32 ## in accordance with section (3) of the GNU General Public License.
33 ##
34 ## This exception does not invalidate any other reasons why a work based on
35 ## this file might be covered by the GNU General Public License.
36 ##
37 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
38 ## at http://sources.redhat.com/ecos/ecos-license/
39 ## -------------------------------------------
40 #####ECOSGPLCOPYRIGHTEND####
41 # ====================================================================
42 ######DESCRIPTIONBEGIN####
43 #
44 # Author(s):      gthomas
45 # Original data:  gthomas
46 # Contributors:   Philippe Robin, Andrew Lunn, tkoeller
47 # Date:           2000-05-01
48 #
49 #####DESCRIPTIONEND####
50 #
51 # ====================================================================
52 cdl_package CYGPKG_REDBOOT {
53     display       "Redboot ROM monitor"
54     doc           ref/redboot.html
55     define_header redboot.h
56     description   "
57            This package supports the Redboot \[stand-alone debug monitor\]
58            using eCos as the underlying board support mechanism."
59
60     # Use of separate interrupt stack causes problems when running
61     # programs as they can end up trashing RedBoot's stack
62     requires { CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 }
63
64     # Since the CYGDAT_REDBOOT_CONSOLE_DEV setting ends up in the platform
65     # HAL header, we need to include that here (via hal.h).
66     define_proc {
67         puts $::cdl_header "#include <pkgconf/hal.h>"
68     }
69
70     cdl_component CYGSEM_REDBOOT_ELF {
71         flavor bool
72         display       "Include support for ELF file format"
73         default_value 1
74
75         cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS {
76             display "Use the virtual address in the ELF headers"
77             flavor bool
78             default_value 0
79             description "
80                 The ELF headers contain both a virtual and a physical address
81                 for where code/data should be loaded. By default the physical
82                 address is used but sometimes it is necassary to use the
83                 virtual address because of bugy toolchains"
84         }
85     }
86
87
88     cdl_interface CYGINT_REDBOOT_LOAD_METHOD {
89         display "Methods of loading images using redboot"
90     }
91
92     cdl_component CYGBLD_BUILD_REDBOOT {
93         display "Build Redboot ROM ELF image"
94         default_value 0
95         requires CYGPKG_INFRA
96         requires CYGPKG_ISOINFRA
97
98         requires ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
99         requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
100         requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
101         requires CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
102
103         requires CYGINT_ISO_STRING_MEMFUNCS 
104         requires CYGINT_ISO_STRING_STRFUNCS
105         requires CYGINT_REDBOOT_LOAD_METHOD
106
107         cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB {
108             display       "Include GDB support in RedBoot"
109             no_define
110             default_value 1
111             active_if     CYGINT_HAL_DEBUG_GDB_STUBS
112             requires      CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
113             requires      CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
114             description "
115               RedBoot normally includes support for the GDB debugging
116               protocols. This option allows this to be disabled which
117               may yield a substantial savings in terms of code and memory 
118               usage by RedBoot."
119         }
120
121         cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
122             display "Threads debugging support"
123             no_define
124             description "
125               Enabling this option will include special code in the
126               GDB stubs to support debugging of threaded programs.  In
127               the case of eCos programs, this support allows GDB to
128               have complete access to the eCos threads in the
129               program."
130             active_if { CYG_HAL_STARTUP != "RAM" }
131             requires  CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
132         }
133
134         cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
135             display        "Customized version string"
136             flavor         booldata
137             default_value  0
138             description    "
139               Use this option to define a customized version \"string\" for
140               RedBoot.  Note: this value is only cosmetic, displayed by the
141               \"version\" command, but is useful for providing site specific
142               information about the RedBoot configuration."
143         }
144
145         cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
146             display          "Enable command line editing"
147             flavor           data
148             default_value    16
149             description      "
150                If this option is non-zero, RedBoot will remember the
151                last N command lines.  These lines may be reused.
152                Enabling this history will also enable rudimentary
153                editting of the lines themselves."
154         }
155
156         cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES {
157             display          "Enable command line editing using ANSI arrows, etc"
158             flavor           bool
159             default_value    1
160             active_if        CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
161             description      "
162                If this option is enabled, RedBoot will accept standard ANSI key
163                sequences for cursor movement (along with the emacs style keys)."
164         }
165
166         cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY {
167             display        "Enable history command and expansion"
168             requires       { CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 }
169             flavor         bool
170             default_value  1
171             description  "
172               Enabling this option will allow RedBoot to provide a
173               history command to list previous commands. Also enables
174               history expansion via '!'  character similar to bash
175               shell."
176         }
177
178         cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS {
179             display        "Number of unique RAM segments on platform"
180             flavor         data
181             default_value  1
182             description  "
183               Change this option to be the number of memory segments which are
184               supported by the platform.  If the value is greater than 1, then
185               a platform specific function must provide information about the
186               additional segments."
187         }
188     
189         cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB {
190             display       "Include support gzip/zlib decompression"
191             active_if     CYGPKG_COMPRESS_ZLIB
192             default_value 1
193             implements    CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC
194             compile       decompress.c
195
196             cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER {
197                 display       "Size of zlib decompression buffer"
198                 flavor        data
199                 default_value 64
200                 legal_values  5 to 256
201                 description   "
202                     This is the size of the buffer filled with incoming data
203                     during load before calls are made to the decompressor
204                     function. For ethernet downloads this can be made bigger
205                     (at the cost of memory), but for serial downloads on slow
206                     processors it may be necessary to reduce the size to
207                     avoid serial overruns. zlib appears to bail out if less 
208                     than five bytes are available initially so this is the 
209                     minimum."
210             }
211     
212             cdl_option CYGPRI_REDBOOT_ZLIB_FLASH {
213                  display       "Support compression of Flash images"
214                  active_if     CYGPKG_REDBOOT_FLASH
215                  active_if     { (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE }
216                  calculated    1
217                  description   "
218                         This CDL indicates whether flash images can
219                         be decompressed from gzip/zlib format into RAM."
220             }
221
222             cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP {
223                  display       "Include GZIP uncompress command"
224                  default_value 0
225                  description   "
226                         Enable this option to include a 'gunzip' command 
227                         to uncompress GZIP compressed data."
228                  compile -library=libextras.a gunzip.c
229             }
230
231             cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE {
232                  display       "Turn on CYGPRI_REDBOOT_ZLIB_FLASH"
233                  default_value 0
234                  description   "
235                         Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen"
236             }
237         }
238
239         cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM {
240             display       "Include support for xyzModem downloads"
241             doc           ref/download-command.html
242             no_define
243             default_value 1
244             implements    CYGINT_REDBOOT_LOAD_METHOD
245             compile -library=libextras.a xyzModem.c
246         }
247
248         cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT {
249             display       "Include MS Windows CE support"
250             doc           ref/wince.html
251             default_value 0
252             description "This option enables MS Windows CE EShell support
253                          and Windows CE .BIN images support"
254             
255             compile -library=libextras.a wince.c
256         }   
257
258         cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB {
259             display       "Include support for MXC USB downloads"
260             no_define
261             default_value 0
262             compile -library=libextras.a mxc_usb.c
263         }
264
265         cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM {
266             display       "Include POSIX checksum command"
267             doc           ref/cksum-command.html
268             default_value 1
269             compile -library=libextras.a cksum.c
270         }
271
272         cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL {
273             display       "Include memory fill command"
274             doc           ref/mfill-command.html
275             default_value 1
276             compile -library=libextras.a mfill.c
277         }
278
279         cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP {
280             display       "Include memory compare command"
281             doc           ref/mcmp-command.html
282             default_value 1
283             compile -library=libextras.a mcmp.c
284         }
285
286         cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY {
287             display       "Include memory copy command"
288             doc           ref/mcopy-command.html
289             default_value 1
290             compile -library=libextras.a mcopy.c
291         }
292
293         cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP {
294             display       "Include memory dump command"
295             doc           ref/dump-command.html
296             default_value 1
297             compile -library=libextras.a dump.c
298         }
299
300         cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES {
301             display       "Include cache command"
302             doc           ref/cache-command.html
303             default_value 1
304             compile -library=libextras.a caches.c
305         }
306
307         cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
308             display       "Include exec command"
309             doc           ref/exec-command.html
310             default_value 1
311             # Implemented within the platform HAL
312         }
313
314         cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM {
315             display       "Include I/O Memory commands 'iopeek' and 'iopoke'"
316             default_value 0
317             compile -library=libextras.a iomem.c
318         }
319
320         no_define
321         description "
322             This option enables the building of the Redboot ELF image.
323             The image may require further relocation or symbol
324             stripping before being converted to a binary image.
325             This is handled by a rule in the target CDL."
326
327     
328         cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY {
329             display          "Granularity of timer/ticks"
330             flavor           data
331             legal_values     { 10 25 50 100 250 500 1000 }      
332             default_value    250
333             description      "
334                 This option controls the granularity of the timers.
335                 Faster CPUs can afford higher granularity (lower values)
336                 which should give higher network performance since the stack
337                 is purely polled."
338         }
339
340         compile main.c
341         compile misc_funs.c io.c parse.c ticks.c syscall.c alias.c
342         compile -library=libextras.a load.c
343
344         make -priority 320 {
345             <PREFIX>/bin/redboot.elf : $(PREFIX)/lib/target.ld $(PREFIX)/lib/vectors.o $(PREFIX)/lib/libtarget.a $(PREFIX)/lib/libextras.a
346                     @sh -c "mkdir -p $(dir $@)"
347                     $(CC) -c $(INCLUDE_PATH) $(ACTUAL_CFLAGS) -o $(PREFIX)/lib/version.o $(REPOSITORY)/$(PACKAGE)/src/version.c
348                     $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(PREFIX)/lib/version.o
349         }
350
351         cdl_component CYGPKG_REDBOOT_NETWORKING {
352             display       "Redboot Networking"
353             flavor        bool
354             active_if     CYGPKG_IO_ETH_DRIVERS
355             default_value 1
356             implements    CYGINT_REDBOOT_LOAD_METHOD
357             compile net/bootp.c net/udp.c net/ip.c net/pktbuf.c net/cksum.c
358             compile net/enet.c net/icmp.c net/tcp.c net/timers.c net/arp.c
359             compile net/inet_addr.c
360             compile -library=libextras.a net/ping.c net/net_io.c 
361             description "This option includes networking support in RedBoot."
362             define_proc {
363                 puts $::cdl_system_header "#define CYGNUM_HAL_VIRTUAL_VECTOR_AUX_CHANNELS 1"
364             }
365     
366             cdl_option CYGDBG_REDBOOT_NET_DEBUG {
367                 display          "Print net debug information"
368                 flavor           bool
369                 default_value    0
370                 description      "
371                     This option is overriden by the configuration stored 
372                     in flash."
373             }
374     
375             cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD {
376                 display          "Support TFTP for download"
377                 flavor           bool
378                 default_value    1
379                 compile          -library=libextras.a net/tftp_client.c
380                 description      "
381                     This option enables the use of the TFTP protocol for 
382                     download"
383             }
384     
385             cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD {
386                 display          "Support HTTP for download"
387                 flavor           bool
388                 default_value    1
389                 compile          -library=libextras.a net/http_client.c
390                 description      "
391                     This option enables the use of the HTTP protocol for 
392                     download"
393             }
394     
395             cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
396                 display          "Default IP address"
397                 flavor           booldata
398                 default_value    CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : \
399                                     { "0, 0, 0, 0" }
400                 description      "
401                     This IP address is the default used by RedBoot if
402                     a BOOTP/DHCP server does not respond. The numbers
403                     should be separated by *commas*, and not dots. If
404                     an IP address is configured into the Flash
405                     configuration, that will be used in preference."
406     
407                 cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
408                      display          "Do not try to use BOOTP"
409                      flavor           bool
410                      default_value    0
411                      description      "
412                          By default Redboot tries to use BOOTP to get an IP
413                          address. If there's no BOOTP server on your network
414                          use this option to avoid to wait until the
415                          timeout. This option is overriden by the
416                          configuration stored in flash."
417                 }
418                 cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR {
419                      display           "Default bootp server"
420                      flavor            booldata
421                      default_value     CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : \
422                                           { "0, 0, 0, 0" }
423                      description       "
424                           This IP address is the default server
425                           address used by RedBoot if a BOOTP/DHCP
426                           server does not respond. The numbers should
427                           be separated by *commas*, and not dots. If
428                           an IP address is configured into the Flash
429                           configuration, that will be used in
430                           preference."
431                 }
432             }
433     
434             cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP {
435                 display          "Use DHCP to get IP information"
436                 flavor           bool
437                 default_value    1
438                 description      "
439                     Use DHCP protocol to obtain pertinent IP addresses, such 
440                     as the client, server, gateway, etc."
441             }
442     
443             cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY {
444                 display          "Use a gateway for non-local IP traffic"
445                 flavor           bool
446                 default_value    1
447                 requires         CYGSEM_REDBOOT_NETWORKING_DHCP
448                 description      "
449                   Enabling this option will allow the RedBoot networking
450                 stack to use a \[single\] gateway to reach a non-local
451                 IP address.  If disabled, RedBoot will only be able to
452                 reach nodes on the same subnet."
453     
454                 cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR {
455                     display          "Default gateway IP address"
456                     flavor           booldata
457                     default_value    CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : \
458                                         { "0, 0, 0, 0" }
459                     description      "
460                         This IP address is the default used by RedBoot
461                         if a BOOTP/DHCP server does not respond. The
462                         numbers should be separated by *commas*, and
463                         not dots. If an IP address is configured into
464                         the Flash configuration, that will be used in
465                         preference."
466                 }
467     
468                 cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK {
469                     display          "Default IP address mask"
470                     flavor           booldata
471                     default_value    CYGSEM_REDBOOT_FLASH_CONFIG ? 0 : \
472                                         { "255, 255, 255, 0" }
473                     description      "
474                         This IP address mask is the default used by
475                         RedBoot if a BOOTP/DHCP server does not
476                         respond. The numbers should be separated by
477                         *commas*, and not dots. If an IP address is
478                         configured into the Flash configuration, that
479                         will be used in preference."
480                 }
481             }
482     
483             cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT {
484                 display          "TCP port to listen for incoming connections"
485                 flavor           data
486                 default_value    9000
487                 description      "
488                    RedBoot will 'listen' on this port for incoming TCP 
489                    connections. This allows outside connections to be made 
490                    to the platform, either for GDB or RedBoot commands."
491             }
492     
493             cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF {
494                 display          "Number of \[network\] packet buffers"
495                 flavor           data
496                 default_value    4
497                 legal_values     3 to 8
498                 description      "
499                    RedBoot may need to buffer network data to support
500                    various connections.  This option allows control
501                    over the number of such buffered packets, and in
502                    turn, controls the amount of memory used by RedBoot
503                    (which is not available to user applications).
504                    Each packet buffer takes up about 1514 bytes.
505                    Note: there is little need to make this larger than
506                    the default."
507             }
508     
509             cdl_component CYGPKG_REDBOOT_NETWORKING_DNS {
510                 display         "DNS support"
511                 default_value   1
512                 active_if       CYGPKG_NS_DNS
513                 requires        !CYGPKG_NS_DNS_BUILD
514                 compile         net/dns.c
515                 description     "
516                     When this option is enabled, RedBoot will be built with
517                     support for DNS, allowing use of hostnames on the command
518                     line."
519             
520                 cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP {
521                     display         "Default DNS IP"
522                     flavor          data
523                     active_if       !CYGSEM_REDBOOT_FLASH_CONFIG
524                     default_value   { "0.0.0.0" }
525                     description "
526                       This option sets the IP of the default DNS. The IP can be
527                       changed at runtime as well."
528                 }
529     
530                 cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT {
531                     display         "Timeout in DNS lookup"
532                     flavor          data
533                     default_value   10
534                     description "
535                       This option sets the timeout used when looking up an
536                       address via the DNS. Default is 10 seconds."
537                 }
538     
539             }
540
541             cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE {
542                 display         "Default network device driver"
543                 flavor          data
544                 active_if       { CYGSEM_REDBOOT_FLASH_CONFIG && CYGHWR_NET_DRIVERS > 1 }
545                 default_value   { "\"\"" }
546                 description     "
547                     This is the name of the default network device to use."
548             }
549
550             cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
551                 display         "Initialize only one net device"
552                 flavor          bool
553                 active_if       { CYGHWR_NET_DRIVERS > 1 }
554                 default_value   0
555                 description     "
556                     This option tells RedBoot to stop initializing network
557                     devices when it finds the first device which is
558                     successfully initialized. The default behavior causes
559                     all network devices to be initialized."
560             }
561         }
562     
563         cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
564             display       "Let RedBoot use any I/O channel for its console."
565             flavor        bool
566             default_value 1
567             description   "
568               If this option is enabled then RedBoot will attempt to use all
569               defined serial I/O channels for its console device.  Once input
570               arrives at one of these channels then the console will use only
571               that port."
572         }
573     
574         cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
575             display       "Let RedBoot adjust the baud off the serial console."
576             flavor        bool
577             default_value 1
578             active_if     CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
579             description   "
580               If this option is enabled then RedBoot will support commands 
581               to set and query the baud rate on the selected console."     
582         }
583     
584         cdl_option CYGSEM_REDBOOT_PLF_STARTUP {
585             display       "Run a platform specific startup function."
586             flavor        bool
587             default_value 0
588             description   "
589               If this option is enabled then RedBoot will execute a platform
590               specific startup function before entering into its command line
591               processing.  This allows the platform to perform any special
592               setups before RedBoot actually starts running.  Note: the entire
593               RedBoot environment will already be initialized at this point."
594         }
595     
596         cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE {
597             display       "Run a platform specific ESA validation function."
598             flavor        bool
599             default_value 0
600             description   "
601               If this option is enabled then RedBoot will execute a platform
602               specific function to validate an ethernet ESA.  This would be
603               useful if the address must conform to standards set by the
604               hardware manufacturer, etc."
605         }
606     
607         cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE {
608             display       "Maximum command line length"
609             flavor        data
610             default_value 256
611             description   "
612               This option allows control over how long the CLI command line
613               should be.  This space will be allocated statically
614               rather than from RedBoot's stack."
615         }
616     
617         cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT {
618             display       "Command processing idle timeout (ms)"
619             flavor        data
620             default_value 10
621             description   "
622               This option controls the timeout period before the
623               command processing is considered 'idle'.  Making this
624               number smaller will cause idle processing to take place
625               more often, etc.  The default value of 10ms is a reasonable
626               tradeoff between responsiveness and overhead."
627         }
628     
629         cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS {
630             display       "Validate RAM addresses during load"
631             flavor        bool
632             default_value 1
633             description   "
634
635               This option controls whether or not RedBoot will make
636               sure that memory being used by the \"load\" command is
637               in fact in user RAM.  Leaving the option enabled makes
638               for a safer environment, but this check may not be valid
639               on all platforms, thus the ability to disable it.  
640               ** Disable this only with great care **"
641         }
642     
643         cdl_component CYGPKG_REDBOOT_FLASH {
644             display       "Allow RedBoot to support FLASH programming"
645             flavor        bool
646             default_value 1
647             active_if     CYGHWR_IO_FLASH_DEVICE
648             description   "
649               If this option is enabled then RedBoot will provide commands
650               to manage images in FLASH memory.  These images can be loaded
651               into memory for execution or executed in place."
652             compile -library=libextras.a flash.c
653     
654             cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
655                 display         "Byte order used to store info in flash."
656                 flavor          data
657                 default_value   { "NATURAL" }
658                 legal_values    {"NATURAL" "MSBFIRST" "LSBFIRST" }
659                 description "
660                     This option controls the byte ordering used to store
661                     the FIS directory info and flash config info."
662             }
663     
664             cdl_option CYGOPT_REDBOOT_FIS {
665                 display         "RedBoot Flash Image System support"
666                 default_value   1
667                 doc             ref/flash-image-system.html
668                 description "
669                     This option enables the Flash Image System commands
670                     and support within RedBoot.  If disabled, simple Flash
671                     access commands such as \"fis write\" will still exist.
672                     This option would be disabled for targets that need simple
673                     FLASH manipulation, but do not have the need or space for
674                     complete image management."
675             }
676
677             cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS {
678                 display        "Max number of chunks of free space to manage"
679                 flavor         booldata
680                 default_value  32
681                 description    "
682
683                   If this option is defined then \"fis free\" will
684                   rely on the FIS directory to determine what space is
685                   free within the FLASH.  This option controls the
686                   maximum number of free segment which can be handled
687                   (typically this number is small).  If this option is
688                   not enabled, the the archaic behaviour of actually
689                   scanning the FLASH for erased sectors (unreliable)
690                   will be used to determine what's free and what's
691                   not."
692             }
693     
694             cdl_component CYGPKG_REDBOOT_FIS_CONTENTS {
695                 display       "Flash Image System default directory contents"
696                 active_if     CYGOPT_REDBOOT_FIS
697                 calculated    1
698     
699                 cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
700                     display         "Flash block containing the Directory"
701                     flavor          data
702                     default_value   (-1)
703                     description "
704                       Which block of flash should hold the directory
705                       information. Positive numbers are absolute block
706                       numbers.  Negative block numbers count backwards
707                       from the last block.  eg 2 means block 2, -2
708                       means the last but one block."
709                 }
710     
711                 cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
712                     display         "Pseudo-file to describe reserved area"
713                     active_if       { 0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE }
714                     default_value   1
715                     description "
716                         If an area of FLASH is reserved, it is informative to
717                         have a fis entry describing it.  This option controls
718                         creation of such an entry by default in the fis init
719                         command."
720                 }
721     
722                 cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
723                     display         "File to describe RedBoot boot image"
724                     default_value   1
725                     description "
726                         Normally a ROM-startup RedBoot image is first in the
727                         FLASH, and the system boots using that image.  This
728                         option controls creation of an entry describing it in
729                         the fis init command.  It might be disabled if a
730                         platform has an immutable boot image of its own, where
731                         we use a POST-startup RedBoot instead, which performs
732                         less board initialization."
733                 }
734     
735                 cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
736                     display         "File to describe RedBoot POST-compatible image"
737                     default_value   !CYGOPT_REDBOOT_FIS_REDBOOT
738                     description "
739                         This option controls creation of an entry describing a
740                         POST-startup RedBoot image in the fis init command.
741                         Not all platforms support POST-startup.  A platform
742                         might have both for testing purposes, where the
743                         eventual user would substitute their own POST code for
744                         the initial ROM-startup RedBoot, and then jump to the
745                         POST-compatible RedBoot immediately following."
746                     cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
747                         display    "Offset of POST image from FLASH start"
748                         flavor     booldata
749                         default_value 0
750                         requires   { CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >= \
751                                      CYGBLD_REDBOOT_FLASH_BOOT_OFFSET }
752                         description "
753                         This option specifies the offset for a POST image from
754                         the start of FLASH.  If unset, then the fis entry
755                         describing the POST image will be placed where
756                         convenient."
757                     }
758                 }   
759     
760                 cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
761                     display         "File to describe RedBoot backup image"
762                     default_value   0
763                     description "
764                         This option controls creation of an entry describing a
765                         backup RedBoot image in the fis init command.
766                         Conventionally a RAM-startup RedBoot image is kept
767                         under this name for use in updating the ROM-based
768                         RedBoot that boots the board."
769                 }
770     
771                 cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
772                     display         "Include ARM SIB ID in FIS"
773                     default_value   0
774                     description "
775                       If set, this option will cause the last 5 words of
776                       the FIS to include the special ID needed for the
777                       flash to be recognized as a reserved area for RedBoot
778                       by an ARM BootRom monitor."
779                 }
780     
781                 cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE {
782                     display         "Size of FIS directory entry"
783                     flavor              data
784                     default_value   256
785                     description "
786                       The FIS directory is limited to one single flash
787                       sector. If your flash has tiny sectors, you may wish
788                       to reduce this value in order to get more slots in
789                       the FIS directory."
790                 }
791     
792                 cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT {
793                     display         "Number of FIS directory entries"
794                     flavor          data
795                     default_value   8
796                     description "
797                       The FIS directory normally occupies a single flash
798                       sector. Adjusting this value can allow for more than
799                       one flash sector to be used, which is useful if your
800                       sectors are very small."
801                 }
802     
803                 cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
804                     display       "Maximum RedBoot image size"
805                     flavor        data
806                     default_value { CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 }
807                     description "
808                       This option controls the maximum length reserved
809                       for the RedBoot boot image in the FIS table.
810                       This should be a multiple of the flash's erase
811                       block size."
812                 }
813         
814                 cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
815                     display       "Offset from start of FLASH to RedBoot boot image"
816                     flavor        data
817                     default_value CYGNUM_REDBOOT_FLASH_RESERVED_BASE
818                     requires      { CYGNUM_REDBOOT_FLASH_RESERVED_BASE <= \
819                                     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET }
820                     description "
821                       This option controls where the RedBoot boot image is 
822                       located relative to the start of FLASH."
823                 }
824         
825                 cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
826                     display       "Size of reserved area at start of FLASH"
827                     flavor        data
828                     default_value 0
829                     description "
830                       This option reserves an area at the start of
831                       FLASH where RedBoot will never interfere; it is
832                       expected that this area contains
833                       (non-RedBoot-based) POST code or some other boot
834                       monitor that executes before RedBoot."
835                 }
836             }
837     
838             cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL {
839                 display       "Keep all RedBoot FLASH data blocks locked."
840                 flavor        bool
841                 default_value 1
842                 active_if     { CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 }
843                 description "
844                   When this option is enabled, RedBoot will keep configuration
845                   data and the FIS directory blocks implicitly locked.  While
846                   this is somewhat safer, it does add overhead during updates."
847             }
848     
849             cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
850                 display       "Use CRC checksums on FIS images."
851                 flavor        bool
852                 default_value 1
853                 description "
854                   When this option is enabled, RedBoot will use CRC checksums
855                   when reading and writing flash images."
856             }
857     
858             cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED {
859                 display       "ARM FLASH drivers support SIB flash block structure"
860                 active_if     CYGPKG_HAL_ARM
861                 description   "This interface is implemented by a flash driver
862                                to indicate that it supports the ARM SIB flash
863                                block structure"
864             }
865     
866             cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB {
867                 display       "Use ARM SIB flash block structure"
868                 flavor        bool
869                 active_if     CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
870                 default_value 1
871                 description "
872                   This option is used to interpret ARM Flash System 
873                   information blocks."
874             }
875         }
876     
877         cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
878             display       "Keep RedBoot configuration data in FLASH"
879             flavor        bool
880             default_value { CYGPKG_IO_FLASH != 0 }
881             compile       fconfig.c
882             description "
883               When this option is enabled, RedBoot will keep configuration
884               data in a separate block of FLASH memory.  This data will
885               include such items as the node IP address or startup scripts."
886
887             cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE {
888                 display       "Length of configuration data in FLASH"
889                 flavor        data
890                 default_value 4096
891                 description "
892                   This option is used to control the amount of memory and FLASH
893                   to be used for configuration options (persistent storage)."
894             }
895
896             cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA {
897                 display       "Style of media used for persistent data storage"
898                 flavor        data
899                 legal_values  { "FLASH" "EEPROM" }
900                 default_value { "FLASH" }
901                 description "
902                   Persistent data storage can either be held in 'norma' FLASH
903                   or some other device (represented by the 'EEPROM' choice).
904                   The different styles utilize different access methods."
905             }
906
907             cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
908                 display       "Merged config data and FIS directory"
909                 flavor        bool              
910                 active_if     { CYGOPT_REDBOOT_FIS && \
911                                (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") }
912                 default_value 1
913                 description "
914                   If this option is set, then the FIS directory and FLASH 
915                   configuration database will be stored in the same physical
916                   FLASH block."
917             }
918
919             cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
920                 display       "Which block of flash to use" 
921                 flavor         data
922                 default_value  (-2)
923                 description "
924                   Which block of flash should hold the configuration 
925                   information. Positive numbers are absolute block numbers. 
926                   Negative block numbers count backwards from the last block.
927                   eg 2 means block 2, -2 means the last but one block."
928             }
929
930             cdl_option CYGSEM_REDBOOT_FLASH_ALIASES {
931                 display       "Support simple macros/aliases in FLASH"
932                 flavor        bool
933                 default_value 1
934                 description "
935                   This option is used to allow support for simple text-based
936                   macros (aliases).  These aliases are kept in the FLASH
937                   configuration data (persistent storage)."
938             }
939
940             cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE {
941                 display       "Length of strings in FLASH configuration data"
942                 flavor        data
943                 default_value 128
944                 description "
945                   This option is used to control the amount of memory
946                   and FLASH to be used for string configuration
947                   options (persistent storage)."
948             }
949
950             cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE {
951                 display       "Length of configuration script(s) in FLASH"
952                 flavor        data
953                 default_value 512
954                 description "
955                   This option is used to control the amount of memory and 
956                   FLASH to be used for configuration options (persistent 
957                   storage)."
958             }
959
960             cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK {
961                 display       "Fallback to read-only FLASH configuration"
962                 flavor        bool
963                 default_value { (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") }
964                 description "
965                   This option will cause the configuration information to
966                   revert to the readonly information stored in the FLASH.
967                   The option only takes effect after 
968                     1) the config_ok flag has been set to be true,
969                        indicating that at one time the copy in RAM was valid;
970                   and
971                     2) the information in RAM has been verified to be invalid"
972                   
973             }
974         }
975     
976         cdl_component CYGPKG_REDBOOT_FILEIO {
977             display       "Allow RedBoot to support fileio"
978             flavor        bool
979             default_value 1
980             active_if     CYGPKG_IO_FILEIO
981             description   "
982               If this option is enabled then RedBoot will provide commands
983               to load files from fileio file systems such as JFFS2."
984             compile -library=libextras.a fs/fileio.c
985
986             cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS {
987                 display       "Include an ls command"
988                 flavor        bool
989                 default_value 1
990                 description   "
991                    If this option is enabled a simple ls command will be
992                    included in redboot so the contents of a directory
993                    can be listed"
994             }
995         }
996
997         cdl_component CYGPKG_REDBOOT_DISK {
998             display       "Allow RedBoot to support disks"
999             flavor        bool
1000             default_value 1
1001             description   "
1002               If this option is enabled then RedBoot will provide commands
1003               to load disk files."
1004
1005             cdl_option CYGSEM_REDBOOT_DISK {
1006                 display   "Include Redboot commands for disk access"
1007                 default_value { CYGINT_REDBOOT_DISK_DRIVERS != 0 }
1008                 compile -library=libextras.a fs/disk.c
1009             }
1010
1011             cdl_interface CYGINT_REDBOOT_DISK_DRIVERS {
1012                 display  "Hardware drivers for disk-type devices"
1013             }
1014     
1015             cdl_option CYGNUM_REDBOOT_MAX_DISKS {
1016                 display       "Maximum number of supported disks"
1017                 flavor        data
1018                 default_value 4
1019                 description "
1020                   This option controls the number of disks supported by 
1021                   RedBoot."
1022             }
1023     
1024             cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS {
1025                 display       "Maximum number of partitions per disk"
1026                 flavor        data
1027                 default_value 8
1028                 description "
1029                   This option controls the maximum number of supported 
1030                   partitions per disk."
1031             }
1032     
1033             cdl_component CYGSEM_REDBOOT_DISK_IDE {
1034                 display       "Support IDE disks."
1035                 flavor        bool
1036                 default_value 1
1037                 active_if     { CYGINT_HAL_PLF_IF_IDE != 0 }
1038                 description "
1039                   When this option is enabled, RedBoot will support IDE disks."
1040                 compile -library=libextras.a fs/ide.c
1041                 implements    CYGINT_REDBOOT_DISK_DRIVERS
1042
1043                 cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE {
1044                     display       "Work with VMware virtual disks"
1045                     flavor        bool
1046                     default_value 0
1047                     description "
1048                         This option controls the disk driver behavior at 
1049                         ide-init"
1050                 }
1051             }
1052     
1053             cdl_component CYGSEM_REDBOOT_DISK_EXT2FS {
1054                 display       "Support Linux second extended filesystems."
1055                 flavor        bool
1056                 default_value 1
1057                 description "
1058                   When this option is enabled, RedBoot will support IDE disks."
1059                 compile -library=libextras.a fs/e2fs.c
1060             }
1061     
1062             cdl_component CYGSEM_REDBOOT_DISK_ISO9660 {
1063                 display       "Support ISO9660 filesystems."
1064                 flavor        bool
1065                 calculated    0
1066                 description "
1067                   When this option is enabled, RedBoot will support ISO9660 
1068                   filesystems."
1069                 compile -library=libextras.a fs/iso9660fs.c
1070             }
1071         }
1072     
1073         cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT {
1074             display         "Boot scripting"
1075             doc             ref/persistent-state-flash.html
1076             flavor          none
1077             no_define
1078             description     "
1079                     This contains options related to RedBoot's boot script
1080                     functionality."
1081             
1082             cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT {
1083                     display         "Boot scripting enabled"
1084                     flavor          bool
1085                     active_if       { CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT || \
1086                                       CYGSEM_REDBOOT_FLASH_CONFIG }
1087                     calculated      1
1088                     description "
1089                       This option controls whether RedBoot boot script
1090                       functionality is enabled." 
1091             }
1092     
1093             cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT {
1094                     display         "Use default RedBoot boot script"
1095                     flavor          booldata
1096                     default_value   0
1097                     description "
1098                       If enabled, this option will tell RedBoot to use the 
1099                       value of this option as a default boot script."
1100             }
1101     
1102             cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
1103                 display       "Resolution (in ms) for script timeout value."
1104                 flavor        data
1105                 default_value 1000
1106                 description "
1107                   This option controls the resolution of the script
1108                   timeout.  The value is specified in milliseconds
1109                   (ms), thus to have the script timeout be defined in
1110                   terms of tenths of seconds, use 100."    
1111             }
1112     
1113             cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
1114                 display       "Script default timeout value"
1115                 flavor        data
1116                 default_value 10
1117                 description "
1118                   This option is used to set the default timeout for startup
1119                   scripts, when they are enabled."
1120             }
1121         }
1122     
1123         cdl_option CYGSEM_REDBOOT_RTC {
1124             display      "Support RTC for time & date functions"
1125             active_if    { CYGPKG_IO_WALLCLOCK }
1126             default_value 1
1127             description  "
1128               When this option is enabled, RedBoot will support commands to
1129               query and set the real time clock (time and date)"
1130             compile -library=libextras.a time_date.cxx
1131         }
1132     
1133         cdl_option CYGPRI_REDBOOT_ROM_MONITOR {
1134             display      "Behave like a ROM monitor"
1135             active_if    { CYG_HAL_STARTUP == "ROM" || \
1136                            CYG_HAL_STARTUP == "ROMRAM" }
1137             requires     CYGSEM_HAL_ROM_MONITOR
1138             calculated   1
1139             no_define
1140             description  "
1141               Enabling this option will allow RedBoot to provide ROM 
1142               monitor-style services to programs which it executes."
1143         }
1144     
1145         cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
1146             display       "Allow RedBoot to handle GNUPro application 'syscalls'."
1147             flavor        bool
1148             default_value 0
1149             description   "
1150               If this option is enabled then RedBoot will install a
1151               syscall handler to support debugging of applications
1152               based on GNUPro newlib/bsp."
1153     
1154             cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF {
1155                 display "Support additional syscalls for 'gprof' profiling"
1156                 flavor  bool
1157                 default_value 1
1158                 active_if       { 0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT }
1159                 description "
1160                     Support additional syscalls to support a periodic callback
1161                     function for histogram-style profiling, and an enquire/set
1162                     of the tick rate.
1163                     The application must use the GNUPro newlib facilities
1164                     to set this up."
1165             }
1166     
1167             cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT {
1168                 display "Does the HAL support 'gprof' profiling?"
1169                 no_define
1170             }
1171
1172             cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP {
1173                 display "Do not raise SIGTRAP when program exits"
1174                 default_value 0
1175                 description "
1176                     For some (single shot) newlib based programs,
1177                     exiting and returning a termination status may be
1178                     the normal expected behavior."
1179             }
1180         }
1181     
1182         cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER {
1183             display             "Use a common buffer for Zlib and FIS"
1184             flavor              bool
1185             active_if           { CYGBLD_BUILD_REDBOOT_WITH_ZLIB && \
1186                               CYGOPT_REDBOOT_FIS }
1187             default_value       0
1188             description         "
1189                 Use a common memory buffer for both the zlib workspace
1190                 and FIS directory operations. This can save a substantial
1191                 amount of RAM, especially when flash sectors are large."
1192     
1193             cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE {
1194                 display             "Size of Zlib/FIS common buffer"
1195                 flavor              data
1196                 default_value   0xc000
1197                 legal_values    0x4000 to 0x80000000
1198                 description     "
1199                     Size of common buffer to allocate. Must be at least the
1200                     size of one flash sector."
1201             }
1202         }
1203         cdl_option CYGNUM_REDBOOT_GETC_BUFFER {
1204             display       "Buffer size in getc when loading images"
1205             flavor        data
1206             default_value { CYGPKG_REDBOOT_FILEIO ? 4096 : 256 }
1207             description   "
1208                 When loading images a buffer is used between redboot and the
1209                 underlying storage medium, eg a filesystem, or a socket etc.
1210                 The size of this buffer can have a big impart on load speed."
1211         }
1212
1213     }
1214 }
1215
1216 # EOF redboot.cdl