summaryrefslogblamecommitdiff
path: root/apps/nshlib/Kconfig
blob: 0036ed928b217101c9c3ba55cae98e6e0d981220 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                             
                                      
 
 



                          

                                                                             

              
 

                                 

                                    

                                             














                                                                               
                                                          





                                                                            




































                                                                                       











































                                                                                      

                                           
                 
                          
                  
                                                                                
                                                                           

                                                                             
 








                                                                            
                                  
 

                               

                                   
 

                                

                                   



                                                   

                                   

                                                   


                          
 


                         
 


                         
 

                          

                                   
 

                         

                                   
 




                                   

                               

                                   
 


                           
 

                           

                                   
 

                           

                                                 
 


                           
 

                          

                                   
 


                           
 

                              

                                   
 


                               
 


                           
 

                              

                                   
 


                         
 


                         


                          

                                   

                                                     


                            
 

                              


                                   
 

                             

                                   
 

                           

                                   
 


                         
 


                            
 


                         
 


                               
                      
 


                         
                                                    
 


                           
                           
 

                          

                                   
 


                          
 


                         
 


                            
 


                          
 


                         
 


                            
 


                           
 


                             
 


                            


                                

                                   



                                                    

                                   

                                                    


                             
 

                           

                                   
 

                         

                                   
 

       



                                                  

                                   
                                  
 



                                                     

                                                            

                                   

                                       
                          


                                  
 

       
                     
                                 

                                      
                  
                                                                            
                                                             



                             
                                


                                                                            

                                                                            
 
                        


                                     

                                   





                                                                               



                                      

                                   






                                                                              

                                   







                                                                                












                                                                                
                           





                                                                             












                                                                                 















                                                                                      








                                                                                    



                                             
                                                                                   










                                                                                 









                                                                                 
                    
                                               

                                                                            
























                                                                                   
 

                                           
                 
                         







                                                                                   
                         







                                                                                    
                         







                                                                                    

                         


                                                                                  

                                                       
                    
                           
 
                            
 







                                                                        
                                                                     


                                                                 

                                                                       
 

                                                                     
 

                                                                               

                     
                                       
                 
                                                              
                  




                                                                                   

                    


                                          
                  


                                                                         
                                                                      
 
                   
                                                    
                 



                                                                         

                      
























































                                                                                    
                 
                                     





















                                                                                    
                               
 

                                                    
 


                                               










                                                                                    






























                                             
                        
                                  
 

                                                        
                 
                  



                                                                               
 

                               
 
































                                                                                     


                                 
                                                                                        







                                                                                    
                                                                          


                                                                                 

                      







                                                                                 










                                                                                     









                                                      











                                                                                   





                                                
 

                                                                                             
 



                                                   
                  


                                                                                     
 






                                                                                      
 






                                                                                    
 





                                                    
 









                                                                                  
                 
                                     
                  
























































                                                                                     


                                 

                                   
                                   






                                                                            
 




































                                                                                      



























                                                                              

                        

                              
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

config NSH_LIBRARY
	bool "NSH Library"
	default n
	---help---
		Build the NSH support library.  This is used, for example, by
		examples/nsh in order to implement the full NuttShell (NSH).

if NSH_LIBRARY

menu "Command Line Configuration"

choice
	prompt "Command Line Editor"
	default NSH_READLINE if DEFAULT_SMALL
	default NSH_CLE if !DEFAULT_SMALL

config NSH_READLINE
	bool "Minimal readline()"
	select SYSTEM_READLINE
	---help---
		Selects the minimal implementation of readline().  This minimal
		implementation provides on backspace for command line editing.

config NSH_CLE
	bool "Command Line Editor"
	select SYSTEM_CLE
	---help---
		Selects the more extensive, EMACS-like command line editor.
		Select this option only if (1) you don't mind a modest increase
		in the FLASH footprint, and (2) you work with a terminal that
		supports extensive VT100 editing commands.

		Selecting this option will add probably 1.5-2KB to the FLASH
		footprint.

endchoice

config NSH_LINELEN
	int "Max command line length"
	default 64 if DEFAULT_SMALL
	default 80 if !DEFAULT_SMALL
	---help---
		The maximum length of one command line and of one output line.
		Default: 64/80

config NSH_DISABLE_SEMICOLON
	bool "Disable multiple commands per line"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	---help---
		By default, you can enter multiple NSH commands on a line with each
		command separated by a semicolon.  You can disable this feature to
		save a little memory on FLASH challenged platforms.

config NSH_CMDPARMS
	bool "Enable commands as parameters"
	default n if DEFAULT_SMALL
	default y if !DEFAULT_SMALL
	depends on !DISABLE_MOUNTPOINT
	---help---
		If selected, then the output from commands, from file applications, and
		from NSH built-in commands can be used as arguments to other
		commands.  The entity to be executed is identified by enclosing the
		command line in back quotes.  For example,

			set FOO `myprogram $BAR`

		Will execute the program named myprogram passing it the value of the
		environment variable BAR.  The value of the environment variable FOO
		is then set output of myprogram on stdout.

		Because this feature commits significant resources, it is disabled by
		default.

config NSH_MAXARGUMENTS
	int "Maximum number of command arguments"
	default 6
	---help---
		The maximum number of NSH command arguments.
		Default: 6

config NSH_ARGCAT
	bool "Concatenation of argument strings"
	default n if DEFAULT_SMALL
	default y if !DEFAULT_SMALL
	---help---
		Support concatenation of strings with environment variables or command
		output.  For example:

			set FOO XYZ
			set BAR 123
			set FOOBAR ABC_${FOO}_${BAR}

		would set the environment variable FOO to XYZ, BAR to 123 and FOOBAR
		to ABC_XYZ_123.  If NSH_ARGCAT is not selected, then a slightly small
		FLASH footprint results but then also only simple environment
		variables like $FOO can be used on the command line.

config NSH_NESTDEPTH
	int "Maximum command nesting"
	default 3
	---help---
		The maximum number of nested if-then[-else]-fi sequences that
		are permissable.  Default: 3

config NSH_DISABLEBG
	bool "Disable background commands"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	---help---
		This can be set to 'y' to suppress support for background
		commands.  This setting disables the 'nice' command prefix and
		the '&' command suffix.  This would only be set on systems
		where a minimal footprint is a necessity and background command
		execution is not.

endmenu # Command Line Configuration

config NSH_BUILTIN_APPS
	bool "Enable built-in applications"
	default n
	depends on BUILTIN
	---help---
		Support external registered, "built-in" applications that can be
		executed from the NSH command line (see apps/README.txt for
		more information).  This options requires support for builtin
		applications (BUILTIN).

config NSH_FILE_APPS
	bool "Enable execution of program files"
	default n
	depends on LIBC_EXECFUNCS
	---help---
		Support execution of program files residing within a file
		system.  This options requires support for the posix_spawn()
		interface (LIBC_EXECFUNCS).

menu "Disable Individual commands"

config NSH_DISABLE_ADDROUTE
	bool "Disable addroute"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_BASE64DEC
	bool "Disable base64dec"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	depends on NETUTILS_CODECS && CODECS_BASE64

config NSH_DISABLE_BASE64ENC
	bool "Disable base64enc"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	depends on NETUTILS_CODECS && CODECS_BASE64

config NSH_DISABLE_CAT
	bool "Disable cat"
	default n

config NSH_DISABLE_CD
	bool "Disable cd"
	default n

config NSH_DISABLE_CP
	bool "Disable cp"
	default n

config NSH_DISABLE_CMP
	bool "Disable cmp"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_DD
	bool "Disable dd"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_DF
	bool "Disable df"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_DELROUTE
	bool "Disable delroute"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_ECHO
	bool "Disable echo"
	default n

config NSH_DISABLE_EXEC
	bool "Disable exec"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_EXIT
	bool "Disable exit"
	default y if DEFAULT_SMALL && !NSH_TELNET
	default n if !DEFAULT_SMALL || NSH_TELNET

config NSH_DISABLE_FREE
	bool "Disable free"
	default n

config NSH_DISABLE_GET
	bool "Disable get"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_HELP
	bool "Disable help"
	default n

config NSH_DISABLE_HEXDUMP
	bool "Disable hexdump"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_IFCONFIG
	bool "Disable ifconfig"
	default n

config NSH_DISABLE_KILL
	bool "Disable kill"
	default n

config NSH_DISABLE_LOSETUP
	bool "Disable losetup"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_LS
	bool "Disable ls"
	default n

config NSH_DISABLE_MB
	bool "Disable mb"
	default n

config NSH_DISABLE_MD5
	bool "Disable md5"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	depends on NETUTILS_CODECS && CODECS_HASH_MD5

config NSH_DISABLE_MKDIR
	bool "Disable mkdir"
	default n

config NSH_DISABLE_MKFATFS
	bool "Disable mkfatfs"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	depends on FS_FAT

config NSH_DISABLE_MKFIFO
	bool "Disable mkfifo"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_MKRD
	bool "Disable mkrd"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_MH
	bool "Disable mh"
	default n

config NSH_DISABLE_MOUNT
	bool "Disable mount"
	default n

config NSH_DISABLE_MW
	bool "Disable mw"
	default n

config NSH_DISABLE_NSFMOUNT
	bool "Disable nfsmount"
	default n
	depends on NFS

config NSH_DISABLE_PS
	bool "Disable ps"
	default n
	depends on !BUILD_PROTECTED && !BUILD_KERNEL

config NSH_DISABLE_PING
	bool "Disable ping"
	default n
	depends on NET_ICMP

config NSH_DISABLE_PUT
	bool "Disable put"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_PWD
	bool "Disable pwd"
	default n

config NSH_DISABLE_RM
	bool "Disable rm"
	default n

config NSH_DISABLE_RMDIR
	bool "Disable rmdir"
	default n

config NSH_DISABLE_SET
	bool "Disable set"
	default n

config NSH_DISABLE_SH
	bool "Disable sh"
	default n

config NSH_DISABLE_SLEEP
	bool "Disable sleep"
	default n

config NSH_DISABLE_TEST
	bool "Disable test"
	default n

config NSH_DISABLE_UMOUNT
	bool "Disable umount"
	default n

config NSH_DISABLE_UNSET
	bool "Disable unset"
	default n

config NSH_DISABLE_URLDECODE
	bool "Disable urldecode"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	depends on NETUTILS_CODECS && CODECS_URLCODE

config NSH_DISABLE_URLENCODE
	bool "Disable urlencode"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	depends on NETUTILS_CODECS && CODECS_URLCODE

config NSH_DISABLE_USLEEP
	bool "Disable usleep"
	default n

config NSH_DISABLE_WGET
	bool "Disable wget"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

config NSH_DISABLE_XD
	bool "Disable xd"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL

endmenu

menu "Configure Command Options"

config NSH_CMDOPT_DF_H
	bool "df: Enable [-h] man-readable format"
	default n if DEFAULT_SMALL
	default y if !DEFAULT_SMALL
	depends on !NSH_DISABLE_DF

config NSH_CODECS_BUFSIZE
	int "File buffer size used by CODEC commands"
	default 128

config NSH_CMDOPT_HEXDUMP
	bool "hexdump: Enable 'skip' and 'count' parameters"
	default n if DEFAULT_SMALL
	default y if !DEFAULT_SMALL
	depends on !NSH_DISABLE_HEXDUMP

config NSH_PROC_MOUNTPOINT
	string "procfs mountpoint"
	default "/proc"
	depends on FS_PROCFS

endmenu

config NSH_FILEIOSIZE
	int "NSH I/O buffer size"
	default 512 if DEFAULT_SMALL
	default 1024 if !DEFAULT_SMALL
	---help---
		Size of a static I/O buffer used for file access (ignored if
		there is no filesystem). Default is 512/1024.

config NSH_STRERROR
	bool "Use strerror()"
	default n
	depends on LIBC_STRERROR
	---help---
		strerror(errno) makes more readable output but strerror() is
		very large and will not be used unless this setting is 'y'
		This setting depends upon the strerror() having been enabled
		with LIBC_STRERROR.

menu "Scripting Support"

config NSH_DISABLESCRIPT
	bool "Disable script support"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	---help---
		This can be set to 'y' to suppress support for scripting.  This
		setting disables the 'sh', 'test', and '[' commands and the
		if-then[-else]-fi construct.  This would only be set on systems
		where a minimal footprint is a necessity and scripting is not.

if !NSH_DISABLESCRIPT

config NSH_DISABLE_ITEF
	bool "Disable if-then-else-fi"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	---help---
		This can be set to 'y' to suppress support for if-then-else-fi
		sequences in scripts.  This would only be set on systems where
		some minimal scripting is required but if-then-else-fi is not.

config NSH_DISABLE_LOOPS
	bool "Disable loops"
	default y if DEFAULT_SMALL
	default n if !DEFAULT_SMALL
	---help---
		This can be set to 'y' to suppress support for while-do-done and
		until-do-done sequences in scripts.  This would only be set on
		systems where some minimal scripting is required but looping
		is not.

endif # !NSH_DISABLESCRIPT

config NSH_MMCSDMINOR
	int "MMC/SD minor device number"
	default 0
	---help---
		If the architecture supports an MMC/SD slot and if the NSH
		architecture specific logic is present, this option will provide
		the MMC/SD minor number, i.e., the MMC/SD block driver will
		be registered as /dev/mmcsdN where N is the minor number.
		Default is zero.

config NSH_ROMFSETC
	bool "Support ROMFS start-up script"
	default n
	depends on FS_ROMFS
	---help---
		Mount a ROMFS filesystem at /etc and provide a startup script
		at /etc/init.d/rcS.  The default startup script will mount
		a FAT FS RAMDISK at /tmp but the logic is easily extensible.

if NSH_ROMFSETC

config NSH_ROMFSRC
	bool "Support ROMFS login script"
	default n
	---help---
		The ROMFS start-up script will be executed excactly once.  For
		simple, persistence consoles (like a serial console).  But with
		other other kinds of consoles, there may be multiple, transient
		sessions (such as Telnet and USB consoles).  In these cases, you
		may need another script that is executed at the beginning of each
		session.  Selecting this option enables support for such a login
		script

config NSH_ROMFSMOUNTPT
	string "ROMFS mount point"
	default "/etc"
	---help---
		The default mountpoint for the ROMFS volume is /etc, but that
		can be changed with this setting.  This must be a absolute path
		beginning with '/'.

config NSH_INITSCRIPT
	string "Relative path to startup script"
	default "init.d/rcS"
	---help---
		This is the relative path to the startup script within the mountpoint.
		The default is init.d/rcS.  This is a relative path and must not
		start with '/'.

config NSH_RCSCRIPT
	string "Relative path to login script"
	default ".nshrc"
	depends on NSH_ROMFSRC
	---help---
		This is the relative path to the login script within the mountpoint.
		The default is .nshrc.  This is a relative path and must not
		start with '/'.

config NSH_ROMFSDEVNO
	int "ROMFS block device minor number"
	default 0
	---help---
		This is the minor number of the ROMFS block device.  The default is
		'0' corresponding to /dev/ram0.

config NSH_ROMFSSECTSIZE
	int "ROMFS sector size"
	default 64
	---help---
		This is the sector size to use with the ROMFS volume.  Since the
		default volume is very small, this defaults to 64 but should be
		increased if the ROMFS volume were to be become large.  Any value
		selected must be a power of 2.

choice
	prompt "ROMFS header location"
	default NSH_DEFAULTROMFS

config NSH_DEFAULTROMFS
	bool "Default ROMFS header path"
	---help---
		Selects the default header located in the source directory of the
		NSH library.

config NSH_ARCHROMFS
	bool "Architecture-specific ROMFS path"
	---help---
		Enable this option to provide an architecture-specific ROMFS
		header at arch/<boardname>/nsh_romfsimg.h.  Note that this header
		will be linked (or copied) from nuttx/configs/<boardname>/include
		and should be stored at that location in the nuttx configs/
		sub-directory.

config NSH_CUSTOMROMFS
	bool "Custom ROMFS header path"
	---help---
		Enable this option to provide a custom ROMFS header. The path to
		the header file can be specified in the option "Custom ROMFS header
		file".

endchoice

if NSH_CUSTOMROMFS

config NSH_CUSTOMROMFS_HEADER
	string "Custom ROMFS header file path"
	default ""
	---help---
		Specifies the path to the custom ROMFS header file.  This must be
		either a full path or a path relative to one of the include file
		search paths provided in your CFLAGS.

endif #NSH_CUSTOMROMFS

config NSH_FATDEVNO
	int "FAT block device minor number"
	default 1
	depends on FS_FAT
	---help---
		When the default rcS file used when NSH_ROMFSETC is selected, it
		will mount a FAT FS under /tmp. This is the minor number of the FAT
		FS block device.  The default is '1' corresponding to /dev/ram1.

config NSH_FATSECTSIZE
	int "FAT sector size"
	default 512
	depends on FS_FAT
	---help---
		When the default rcS file used when NSH_ROMFSETC is selected, it
		will mount a FAT FS under /tmp. This is the sector size use with the
		FAT FS. Default is 512.

config NSH_FATNSECTORS
	int "FAT number of sectors"
	default 1024
	depends on FS_FAT
	---help---
		When the default rcS file used when NSH_ROMFSETC is selected, it
		will mount a FAT FS under /tmp. This is the number of sectors to use
		with the FAT FS.  Defualt is 1024.  The amount of memory used by the
		FAT FS will be NSH_FATSECTSIZE * NSH_FATNSECTORS bytes.

config NSH_FATMOUNTPT
	string "FAT mount point"
	default "/tmp"
	depends on FS_FAT
	---help---
		When the default rcS file used when NSH_ROMFSETC is selected, it
		will mount a FAT FS under /tmp. This is the location where the FAT
		FS will be mounted.  Default is "/tmp".

endif # NSH_ROMFSETC
endmenu # Scripting Support

menu "Console Configuration"

config NSH_CONSOLE
	bool "Use console"
	default y
	---help---
		If NSH_CONSOLE is set to 'y', then a character driver
		console front-end is selected (/dev/console).

		Normally, the serial console device is a UART and RS-232
		interface.  However, if USBDEV is defined, then a USB
		serial device may, instead, be used if the one of
		the following are defined:

		PL2303 and PL2303_CONSOLE - Set up the Prolifics PL2303
		emulation as a console device at /dev/console.

		CDCACM and CDCACM_CONSOLE - Set up the CDC/ACM serial
		device as a console device at dev/console.

		NSH_USBCONSOLE and NSH_USBCONDEV - Sets up some other USB
		serial device as the NSH console (not necessarily dev/console).

config NSH_USBCONSOLE
	bool "Use a USB serial console"
	default n
	depends on NSH_CONSOLE && USBDEV && (CDCACM || PL2303)
	---help---
		If defined, then the an arbitrary USB serial device may be used
		to as the NSH console.  In this case, NSH_USBCONDEV must be defined
		to indicate which USB serial device to use as the console.

if NSH_USBCONSOLE

config NSH_USBCONDEV
	string "USB serial console device"
	default "/dev/ttyACM0" if CDCACM
	default "/dev/ttyUSB0" if !CDCACM
	---help---
		If NSH_USBCONSOLE is set to 'y', then NSH_USBCONDEV must
		also be set to select the USB device used to support the
		NSH console.   This should be set to the quoted name of a
		read-/write-able USB driver.  Default: "/dev/ttyACM0".

config USBDEV_MINOR
	int "USB serial console device minor number"
	default 0
	---help---
		If there are more than one USB devices, then a USB device
		minor number may also need to be provided. Default: 0

endif # NSH_USBCONSOLE

config NSH_ALTCONDEV
	bool "Alternative console device"
	default n
	depends on NSH_CONSOLE && !NSH_USBCONSOLE && !NSH_TELNET
	---help---
		If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV may
		also be selected to enable use of an alternate character device
		to support the NSH console. If CONFIG_NSH_ALTCONDEV is selected,
		then NSH_CONDEV must be set to select the serial device used to
		support the NSH console.  This may be useful, for example, to
		separate the NSH command line from the system console when the
		system console is used to provide debug output.  Default: stdin
		and stdout (probably "/dev/console")

		NOTE 1: When any other device other than /dev/console is used
		for a user interface, (1) linefeeds (\n) will not be expanded to
		carriage return / linefeeds (\r\n).  You will need to set
		your terminal program to account for this.  And (2) input is
		not automatically echoed so you will have to turn local echo on.

		NOTE 2:  This option forces the console of all sessions to use
		NSH_CONDEV.  Hence, this option only makes sense for a system
		that supports only a single session.  This option is, in
		particular, incompatible with Telnet sessions because each Telnet
		session must use a different console device.

if NSH_ALTCONDEV

config NSH_CONDEV
	string "Alternative console device name"
	default "/dev/console"
	---help---
		If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV may
		also be selected to enable use of an alternate character device
		to support the NSH console. If CONFIG_NSH_ALTCONDEV is selected,
		then NSH_CONDEV must be set to select the serial device used to
		support the NSH console.   This should be set to the quoted name
		of a readable/write-able character driver such as:
		NSH_CONDEV="/dev/ttyS1".  This is useful, for example, to separate
		the NSH command line from the system console when the system console
		is used to provide debug output.  Default: stdin and stdout
		(probably "/dev/console")

		NOTE 1: When any other device other than /dev/console is used
		for a user interface, (1) linefeeds (\n) will not be expanded to
		carriage return / linefeeds (\r\n).  You will need to set
		your terminal program to account for this.  And (2) input is
		not automatically echoed so you will have to turn local echo on.

		NOTE 2:  This option forces the console of all sessions to use
		NSH_CONDEV.  Hence, this option only makes sense for a system
		that supports only a single session.  This option is, in
		particular, incompatible with Telnet sessions because each Telnet
		session must use a different console device.

endif # NSH_ALTCONDEV

config NSH_USBKBD
	bool "Use USB keyboard input"
	default n
	depends on NSH_CONSOLE && USBHOST_HIDKBD && !NSH_USBCONSOLE
	---help---
		Normally NSH uses the same device for stdin, stdout, and stderr.  By
		default, that device is /dev/console.  If this option is selected,
		then NSH will use a USB HID keyboard for stdin.  In this case, the
		keyboard is connected directly to the target (via a USB host
		interface) and the data from the keyboard will drive NSH.  NSH
		output (stdout and stderr) will still go to /dev/console.

if NSH_USBKBD

config NSH_USBKBD_DEVNAME
	string "USB keyboard device"
	default "/dev/kbda"
	---help---
		If NSH_USBKBD is set to 'y', then NSH_USBKBD_DEVNAME must also be
		set to select the USB keyboard device used to support the NSH
		console input.   This should be set to the quoted name of a read-
		able keyboard driver. Default: "/dev/kbda".

endif #NSH_USBKBD
endmenu # Console Configuration

menu "USB Device Trace Support"
	depends on USBDEV && (DEBUG || USBDEV_TRACE)

config NSH_USBDEV_TRACE
	bool "Enable Builtin USB Trace Support"
	default n
	---help---
		Enable builtin USB trace support in NSH.  If selected, buffered USB
		trace data will be presented each time a command is provided to NSH.
		The USB trace data will be sent to the console unless DEBUG set or
		unless you are using a USB console.  In those cases, the trace data
		will go to the SYSLOG device.

		If not enabled, the USB trace support can be provided by external
		logic such as apps/system/usbmonitor.

if NSH_USBDEV_TRACE

config NSH_USBDEV_TRACEINIT
	bool "Show initialization events"
	default n
	---help---
		Show initialization events

config NSH_USBDEV_TRACECLASS
	bool "Show class driver events"
	default n
	---help---
		Show class driver events

config NSH_USBDEV_TRACETRANSFERS
	bool "Show data transfer events"
	default n
	---help---
		Show data transfer events

config NSH_USBDEV_TRACECONTROLLER
	bool "Show controller events"
	default n
	---help---
		Show controller events

config NSH_USBDEV_TRACEINTERRUPTS
	bool "Show interrupt-related events"
	default n
	---help---
		Show interrupt-related events

endif # NSH_USBDEV_TRACE
endmenu # USB Device Trace Support

config NSH_ARCHINIT
	bool "Have architecture-specific initialization"
	default n
	---help---
		Set if your board provides architecture specific initialization
		via the board-specific function nsh_archinitialize().  This
		function will be called early in NSH initialization to allow
		board logic to do such things as configure MMC/SD slots.

menu "Networking Configuration"
	depends on NET

config NSH_NETINIT_THREAD
	bool "Network initialization thread"
	default n
	depends on !DISABLE_PTHREAD
	---help---
		NSH is brought up through a series of sequential initialization
		steps.  This includes networking. If the network is available on
		reset, then there is really no issue.  Negotiating the link will
		take only a second or so and the delay to the NSH prompt is
		normally acceptable.

		But if there is no network connected, then the start-up delay can
		be very long depending upon things like the particular PHY, driver
		timeout delay times, and numbers of retries.  A failed negotiation
		can potentially take a very long time, perhaps as much as a
		minute... Long enough that you might think that the board would
		never come up!

		One solution is to enabled by this option.  If NSH_NETINIT_THREAD
		is selected, the network bring-up will all occur in parallel with
		NSH on a separate thread.  In this case, the NSH prompt will occur
		immediately with the network becoming available some time layer (if
		if all).  This thread will terminate once it successfully initializes
		the network

		NOTES:  If no network is connected, the network bring-up will fail
		and the network initialization thread will simply exit.  There are
		no retries and no mechanism to know if the network initialization
		was successful.  Furthermore, there is currently no support for
		detecting loss of network connection.  Lots of things to do!

if NSH_NETINIT_THREAD

config NSH_NETINIT_MONITOR
	bool "Monitor link state"
	default n
	depends on ARCH_PHY_INTERRUPT && NETDEV_PHY_IOCTL && NET_UDP && !DISABLE_SIGNALS
	---help---
		By default the net initialization thread will bring-up the network
		then exit, freeing all of the resources that it required.  This is a
		good behavior for systems with limited memory.

		If this option is selected, however, then the network initialization
		thread will persist forever; it will monitor the network status.  In
		the event that the network goes down (for example, if a cable is
		removed), then the thread will monitor the link status and
		attempt to bring the network back up.  In this case the resources
		required for network initialization are never released.

if NSH_NETINIT_MONITOR

config NSH_NETINIT_SIGNO
	int "Notification signal number"
	default 18
	---help---
		The network monitor logic will receive signals when there is any
		change in the link status.  This setting may be used to customize
		that signal number in order to avoid conflicts.

config NSH_NETINIT_RETRYMSEC
	int "Network bring-up retry period (msec)"
	default 2000
	---help---
		When the network is down, the initialization thread will periodically
		try to bring the network up.  This can be a time consuming operation
		so is done only periodically with that period specified by this
		selection in milliseconds.

endif # NSH_NETINIT_MONITOR

config NSH_NETINIT_THREAD_STACKSIZE
	int "Network initialization thread stack size"
	default 1568

config NSH_NETINIT_THREAD_PRIORITY
	int "Network initialization thread priority"
	default 100

endif # NSH_NETINIT_THREAD

config NSH_NETINIT_DEBUG
	bool "Network init debug"
	default n
	depends on DEBUG
	---help---
		Normally debug output is controlled by DEBUG_NET.  However, that
		will generate a LOT of debug output, especially if DEBUG_VERBOSE is
		also selected.  This option is intended to force VERVOSE debug
		output from the NSH network initialization logic even if DEBUG_NET
		or DEBUG_VERBOSE are not selected.  This allows for focused, unit-
		level debug of the NSH network initialization logic.

config NSH_DHCPC
	bool "Use DHCP to get IP address"
	default n
	depends on NSH_LIBRARY && NETUTILS_DHCPC
	---help---
		Obtain the IP address via DHCP.

		Per RFC2131 (p. 9), the DHCP client must be prepared to receive DHCP
		messages of up to 576 bytes (excluding Ethernet, IP, or UDP headers and FCS).

config NSH_IPADDR
	hex "Target IP address"
	default 0x0a000002
	depends on NSH_LIBRARY && NET && !NSH_DHCPC
	---help---
		If NSH_DHCPC is NOT set, then the static IP address must be provided.
		This is a 32-bit integer value in host order.  So, as an example,
		0x10000002 would be 10.0.0.2.

config NSH_DRIPADDR
	hex "Router IP address"
	default 0x0a000001
	depends on NSH_LIBRARY && NET
	---help---
		Default router IP address (aka, Gateway).  This is a 32-bit integer
		value in host order.  So, as an example, 0x10000001 would be 10.0.0.1.

config NSH_NETMASK
	hex "Network mask"
	default 0xffffff00
	depends on NSH_LIBRARY && NET
	---help---
		Network mask.  This is a 32-bit integer value in host order.  So, as
		an example, 0xffffff00 would be 255.255.255.0.

config NSH_DNS
	bool "Use DNS"
	default n
	depends on NSH_LIBRARY && NETUTILS_DNSCLIENT
	---help---
		Configure to use a DNS.

config NSH_DNSIPADDR
	hex "DNS IP address"
	default 0xa0000001
	depends on NSH_DNS
	---help---
		Configure the DNS address.  This is a 32-bit integer value in host
		order.  So, as an example, 0xa0000001 would be 10.0.0.1.

config NSH_NOMAC
	bool "Hardware has no MAC address"
	default n
	depends on NSH_LIBRARY && NET
	---help---
		Set if your Ethernet hardware has no built-in MAC address.
		If set, a bogus MAC will be assigned.

if NSH_NOMAC

choice
	prompt "MAC address selection"
	default NSH_SWMAC
	---help---
		If the hardware as no MAC address, then NSH must assign an address
		to the hardware before it brings the network up.  This choice allows
		you select the source of that MAC address.

config NSH_SWMAC
	bool "Fixed address"
	---help---
		With this choice, you can assign a fixed MAC address determined by
		a NuttX configuration option.

config NSH_ARCHMAC
	bool "Platform-specific"
	---help---
		This selection will enable a call to an interface exported by
		platform-specific code to determine the MAC address.  If this option
		is selected, the the platform-specific code must provide the
		function nsh_arch_macaddress() that will be called by the NSH
		initialize logic to obtain the MAC address.

		This option might be useful, as an example, if MAC addresses are
		retained in Serial FLASH. Such address might be assigned during the
		manufacturing process so that each board has a unique MAC address.

endchoice # MAC address selection

config NSH_MACADDR
	hex "Fixed MAC address"
	default 0x00e0deadbeef
	depends on NSH_SWMAC
	---help---
		If the hardware has no built-in MAC address and if the NSH_SWMAC
		option is selected, then the fixed, software-assigned MAC address
		MAC address must provided with this selection.

endif # NSH_NOMAC

config NSH_MAX_ROUNDTRIP
	int "Max Ping Round-Trip (DSEC)"
	default 20
	depends on NSH_LIBRARY && NET && !NSH_DISABLE_PING
	---help---
		This is the maximum round trip for a response to a ICMP ECHO request.
		It is in units of deciseconds.  The default is 20 (2 seconds).

endmenu # Networking Configuration"

menu "Telnet Configuration"
	depends on NETUTILS_TELNETD

config NSH_TELNET
	bool "Use Telnet console"
	default n if DEFAULT_SMALL
	default y if !DEFAULT_SMALL
	depends on NETUTILS_TELNETD
	---help---
		If NSH_TELNET is set to 'y', then a TELENET
		server front-end is selected.  When this option is provided,
		you may log into NuttX remotely using telnet in order to
		access NSH.

if NSH_TELNET

config NSH_TELNETD_PORT
	int "Telnet port number"
	default 23
	---help---
		The telnet daemon will listen on this TCP port number for connections.
		Default: 23

config NSH_TELNETD_DAEMONPRIO
	int "Telnet daemon priority"
	default 100
	---help---
		Priority of the Telnet daemon. Default: 100

config NSH_TELNETD_DAEMONSTACKSIZE
	int "Telnet daemon stack size"
	default 2048
	---help---
		Stack size allocated for the Telnet daemon. Default: 2048

config NSH_TELNETD_CLIENTPRIO
	int "Telnet client priority"
	default 100
	---help---
		Priority of the Telnet client. Default: 100

config NSH_TELNETD_CLIENTSTACKSIZE
	int "Telnet client stack size"
	default 2048
	---help---
		Stack size allocated for the Telnet client. Default: 2048

config NSH_IOBUFFER_SIZE
	int "Telnet I/O buffer size"
	default 512
	---help---
		Determines the size of the I/O buffer to use for sending/
		receiving TELNET commands/reponses.  Default: 512

config NSH_TELNET_LOGIN
	bool "Telnet Login"
	default n
	---help---
		If defined, then the Telnet user will be required to provide a
		username and password to start the NSH shell.

if NSH_TELNET_LOGIN

config NSH_TELNET_USERNAME
	string "Login Username"
	default "admin"
	---help---
		Login user name.  Default: "admin"

config NSH_TELNET_PASSWORD
	string "Login Password"
	default "nuttx"
	---help---
		Login password:  Default: "nuttx"

config NSH_TELNET_FAILCOUNT
	int "Login Retry Count"
	default 3
	---help---
		Number of login retry attempts.

endif # NSH_TELNET_LOGIN
endif # NSH_TELNET
endmenu # Telnet Configuration
endif # NSH_LIBRARY