Add the dwc-hsotg (dwc2) USB host controller emulation code. Based on hw/usb/hcd-ehci.c and hw/usb/hcd-ohci.c. Note that to use this with the dwc-otg driver in the Raspbian kernel, you must pass the option "dwc_otg.fiq_fsm_enable=0" on the kernel command line. Emulation of slave mode and of descriptor-DMA mode has not been implemented yet. These modes are seldom used. I have used some on-line sources of information while developing this emulation, including: http://www.capital-micro.com/PDF/CME-M7_Family_User_Guide_EN.pdf which has a pretty complete description of the controller starting on page 370. https://sourceforge.net/p/wive-ng/wive-ng-mt/ci/master/tree/docs/DataSheets/RT3050_5x_V2.0_081408_0902.pdf which has a description of the controller registers starting on page 130. Thanks to Felippe Mathieu-Daude for providing a cleaner method of implementing the memory regions for the controller registers. Signed-off-by: Paul Zimmerman <pauldzim@gmail.com> Message-id: 20200520235349.21215-5-pauldzim@gmail.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
67 lines
2.1 KiB
Makefile
67 lines
2.1 KiB
Makefile
# usb subsystem core
|
|
common-obj-y += core.o combined-packet.o bus.o libhw.o
|
|
common-obj-$(CONFIG_USB) += desc.o desc-msos.o
|
|
|
|
# usb host adapters
|
|
common-obj-$(CONFIG_USB_UHCI) += hcd-uhci.o
|
|
common-obj-$(CONFIG_USB_OHCI) += hcd-ohci.o
|
|
common-obj-$(CONFIG_USB_OHCI_PCI) += hcd-ohci-pci.o
|
|
common-obj-$(CONFIG_USB_EHCI) += hcd-ehci.o
|
|
common-obj-$(CONFIG_USB_EHCI_PCI) += hcd-ehci-pci.o
|
|
common-obj-$(CONFIG_USB_EHCI_SYSBUS) += hcd-ehci-sysbus.o
|
|
common-obj-$(CONFIG_USB_XHCI) += hcd-xhci.o
|
|
common-obj-$(CONFIG_USB_XHCI_NEC) += hcd-xhci-nec.o
|
|
common-obj-$(CONFIG_USB_MUSB) += hcd-musb.o
|
|
common-obj-$(CONFIG_USB_DWC2) += hcd-dwc2.o
|
|
|
|
common-obj-$(CONFIG_TUSB6010) += tusb6010.o
|
|
common-obj-$(CONFIG_IMX) += chipidea.o
|
|
|
|
# emulated usb devices
|
|
common-obj-$(CONFIG_USB) += dev-hub.o
|
|
common-obj-$(CONFIG_USB) += dev-hid.o
|
|
common-obj-$(CONFIG_USB_TABLET_WACOM) += dev-wacom.o
|
|
common-obj-$(CONFIG_USB_STORAGE_BOT) += dev-storage.o
|
|
common-obj-$(CONFIG_USB_STORAGE_UAS) += dev-uas.o
|
|
common-obj-$(CONFIG_USB_AUDIO) += dev-audio.o
|
|
common-obj-$(CONFIG_USB_SERIAL) += dev-serial.o
|
|
common-obj-$(CONFIG_USB_NETWORK) += dev-network.o
|
|
|
|
ifeq ($(CONFIG_USB_SMARTCARD),y)
|
|
common-obj-y += dev-smartcard-reader.o
|
|
common-obj-$(CONFIG_SMARTCARD) += smartcard.mo
|
|
smartcard.mo-objs := ccid-card-passthru.o ccid-card-emulated.o
|
|
smartcard.mo-cflags := $(SMARTCARD_CFLAGS)
|
|
smartcard.mo-libs := $(SMARTCARD_LIBS)
|
|
endif
|
|
|
|
ifeq ($(CONFIG_POSIX),y)
|
|
common-obj-$(CONFIG_USB_STORAGE_MTP) += dev-mtp.o
|
|
endif
|
|
|
|
# usb redirection
|
|
ifeq ($(CONFIG_USB),y)
|
|
common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o
|
|
redirect.o-cflags = $(USB_REDIR_CFLAGS)
|
|
redirect.o-libs = $(USB_REDIR_LIBS)
|
|
endif
|
|
|
|
# usb pass-through
|
|
ifeq ($(CONFIG_USB_LIBUSB)$(CONFIG_USB),yy)
|
|
common-obj-y += host-libusb.o
|
|
else
|
|
common-obj-y += host-stub.o
|
|
endif
|
|
common-obj-$(CONFIG_ALL) += host-stub.o
|
|
|
|
host-libusb.o-cflags := $(LIBUSB_CFLAGS)
|
|
host-libusb.o-libs := $(LIBUSB_LIBS)
|
|
|
|
ifeq ($(CONFIG_USB_LIBUSB),y)
|
|
common-obj-$(CONFIG_XEN) += xen-usb.o
|
|
xen-usb.o-cflags := $(LIBUSB_CFLAGS)
|
|
xen-usb.o-libs := $(LIBUSB_LIBS)
|
|
endif
|
|
|
|
common-obj-$(CONFIG_IMX_USBPHY) += imx-usb-phy.o
|