DMA Firmware Development for FPGA
Budget: $10 – $100 USD
I am looking for a skilled freelancer to develop custom firmware for a Captain 75LT DMA card. The firmware must be compatible with EAC and BE anti-cheat systems.
Project Overview
The firmware needs to fully disguise the DMA card, enabling it to emulate another PCIe device. This includes replicating the configuration space, buffer responses, and overall behavior to appear and function exactly like the target device. The firmware should also be optimized for gaming scenarios.
For reference, here’s an example of the desired functionality: pcileech-wifi by ekknod.
Examples of Configuration Needed for Emulation
ASIC Tab:
Number of Lanes: Define the PCIe lane count to match the emulated device.
Maximum Link Speed: Ensure the link speed aligns with the target device's specifications.
IDs Tab:
Vendor ID: Match the Vendor ID of the target device.
Device ID: Set the Device ID identical to the emulated hardware.
Revision ID: Ensure the revision matches.
Subsystem Vendor ID: Mimic the subsystem's Vendor ID.
Subsystem ID: Replicate the subsystem's ID.
Base Class Menu/Value: Adjust to the same value as the target device.
Sub Class Interface Menu/Value: Match the subclass settings.
Interface Value: Configure to match the target device.
Cardbus CIS Pointer: Set to align with the donor board.
BARs Tab:
BAR Count: Enable the same number of Base Address Registers (BARs) as the donor device.
Size Unit and Value: Configure sizes to align with the donor board's BAR setup.
64-bit Compatibility: Specify if the BARs are 64-bit compatible.
Prefetchable: Set prefetching properties to match the emulated hardware.
Core Capabilities Tab:
Match the Device Capabilities Register Hex to the donor device.
Max Payload Size: Set the payload size for compatibility.
Extended Tag Field and Default: Configure to match donor values.
Phantom Functions: Match with the donor device's settings.
Acceptable L0s Latency and L1 Latency: Match latency tolerances.
Link Registers Tab:
ASPM Optionality: Configure Active State Power Management as required.
DLL Link Active Reporting Capability: Match donor settings.
Target Link Speeds: Set link speeds to align with the target device.
Slot Clock Configuration: Match the clock configuration of the donor board.
Interrupts Tab:
Interrupt Pin: Set to match the emulated device.
MSI Capability Struct:
64-bit Address Capable: Configure as per donor board.
Per Vector Masking Capable: Set if applicable.
Multiple Message Capable: Match donor capabilities.
MSIx Capability Struct: Configure to match donor capabilities.
Power Management Tab:
Device Specific Initialization: Set as per donor requirements.
D1 and D2 Support: Match the power states supported by the target device.
PME Support: Configure Power Management Event support to match the donor.
EXT Capabilities Tab:
DSN Capability: Match donor device.
VC Capability: Configure Virtual Channel settings as required.
VSEC Capability: Set as per the emulated device.
User Defined Configuration Capabilities: Match to donor configuration.
EXT Capabilities 2 Tab:
AER (Advanced Error Reporting): Configure error reporting to match the target device.
Ideal Skills and Experience
Strong expertise in developing custom firmware for DMA cards.
Deep understanding of PCIe protocols and hardware-level emulation.
Familiarity with anti-cheat systems, particularly EAC and BE.
Experience with PCIe-specific configurations for device emulation.
Proven track record with relevant examples of past projects.
Open to Suggestions
I am open to recommendations for additional features or optimizations that could enhance the firmware’s functionality and compatibility.
If you have the required skills and experience, please submit your proposal along with relevant examples of your previous work.
Project Overview
The firmware needs to fully disguise the DMA card, enabling it to emulate another PCIe device. This includes replicating the configuration space, buffer responses, and overall behavior to appear and function exactly like the target device. The firmware should also be optimized for gaming scenarios.
For reference, here’s an example of the desired functionality: pcileech-wifi by ekknod.
Examples of Configuration Needed for Emulation
ASIC Tab:
Number of Lanes: Define the PCIe lane count to match the emulated device.
Maximum Link Speed: Ensure the link speed aligns with the target device's specifications.
IDs Tab:
Vendor ID: Match the Vendor ID of the target device.
Device ID: Set the Device ID identical to the emulated hardware.
Revision ID: Ensure the revision matches.
Subsystem Vendor ID: Mimic the subsystem's Vendor ID.
Subsystem ID: Replicate the subsystem's ID.
Base Class Menu/Value: Adjust to the same value as the target device.
Sub Class Interface Menu/Value: Match the subclass settings.
Interface Value: Configure to match the target device.
Cardbus CIS Pointer: Set to align with the donor board.
BARs Tab:
BAR Count: Enable the same number of Base Address Registers (BARs) as the donor device.
Size Unit and Value: Configure sizes to align with the donor board's BAR setup.
64-bit Compatibility: Specify if the BARs are 64-bit compatible.
Prefetchable: Set prefetching properties to match the emulated hardware.
Core Capabilities Tab:
Match the Device Capabilities Register Hex to the donor device.
Max Payload Size: Set the payload size for compatibility.
Extended Tag Field and Default: Configure to match donor values.
Phantom Functions: Match with the donor device's settings.
Acceptable L0s Latency and L1 Latency: Match latency tolerances.
Link Registers Tab:
ASPM Optionality: Configure Active State Power Management as required.
DLL Link Active Reporting Capability: Match donor settings.
Target Link Speeds: Set link speeds to align with the target device.
Slot Clock Configuration: Match the clock configuration of the donor board.
Interrupts Tab:
Interrupt Pin: Set to match the emulated device.
MSI Capability Struct:
64-bit Address Capable: Configure as per donor board.
Per Vector Masking Capable: Set if applicable.
Multiple Message Capable: Match donor capabilities.
MSIx Capability Struct: Configure to match donor capabilities.
Power Management Tab:
Device Specific Initialization: Set as per donor requirements.
D1 and D2 Support: Match the power states supported by the target device.
PME Support: Configure Power Management Event support to match the donor.
EXT Capabilities Tab:
DSN Capability: Match donor device.
VC Capability: Configure Virtual Channel settings as required.
VSEC Capability: Set as per the emulated device.
User Defined Configuration Capabilities: Match to donor configuration.
EXT Capabilities 2 Tab:
AER (Advanced Error Reporting): Configure error reporting to match the target device.
Ideal Skills and Experience
Strong expertise in developing custom firmware for DMA cards.
Deep understanding of PCIe protocols and hardware-level emulation.
Familiarity with anti-cheat systems, particularly EAC and BE.
Experience with PCIe-specific configurations for device emulation.
Proven track record with relevant examples of past projects.
Open to Suggestions
I am open to recommendations for additional features or optimizations that could enhance the firmware’s functionality and compatibility.
If you have the required skills and experience, please submit your proposal along with relevant examples of your previous work.