123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997 |
- #
- # 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
- 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 not 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.
- menuconfig USBDEV_TRACE
- bool "Enable USB tracing for debug"
- default n
- select HAVE_USBTRACE
- ---help---
- Enables USB tracing for debug
- if USBDEV_TRACE
- config USBDEV_TRACE_NRECORDS
- int "Number of trace entries to remember"
- default 128
- ---help---
- Number of trace entries to remember
- config USBDEV_TRACE_STRINGS
- bool "Decode device controller events"
- default n
- depends on 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
- config USBDEV_TRACE_INITIALIDSET
- int "Initial enable bits"
- default 0
- ---help---
- This is the set of initial USB features that are enabled at boot
- time. See the event ID class bit definitions in
- include/nuttx/usbdev_trace.h.
- endif # USBDEV_TRACE
- menuconfig USBDEV_CUSTOM_TXFIFO_SIZE
- bool "Custom TX Fifo size"
- default n
- ---help---
- Enables custom TX Fifo size
- if USBDEV_CUSTOM_TXFIFO_SIZE
- config USBDEV_EP0_TXFIFO_SIZE
- int "USBDEV_EP0_TXFIFO_SIZE"
- default 64
- config USBDEV_EP1_TXFIFO_SIZE
- int "USBDEV_EP1_TXFIFO_SIZE"
- default 0
- config USBDEV_EP2_TXFIFO_SIZE
- int "USBDEV_EP2_TXFIFO_SIZE"
- default 0
- config USBDEV_EP3_TXFIFO_SIZE
- int "USBDEV_EP3_TXFIFO_SIZE"
- default 0
- config USBDEV_EP4_TXFIFO_SIZE
- int "USBDEV_EP4_TXFIFO_SIZE"
- default 0
- config USBDEV_EP5_TXFIFO_SIZE
- int "USBDEV_EP5_TXFIFO_SIZE"
- default 0
- config USBDEV_EP6_TXFIFO_SIZE
- int "USBDEV_EP6_TXFIFO_SIZE"
- default 0
- config USBDEV_EP7_TXFIFO_SIZE
- int "USBDEV_EP7_TXFIFO_SIZE"
- default 0
- config USBDEV_EP8_TXFIFO_SIZE
- int "USBDEV_EP8_TXFIFO_SIZE"
- default 0
- endif # USBDEV_CUSTOM_TXFIFO_SIZE
- comment "USB Device Class Driver Options"
- menuconfig 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.
- config COMPOSITE_MSFT_OS_DESCRIPTORS
- bool "Add support for Microsoft OS Descriptors"
- default n
- ---help---
- Microsoft Windows cannot always automatically determine appropriate
- drivers for different interfaces of a USB composite device. There is
- a vendor-specific mechanism called "Microsoft OS Descriptors" that
- allows the interface to provide further ID code to help with driver
- loading. See https://msdn.microsoft.com/en-us/windows/hardware/gg463179
- Enabling this feature in composite driver will pass these requests
- onwards to the interface drivers.
- 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.
- There is also no reason from PL2303_BULKIN_REQLEN to be greater
- than PL2303_TXBUFSIZE-1, since a request larger than the TX
- buffer can never be sent.
- config PL2303_RXBUFSIZE
- int "Receive buffer size"
- default 513 if USBDEV_DUALSPEED
- default 257 if !USBDEV_DUALSPEED
- ---help---
- Size of the serial receive buffers. The actual amount of data that
- can be held in the buffer is this number minus one due to the way
- that the circular buffer is managed. So an RX buffer size of 257
- will hold four full-speed, 64 byte packets; a buffer size of 513
- will hold one high-speed, 512 byte packet.
- config PL2303_TXBUFSIZE
- int "Transmit buffer size"
- default 769 if USBDEV_DUALSPEED
- default 193 if !USBDEV_DUALSPEED
- ---help---
- Size of the serial transmit buffers. The actual amount of data that
- can be held in the buffer is this number minus one due to the way
- that the circular buffer is managed. So a TX buffer size of 769
- will hold one request of size 768; a buffer size of 193 will hold
- two requests of size 96 bytes.
- 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
- menuconfig 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
- select SERIAL_IFLOWCONTROL
- ---help---
- Enable CDC/ACM RTS flow control
- config CDCACM_OFLOWCONTROL
- bool "CDC/ACM CTS flow control"
- default n
- depends on EXPERIMENTAL
- select SERIAL_OFLOWCONTROL
- ---help---
- Enable CDC/ACM CTS flow control
- menuconfig 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)
- if !CDCACM_COMPOSITE
- # In a composite device the EP0 config comes from the composite device
- # and the EP-Number is configured dynamically via composite_initialize
- 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.
- endif
- config CDCACM_EPINTIN_FSSIZE
- int "Interrupt 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 "Interrupt IN high speed MAXPACKET size"
- default 64
- ---help---
- Max package size for the interrupt IN endpoint if high speed mode.
- Default 64.
- if !CDCACM_COMPOSITE
- # In a composite device the EP-Number is configured dynamically via
- # composite_initialize
- 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
- endif
- 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.
- if !CDCACM_COMPOSITE
- # In a composite device the EP-Number is configured dynamically via
- # composite_initialize
- 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
- endif
- 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_NRDREQS
- 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_NWRREQS
- 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.
- There is also no reason from CDCACM_BULKIN_REQLEN to be greater
- than CDCACM_TXBUFSIZE-1, since a request larger than the TX
- buffer can never be sent.
- config CDCACM_RXBUFSIZE
- int "Receive buffer size"
- default 513 if USBDEV_DUALSPEED
- default 257 if !USBDEV_DUALSPEED
- ---help---
- Size of the serial receive buffers. The actual amount of data that
- can be held in the buffer is this number minus one due to the way
- that the circular buffer is managed. So an RX buffer size of 257
- will hold four full-speed, 64 byte packets; a buffer size of 513
- will hold one high-speed, 512 byte packet.
- config CDCACM_TXBUFSIZE
- int "Transmit buffer size"
- default 769 if USBDEV_DUALSPEED
- default 193 if !USBDEV_DUALSPEED
- ---help---
- Size of the serial transmit buffers. The actual amount of data that
- can be held in the buffer is this number minus one due to the way
- that the circular buffer is managed. So a TX buffer size of 769
- will hold one request of size 768; a buffer size of 193 will hold
- two requests of size 96 bytes.
- if !CDCACM_COMPOSITE
- # In a composite device the Vendor- and Product-ID is given by the composite
- # device
- 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 # !CDCACM_COMPOSITE
- endif # CDCACM
- menuconfig 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_EP0MAXPACKET
- int "Max packet size for endpoint 0"
- default 64
- ---help---
- Max packet size for endpoint 0
- if !USBMSC_COMPOSITE
- # In a composite device the EP-Number and STR-Number is configured
- # dynamically via composite_initialize
- 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
- endif
- 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).
- if !USBMSC_COMPOSITE
- # In a composite device the Vendor- and Product-IDs are handled by the
- # composite device
- 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"
- endif # !USBMSC_COMPOSITE
- 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
- menuconfig RNDIS
- bool "RNDIS Ethernet-over-USB"
- default n
- ---help---
- References:
- - "MS-RNDIS: Remote Network Driver Interface Specification (RNDIS)
- Protocol"
- - "Remote NDIS To USB Mapping"
- This option may required CONFIG_NETDEV_LATEINIT=y otherwise, the
- power-up initialization may call the non-existent up_netinitialize().
- This option is not automatically selected because it may be that
- you have an additional network device that requires the early
- up_netinitialize() call.
- if RNDIS
- config RNDIS_NWRREQS
- int "The number of write requests that can be in flight"
- default 2
- ---help---
- The number of write/read requests that can be in flight
- config RNDIS_COMPOSITE
- bool "RNDIS composite support"
- default n
- depends on USBDEV_COMPOSITE
- ---help---
- Configure the RNDIS driver as part of a composite driver
- (only if USBDEV_COMPOSITE is also defined)
- if !RNDIS_COMPOSITE
- config RNDIS_VENDORID
- hex "RNDIS 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 RNDIS_VENDORSTR
- string "RNDIS vendor string"
- default "NuttX"
- ---help---
- The vendor ID code/string
- config RNDIS_PRODUCTID
- hex "RNDIS Product ID"
- default 0x5342
- ---help---
- The product ID (PID).
- config RNDIS_PRODUCTSTR
- string "RNDIS product string"
- default "RNDIS gadget"
- config RNDIS_SERIALSTR
- string "RNDIS serial string"
- default "1234"
- config RNDIS_VERSIONNO
- hex "RNDIS Version Number"
- default 0x0001
- endif # !RNDIS_COMPOSITE
- endif # RNDIS
- menuconfig DFU
- bool "DFU Device Firmware Upgrade"
- default n
- ---help---
- References:
- - "Universal Serial Bus Device Class Specification for Device
- Firmware Upgrade, Version 1.1, Aug 5, 2004"
- This driver implements the application-part of DFU protocol. It enables
- a host application to send DFU_DETACH request and to cause the device
- to reboot into a bootloader mode.
- if DFU
- config DFU_MSFT_OS_DESCRIPTORS
- bool "Microsoft OS descriptor support"
- default n
- depends on COMPOSITE_MSFT_OS_DESCRIPTORS
- ---help---
- Enabling this option will cause the DFU driver to return "WINUSB" as
- the compatible ID of the DFU interface. This will automatically load
- the appropriate driver for use with e.g. libusb and dfu-util.
- Note that as of 2018 there are some issues with libusb and
- composite devices, you may need a patched version:
- https://sourceforge.net/p/libusb/mailman/message/36304399/
- config DFU_INTERFACE_NAME
- string "DFU interface string"
- default "DFU interface"
- ---help---
- String to assign as a name for the DFU interface.
- if DFU_MSFT_OS_DESCRIPTORS
- config DFU_INTERFACE_GUID
- string "DFU interface GUID"
- default "{8FE6D4D7-49DD-41E7-9486-49AFC6BFE475}"
- ---help---
- DeviceInterfaceGUID to use for DFU interface in Microsoft OS descriptors.
- Actual value does not matter for libusb, but if using WinUSB API directly
- you can request your device by this GUID.
- endif # DFU_MSFT_OS_DESCRIPTORS
- endif # DFU
- menuconfig NET_CDCECM
- bool "CDC-ECM Ethernet-over-USB"
- default n
- select NETDEVICES
- select NET
- select NET_ETHERNET
- ---help---
- References:
- - "Universal Serial Bus - Communications Class - Subclass
- Specification for Ethernet Control Model Devices,
- Revision 1.2, Feburary 9, 2007"
- This option may require CONFIG_NETDEV_LATEINIT=y, otherwise the
- power-up initialization may call the non-existent up_netinitialize().
- This option is not automatically selected because it may be that
- you have an additional network device that requires the early
- up_netinitialize() call.
- if NET_CDCECM
- menuconfig CDCECM_COMPOSITE
- bool "CDC/ECM composite support"
- default n
- depends on USBDEV_COMPOSITE
- ---help---
- Configure the CDC Ethernet Control Model driver as part of a
- composite driver (only if USBDEV_COMPOSITE is also defined)
- if !CDCECM_COMPOSITE
- # In a composite device the EP0 config comes from the composite device
- # and the EP-Number is configured dynamically via composite_initialize
- config CDCECM_EP0MAXPACKET
- int "Endpoint 0 max packet size"
- default 64
- ---help---
- Endpoint 0 max packet size. Default 64.
- config CDCECM_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.
- endif # !CDCECM_COMPOSITE
- config CDCECM_EPINTIN_FSSIZE
- int "Interupt IN full speed MAXPACKET size"
- default 16
- ---help---
- Max package size for the interrupt IN endpoint if full speed mode.
- Default 16.
- if USBDEV_DUALSPEED
- config CDCECM_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.
- endif # USBDEV_DUALSPEED
- if !CDCECM_COMPOSITE
- # In a composite device the EP-Number is configured dynamically via
- # composite_initialize
- config CDCECM_EPBULKOUT
- int "Bulk OUT endpoint number"
- default 5
- ---help---
- The logical 7-bit address of a hardware endpoint that supports
- bulk OUT operation. Default: 5
- endif # !CDCECM_COMPOSITE
- config CDCECM_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.
- if USBDEV_DUALSPEED
- config CDCECM_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.
- endif # USBDEV_DUALSPEED
- if !CDCECM_COMPOSITE
- # In a composite device the EP-Number is configured dynamically via
- # composite_initialize
- config CDCECM_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
- endif # !CDCECM_COMPOSITE
- config CDCECM_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.
- if USBDEV_DUALSPEED
- config CDCECM_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.
- endif # USBDEV_DUALSPEED
- if !CDCECM_COMPOSITE
- # In a composite device the Vendor- and Product-ID is given by the composite
- # device
- config CDCECM_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 ECM default VID.
- config CDCECM_PRODUCTID
- hex "Product ID"
- default 0xa4a2
- ---help---
- The product ID code/string. Default 0xa4a2 and "CDC/ECM Ethernet"
- 0xa4a2 was selected for compatibility with the Linux CDC ECM
- default PID.
- config CDCECM_VENDORSTR
- string "Vendor string"
- default "NuttX"
- config CDCECM_PRODUCTSTR
- string "Product string"
- default "CDC/ECM Ethernet"
- endif # !CDCECM_COMPOSITE
- endif # CDCECM
|