RHSResearchLLC / NiteFury-and-LiteFury

Public repository for Litefury & Nitefury
273 stars 72 forks source link

Questions about the flashing using SPI Loader #47

Closed Mark1626 closed 9 months ago

Mark1626 commented 9 months ago

I recently brought the Nitefury II board and I'm looking forward to using it. Currently it has the factory default bitstream. I installed the xdma kernel module, the board is detected and I was able to run the example to identify the board.

I currently don't have a JTAG, and it won't be arriving for about a week or so. Meanwhile I wanted to know if I can use the spi-loader on the factory default bitstream. When I run the spi-loader test it freezes after Initializing flash index 0. Any idea why this is happening?

$ ./spi-loader -a 0x240000 -f ./64KiB.bin 
Loading 65536 bytes from ./64KiB.bin[0] to flash[2359296] using /dev/xdma0_user[65536]

Initializing flash index 0...

Other questions about the flashing over PCIe using the spi-loader:

  1. Which address should I write a new bitstream into?
  2. Will I have to overwrite the existing bitstream everytime?

Result of lspci

07:00.0 Processing accelerators: Xilinx Corporation 7-Series FPGA Hard PCIe block (AXI/debug)
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 39
    IOMMU group: 26
    Region 0: Memory at e2100000 (64-bit, prefetchable) [size=128K]
    Region 2: Memory at e2120000 (64-bit, prefetchable) [size=64K]
    Capabilities: [40] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
        Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
        Address: 0000000000000000  Data: 0000
    Capabilities: [60] Express (v2) Endpoint, MSI 00
        DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 unlimited
            ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
        DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
            RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
        LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L0s, Exit Latency L0s unlimited
            ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
        LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta: Speed 5GT/s (ok), Width x1 (downgraded)
            TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        DevCap2: Completion Timeout: Range B, TimeoutDis- NROPrPrP- LTR-
             10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
             EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
             FRS- TPHComp- ExtTPHComp-
             AtomicOpsCap: 32bit- 64bit- 128bitCAS-
        DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
             AtomicOpsCtl: ReqEn-
        LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
             EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
             Retimer- 2Retimers- CrosslinkRes: unsupported
    Capabilities: [100 v1] Device Serial Number 00-00-00-00-00-00-00-00
    Kernel driver in use: xdma
    Kernel modules: xdma

Result of test-general

$ python test-general.py -v 2 -i NITE
Found product ID b'NITE' version 2
Temp C=55.0
VCCInt=1.02
vccaux=1.80
Checkout passed

Other info

OS: AlmaLinux 9.3 (Shamrock Pampas Cat) x86_64 
Kernel: 5.14.0-362.8.1.el9_3.x86_64 
Mark1626 commented 9 months ago

Closing this as I'm going with a JTAG to program the board