Commit c52661d6 authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Nicholas Bellinger
Browse files

usb-gadget: Initial merge of target module for UASP + BOT



This fabric uses the target framework to provide a usb gadget
device.  This gadget supports the USB Attached SCSI Protocol (UASP)
and Bulk Only Transfers (BOT or BBB). BOT is the primary interface,
UAS is the alternative interface.

It has been tested with dummy_hcd on HS and SS. On SS USB3 are
supported. I also took my omap device and tried it there against
WindowsXP.  UAS implements basic command passing (i.e. read/write
requests) and TASK MANAGEMENT functions are missing.

I had to add a little of error recovery to BOT because Windows was
issuing some strange commands and it does not complain after the
gadget responded with CSW.status=1.

(nab: Move to drivers/usb/gadget as per Sebastian to address legacy
      limitations for built-in gadget code)

Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: default avatarFelipe Balbi <balbi@ti.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Greg KH <gregkh@linuxfoundation.org>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent d5dc28eb
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -798,6 +798,16 @@ config USB_MASS_STORAGE
	  Say "y" to link the driver statically, or "m" to build
	  a dynamically linked module called "g_mass_storage".

config USB_GADGET_TARGET
	tristate "USB Gadget Target Fabric Module"
	depends on TARGET_CORE
	help
	  This fabric is an USB gadget. Two USB protocols are supported that is
	  BBB or BOT (Bulk Only Transport) and UAS (USB Attached SCSI). BOT is
	  advertised on alternative interface 0 (primary) and UAS is on
	  alternative interface 1. Both protocols can work on USB2.0 and USB3.0.
	  UAS utilizes the USB 3.0 feature called streams support.

config USB_G_SERIAL
	tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
	help
+2 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ g_nokia-y := nokia.o
g_webcam-y			:= webcam.o
g_ncm-y				:= ncm.o
g_acm_ms-y			:= acm_ms.o
g_tcm_usb_gadget-y		:= tcm_usb_gadget.o

obj-$(CONFIG_USB_ZERO)		+= g_zero.o
obj-$(CONFIG_USB_AUDIO)		+= g_audio.o
@@ -71,3 +72,4 @@ obj-$(CONFIG_USB_G_NOKIA) += g_nokia.o
obj-$(CONFIG_USB_G_WEBCAM)	+= g_webcam.o
obj-$(CONFIG_USB_G_NCM)		+= g_ncm.o
obj-$(CONFIG_USB_G_ACM_MS)	+= g_acm_ms.o
obj-$(CONFIG_USB_GADGET_TARGET)	+= tcm_usb_gadget.o