618 lines
17 KiB
Plaintext
618 lines
17 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
comment "USB Device Controller Driver Options"
|
|
|
|
config USBDEV_ISOCHRONOUS
|
|
bool "Enable isochronous"
|
|
default n
|
|
---help---
|
|
Build in extra support for isochronous endpoints
|
|
|
|
config USBDEV_DUALSPEED
|
|
bool "Enable high and full speed"
|
|
default n
|
|
---help---
|
|
Hardware handles high and full speed operation (USB 2.0)
|
|
|
|
choice USBDEV_POWERED
|
|
prompt "Select USB device powered"
|
|
default USBDEV_SELFPOWERED
|
|
|
|
config USBDEV_SELFPOWERED
|
|
bool "Self powered"
|
|
---help---
|
|
Will cause USB features to indicate that the device is self-powered
|
|
|
|
config USBDEV_BUSPOWERED
|
|
bool "Bus powered"
|
|
---help---
|
|
Will cause USB features to indicate that the device is self-powered
|
|
|
|
endchoice
|
|
|
|
config USBDEV_MAXPOWER
|
|
int "Maximum power consumption in mA"
|
|
default 100
|
|
# depends on USBDEV_BUSPOWERED
|
|
---help---
|
|
Maximum power consumption in mA. This selection should only apply if
|
|
the device is bus powered (USBDEV_BUSPOWERED). It is, however, used
|
|
unconditionally in several USB device drivers.
|
|
|
|
config USBDEV_DMA
|
|
bool "Enable DMA methods"
|
|
default n
|
|
---help---
|
|
Select this enable DMA-related methods in USB device controller driver
|
|
interface. These methods include the DMA buffer allocation methods:
|
|
allobuffer() and freebuffer().
|
|
|
|
The USB class driver allocates packet I/O buffers for data transfer by
|
|
calling the driver allocbuffer() and freebuffer() methods. Those methods
|
|
are only available if USBDEV_DMA is defined in the system configuration.
|
|
|
|
config USBDEV_DMAMEMORY
|
|
bool "Board DMA Allocation Hooks"
|
|
default n
|
|
depends on USBDEV_DMA
|
|
---help---
|
|
The USB class driver allocates packet I/O buffers for data transfer by
|
|
calling the driver allocbuffer() and freebuffer() methods. Those methods
|
|
are only available if USBDEV_DMA is defined in the system configuration.
|
|
|
|
If USBDEV_DMAMEMORY is also defined in the NuttX configuration, then
|
|
the driver implementations of the allocbuffer() and freebuffer()
|
|
methods may use board-specific usbdev_dma_alloc() and usbdev_dma_free().
|
|
If USBDEV_DMA and USBDEV_DMAMEMORY are both defined, then the board-
|
|
specific logic must provide the functions usbdev_dma_alloc() and
|
|
usbdev_dma_free(): usbdev_dma_alloc() will allocate DMA-capable
|
|
memory of the specified size; usbdev_dma_free() is the corresponding
|
|
function that will be called to free the DMA-capable memory.
|
|
|
|
config ARCH_USBDEV_STALLQUEUE
|
|
bool
|
|
default n
|
|
---help---
|
|
This option is set by the USB device controller driver (DCD)
|
|
selection. These selection means that the DCD can support
|
|
queuing of stall requests. By this, it is meant that, (1) the
|
|
stall is not sent until all write requests preceding the stall
|
|
request are sent, (2) the stall is sent, and then after the
|
|
stall is cleared, (3) all write requests queued after the stall
|
|
are sent.
|
|
|
|
If the driver does not support this feature, that the class drivers
|
|
will enable some hokey and inefficient delay logic to workaround
|
|
the lack of queuing.
|
|
|
|
config USBDEV_TRACE
|
|
bool "Enable USB tracing for debug"
|
|
default n
|
|
---help---
|
|
Enables USB tracing for debug
|
|
|
|
config USBDEV_TRACE_NRECORDS
|
|
int "Number of trace entries to remember"
|
|
default 128
|
|
depends on USBDEV_TRACE
|
|
---help---
|
|
Number of trace entries to remember
|
|
|
|
config USBDEV_TRACE_STRINGS
|
|
bool "Decode device controller events"
|
|
default n
|
|
depends on USBDEV_TRACE || DEBUG_USB
|
|
---help---
|
|
If USBDEV_TRACE_STRINGS is defined, then the USB device controller
|
|
driver must provide arrays of strings to support decoding of device-
|
|
specific trace events. These arrays of strings (and the type struct
|
|
trace_msg_t) are defined in include/nuttx/usb/usbdev_trace.h:
|
|
|
|
#ifdef CONFIG_USBDEV_TRACE_STRINGS
|
|
extern const struct trace_msg_t g_usb_trace_strings_deverror[];
|
|
extern const struct trace_msg_t g_usb_trace_strings_intdecode[];
|
|
#endif
|
|
|
|
comment "USB Device Class Driver Options"
|
|
|
|
config USBDEV_COMPOSITE
|
|
bool "USB composite device support"
|
|
default n
|
|
---help---
|
|
Enables USB composite device support
|
|
|
|
if USBDEV_COMPOSITE
|
|
|
|
config COMPOSITE_IAD
|
|
bool "Use Interface Associate Descriptor (IAD)"
|
|
default n
|
|
---help---
|
|
If one of the members of the composite has multiple interfaces
|
|
(such as CDC/ACM), then an Interface Association Descriptor (IAD)
|
|
will be necessary. Default: IAD will be used automatically if
|
|
needed. It should not be necessary to set this.
|
|
|
|
config COMPOSITE_EP0MAXPACKET
|
|
int "Max packet size for endpoint 0"
|
|
default 64
|
|
---help---
|
|
Max packet size for endpoint 0
|
|
|
|
config COMPOSITE_VENDORID
|
|
hex "Composite vendor ID"
|
|
default 0x0000
|
|
|
|
config COMPOSITE_VENDORSTR
|
|
string "Composite vendor ID"
|
|
default "NuttX"
|
|
---help---
|
|
The vendor ID code/string
|
|
|
|
config COMPOSITE_PRODUCTID
|
|
hex "Composite product id"
|
|
default 0x0000
|
|
|
|
config COMPOSITE_PRODUCTSTR
|
|
string "Composite product string"
|
|
default "Composite device"
|
|
---help---
|
|
The product ID code/string
|
|
|
|
config COMPOSITE_SERIALSTR
|
|
string "Composite serial string"
|
|
default "001"
|
|
---help---
|
|
Device serial number string
|
|
|
|
config COMPOSITE_CONFIGSTR
|
|
string "Configuration string"
|
|
default "NuttX COMPOSITE config"
|
|
---help---
|
|
Configuration string
|
|
|
|
config COMPOSITE_VERSIONNO
|
|
hex "Composite version number"
|
|
default 0x1010
|
|
---help---
|
|
Interface version number.
|
|
endif
|
|
|
|
config PL2303
|
|
bool "Prolific PL2303 serial/USB converter emulation"
|
|
default n
|
|
select SERIAL_REMOVABLE
|
|
---help---
|
|
This logic emulates the Prolific PL2303 serial/USB converter
|
|
|
|
if PL2303
|
|
|
|
config PL2303_CONSOLE
|
|
bool "PL2303 console device"
|
|
default n
|
|
---help---
|
|
Register the USB device as /dev/console so that is will be used
|
|
as the console device.
|
|
|
|
config PL2303_EPINTIN
|
|
int "Interrupt IN endpoint number"
|
|
default 1
|
|
|
|
config PL2303_EPBULKOUT
|
|
int "Bulk OUT endpoint number"
|
|
default 2
|
|
|
|
config PL2303_EPBULKIN
|
|
int "Bulk IN endpoint number"
|
|
default 3
|
|
|
|
config PL2303_EP0MAXPACKET
|
|
int "Packet and request buffer sizes"
|
|
default 64
|
|
|
|
config PL2303_NWRREQS
|
|
int "Number of read requests that can be in flight"
|
|
default 4
|
|
---help---
|
|
The number of read requests that can be in flight
|
|
|
|
config PL2303_NRDREQS
|
|
int "Number of write requests that can be in flight"
|
|
default 4
|
|
---help---
|
|
The number of write/read requests that can be in flight
|
|
|
|
config PL2303_BULKIN_REQLEN
|
|
int "Size of one write request buffer"
|
|
default 768 if USBDEV_DUALSPEED
|
|
default 96 if !USBDEV_DUALSPEED
|
|
---help---
|
|
Ideally, the BULKOUT request size should *not* be the same size as
|
|
the maxpacket size. That is because IN transfers of exactly the
|
|
maxpacket size will be followed by a NULL packet. The BULKOUT,
|
|
on the other hand, request buffer size is always the same as the
|
|
maxpacket size.
|
|
|
|
config PL2303_RXBUFSIZE
|
|
int "Receive buffer size"
|
|
default 256
|
|
---help---
|
|
Size of the serial receive/transmit buffers
|
|
|
|
config PL2303_TXBUFSIZE
|
|
int "Transmit buffer size"
|
|
default 256
|
|
---help---
|
|
Size of the serial receive/transmit buffers
|
|
|
|
config PL2303_VENDORID
|
|
hex "Vendor ID"
|
|
default 0x067b
|
|
|
|
config PL2303_PRODUCTID
|
|
hex "Product ID"
|
|
default 0x2303
|
|
|
|
config PL2303_VENDORSTR
|
|
string "Vendor string"
|
|
default "NuttX"
|
|
|
|
config PL2303_PRODUCTSTR
|
|
string "Product string"
|
|
default "PL2303 Emulation"
|
|
endif
|
|
|
|
config CDCACM
|
|
bool "USB Modem (CDC ACM) support"
|
|
default n
|
|
select SERIAL_REMOVABLE
|
|
---help---
|
|
Enables USB Modem (CDC ACM) support
|
|
|
|
if CDCACM
|
|
|
|
config CDCACM_CONSOLE
|
|
bool "CDC/ACM console device"
|
|
default n
|
|
---help---
|
|
Register the USB device as /dev/console so that is will be used
|
|
as the console device.
|
|
|
|
config CDCACM_IFLOWCONTROL
|
|
bool "CDC/ACM RTS flow control"
|
|
default n
|
|
depends on EXPERIMENTAL
|
|
select SERIAL_IFLOWCONTROL
|
|
---help---
|
|
Enable CDC/ACM RTS flow control
|
|
|
|
config CDCACM_COMPOSITE
|
|
bool "CDC/ACM composite support"
|
|
default n
|
|
depends on USBDEV_COMPOSITE
|
|
---help---
|
|
Configure the CDC serial driver as part of a composite driver
|
|
(only if USBDEV_COMPOSITE is also defined)
|
|
|
|
config CDCACM_IFNOBASE
|
|
int "Offset the CDC/ACM interface numbers"
|
|
default 0
|
|
depends on CDCACM_COMPOSITE
|
|
---help---
|
|
If the CDC driver is part of a composite device, then this may need to
|
|
be defined to offset the CDC/ACM interface numbers so that they are
|
|
unique and contiguous. When used with the Mass Storage driver, the
|
|
correct value for this offset is zero.
|
|
|
|
config CDCACM_STRBASE
|
|
int "Offset the CDC/ACM string numbers"
|
|
default 0
|
|
depends on CDCACM_COMPOSITE
|
|
---help---
|
|
If the CDC driver is part of a composite device, then this may need to
|
|
be defined to offset the CDC/ACM string numbers so that they are
|
|
unique and contiguous. When used with the Mass Storage driver, the
|
|
correct value for this offset is four (this value actuallly only needs
|
|
to be defined if names are provided for the Notification interface,
|
|
config CDCACM_NOTIFSTR, or the data interface, CDCACM_DATAIFSTR).
|
|
|
|
config CDCACM_EP0MAXPACKET
|
|
int "Endpoint 0 max packet size"
|
|
default 64
|
|
---help---
|
|
Endpoint 0 max packet size. Default 64.
|
|
|
|
config CDCACM_EPINTIN
|
|
int "Interrupt IN endpoint number"
|
|
default 1
|
|
---help---
|
|
The logical 7-bit address of a hardware endpoint that supports
|
|
interrupt IN operation. Default 1.
|
|
|
|
config CDCACM_EPINTIN_FSSIZE
|
|
int "Interupt IN full speed MAXPACKET size"
|
|
default 64
|
|
---help---
|
|
Max package size for the interrupt IN endpoint if full speed mode.
|
|
Default 64.
|
|
|
|
config CDCACM_EPINTIN_HSSIZE
|
|
int "Interupt IN high speed MAXPACKET size"
|
|
default 64
|
|
---help---
|
|
Max package size for the interrupt IN endpoint if high speed mode.
|
|
Default 64.
|
|
|
|
config CDCACM_EPBULKOUT
|
|
int "Bulk OUT endpoint number"
|
|
default 3
|
|
---help---
|
|
The logical 7-bit address of a hardware endpoint that supports
|
|
bulk OUT operation. Default: 3
|
|
|
|
config CDCACM_EPBULKOUT_FSSIZE
|
|
int "Bulk OUT full speed MAXPACKET size"
|
|
default 64
|
|
---help---
|
|
Max package size for the bulk OUT endpoint if full speed mode.
|
|
Default 64.
|
|
|
|
config CDCACM_EPBULKOUT_HSSIZE
|
|
int "Bulk OUT out high speed MAXPACKET size"
|
|
default 512
|
|
---help---
|
|
Max package size for the bulk OUT endpoint if high speed mode.
|
|
Default 512.
|
|
|
|
config CDCACM_EPBULKIN
|
|
int "Bulk IN endpoint number"
|
|
default 2
|
|
---help---
|
|
The logical 7-bit address of a hardware endpoint that supports
|
|
bulk IN operation. Default: 2
|
|
|
|
config CDCACM_EPBULKIN_FSSIZE
|
|
int "Bulk IN full speed MAXPACKET size"
|
|
default 64
|
|
---help---
|
|
Max package size for the bulk IN endpoint if full speed mode.
|
|
Default 64.
|
|
|
|
config CDCACM_EPBULKIN_HSSIZE
|
|
int "Bulk IN high speed MAXPACKET size"
|
|
default 512
|
|
---help---
|
|
Max package size for the bulk IN endpoint if high speed mode.
|
|
Default 512.
|
|
|
|
config CDCACM_NWRREQS
|
|
int "Number of read requests that can be in flight"
|
|
default 4
|
|
---help---
|
|
The number of read requests that can be in flight
|
|
|
|
config CDCACM_NRDREQS
|
|
int "Number of write requests that can be in flight"
|
|
default 4
|
|
---help---
|
|
The number of write/read requests that can be in flight
|
|
|
|
config CDCACM_BULKIN_REQLEN
|
|
int "Size of one write request buffer"
|
|
default 768 if USBDEV_DUALSPEED
|
|
default 96 if !USBDEV_DUALSPEED
|
|
---help---
|
|
Ideally, the BULKOUT request size should *not* be the same size as
|
|
the maxpacket size. That is because IN transfers of exactly the
|
|
maxpacket size will be followed by a NULL packet. The BULKOUT,
|
|
on the other hand, request buffer size is always the same as the
|
|
maxpacket size.
|
|
|
|
config CDCACM_RXBUFSIZE
|
|
int "Receive buffer size"
|
|
default 256
|
|
---help---
|
|
Size of the serial receive/transmit buffers
|
|
|
|
config CDCACM_TXBUFSIZE
|
|
int "Transmit buffer size"
|
|
default 256
|
|
---help---
|
|
Size of the serial receive/transmit buffers
|
|
|
|
config CDCACM_VENDORID
|
|
hex "Vendor ID"
|
|
default 0x0525
|
|
---help---
|
|
The vendor ID code/string. Default 0x0525 and "NuttX"
|
|
0x0525 is the Netchip vendor and should not be used in any
|
|
products. This default VID was selected for compatibility with
|
|
the Linux CDC ACM default VID.
|
|
|
|
config CDCACM_PRODUCTID
|
|
hex "Product ID"
|
|
default 0xa4a7
|
|
---help---
|
|
The product ID code/string. Default 0xa4a7 and "CDC/ACM Serial"
|
|
0xa4a7 was selected for compatibility with the Linux CDC ACM
|
|
default PID.
|
|
|
|
config CDCACM_VENDORSTR
|
|
string "Vendor string"
|
|
default "NuttX"
|
|
|
|
config CDCACM_PRODUCTSTR
|
|
string "Product string"
|
|
default "CDC/ACM Serial"
|
|
|
|
endif
|
|
|
|
config USBMSC
|
|
bool "USB Mass storage class device"
|
|
default n
|
|
select FS_READABLE
|
|
select FS_WRITABLE
|
|
---help---
|
|
References:
|
|
"Universal Serial Bus Mass Storage Class, Specification Overview,"
|
|
Revision 1.2, USB Implementer's Forum, June 23, 2003.
|
|
|
|
"Universal Serial Bus Mass Storage Class, Bulk-Only Transport,"
|
|
Revision 1.0, USB Implementer's Forum, September 31, 1999.
|
|
|
|
"SCSI Primary Commands - 3 (SPC-3)," American National Standard
|
|
for Information Technology, May 4, 2005
|
|
|
|
"SCSI Primary Commands - 4 (SPC-4)," American National Standard
|
|
for Information Technology, July 19, 2008
|
|
|
|
"SCSI Block Commands -2 (SBC-2)," American National Standard
|
|
for Information Technology, November 13, 2004
|
|
|
|
"SCSI Multimedia Commands - 3 (MMC-3)," American National Standard
|
|
for Information Technology, November 12, 2001
|
|
|
|
if USBMSC
|
|
|
|
config USBMSC_COMPOSITE
|
|
bool "Mass storage composite support"
|
|
default n
|
|
depends on USBDEV_COMPOSITE
|
|
---help---
|
|
Configure the mass storage driver as part of a composite driver
|
|
(only if USBDEV_COMPOSITE is also defined)
|
|
|
|
config USBMSC_IFNOBASE
|
|
int "Offset the mass storage interface number"
|
|
default 2
|
|
depends on USBMSC_COMPOSITE
|
|
---help---
|
|
If the CDC driver is part of a composite device, then this may need to
|
|
be defined to offset the mass storage interface number so that it is
|
|
unique and contiguous. When used with the CDC/ACM driver, the
|
|
correct value for this offset is two (because of the two CDC/ACM
|
|
interfaces that will precede it).
|
|
|
|
config USBMSC_STRBASE
|
|
int "Offset the mass storage string numbers"
|
|
default 2
|
|
depends on USBMSC_COMPOSITE
|
|
---help---
|
|
If the CDC driver is part of a composite device, then this may need to
|
|
be defined to offset the mass storage string numbers so that they are
|
|
unique and contiguous. When used with the CDC/ACM driver, the
|
|
correct value for this offset is four (or perhaps 5 or 6, depending
|
|
on if CDCACM_NOTIFSTR or CDCACM_DATAIFSTR are defined).
|
|
|
|
config USBMSC_EP0MAXPACKET
|
|
int "Max packet size for endpoint 0"
|
|
default 64
|
|
---help---
|
|
Max packet size for endpoint 0
|
|
|
|
config USBMSC_EPBULKOUT
|
|
int "Bulk OUT endpoint number"
|
|
default 2
|
|
---help---
|
|
The logical 7-bit address of a hardware endpoints that support
|
|
bulk OUT and IN operations
|
|
|
|
config USBMSC_EPBULKIN
|
|
int "Bulk IN endpoint number"
|
|
default 3
|
|
---help---
|
|
The logical 7-bit address of a hardware endpoints that support
|
|
bulk OUT and IN operations
|
|
|
|
config USBMSC_NWRREQS
|
|
int "The number of write requests that can be in flight"
|
|
default 4
|
|
---help---
|
|
The number of write/read requests that can be in flight
|
|
|
|
config USBMSC_NRDREQS
|
|
int "The number of read requests that can be in flight"
|
|
default 4
|
|
---help---
|
|
The number of write/read requests that can be in flight
|
|
|
|
config USBMSC_BULKINREQLEN
|
|
int "Bulk IN request size"
|
|
default 512 if USBDEV_DUALSPEED
|
|
default 64 if !USBDEV_DUALSPEED
|
|
---help---
|
|
The size of the buffer in each WRITE request. This value should to be
|
|
at least as large as the endpoint maxpacket size . Most DCDs can divide
|
|
a large request buffer down and enqueue the smaller, outgoing packets
|
|
for better performance. So, ideally, the size of write request buffer
|
|
should be the size of one block device sector which is, often, 512
|
|
bytes. The default, however, is the minimum size of 512 or 64 bytes
|
|
(depending upon if dual speed operation is supported or not).
|
|
|
|
config USBMSC_BULKOUTREQLEN
|
|
int "Bulk OUT request size"
|
|
default 512 if USBDEV_DUALSPEED
|
|
default 64 if !USBDEV_DUALSPEED
|
|
---help---
|
|
The size of the buffer in each READ request. This value should to be
|
|
at least as large as the endpoint maxpacket size. Most DCDs will return
|
|
the completed READ request to the caller as each packet is received.
|
|
Therefore, there is no benefit in increasing the size of this buffer
|
|
beyond the maximum size of one packet. Default: 512 or 64 bytes
|
|
(depending upon if dual speed operation is supported or not).
|
|
|
|
config USBMSC_VENDORID
|
|
hex "Mass storage Vendor ID"
|
|
default 0x584e
|
|
---help---
|
|
The vendor ID (VID). The value here is bogus. You should not use
|
|
it in any commercial products! You must go through the proper
|
|
channels to request a vendor ID for your company if you do not
|
|
already have one!
|
|
|
|
config USBMSC_VENDORSTR
|
|
string "Mass storage vendor string"
|
|
default "NuttX"
|
|
---help---
|
|
The vendor ID code/string
|
|
|
|
config USBMSC_PRODUCTID
|
|
hex "Mass storage Product ID"
|
|
default 0x5342
|
|
---help---
|
|
The product ID (PID).
|
|
|
|
config USBMSC_PRODUCTSTR
|
|
string "Mass storage product string"
|
|
default "Mass Storage"
|
|
|
|
config USBMSC_VERSIONNO
|
|
hex "USB MSC Version Number"
|
|
default "0x399"
|
|
|
|
config USBMSC_REMOVABLE
|
|
bool "Mass storage removable"
|
|
default n
|
|
---help---
|
|
Select if the media is removable
|
|
USB Composite Device Configuration
|
|
|
|
config USBMSC_SCSI_PRIO
|
|
int "USBMSC SCSI daemon priority"
|
|
default 128
|
|
---help---
|
|
Priority of the SCSI kernel thread. This must be a relatively high
|
|
priority so that the SCSI daemon can be response to USB block driver
|
|
accesses.
|
|
|
|
config USBMSC_SCSI_STACKSIZE
|
|
int "USBMSC SCSI daemon stack size"
|
|
default 2048
|
|
---help---
|
|
Stack size used with the SCSI kernel thread. The default value
|
|
is not tuned.
|
|
|
|
endif
|