[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] Finally USB support on Spartan3E-500 REV D Starter Kit



Mostafa Ali wrote:
Is there any simple way like the usb-serial driver?

usb-serial is for usb devices that implement a serial (tty-like) protocol. They require a USB host controller - if you had one of these you'd just be able to plug a flash drive in directly and use it.

The problem with the Vinculum is that it implements a (simple) host controller and protocol stack *inside* the device. It's designed to make life easy talking to USB flash drives if your system is some little 8-bit microcontroller.

However with an embedded Linux host, vinculum will just get in the way.

Seriously, check out FUSE - maybe it's easy, I've never looked at the API. Write a simple FUSE layer that converts between the FUSE API and the Vinculum's serial command protocol.

Otherwise use a real host controller, like the Cypress EZUSB parts that Xilinx puts on every ML40x/50x board, or the Phillips ISP family which has good Linux support. Then you can plug anything into it, and it will just work. Flash drive, webcam, audio device, whatever.

If you need a second opinion run it past comp.arch.embedded and X-post to comp.os.linux.embedded just for good measure.

Regards,

John




--- On *Mon, 7/28/08, John Williams /<jwilliams@xxxxxxxxxxxxxx>/* wrote:

    From: John Williams <jwilliams@xxxxxxxxxxxxxx>
    Subject: Re: [microblaze-uclinux] Finally USB support on
    Spartan3E-500 REV D Starter Kit
    To: microblaze-uclinux@xxxxxxxxxxxxxx
    Date: Monday, July 28, 2008, 6:23 AM

    Hi Mostafa,

    Mostafa Ali wrote:

> I used spartan3E-500 rev D starter kit. I wanted to have an USB > interface to USB storage devices and I succeeded in that thanks to the > FTDI and FLE technologies. > The Vinculum provides both VDRIVE > <http://www.vinculum.com/prd_vdrive1.html> which is a module easily adds > USB Flash drive interface to MCU/FPGA I/F via UART or SPI interface and > VDIP <http://www.vinculum.com/prd_vdip1.html> which is DIP format VNC1L > <http://www.vinculum.com/prd_vnc1l.html> USB host controller development > module.
    > For more details see http://www.vinculum.com/products.html
    > To connect the module to my kit I used the "FLE Microblaze
UartLite" and > "FLE FT245BM Core" found on http://www.fl-eng.com/xipfree.html. > I used the GPIO 6-pin Accessory headers to connect the VDrive1 module to > the kit then through the FLE-UART core to the OPB bus. > The question now is: How will petalinux treat the case? Would it see the > USB storage device directly and communicate/mount it as if it is an > ordinary drive or it will still talk to it as a GPIO I don't know! Also > Do I have to write or develop a certain driver for such new > configuration or the petalinux "support USB" options in the > configuration wizard is sufficient?

    Linux will see a new serial port (the uart), and that's about it.

From the little reading I've done, Vinculum includes a host USB stack that takes to flash drives, and exports a simple command interface over serial that allows you access.

Really this is intended for little microcontrollers running firmware, not Linux.

If you want to be able to mount the flash driver from Linux, you'll have a reasonable amount of work to do. Best way might be to use fuse (userspace filesystem support) and write a userspace wrapper that converts between the FUSE kernel API and the VDRIVE serial protocol.

It would probably work, but might get messy and performance is likely to be pretty poor.

    Regards,

    John

    ___________________________
    microblaze-uclinux mailing list
    microblaze-uclinux@xxxxxxxxxxxxxx
    Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
    Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/



___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/