{ lib, pkgs, fxload, ise-fw, ... }: pkgs.writeTextFile { name = "ise-udev-rules"; destination = "/etc/udev/rules.d/05-xilinx-ise.rules"; text = '' # version 0003 ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0008", MODE="666" SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0007", RUN+="${lib.getExe fxload} -v -t fx2 -i ${ise-fw}/share/xusbdfwu.hex -d 03fd:0007" SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0009", RUN+="${lib.getExe fxload} -v -t fx2 -i ${ise-fw}/share/xusb_xup.hex -d 03fd:0009" SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000d", RUN+="${lib.getExe fxload} -v -t fx2 -i ${ise-fw}/share/xusb_emb.hex -d 03fd:000d" SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000f", RUN+="${lib.getExe fxload} -v -t fx2 -i ${ise-fw}/share/xusb_xlp.hex -d 03fd:000f" SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN+="${lib.getExe fxload} -v -t fx2 -i ${ise-fw}/share/xusb_xp2.hex -d 03fd:0013" SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0015", RUN+="${lib.getExe fxload} -v -t fx2 -i ${ise-fw}/share/xusb_xse.hex -d 03fd:0015" ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", MODE="666" ''; }