Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
johnswenson1
Level 1
Level 1
First reply posted First question asked Welcome!

I'm designing a board with an Efinix FPGA which includes a RISC-V processor running linux. I would like to use an fx3 as a host controller talking to the processor.  In order to do this I need a linux usb host driver. I can easily attach the SRAM interface of the fx3 to the AXI4 bus of the RISC-V processor and do any address mapping as needed (advantage of having an FPGA)

Since the fx3 has EHCI registers this seems like something that could be done, but I have searched and searched and cannot find anything. I downloaded the fx3 SDK and could not find anything in there for a linux host driver. Does such a thing exist?

Of course I will also need firmware in the fx3 for this, I presume that is implemented with host API calls. It would be nice if there was already something that does this, or at least someplace to start.

The FPGA eval board already includes an fx3 connected to a bunch of pins of the FPGA which seems to be compatible with the SRAM interface so with the proper linux host driver this should work.

Any hints on if anything exists or some pointers on how to get started implementing this if nothing exists would be greatly appreciated.

John S.

0 Likes
1 Solution

 

Hi John,

 You can connect FX3 to a RISC-V processor, however we do not have any linux host driver for FX3. Custom commands needs to be defined between FX3 and the processor on the parallel interface (GPIF - II) for communication.

Note that the host driver of FX3 supports MSD and HID device drivers out of the box.

FX3 contains EHCI registers because it can operate as a USB 2 host, even without an external application processor.

Best Regards,
AliAsgar

View solution in original post

0 Likes
3 Replies
AliAsgar
Moderator
Moderator
Moderator
1000 replies posted 250 solutions authored 750 replies posted

Hi John,

FX3 features an "embedded" USB 2 host controller. It contains its own ARM processor. It works independently of any PC or external application processor. Hence, there is no linux USB host driver for FX3 as a host.

Best Regards,
AliAsgar

0 Likes
johnswenson1
Level 1
Level 1
First reply posted First question asked Welcome!

The FX3 does have EHCI registers, it seems like the only reason for those is to access host functions from an external processor. I might try using exiting EHCI controller with these. Is there any firmware needed to allow these EHCI registers to work?

Thanks,

John S.

0 Likes

 

Hi John,

 You can connect FX3 to a RISC-V processor, however we do not have any linux host driver for FX3. Custom commands needs to be defined between FX3 and the processor on the parallel interface (GPIF - II) for communication.

Note that the host driver of FX3 supports MSD and HID device drivers out of the box.

FX3 contains EHCI registers because it can operate as a USB 2 host, even without an external application processor.

Best Regards,
AliAsgar

0 Likes