# # For a description of the syntax of this configuration file, # see the file kconfig-language.txt in the NuttX tools repository. # config DISABLE_POLL bool "Disable driver poll interfaces" default n ---help--- The sizes of drivers can be reduced if the poll() method is not supported. If you do not use poll() or select(), then you can select DISABLE_POLL to reduce the code footprint by a small amount. This selection disables the poll() interface as well as interfaces the derive from poll() such as select(). config DEV_NULL bool "Enable /dev/null" default y config DEV_ZERO bool "Enable /dev/zero" default n config ARCH_HAVE_RNG bool config DEV_RANDOM bool "Enable /dev/random" default y depends on ARCH_HAVE_RNG ---help--- Enable support for /dev/urandom provided by a hardware TRNG. config DEV_URANDOM bool "Enable /dev/urandom" default n ---help--- Enable support for /dev/urandom provided by either a hardware TRNG or by a software PRNG implementation. NOTE: This option may not be cryptographially secure and should not be enabled if you are concerned about cyptographically secure pseudo-random numbers (CPRNG) and do not know the characteristics of the software PRNG impelementation! if DEV_URANDOM choice prompt "/dev/urandom algorithm" default DEV_URANDOM_ARCH if ARCH_HAVE_RNG default DEV_URANDOM_XORSHIFT128 if !ARCH_HAVE_RNG config DEV_URANDOM_XORSHIFT128 bool "xorshift128" ---help--- xorshift128 is a pseudorandom number generator that is simple, portable, and can also be used on 8-bit and 16-bit MCUs. NOTE: Not cyptographically secure config DEV_URANDOM_CONGRUENTIAL bool "Conguential" ---help--- Use the same congruential general used with srand(). This algorithm is computationally more intense and uses double precision floating point. NOTE: Good randomness from the congruential generator also requires that you also select CONFIG_LIB_RAND_ORDER > 2 NOTE: Not cyptographically secure config DEV_URANDOM_RANDOM_POOL bool "Entropy pool" depends on CRYPTO_RANDOM_POOL ---help--- Use the entropy pool CPRNG output for urandom algorithm. NOTE: May or may not be cyptographically secure, depending upon the quality entropy available to entropy pool. config DEV_URANDOM_ARCH bool "Architecture-specific" depends on ARCH_HAVE_RNG ---help--- The implementation of /dev/urandom is provided in archtecture- specific logic using hardware TRNG logic. architecture-specific logic must provide the whole implementation in this case, including the function devurandom_register(). In this case, /dev/urandom may refer to the same driver as /dev/random. NOTE: May or may not be cyptographically secure, depending upon the implementation. endchoice # /dev/urandom algorithm endif # DEV_URANDOM source drivers/loop/Kconfig menu "Buffering" config DRVR_WRITEBUFFER bool "Enable write buffer support" default n ---help--- Enable generic write buffering support that can be used by a variety of drivers. if DRVR_WRITEBUFFER config DRVR_WRDELAY int "Write flush delay" default 350 ---help--- If there is no write activity for this configured amount of time, then the contents will be automatically flushed to the media. This reduces the likelihood that data will be stuck in the write buffer at the time of power down. endif # DRVR_WRITEBUFFER config DRVR_READAHEAD bool "Enable read-ahead buffer support" default n ---help--- Enable generic read-ahead buffering support that can be used by a variety of drivers. if DRVR_WRITEBUFFER || DRVR_READAHEAD config DRVR_READBYTES bool "Support byte read method" default y if MTD_BYTE_WRITE default n if !MTD_BYTE_WRITE config DRVR_REMOVABLE bool "Support removable media" default n config DRVR_INVALIDATE bool "Support cache invalidation" default n endif # DRVR_WRITEBUFFER || DRVR_READAHEAD endmenu # Buffering config RAMDISK bool "RAM Disk Support" default n ---help--- Can be used to set up a block of memory or (read-only) FLASH as a block driver that can be mounted as a files system. See include/nuttx/drivers/ramdisk.h. menuconfig CAN bool "CAN Driver Support" default n ---help--- This selection enables building of the "upper-half" CAN driver. See include/nuttx/can/can.h for further CAN driver information. if CAN source drivers/can/Kconfig endif config ARCH_HAVE_PWM_PULSECOUNT bool default n config ARCH_HAVE_PWM_MULTICHAN bool default n menuconfig PWM bool "PWM Driver Support" default n ---help--- This selection enables building of the "upper-half" PWM driver. See include/nuttx/drivers/pwm.h for further PWM driver information. if PWM config PWM_PULSECOUNT bool "PWM Pulse Count Support" default n depends on ARCH_HAVE_PWM_PULSECOUNT ---help--- Some hardware will support generation of a fixed number of pulses. This might be used, for example to support a stepper motor. If the hardware will support a fixed pulse count, then this configuration should be set to enable the capability. config PWM_MULTICHAN bool "PWM Multiple Output Channel Support" default n depends on ARCH_HAVE_PWM_MULTICHAN depends on !PWM_PULSECOUNT ---help--- Enables support for multiple output channels per timer. if PWM_MULTICHAN config PWM_NCHANNELS int "Number of Output Channels Per Timer" default 1 range 1 6 ---help--- Specifies the number of output channels per timer. Each timer may support fewer output channels than this value. endif # PWM_MULTICHAN endif # PWM config ARCH_HAVE_I2CRESET bool default n menuconfig I2C bool "I2C Driver Support" default n ---help--- This selection enables building of the "upper-half" I2C driver. See include/nuttx/i2c/i2c_master.h for further I2C driver information. if I2C source drivers/i2c/Kconfig endif source drivers/spi/Kconfig menuconfig I2S bool "I2S Driver Support" default n ---help--- This selection enables selection of common I2S options. This option should be enabled by all platforms that support I2S interfaces. See include/nuttx/audio/i2s.h for further I2S driver information. if I2S endif # I2S source drivers/timers/Kconfig menuconfig ANALOG bool "Analog Device(ADC/DAC) Support" default n ---help--- This directory holds implementations of analog device drivers. This includes drivers for Analog to Digital Conversion (ADC) as well as drivers for Digital to Analog Conversion (DAC). See include/nuttx/analog/*.h for registration information. if ANALOG source drivers/analog/Kconfig endif # ANALOG menuconfig AUDIO_DEVICES bool "Audio Device Support" default n ---help--- Enable support for audio device drivers. This includes drivers for MP3, WMA and Ogg Vorbis encoding, decoding, as well as drivers for interfacing with external DSP chips to perform custom audio functions. NOTE: All of these drivers depend on support from the audio subsystem enabled with the AUDIO selection. if AUDIO_DEVICES source drivers/audio/Kconfig endif # AUDIO_DEVICES menuconfig VIDEO_DEVICES bool "Video Device Support" default n ---help--- Enable support for video device drivers. if VIDEO_DEVICES source drivers/video/Kconfig endif # VIDEO_DEVICES menuconfig BCH bool "Block-to-Character (BCH) Support" default n ---help--- Contains logic that may be used to convert a block driver into a character driver. This is the complementary conversion as that performed by loop.c. See include/nuttx/drivers/drivers.h for registration information. if BCH source drivers/bch/Kconfig endif # BCH menuconfig INPUT bool "Input Device Support" default n ---help--- This directory holds implementations of input device drivers. This includes such things as touchscreen and keypad drivers. See include/nuttx/input/*.h for registration information. if INPUT source drivers/input/Kconfig endif # INPUT source drivers/ioexpander/Kconfig source drivers/lcd/Kconfig source drivers/leds/Kconfig menuconfig MMCSD bool "MMC/SD Driver Support" default n ---help--- Support for MMC/SD block drivers. MMC/SD block drivers based on SPI and SDIO/MCI interfaces are supported. See include/nuttx/mmcsd.h and include/nuttx/sdio.h for further information. if MMCSD source drivers/mmcsd/Kconfig endif # MMCSD menuconfig MODEM bool "Modem Support" default n ---help--- Enable modem support. if MODEM source drivers/modem/Kconfig endif # MODEM menuconfig MTD bool "Memory Technology Device (MTD) Support" default n ---help--- Memory Technology Device (MTD) drivers. Some simple drivers for memory technologies like FLASH, EEPROM, NVRAM, etc. See include/nuttx/mtd/mtd.h (Note: This is a simple memory interface and should not be confused with the "real" MTD developed at infradead.org. This logic is unrelated; I just used the name MTD because I am not aware of any other common way to refer to this class of devices). if MTD source drivers/mtd/Kconfig endif # MTD menuconfig EEPROM bool "EEPROM support" default n ---help--- This directory holds implementations of EEPROM drivers. if EEPROM source drivers/eeprom/Kconfig endif menuconfig NETDEVICES bool "Network Device/PHY Support" default n if !ARCH_HAVE_PHY default y if ARCH_HAVE_PHY depends on NET ---help--- Network interface driver and PHY selections. This options enables selection of drivers for external Ethernet MAC chips. The majority of MCUs, however, have built-in, internal Ethernet MAC peripherals and that Ethernet support is selected in the MCU-specific configuration menus. Most Ethernet MAC drivers, whether internal or external, will require configuration of an external PHY device. That external PHY device is also selected via this menu. if NETDEVICES source drivers/net/Kconfig endif # NETDEVICES menuconfig PIPES bool "FIFO and named pipe drivers" default n ---help--- FIFO and named pipe drivers. Standard interfaces are declared in include/unistd.h if PIPES source drivers/pipes/Kconfig endif # PIPES source drivers/power/Kconfig menuconfig SENSORS bool "Sensor Device Support" default n ---help--- Drivers for various sensors if SENSORS source drivers/sensors/Kconfig endif # SENSORS menuconfig SERIAL bool "Serial Driver Support" default y ---help--- Front-end character drivers for chip-specific UARTs. This provide some TTY-like functionality and are commonly used (but not required for) the NuttX system console. See also include/nuttx/serial/serial.h if SERIAL source drivers/serial/Kconfig endif # SERIAL menuconfig USBDEV bool "USB Device Driver Support" default n ---help--- USB device drivers. See also include/nuttx/usb/usbdev.h if USBDEV source drivers/usbdev/Kconfig endif # USBDEV menuconfig USBHOST bool "USB Host Driver Support" default n ---help--- USB host drivers. See also include/nuttx/usb/usbhost.h if USBHOST source drivers/usbhost/Kconfig endif # USBHOST menuconfig USBMISC bool "USB Miscellaneous drivers" default n ---help--- USB Miscellaneous drivers. if USBMISC source drivers/usbmisc/Kconfig endif # USBMISC config HAVE_USBTRACE bool default n menuconfig USBMONITOR bool "USB Monitor" default n depends on HAVE_USBTRACE ---help--- If USB device tracing (USBDEV_TRACE) AND/OR USB host tracing (USBHOST_TRACE) are enabled then this option will select the USB monitor. The USB monitor is a daemon that will periodically collect the buffered USB trace data and dump it to the SYSLOG device. if USBMONITOR source drivers/usbmonitor/Kconfig endif # USBMONITOR menuconfig DRIVERS_WIRELESS bool "Wireless Device Support" default n ---help--- Drivers for various wireless devices. source drivers/wireless/Kconfig menuconfig DRIVERS_CONTACTLESS bool "Contactless Device Support" default n ---help--- Drivers for various contactless devices. source drivers/contactless/Kconfig source drivers/syslog/Kconfig