# Flashing custom gateware

Detailed information on flashing custom gateware can be found in the [LambdaConcept documentation](https://docs.lambdaconcept.com/screamer/programming.html). You will also need to follow these [OpenOCD instructions](https://docs.lambdaconcept.com/screamer/openocd.html).

## The JTAG Board

LambdaConcept sells a [JTAGSerial ](https://shop.lambdaconcept.com/home/25-jtagserial-pack.html)device. This is required in order to flash custom gateware onto this DMA device. This is not a very user-friendly system and if done incorrectly, could permanently damage the DMA device.&#x20;

### Using the Board

1. Plug the provided jumper wires into the board and your PCIe device. **Ensure it is in the correct orientation!**
2. Plug the JTAGSerial board into your PC via the provided USB cable.&#x20;
3. Ensure your PCIe Device is plugged into a PC. Power on that PC.
4. Download the precompiled OpenOCD windows binaries from the [LambdaConcept docs](https://docs.lambdaconcept.com/screamer/openocd.html).
5. Download [Zadig](https://zadig.akeo.ie/).
6. Follow the [WinUSB driver for Windows](https://docs.lambdaconcept.com/screamer/openocd.html#winusb-driver-for-windows) instructions. It is **very important** that you replace the correct driver. This is the **Interface 0** device.
7. Download the [proxy and flashing scripts](https://docs.lambdaconcept.com/screamer/programming.html#get-proxy-and-flashing-scripts) provided by LambdaConcept.
8. Place your custom gateware .bin file in the proxy and flashing scripts folder.
9. Run the flashing script using OpenOCD as outlined by LambdaConcept in [their docs](https://docs.lambdaconcept.com/screamer/programming.html#run-the-flashing-script).
10. Remove the JTAG from your Device and reboot the target machine by fully powering off and back on.&#x20;

## Post-Flash Actions

You should read up on Device Spoofing for details on what actions to take after flashing your device in order to clear your system of any bad identifiers.

{% content-ref url="../../../anticheat-evasion/pci-configuration-space" %}
[pci-configuration-space](https://dma.lystic.dev/anticheat-evasion/pci-configuration-space)
{% endcontent-ref %}
