551 lines
15 KiB
Plaintext
551 lines
15 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see misc/tools/kconfig-language.txt.
|
|
#
|
|
|
|
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 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 32
|
|
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 ""
|
|
# 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 0
|
|
|
|
config COMPOSITE_VENDORSTR
|
|
string "Composite vendor ID"
|
|
default "Nuttx"
|
|
---help---
|
|
The vendor ID code/string
|
|
|
|
config COMPOSITE_PRODUCTID
|
|
hex "Composite product id"
|
|
default 0
|
|
|
|
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
|
|
string "Composite version number"
|
|
default ""
|
|
---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 96
|
|
---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_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 96
|
|
---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
|
|
---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 0
|
|
---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 0
|
|
---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
|
|
|
|
config USBMSC_BULKOUTREQLEN
|
|
int "Bulk out request size"
|
|
default 512
|
|
---help---
|
|
The size of the buffer in each write/read request. This
|
|
value needs to be at least as large as the endpoint
|
|
maxpacket and ideally as large as a block device sector.
|
|
|
|
config USBMSC_VENDORID
|
|
hex "Mass stroage Vendor ID"
|
|
default 0x00
|
|
|
|
config USBMSC_VENDORSTR
|
|
string "Mass stroage vendor string"
|
|
default "Nuttx"
|
|
---help---
|
|
The vendor ID code/string
|
|
|
|
config USBMSC_PRODUCTID
|
|
hex "Mass stroage Product ID"
|
|
default 0x00
|
|
|
|
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 stroage remove able"
|
|
default n
|
|
---help---
|
|
Select if the media is removable
|
|
USB Composite Device Configuration
|
|
endif
|