-
-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
This error has occurred again.
sudo ./bin/pcileechgen check --bdf 0000:08:00.0
Checking device 0000:08:00.0...
[OK] Device found: 10ec:8168 Ethernet controller
[OK] Config space readable: 4096 bytes
[OK] IOMMU is enabled
[OK] VFIO modules loaded
[OK] IOMMU group: 16
[OK] Device is alone in its IOMMU group
[OK] Power state: D0 (active)
[OK] Already bound to vfio-pci
Capabilities (4):
[01] Power Management at offset 0x40
[05] MSI at offset 0x50
[10] PCI Express at offset 0x70
[11] MSI-X at offset 0xb0
Extended Capabilities (5):
[0001] Advanced Error Reporting at offset 0x100
[0002] Virtual Channel (No MFVC) at offset 0x140
[0003] Device Serial Number at offset 0x160
[0018] Latency Tolerance Reporting at offset 0x170
[001e] L1 PM Substates at offset 0x178
BARs:
BAR0: io at 0x3000, size 256 B
BAR2: mem64 at 0xb2204000, size 4 KB
BAR4: mem64 at 0xb2200000, size 16 KB
--- Board Compatibility ---
Donor Link: Gen1 (2.5 GT/s) x1
Donor DSN: 0x01000000684CE000
Compatible boards:
[OK] PCIeSquirrel xc7a35tfgg484-2 x1 (exact match)
[OK] ScreamerM2 xc7a35tcsg325-2 x1 (exact match)
[OK] pciescreamer xc7a35tfgg484-2 x1 (exact match)
[OK] EnigmaX1 xc7a75tfgg484-2 x1 (exact match)
[OK] CaptainDMA_M2_x1 xc7a35tcsg325-2 x1 (exact match)
[OK] CaptainDMA_M2_x4 xc7a35tcsg325-2 x4
[OK] CaptainDMA_35T xc7a35tfgg484-2 x1 (exact match)
[OK] CaptainDMA_75T xc7a75tfgg484-2 x1 (exact match)
[OK] CaptainDMA_100T xc7a100tfgg484-2 x1 (exact match)
[OK] ZDMA xc7a100tfgg484-2 x4
[OK] GBOX xc7a35tfgg484-2 x1 (exact match)
[OK] NeTV2_35T xc7a35tfgg484-2 x1 (exact match)
[OK] NeTV2_100T xc7a100tfgg484-2 x1 (exact match)
[OK] ac701_ft601 xc7a200tfbg676-2 x4
[OK] acorn xc7a200tfbg484-3 x4
[OK] litefury xc7a100tfgg484-2 x4
[OK] sp605_ft601 xc6slx45tfgg484-2 x1 (exact match)
Total: 17 boards
--- Summary ---
[OK] Device is ready for firmware generationsudo ./bin/pcileechgen build --bdf 0000:08:00.0 --board CaptainDMA_75t --skip-vivado
2026/03/12 12:50:23 INFO target device bdf=0000:08:00.0
2026/03/12 12:50:23 INFO collecting donor device data
2026/03/12 12:50:23 INFO PCI memory space enabled bdf=0000:08:00.0
2026/03/12 12:50:23 WARN sysfs BAR read returned all 0xFF, will retry via VFIO bar=2
2026/03/12 12:50:23 INFO BAR read complete bar=2 bytes=4096
2026/03/12 12:50:23 WARN sysfs BAR read returned all 0xFF, will retry via VFIO bar=4
2026/03/12 12:50:23 INFO BAR read complete bar=4 bytes=4096
2026/03/12 12:50:23 INFO retrying BAR reads via VFIO
2026/03/12 12:50:24 INFO all memory BAR contents are 0xFF, attempting native driver rebind cycle
2026/03/12 12:50:24 INFO waiting for native driver to initialize device... delay=3s
2026/03/12 12:50:27 WARN native driver rebind cycle did not recover any BAR data
2026/03/12 12:50:27 INFO BAR profiled bar=2 active_registers=1024
2026/03/12 12:50:27 INFO BAR profiled bar=4 active_registers=1024
2026/03/12 12:50:27 INFO MSI-X detected vectors=4 table_bar=4 table_offset=0x0 pba_bar=4 pba_offset=0x800
2026/03/12 12:50:27 WARN BAR content is all 0xFF - device may be inaccessible or in D3 power state bar=2 bytes=4096 class=0x020000
2026/03/12 12:50:27 WARN BAR content is all 0xFF - device may be inaccessible or in D3 power state bar=4 bytes=4096 class=0x020000
Error: device data collection failed: BAR content for class 0x020000 is all 0xFF (driver "vfio-pci"). The device is not responding - possible causes:
• device is in D3 (sleep) power state
• IOMMU/VT-d not enabled or misconfigured
• PCI Command Register memory space not enabled
• device requires native driver initialization (e.g. CNVi WiFi, firmware-dependent devices)
Without valid BAR data, Windows will produce Code 10 and DMA will not work
Workarounds:
1. Try: sudo setpci -s 0000:08:00.0 COMMAND=0x06
2. For CNVi/WiFi: boot with native driver, dump BAR with a tool, then use --from-json
Usage:
pcileechgen build [flags]
Flags:
--bdf string donor device BDF address (e.g. 0000:03:00.0)
--board string target FPGA board name (required, e.g. PCIeSquirrel)
--from-json string load donor device data from JSON file (offline build)
-h, --help help for build
--jobs int number of parallel Vivado jobs (default 4)
--lib-dir string path to pcileech-fpga library (default "lib/pcileech-fpga")
--output string output directory (default "pcileech_datastore")
--skip-vivado skip Vivado synthesis (only generate artifacts)
--timeout int Vivado synthesis timeout in seconds (default 3600)
--vivado-path string path to Vivado installation
device data collection failed: BAR content for class 0x020000 is all 0xFF (driver "vfio-pci"). The device is not responding - possible causes:
• device is in D3 (sleep) power state
• IOMMU/VT-d not enabled or misconfigured
• PCI Command Register memory space not enabled
• device requires native driver initialization (e.g. CNVi WiFi, firmware-dependent devices)
Without valid BAR data, Windows will produce Code 10 and DMA will not work
Workarounds:
1. Try: sudo setpci -s 0000:08:00.0 COMMAND=0x06
2. For CNVi/WiFi: boot with native driver, dump BAR with a tool, then use --from-jsonI tried to use the method in the 16SalomonArs/Pcileech-DMA-FirmwareCustomizationGuide to dump the memory. The results showed that regardless of whether I bound the driver to r8169 or vfio-pci, I could obtain memory values (not all 0xFF).
This is the code for dumping memory usage. Perhaps it can provide new ideas?:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
int main(int argc, char **argv) {
if (argc < 2) {
printf("Usage: %s /sys/bus/pci/devices/XXXX:XX:XX.X/resource0\n", argv[0]);
return 1;
}
int fd = open(argv[1], O_RDONLY);
if (fd < 0) {
perror("open");
return 1;
}
void *mem = mmap(NULL, 4096, PROT_READ, MAP_SHARED, fd, 0);
if (mem == MAP_FAILED) {
perror("mmap");
close(fd);
return 1;
}
// Output in Verilog case format
printf("// BAR0 memory dump for Verilog\n");
for (int offset = 0; offset < 4096; offset += 4) {
uint32_t val = *(uint32_t *)(mem + offset);
printf("16'h%04X: rd_rsp_data <= 32'h%08X;\n", offset, val);
}
munmap(mem, 4096);
close(fd);
return 0;
}Error Type
Collection failure
Device Context File
NA
Windows Event Log
Device Manager Error Details
No response
Terminal Output
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working