ufrisk / pcileech-fpga

FPGA modules used together with the PCILeech Direct Memory Access (DMA) Attack Software
894 stars 199 forks source link

Hot Plugging #42

Closed romdor closed 5 months ago

romdor commented 4 years ago

Hi @ufrisk ,

first of all, i really appreciate your great work!

Did you manage to get hot plugging to work with the AC701 / FT601 PCIe FPGA device?

I tried several workstations (Dell Optiplex 7010, Dell Precision T3500) and servers (Dell PowerEdge R820, Dell PowerEdge R610) with various pcie slots and different extension cables, but hot plug does not work.

> .\pcileech.exe -v -vv -device fpga:// probe

DEVICE: FPGA: ERROR: Unable to retrieve required Device PCIe ID [2,v4.1,0000]
PCILEECH: Failed to connect to the device.

However, when i try to boot the system with the FPGA device already installed, everything is alright:

> .\pcileech.exe -v -vv -device fpga:// probe

DEVICE: FPGA: AC701 / FT601 PCIe gen2 x1 [300,0,500] [v4.1,0200]

----- FPGA DEVICE CONFIG REGISTERS: CORE-READ-ONLY     SIZE: 34 BYTES -----
0000    89 ab 00 00 22 00 00 00  04 01 02 00 00 00 00 00   ...."...........
0010    a3 8b 80 07 1d 00 00 00  a5 8b 80 07 1d 00 00 00   ................
0020    00 00                                              ..

----- FPGA DEVICE CONFIG REGISTERS: CORE-READ-WRITE    SIZE: 30 BYTES -----
0000    cd ef 04 00 1e 00 00 00  a0 86 01 00 00 00 00 00   ................
0010    ee 10 07 00 ee 10 66 06  02 00 00 00 00 00         ......f.......

----- FPGA DEVICE CONFIG REGISTERS: PCIE-READ-ONLY     SIZE: 48 BYTES -----
0000    01 23 00 00 30 00 00 00  02 00 96 0d 5c 00 00 00   .#..0.......\...
0010    ee 10 07 00 07 01 00 04  00 28 00 00 00 00 41 00   .........(....A.
0020    12 10 00 00 1e 7f 00 00  00 00 00 00 00 00 00 00   ..... ..........

----- FPGA DEVICE CONFIG REGISTERS: PCIE-READ-WRITE    SIZE: 84 BYTES -----
0000    45 67 00 f0 54 00 00 00  35 0a 00 01 01 00 00 00   Eg..T...5.......
0010    00 00 00 00 00 f0 48 00  00 00 00 0e 00 00 00 00   ......H.........
0020    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0030    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0040    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0050    00 00 00 00                                        ....

Successfully loaded LeechCore v1.5.1 Device 3
 Memory Map:
 START              END               #PAGES
 0000000000000000 - 000000000009ffff  000000a0
 00000000000c0000 - 00000000daffffff  000daf40
 0000000100000000 - 000000041e5fffff  0031e600

 Current Action: Probing Memory
 Access Mode:    Normal
 Progress:       16870 / 16870 (100%)
 Speed:          173 MB/s
 Address:        0x000000041E600000
 Pages read:     4167136 / 4318720 (96%)
 Pages failed:   151584 (3%)
Memory Probe: Completed.
ufrisk commented 4 years ago

I know people that have been successful with hot-plug.

But most hardware doesn't support it it seems like, also I have been changing around things a lot in the code so I might have unintentionally broken previously supported hotplug functionality (I don't believe this likely though because hotplug of ExpressCard is still working).

Unfortunately I do not have access to large labs with lots of hardware and I'm not willing to buy a lot of server / workstation hardware for testing on my personal income so my answer is that I just don't know which models that may or may not work.

If the workstation supports "sleep" / suspend to RAM this will most likely work if connected while in sleep though.

ufrisk commented 5 months ago

I'm closing this issue due to old age.