Author Topic: NEW PCIe over USB-C Thunderbolt 3/4 interface for SQRL Acorn/Nitefury CLE-215(+)  (Read 3677 times)

0 Members and 1 Guest are viewing this topic.

Offline SMB784Topic starter

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Hey everyone!  I have integrated the M.2 format SQRL/Nitefury Artix-7 FPGA board into a thunderbolt enclosure so that any computer with a thunderbolt port (most laptops and desktops these days) can use these boards as PCIe connected devices without the need for a dedicated PCIe slot or a PCIe riser board.

Using the SQRL_quickstart loadout, these surplus abandonware FPGAs become a really neat development board with DMA access.  You can even flash the devices via PCIe without needing to use a JTAG interface (albeit after you first flash my SQRL_quickstart bitstream via JTAG).

The SQRL quickstart loadout uses the LiteX litepcie interface the device via PCIe at full x4 lane speed (see attached dma test).  It also blinks all user addressable LEDs and outputs unique frequency square waves on all 12 GPIO outputs.  This allows you to do perform a full suite of functionality tests on any new SQRL/Nitefury device you may get.

All of the aforementioned bitstreams and other software for flashing the devices can be found on my github repo below:
https://github.com/SMB784/SQRL_quickstart
« Last Edit: November 16, 2021, 08:39:47 pm by SMB784 »
 
The following users thanked this post: chickenHeadKnob, croma641

Offline SMB784Topic starter

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: PCIe over USB interface for SQRL Acorn/Nitefury CLE-215(+)
« Reply #1 on: November 16, 2021, 08:38:24 pm »
Small update: I tested this with a Thunderbolt 4 board, and it works with that chipset as well.  Both are plug&play with the SQRL quickstart bitstream provided on the github link.
« Last Edit: November 16, 2021, 08:40:48 pm by SMB784 »
 

Offline Cerebus

  • Super Contributor
  • ***
  • Posts: 10576
  • Country: gb
Hmm, interesting. (Just so as you know someone is paying attention and the effort is appreciated.)
Anybody got a syringe I can use to squeeze the magic smoke back into this?
 
The following users thanked this post: SMB784, fluxgate

Offline Thorns514

  • Newbie
  • Posts: 4
  • Country: us
ditto, this is actually super, super cool, thanks
 

Offline Thorns514

  • Newbie
  • Posts: 4
  • Country: us
In fact I just ordered one from ebay, so I can try it out ...
 

Offline NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9222
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Any idea if it could emulate a NVMe device so that a NVMe to USB 3 board could be used?
Cryptocurrency has taught me to love math and at the same time be baffled by it.

Cryptocurrency lesson 0: Altcoins and Bitcoin are not the same thing.
 

Offline SMB784Topic starter

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Any idea if it could emulate a NVMe device so that a NVMe to USB 3 board could be used?

I have no idea, so maybe! I looked into doing that at first, but that was way beyond my skill set. I'm just a simple physicist, not an HDL developer sadly.

Online langwadt

  • Super Contributor
  • ***
  • Posts: 4719
  • Country: dk
Any idea if it could emulate a NVMe device so that a NVMe to USB 3 board could be used?

isn't NVMe  just  protocol used on PCIe ?
 

Offline FenTiger

  • Regular Contributor
  • *
  • Posts: 88
  • Country: gb
isn't NVMe  just  protocol used on PCIe ?

Yes, it is. (Well, it can run over TCP and RDMA too, but that's not relevant here.)
 

Online abyrvalg

  • Frequent Contributor
  • **
  • Posts: 836
  • Country: es
NVMe would be rather complicated to implement. It has several levels of indirection: create an “admin” command queue in the host memory, tell the device where is it, populate it with command descriptors, ring the “doorbell”, device processes the queue via DMA. And to do an actual bulk transfer you need to use an admin command to create another queue (“submission queue”) to which you can post reads/writes finally. Plus various device information requests. For example, iPhone’s embedded NVMe has a dedicated Cortex-R handling the host comms.
It would be much better to work the other end - make an USB-NVMe enclosure controller to talk some simpler protocol over PCIe, but those manufacturers (JMicron, ASMedia, Realtek) would never release an SDK for their chips.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf