Hello,
hope you the experts may advise on this question.
A customer has a system with expensive FPGA silicon in it, connected via PCIe, and it is set up as
VEN_nnnn DEV_001 SUBSYS_0001mmmm REV_01
Class code=0x11 - Signal Processing Controller
Subclass=0x80 - Other
Prog IF=0
Revision ID=1
and there is a driver for it installed and running.
Now customer says they want some AI support and no longer benefit from DSP much. So customer asks if we can re-configure existing FPGA silicon as AI accelerator. Sure, new synthesis and customer now has powerful AI accelerator using the same hw.
There will be a different driver for the same FPGA as its function changed from DSP to AI accelerator.
We then need to change PCIe configuration space from DSP case to AI accelerator case, for the same FPGA silicon, so that different PCIe driver will load. I can do it, but asking what to choose with minimum disruption of customer.
Customer has Windows 10 secure system - secure boot, bitlocker, and FIPS enabled.
Am I changing hw or not? Yes and no.
YES: The FPGA silicon will now behave very different, so yes I change hw. As if I unplug DSP PCIe card and insert another PCIe card.
NO: No I do not unplug and plug anything, it is the same enclosure and the very same FPGA silicon soldered permanently onto main board.
If I change hw then Windows security will trigger and will ask for bitlocker key. Customer needs to know it, and ideally we want to avoid this situation.
Q: what parameter combination in PCIe config space is captured by Windows 10 secruity to watch for HW changes ?
Examples in my case
VEN_nnnn DEV_001 SUBSYS_0001mmmm REV_01
Class code=0x11 - Signal Processing Controller
Subclass=0x80 - Other
Prog IF
Revision ID=1
→ will load driver_M
if changed to
VEN_nnnn DEV_003 SUBSYS_0001mmmm REV_01 (changed DEV and class code)
Class code=0x12 - Processing Accelerator
Subclass=0x80 - Other
Prog IF
Revision ID=1
→ will load driver_A
or if changed to
VEN_nnnn DEV_001 SUBSYS_0003mmmm REV_01 (changed SUBSYS and class code)
Class code=0x12 - Processing Accelerator
Subclass=0x80 - Other
Prog IF
Revision ID=1
→ will load driver_A
or if changed to
VEN_nnnn DEV_001 SUBSYS_0001mmmm REV_03 (changed REV and class code)
Class code=0x12 - Processing Accelerator
Subclass=0x80 - Other
Prog IF
Revision ID=1
→ will load driver_A
Thanks,
Sergey