Reply by Allan Herriman December 30, 20112011-12-30
On Thu, 29 Dec 2011 15:30:58 -0800, wzab wrote:

> Hi, > > I'm debugging a device with very strange setup - the FPGA is connected > via FT3323H chip (interface A is used as asycnhronous FIFO to > communicate with FPGA, interface B is used as JTAG to program/debug FPGA > with ChipScope). > Now I started to debug the embedded software, using the QEMU to emulate > the embedded PC. > However in this setup I should forward one interface of the FT2232 (A - > FIFO) to the QEMU, as iti is used to communicate with the FPGA, > while the interface B should be still available for my host, to work > with ChipScope via the driver published at > http://rmdir.de/~michael/xilinx/ > > Unfortunately this seems to be impossible, as even though my software > running on QEMU uses only one interface of the FT2232, it needs access > to the whole device. > Is there any solution allowing me to make only a single interface of the > USB device available for QEMU? > Unfortunately I can't run the Xilinx cse_server on my embedded machine > (neither the real one nor the emulated with QEMU - it is closed source, > and requires libraries not available in buildroot :-( ). > Another solution would be to split the driver libusb-driver into two > parts. One working on host and communicating with impact/ChipScope, > and the another one (coupled via TCP/IP) communicating with the FT2232 > on the embedded PC/QEMU. > Has anybody tried to make a "distributed version" of the libusb- > driver?
My experience with the FT2232(H) is that drivers will typically want to own the whole chip. There is a single command queue inside the device and the individual channels have different commands (rather than different addresses). I guess in theory you could write a driver that translated the commands and made an FT2232 look like two FT232, but I haven't seen this done. Regards, Allan
Reply by wzab December 29, 20112011-12-29
Hi,

I'm debugging a device with very strange setup - the FPGA is connected
via FT3323H chip (interface A is used as asycnhronous FIFO to
communicate with FPGA, interface B is used as JTAG to program/debug
FPGA with ChipScope).
Now I started to debug the embedded software, using the QEMU to
emulate the embedded PC.
However in this setup I should forward one interface of the FT2232 (A
- FIFO) to the QEMU, as iti is used to communicate with the FPGA,
while the interface B should be still available for my host, to work
with ChipScope via the driver published at http://rmdir.de/~michael/xilinx/

Unfortunately this seems to be impossible, as even though my software
running on QEMU uses only one interface of the FT2232, it needs access
to the whole device.
Is there any solution allowing me to make only a single interface of
the USB device available for QEMU?
Unfortunately I can't run the Xilinx cse_server on my embedded machine
(neither the real one nor the emulated with QEMU - it is closed
source, and requires libraries not available in buildroot :-( ).
Another solution would be to split the driver libusb-driver into two
parts. One working on host and communicating with impact/ChipScope,
and the another one (coupled via TCP/IP) communicating with the FT2232
on the embedded PC/QEMU.
Has anybody tried to make a "distributed version" of the libusb-
driver?
--
TIA & Regards,
Wojtek