Host → Container → Host Pipeline
This project uses a host-first build pipeline to ensure no VFIO access occurs inside the container. The container only parses staged data and generates artifacts.
Stages
1) Host collect - Reads PCIe config space from the donor device - Parses MSI-X capability - Writes a datastore with: - device_context.json (config_space_hex) - msix_data.json (config_space_hex + msix_info)
2) Container templating (or local fallback)
- Runs parsing and template generation against the staged datastore
- No device access in this stage
- Outputs SystemVerilog, TCL, and other artifacts into output/
3) Host Vivado - Runs Vivado batch using generated artifacts
Commands
-
Stage 1 only (collect and exit):
-
Full pipeline (collect → container → Vivado):
-
Local (no container):
Datastore
- Default directory:
pcileech_datastore/(override with--datastore) - Files:
- device_context.json
- msix_data.json
- output/ (generated artifacts)
Notes
- Container image tag:
pcileech-fwgen(built fromContainerfileif not present) - No VFIO actions run inside the container; failures occur early if the datastore is missing or incomplete.