Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Aug 2013 18:34:32 +0900
From:      Takuya ASADA <syuu@dokukino.com>
To:        "soc-status@freebsd.org" <soc-status@freebsd.org>
Subject:   [status report #6 & #7 & #8]
Message-ID:  <CALG4x-Wg9K_ZcGGxZaLiy0dSrCG3cyU3M84nb06KUCO-NEeu8Q@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Sorry for not sending reports for a while.

[project summary]
The project goal is to support USB 1.1/2.0 device passthrough on BHyVe.

[weekly status]
* USB base API
Realized some APIs in USB stack are GPL licensed.
I couldn't realized when I wrote proposal, but there are some codes in USB
stack are (L)GPL licensed.
(Some files does not say what license are they using, but when it doesn't
say which license, it probably under the GPL, according QEMU's license
description.)

http://lxr.missinglinkelectronics.com/qemu/hw/usb/desc.c
http://lxr.missinglinkelectronics.com/qemu/hw/usb/desc.h
http://lxr.missinglinkelectronics.com/qemu/hw/usb/bus.c

I was considering to re-implement these codes under the BSDL, but I decided
to port these GPLed code first, re-implement these after USB emulation get
worked on BHyVe.

All (L)GPL are moved to usr.sbin/bhyve/usb/gpl.

* UHCI controller
pci_dma_read()/pci_dma_write() implementation on hcd-uhci.c.
Implemented them using paddr_guest2host and memcpy.

* USB passthrough device
 QEMU's USB device passthrough function is not able to compile on
FreeBSD-current, due to USB stack API changes.
QEMU has FreeBSD host support on hw/usb/host-bsd.c, it's issues ioctl to
ugen(4) and usb(4).
These codes call old API, does not able to compile newer kernel.
http://svnweb.freebsd.org/ports?view=revision&revision=234988
I couldn't find a patch for this, I'm decided to use hw/usb/host-libusb.c
with libusb(3).
Even host-libusb.c doesn't supported/tested FreeBSD's libusb, fixed to make
it able to compile.
host-libusb.c porting work is not completed, need some more work to make it
work.
Not tested, need some more work to make it work.

* HUB emulation
Started porting hw/usb/dev-hub.c.
Not tested, need some more work to make it work.

* USB serial converter emulation
Started porting hw/usb/dev-serial.c and include/sysemu/char.h.
dev-serial.c is LGPL licensed, char.h is GPL licensed.
Now I'm focusing to attach this device on UHCI controller.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALG4x-Wg9K_ZcGGxZaLiy0dSrCG3cyU3M84nb06KUCO-NEeu8Q>