Author Topic: SQRL Acorn as an interesting Artix-7 board?  (Read 46605 times)

0 Members and 1 Guest are viewing this topic.

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #150 on: October 05, 2021, 03:07:56 am »
At this point I am looking for a good terminating connector for the other side of the DF52 cable. Does anyone have any suggestions for a really ubiquitous 20-pin connector that has a lot of adapter options available to make it versatile?

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #151 on: October 05, 2021, 08:25:25 pm »
Another question I have is related to the fact that it's possible to program the FPGA via the SQRL PCIe adapter board that comes with the unit (I'm guessing that means the JTAG interface is accessible through PCIe).

Does anyone think we can access the FPGA JTAG interface via USB through the Thunderbolt board?
« Last Edit: October 05, 2021, 08:29:11 pm by SMB784 »
 

Offline miken

  • Regular Contributor
  • *
  • Posts: 102
  • Country: us
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #152 on: October 07, 2021, 04:48:49 am »
As far as I know the RHS example image just contains a SPI peripheral that can be accessed over PCIe for writing to the Flash. After all, it's not much use to reprogram it "live" since that will unload the FPGA first and then you're kind of stuck ;) There are more advanced things you can do with Tandem PROM or partial reconfiguration, we'll get there someday maybe.

In theory the JTAG block can be accessed from inside the FPGA via the DRP interface. It might be interesting for ILA use but again reprogramming is problematic.

Connectors are always kind of a pain point for hobbyist use. Anything that's not mass market is going to be expensive. There's that SYZYGY idea from Opal Kelly but Samtecs aren't cheap. If you don't need high speed then a standard 0.1" grid is probably your best bet, if boring. Modular jacks are cheap too but you'll need multiples.
 

Online NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9003
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #153 on: October 07, 2021, 05:01:31 am »
As for a cheap connector with multiple GHz differential pairs, HDMI and Displayport come to mind.
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 SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #154 on: October 12, 2021, 11:10:58 pm »
As far as I know the RHS example image just contains a SPI peripheral that can be accessed over PCIe for writing to the Flash. After all, it's not much use to reprogram it "live" since that will unload the FPGA first and then you're kind of stuck ;)

I dug around looking for what you were referring to, and I believe i have found how to program the flash as mentioned:

https://github.com/RHSResearchLLC/NiteFury-and-LiteFury/tree/master/spi-loader

Therefore, it should be possible to program the FPGA flash to load a custom module using the Thunderbolt enclosure and USB cable.  Now I need to figure out how to do that.

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #155 on: October 23, 2021, 06:58:26 pm »
Alright so I have uploaded the original AXI-quad_spi project to the SQRL board via JTAG (found at this github repo: https://github.com/RHSResearchLLC/NiteFury-and-LiteFury/tree/master/Sample-Projects/Project-0/FPGA-A200T-3), and I have also successfully installed the Xilinx XDMA drivers.

When I load the board onto the Thunderbolt to USB-C adapter and plug it in, my linux box (Ubuntu 20.04 HWE) recognizes the USB-C thunderbolt adapter when I use lsusb:

Code: [Select]
Bus 001 Device 008: ID 8087:0000 Intel Corp. TPS65983

TPS65983 is the correct name for the TI thunderbolt chip in this adapter.

However, when I run the spi-loader (github link on same nitefury project: https://github.com/RHSResearchLLC/NiteFury-and-LiteFury/tree/master/spi-loader) using the supplied memory configuration file, I get an error that says:

Code: [Select]
Device file not found:/dev/xdma/card0/user. Is the XDMA driver installed and working?

modinfo tells me that XDMA is indeed installed and working correctly:

Code: [Select]
$ modinfo xdma
filename:       /lib/modules/5.11.0-38-generic/extra/xdma.ko
license:        Dual BSD/GPL
version:        2020.2.2
description:    Xilinx XDMA Reference Driver
author:         Xilinx, Inc.
srcversion:     755B8C84314FF43EE2506DC
alias:          pci:v00001D0Fd0000F001sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd0000F000sv*sd*bc*sc*i*
alias:          pci:v000010EEd00002808sv*sd*bc*sc*i*
alias:          pci:v000010EEd00004B28sv*sd*bc*sc*i*
alias:          pci:v000010EEd00004A28sv*sd*bc*sc*i*
alias:          pci:v000010EEd00004908sv*sd*bc*sc*i*
alias:          pci:v000010EEd00004828sv*sd*bc*sc*i*
alias:          pci:v000010EEd00004808sv*sd*bc*sc*i*
alias:          pci:v000010EEd00006D30sv*sd*bc*sc*i*
alias:          pci:v000010EEd00006A30sv*sd*bc*sc*i*
alias:          pci:v000010EEd00006A28sv*sd*bc*sc*i*
alias:          pci:v000010EEd00006930sv*sd*bc*sc*i*
alias:          pci:v000010EEd00006928sv*sd*bc*sc*i*
alias:          pci:v000010EEd00006830sv*sd*bc*sc*i*
alias:          pci:v000010EEd00006828sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007038sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007034sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007032sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007031sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007028sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007024sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007022sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007021sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007018sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007014sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007012sv*sd*bc*sc*i*
alias:          pci:v000010EEd00007011sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008038sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008034sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008032sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008031sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008028sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008024sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008022sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008021sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008018sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008014sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008012sv*sd*bc*sc*i*
alias:          pci:v000010EEd00008011sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009011sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009021sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009031sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009012sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009022sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009032sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009014sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009024sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009034sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009018sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009028sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009038sv*sd*bc*sc*i*
alias:          pci:v000010EEd0000903Fsv*sd*bc*sc*i*
alias:          pci:v000010EEd00009041sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009042sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009044sv*sd*bc*sc*i*
alias:          pci:v000010EEd00009048sv*sd*bc*sc*i*
depends:       
retpoline:      Y
name:           xdma
vermagic:       5.11.0-38-generic SMP mod_unload modversions
sig_id:         PKCS#7
signer:         Modules
sig_key:        26:1D:63:96:05:5C:E0:68:98:7B:AF:61:CA:40:AA:E2:37:39:26:73
sig_hashalgo:   sha512
signature:      1F:6D:25:1C:88:6E:F1:2E:ED:2F:E1:49:64:52:7A:18:5B:BE:96:65:
                1A:E8:D8:8D:F3:36:B3:1E:B0:72:75:57:6C:6F:B7:8D:5F:72:DC:A7:
                9C:EC:91:70:64:6E:93:C9:02:59:5B:DB:B0:A4:6D:C2:46:8D:DA:1D:
                24:15:00:1A:DD:F1:43:A3:C3:96:5E:74:3B:5E:C5:6A:6C:C9:23:9B:
                43:4E:38:6C:C1:CD:BC:F3:9D:BA:C3:87:B6:33:81:14:ED:F7:33:E6:
                FD:69:41:FF:EA:45:71:9F:76:41:3B:A6:C0:E4:9D:65:C6:3F:10:06:
                3E:05:9E:B8:58:5C:CF:6C:E7:EB:18:C8:6B:90:6F:72:0C:90:8B:42:
                B6:F2:A6:71:46:B1:81:2E:06:1B:2F:46:C2:61:77:C4:34:AF:B3:69:
                7A:74:23:CA:55:F2:A6:2E:2B:7F:F0:59:9F:1C:A1:B6:53:D1:1A:01:
                42:1F:EA:61:0B:24:35:04:79:70:7D:4F:9C:BE:C2:97:90:40:7B:D3:
                EE:57:20:F9:23:38:C6:5A:4D:55:B9:07:90:22:64:3D:A6:8F:11:89:
                0E:1C:E2:E1:E4:39:F3:A5:A7:26:22:02:E2:2E:F0:E4:B5:46:38:79:
                FC:F4:50:E4:96:6A:F6:81:0E:26:00:C1:50:F7:4C:14:B4:72:CB:6A:
                28:0D:93:BE:EF:5C:27:95:A6:19:56:74:28:C8:D2:D9:8C:28:11:5C:
                6B:7C:32:57:9C:6D:AA:73:1C:5F:95:92:B2:A1:AC:73:CD:6F:D7:67:
                14:10:1D:4F:B7:61:00:4C:61:95:70:E0:5B:6A:53:C6:A7:85:3B:70:
                88:EB:1C:0C:95:3B:46:82:D0:C5:A3:AC:DA:DB:5D:E8:D3:6A:62:36:
                36:0C:AA:61:44:FD:4D:FB:F6:B5:86:A5:D9:DA:A3:0B:A9:63:CA:DE:
                C5:59:D6:77:40:9A:A3:7B:45:BD:98:61:FB:C3:05:BC:88:14:AF:7D:
                E8:45:E9:C6:B0:74:20:F7:54:CE:6D:9C:6F:91:A9:91:AD:86:B8:1D:
                28:AC:D8:D1:30:15:FD:08:F1:88:0D:DC:D5:DF:F4:98:AF:D7:E5:4D:
                B7:48:EC:65:4C:38:05:12:6D:D8:8D:63:D3:39:90:69:F6:81:CB:EB:
                38:CC:43:E6:1D:13:61:02:92:91:D8:05:B8:40:DD:33:BE:98:7E:4F:
                65:14:C7:CF:B7:DC:D4:E3:46:1A:F0:34:E0:87:0A:53:A6:7F:BA:8B:
                A8:6F:EC:CD:F7:C0:80:4A:36:F0:F1:56:EE:46:E1:40:0F:71:F9:DD:
                C7:F3:89:D4:2E:B9:F7:2E:BC:87:00:3D
parm:           h2c_timeout:H2C sgdma timeout in seconds, default is 10 sec. (uint)
parm:           c2h_timeout:C2H sgdma timeout in seconds, default is 10 sec. (uint)
parm:           poll_mode:Set 1 for hw polling, default is 0 (interrupts) (uint)
parm:           interrupt_mode:0 - Auto , 1 - MSI, 2 - Legacy, 3 - MSI-x (uint)
parm:           enable_st_c2h_credit:Set 1 to enable ST C2H engine credit feature, default is 0 ( credit control disabled) (uint)
parm:           desc_blen_max:per descriptor max. buffer length, default is (1 << 28) - 1 (uint)


So, my question is: why isn't this device showing up as a PCI device on my system, even though XDMA is working correctly?  Am I missing some thunderbolt firmware or something?  Any ideas?  I have included the lspci output below for posterity

Code: [Select]
$ sudo lspci -v


00:1c.0 PCI bridge: Intel Corporation Device 9dba (rev f0) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0, IRQ 122
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: [disabled]
        Memory behind bridge: a0100000-a01fffff [size=1M]
        Prefetchable memory behind bridge: [disabled]
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Hewlett-Packard Company Device 8514
        Capabilities: [a0] Power Management version 3
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Access Control Services
        Capabilities: [150] Precision Time Measurement
        Capabilities: [200] L1 PM Substates
        Capabilities: [220] Secondary PCI Express
        Capabilities: [250] Downstream Port Containment
        Kernel driver in use: pcieport

00:1c.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #5 (rev f0) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0, IRQ 123
        Bus: primary=00, secondary=02, subordinate=6c, sec-latency=0
        I/O behind bridge: 00004000-00006fff [size=12K]
        Memory behind bridge: 70000000-9e0fffff [size=737M]
        Prefetchable memory behind bridge: 0000004000000000-0000004049ffffff [size=1184M]
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Hewlett-Packard Company Cannon Point-LP PCI Express Root Port
        Capabilities: [a0] Power Management version 3
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Access Control Services
        Capabilities: [150] Precision Time Measurement
        Capabilities: [220] Secondary PCI Express
        Capabilities: [250] Downstream Port Containment
        Kernel driver in use: pcieport

00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #13 (rev f0) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0, IRQ 124
        Bus: primary=00, secondary=6d, subordinate=6d, sec-latency=0
        I/O behind bridge: [disabled]
        Memory behind bridge: a0000000-a00fffff [size=1M]
        Prefetchable memory behind bridge: [disabled]
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Hewlett-Packard Company Cannon Point-LP PCI Express Root Port
        Capabilities: [a0] Power Management version 3
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Access Control Services
        Capabilities: [150] Precision Time Measurement
        Capabilities: [200] L1 PM Substates
        Capabilities: [220] Secondary PCI Express
        Capabilities: [250] Downstream Port Containment
        Kernel driver in use: pcieport

01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
        DeviceName: Realtek PCIE CardReader
        Subsystem: Hewlett-Packard Company RTS525A PCI Express Card Reader
        Flags: bus master, fast devsel, latency 0, IRQ 130
        Memory at a0100000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [80] Power Management version 3
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [b0] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Device Serial Number 00-00-00-01-00-4c-e0-00
        Capabilities: [158] Latency Tolerance Reporting
        Capabilities: [160] L1 PM Substates
        Kernel driver in use: rtsx_pci
        Kernel modules: rtsx_pci

02:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02) (prog-if 00 [Normal decode])
        Physical Slot: 8
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Bus: primary=02, secondary=03, subordinate=6c, sec-latency=0
        I/O behind bridge: 00004000-00005fff [size=8K]
        Memory behind bridge: 70000000-9e0fffff [size=737M]
        Prefetchable memory behind bridge: 0000004000000000-0000004049ffffff [size=1184M]
        Capabilities: [80] Power Management version 3
        Capabilities: [88] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [ac] Subsystem: Hewlett-Packard Company JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
        Capabilities: [c0] Express Upstream Port, MSI 00
        Capabilities: [100] Device Serial Number cf-dd-68-09-50-b7-d0-00
        Capabilities: [200] Advanced Error Reporting
        Capabilities: [300] Virtual Channel
        Capabilities: [400] Power Budgeting <?>
        Capabilities: [500] Vendor Specific Information: ID=1234 Rev=1 Len=0d8 <?>
        Capabilities: [600] Latency Tolerance Reporting
        Capabilities: [700] Secondary PCI Express
        Kernel driver in use: pcieport

03:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0, IRQ 125
        Bus: primary=03, secondary=04, subordinate=04, sec-latency=0
        I/O behind bridge: [disabled]
        Memory behind bridge: 9e000000-9e0fffff [size=1M]
        Prefetchable memory behind bridge: [disabled]
        Capabilities: [80] Power Management version 3
        Capabilities: [88] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [ac] Subsystem: Hewlett-Packard Company JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
        Capabilities: [c0] Express Downstream Port (Slot+), MSI 00
        Capabilities: [100] Device Serial Number cf-dd-68-09-50-b7-d0-00
        Capabilities: [200] Advanced Error Reporting
        Capabilities: [300] Virtual Channel
        Capabilities: [400] Power Budgeting <?>
        Capabilities: [500] Vendor Specific Information: ID=1234 Rev=1 Len=0d8 <?>
        Capabilities: [700] Secondary PCI Express
        Kernel driver in use: pcieport

03:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0, IRQ 126
        Bus: primary=03, secondary=05, subordinate=37, sec-latency=0
        I/O behind bridge: 00004000-00004fff [size=4K]
        Memory behind bridge: 70000000-87efffff [size=383M]
        Prefetchable memory behind bridge: 0000004000000000-000000401fffffff [size=512M]
        Capabilities: [80] Power Management version 3
        Capabilities: [88] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [ac] Subsystem: Hewlett-Packard Company JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
        Capabilities: [c0] Express Downstream Port (Slot+), MSI 00
        Capabilities: [100] Device Serial Number cf-dd-68-09-50-b7-d0-00
        Capabilities: [200] Advanced Error Reporting
        Capabilities: [300] Virtual Channel
        Capabilities: [400] Power Budgeting <?>
        Capabilities: [500] Vendor Specific Information: ID=1234 Rev=1 Len=0d8 <?>
        Capabilities: [700] Secondary PCI Express
        Kernel driver in use: pcieport

03:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0, IRQ 127
        Bus: primary=03, secondary=38, subordinate=38, sec-latency=0
        I/O behind bridge: [disabled]
        Memory behind bridge: 87f00000-87ffffff [size=1M]
        Prefetchable memory behind bridge: [disabled]
        Capabilities: [80] Power Management version 3
        Capabilities: [88] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [ac] Subsystem: Hewlett-Packard Company JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
        Capabilities: [c0] Express Downstream Port (Slot+), MSI 00
        Capabilities: [100] Device Serial Number cf-dd-68-09-50-b7-d0-00
        Capabilities: [200] Advanced Error Reporting
        Capabilities: [300] Virtual Channel
        Capabilities: [400] Power Budgeting <?>
        Capabilities: [500] Vendor Specific Information: ID=1234 Rev=1 Len=0d8 <?>
        Capabilities: [700] Secondary PCI Express
        Kernel driver in use: pcieport

03:04.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0, IRQ 128
        Bus: primary=03, secondary=39, subordinate=6c, sec-latency=0
        I/O behind bridge: 00005000-00005fff [size=4K]
        Memory behind bridge: 88000000-9dffffff [size=352M]
        Prefetchable memory behind bridge: 0000004020000000-0000004049ffffff [size=672M]
        Capabilities: [80] Power Management version 3
        Capabilities: [88] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [ac] Subsystem: Hewlett-Packard Company JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
        Capabilities: [c0] Express Downstream Port (Slot+), MSI 00
        Capabilities: [100] Device Serial Number cf-dd-68-09-50-b7-d0-00
        Capabilities: [200] Advanced Error Reporting
        Capabilities: [300] Virtual Channel
        Capabilities: [400] Power Budgeting <?>
        Capabilities: [500] Vendor Specific Information: ID=1234 Rev=1 Len=0d8 <?>
        Capabilities: [700] Secondary PCI Express
        Kernel driver in use: pcieport

04:00.0 System peripheral: Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016] (rev 02)
        Subsystem: Hewlett-Packard Company JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016]
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at 9e000000 (32-bit, non-prefetchable) [size=256K]
        Memory at 9e040000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [80] Power Management version 3
        Capabilities: [88] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [c0] Express Endpoint, MSI 00
        Capabilities: [a0] MSI-X: Enable+ Count=16 Masked-
        Capabilities: [100] Device Serial Number cf-dd-68-09-50-b7-d0-00
        Capabilities: [200] Advanced Error Reporting
        Capabilities: [300] Virtual Channel
        Capabilities: [400] Power Budgeting <?>
        Capabilities: [500] Vendor Specific Information: ID=1234 Rev=1 Len=088 <?>
        Capabilities: [600] Latency Tolerance Reporting
        Kernel driver in use: thunderbolt
        Kernel modules: thunderbolt

38:00.0 USB controller: Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016] (rev 02) (prog-if 30 [XHCI])
        Subsystem: Hewlett-Packard Company JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016]
        Flags: bus master, fast devsel, latency 0, IRQ 132
        Memory at 87f00000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [80] Power Management version 3
        Capabilities: [88] MSI: Enable+ Count=1/8 Maskable- 64bit+
        Capabilities: [c0] Express Endpoint, MSI 00
        Capabilities: [100] Device Serial Number cf-dd-68-09-50-b7-d0-00
        Capabilities: [200] Advanced Error Reporting
        Capabilities: [300] Virtual Channel
        Capabilities: [400] Power Budgeting <?>
        Capabilities: [500] Vendor Specific Information: ID=1234 Rev=1 Len=0d8 <?>
        Capabilities: [600] Latency Tolerance Reporting
        Capabilities: [700] Secondary PCI Express
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci
« Last Edit: October 23, 2021, 11:11:13 pm by SMB784 »
 

Offline abyrvalg

  • Frequent Contributor
  • **
  • Posts: 824
  • Country: es
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #156 on: October 24, 2021, 08:55:29 am »
The XDMA driver has nothing with device not showing in lspci (the driver can just sit in memory waiting for any device from it’s aliases list to appear), the problem is either in Thunderbolt or FPGA board. Try checking dmesg and boltctl output after plugging the device in to see is there anything other than the TB controller itself. You can try plugging an empty TB enclosure first and checking those two util’s outputs to get a reference point, then look for differences when you plug the enclosure with FPGA up and running.
 
The following users thanked this post: SMB784

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #157 on: October 24, 2021, 08:24:19 pm »
The XDMA driver has nothing with device not showing in lspci (the driver can just sit in memory waiting for any device from it’s aliases list to appear), the problem is either in Thunderbolt or FPGA board. Try checking dmesg and boltctl output after plugging the device in to see is there anything other than the TB controller itself. You can try plugging an empty TB enclosure first and checking those two util’s outputs to get a reference point, then look for differences when you plug the enclosure with FPGA up and running.

Thanks for the heads up, I read about doing that last night before bed, and woke up to your message.

boltctl yields no output, regardless of whether or not the FPGA is attached.

dmesg yields nearly identical outputs with or without the FPGA, only difference is the device number, and no mention of the thunderbolt enclosure, just the USB-C controller (a TPS65983) on the same board as the Thunderbolt chip in the enclosure.

dmesg without the FPGA attached:
Code: [Select]
[  748.079731] usb 1-3: new low-speed USB device number 6 using xhci_hcd
[  748.231809] usb 1-3: No LPM exit latency info found, disabling LPM.
[  748.238688] usb 1-3: New USB device found, idVendor=8087, idProduct=0000, bcdDevice= 4.51
[  748.238706] usb 1-3: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[  748.238713] usb 1-3: Product: TPS65983
[  748.238719] usb 1-3: Manufacturer: Texas Instruments
[  748.238724] usb 1-3: SerialNumber: FD1C701466D2DCA4394575BE15664075

dmesg with the FPGA attached:
Code: [Select]
[  975.351287] usb 1-3: new low-speed USB device number 7 using xhci_hcd
[  975.504061] usb 1-3: No LPM exit latency info found, disabling LPM.
[  975.510403] usb 1-3: New USB device found, idVendor=8087, idProduct=0000, bcdDevice= 4.51
[  975.510421] usb 1-3: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[  975.510428] usb 1-3: Product: TPS65983
[  975.510433] usb 1-3: Manufacturer: Texas Instruments
[  975.510439] usb 1-3: SerialNumber: FD1C701466D2DCA4394575BE15664075

Would the absence of an output from boltctl indicate that my system isn't recognizing my thunderbolt enclosure?  I have tried it on all 3 USB ports and gotten the same result (two of them are USB-C, one is regular USB).  The laptop model is an HP Spectre x360 13t (model #: 13t-ap000), and its running Ubuntu 20.04 HWE (kernel 5.11.0-38-generic).  BIOS tells me that the thunderbolt controller has firmware version 1F-NVM46.00 (see attached image).  Apparently there's an update for it, so I'll try that.  Maybe it will help. It did not help. The Thunderbolt chip in the enclosure is a JHL6340, and lspci is showing a JHL6540, so I presume the JHL6540 is the thunderbolt controller chip on the laptop.  More evidence that the enclosure isn't being detected, I suppose.
« Last Edit: October 24, 2021, 09:40:07 pm by SMB784 »
 

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #158 on: October 28, 2021, 01:57:09 am »
Alright so it turns out that the issue was the cable connecting the Thunderbolt enclosure + SQRL Acorn to my computer.  Once I used the stock cable that came with the enclosure, it recognized it just fine.  I had pre-loaded the nitefury core from the stock .mcs file found on the github (https://github.com/RHSResearchLLC/NiteFury-and-LiteFury/tree/master/Sample-Projects/Project-0/FPGA-A200T-3/mcs), and lspci gives an output that lists the device ID of the XDMA core loaded onto the FPGA, demonstrating that the FPGA is showing up as a PCI connected device.

However, when I try to use spi-loader (https://github.com/RHSResearchLLC/NiteFury-and-LiteFury/tree/master/spi-loader/linux/sw/build) to upload a copy of the same out.mcs from the aforementioned github link, I get an error (see attached image).
 Not sure what the deal is with that yet, as the XDMA driver is indeed installed and working (and even recognizes the FPGA, and runs DMA tests on it that actually pass) but at least this is progress.
« Last Edit: October 28, 2021, 02:08:12 am by SMB784 »
 

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #159 on: October 28, 2021, 11:35:42 pm »
I fixed the error I described in my previous post. Apparently /dev/xdma0_user needed read/write permissions before it would allow me to upload a bitstream via the thunderbolt connection.  However, the new problem is that uploading a bitstream appears to crash my computer. More on that as I find out.

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #160 on: October 30, 2021, 03:51:02 pm »
I fixed the error I described in my previous post. Apparently /dev/xdma0_user needed read/write permissions before it would allow me to upload a bitstream via the thunderbolt connection.  However, the new problem is that uploading a bitstream appears to crash my computer. More on that as I find out.

Nothing shows up in the logs during the lock-up/crash, and the device is being properly detected as a PCI card, so I'm not quite sure whats happening here.  Checked htop, it crashes so fast that there's time for htop to update cpu/ram usage for any running processes.  Log/crash behavior evidence attached.  So close, if we can get this worked out I think this thunderbolt enclosure will be an excellent way to turn this into a very workable dev board.

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #161 on: November 06, 2021, 10:45:16 pm »
Alright so after hitting a dead end trying to upload the Nitefury github repo via PCIe, I gave up and installed LiteX.

That went much more successfully.  I was able to communicate with the SQRL in the thunderbolt enclosure via the thunderbolt USB-C cable, and I was also able to upload new bitstreams via the PCIe connection (avoiding the need for a separate JTAG), and do a dma test (see attached photo).

The SQRL Acorn is now officially a USB connected PCIe FPGA.  I am currently working on integrating the LiteX PCIe core into my basic loadout bitstream so that once flashed the SQRL Acorn can be fully tested, including all GPIO outputs, PCIe connection, and DMA.  I will update the github when I am finished, and merge this into a separate post.
« Last Edit: November 06, 2021, 10:46:51 pm by SMB784 »
 

Offline Teknoman117

  • Contributor
  • Posts: 13
  • Country: us
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #162 on: November 13, 2021, 07:18:25 pm »
I never actually managed to get the NiteFury (A200T) project to work on the CLE-215+. This includes even setting the LEDs. The A100T project did work on the LiteFury I bought last year.
 

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #163 on: November 13, 2021, 07:49:14 pm »
I never actually managed to get the NiteFury (A200T) project to work on the CLE-215+. This includes even setting the LEDs. The A100T project did work on the LiteFury I bought last year.

Yeah I spoke with Dave Reynolds of RHS Research (he runs the Nitefury project), and he said that he had to do some black magic with the spi-loader program to get it to properly interface with the SQRL board, and he couldn't remember how to do it anymore, so that wound up as a dead end.

But, I figured a way around this issue.  Litepcie provided by LiteX works just fine (in fact its a smaller core than the Xilinx PCIe via XDMA).  I was able to integrate this with my thunderbolt enclosure, and now I have a USB-C programmable FPGA with full speed x4 lane PCIe connection.  I described this in a separate thread on this forum:

https://www.eevblog.com/forum/fpga/pcie-over-usb-interface-for-sqrl-acornnitefury-cle-215()/

Offline Teknoman117

  • Contributor
  • Posts: 13
  • Country: us
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #164 on: November 14, 2021, 08:45:39 pm »
From you other pictures you posted, I'm curious how you removed the thermal epoxy holding the heatsink down without ruining anything? The stock heatsink+fan is terribly annoying...
 

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #165 on: November 14, 2021, 10:13:34 pm »
Its not really epoxy, its actually just very viscous thermal paste (it is soluble in isopropanol too).  A slight twisting motion and some patience was enough to get it off for me.  I have done it successfully twice as of today, once on a CLE-215 and once on a CLE-215+ without issue.  No guarantees though.
« Last Edit: November 14, 2021, 10:37:31 pm by SMB784 »
 

Offline randomengineer6

  • Newbie
  • Posts: 1
  • Country: us
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #166 on: November 20, 2021, 08:48:25 pm »
Its not really epoxy, its actually just very viscous thermal paste (it is soluble in isopropanol too).  A slight twisting motion and some patience was enough to get it off for me.  I have done it successfully twice as of today, once on a CLE-215 and once on a CLE-215+ without issue.  No guarantees though.

Is the CLE-215 just a different speed grade of the XC7A200 and do you know whether its the same RAM chip as the CLE-215+?
 

Offline SMB784

  • Frequent Contributor
  • **
  • Posts: 421
  • Country: us
    • Tequity Surplus
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #167 on: November 21, 2021, 03:34:13 am »
Is the CLE-215 just a different speed grade of the XC7A200 and do you know whether its the same RAM chip as the CLE-215+?

Yes the 215-CLE+ is the speed grade 3 variant of the XC7A-200T, and the 215-CLE is the speed grade 2 variant.

To my knowledge, the RAM chips are mt41k512m16ha-125 ait:a in both.

Online NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9003
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Re: SQRL Acorn as an interesting Artix-7 board?
« Reply #168 on: November 21, 2021, 12:54:36 pm »
From you other pictures you posted, I'm curious how you removed the thermal epoxy holding the heatsink down without ruining anything? The stock heatsink+fan is terribly annoying...
The fan is easy to remove, then 3D print an adapter to attach a larger, quieter fan. Most likely some sort of centrifugal fan would be the best fit.
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.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf