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 generation
sudo ./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-json
I 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
Description
This error has occurred again.
I 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?:
Error Type
Collection failure
Device Context File
NA
Windows Event Log
Device Manager Error Details
No response
Terminal Output