581 lines
15 KiB
Plaintext
581 lines
15 KiB
Plaintext
#
|
|
# 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_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/drivers/can.h for further CAN driver information.
|
|
|
|
if CAN
|
|
|
|
config CAN_EXTID
|
|
bool "CAN extended IDs"
|
|
default n
|
|
---help---
|
|
Enables support for the 28-bit extended ID. Default Standard 11-bit
|
|
IDs.
|
|
|
|
config ARCH_HAVE_CAN_ERRORS
|
|
bool
|
|
default n
|
|
|
|
config CAN_ERRORS
|
|
bool "CAN error reporting"
|
|
default n
|
|
depends on ARCH_HAVE_CAN_ERRORS
|
|
---help---
|
|
Support CAN error reporting. If this option is selected then CAN
|
|
error reporting is enabled. In the event of an error, the ch_error
|
|
bit will be set in the CAN message and the following message payload
|
|
will include a more detailed description of certain errors.
|
|
|
|
config CAN_FD
|
|
bool "CAN FD"
|
|
default n
|
|
---help---
|
|
Enables support for the CAN_FD mode.
|
|
|
|
config CAN_FIFOSIZE
|
|
int "CAN driver I/O buffer size"
|
|
default 8
|
|
---help---
|
|
The size of the circular buffer of CAN messages. Default: 8
|
|
|
|
config CAN_NPENDINGRTR
|
|
int "Number of pending RTRs"
|
|
default 4
|
|
---help---
|
|
The size of the list of pending RTR requests. Default: 4
|
|
|
|
config CAN_TXREADY
|
|
bool "can_txready interface"
|
|
default n
|
|
select SCHED_WORKQUEUE
|
|
---help---
|
|
This selection enables the can_txready() interface. This interface
|
|
is needed only for CAN hardware that supports queing of outgoing
|
|
messages in a H/W FIFO.
|
|
|
|
The CAN upper half driver also supports a queue of output messages
|
|
in a S/W FIFO. Messages are added to that queue when when
|
|
can_write() is called and removed from the queue in can_txdone()
|
|
when each TX message is complete.
|
|
|
|
After each message is added to the S/W FIFO, the CAN upper half
|
|
driver will attempt to send the message by calling into the lower
|
|
half driver. That send will not be performed if the lower half
|
|
driver is busy, i.e., if dev_txready() returns false. In that
|
|
case, the number of messages in the S/W FIFO can grow. If the
|
|
S/W FIFO becomes full, then can_write() will wait for space in
|
|
the S/W FIFO.
|
|
|
|
If the CAN hardware does not support a H/W FIFO then busy means
|
|
that the hardware is actively sending the message and is
|
|
guaranteed to become non busy (i.e, dev_txready()) when the
|
|
send transfer completes and can_txdone() is called. So the call
|
|
to can_txdone() means that the transfer has completed and also
|
|
that the hardware is ready to accept another transfer.
|
|
|
|
If the CAN hardware supports a H/W FIFO, can_txdone() is not
|
|
called when the tranfer is complete, but rather when the
|
|
transfer is queued in the H/W FIFO. When the H/W FIFO becomes
|
|
full, then dev_txready() will report false and the number of
|
|
queued messages in the S/W FIFO will grow.
|
|
|
|
There is no mechanism in this case to inform the upper half
|
|
driver when the hardware is again available, when there is
|
|
again space in the H/W FIFO. can_txdone() will not be called
|
|
again. If the S/W FIFO becomes full, then the upper half
|
|
driver will wait for space to become available, but there is
|
|
no event to awaken it and the driver will hang.
|
|
|
|
Enabling this feature adds support for the can_txready()
|
|
interface. This function is called from the lower half
|
|
driver's CAN interrupt handler each time a TX transfer
|
|
completes. This is a sure indication that the H/W FIFO is
|
|
no longer full. can_txready() will then awaken the
|
|
can_write() logic and the hang condition is avoided.
|
|
|
|
choice
|
|
prompt "TX Ready Work Queue"
|
|
default CAN_TXREADY_HIPRI
|
|
depends on CAN_TXREADY
|
|
|
|
config CAN_TXREADY_LOPRI
|
|
bool "Low-priority work queue"
|
|
select SCHED_LPWORK
|
|
|
|
config CAN_TXREADY_HIPRI
|
|
bool "High-priority work queue"
|
|
select SCHED_HPWORK
|
|
|
|
endchoice # TX Ready Work Queue
|
|
|
|
config CAN_LOOPBACK
|
|
bool "CAN loopback mode"
|
|
default n
|
|
---help---
|
|
A CAN driver may or may not support a loopback mode for testing. If the
|
|
driver does support loopback mode, the setting will enable it. (If the
|
|
driver does not, this setting will have no effect).
|
|
|
|
config CAN_NPOLLWAITERS
|
|
int "Number of poll waiters"
|
|
default 2
|
|
depends on !DISABLE_POLL
|
|
---help---
|
|
The maximum number of threads that may be waiting on the
|
|
poll method.
|
|
|
|
endif # CAN
|
|
|
|
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
|
|
|
|
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
|