Hello! Please find this week's update to my new port cad/openfpgaloader attached to this email. It includes some updates from the github repository. It is part of a set, intended to bring the joy of FPGA development to OpenBSD. cad/prjpeppercorn cad/nextpnr cad/openfpgaloader cad/yosys Thomas
diff --git a/cad/openfpgaloader/Makefile b/cad/openfpgaloader/Makefile
new file mode 100644
index 00000000000..ee5f06f1592
--- /dev/null
+++ b/cad/openfpgaloader/Makefile
@@ -0,0 +1,27 @@
+COMMENT= universal utility for programming FPGAs
+CATEGORIES= cad
+V= 1.1.1pl20260625
+DISTNAME= openfpgaloader-${V}
+
+GH_ACCOUNT= trabucayre
+GH_PROJECT= openFPGALoader
+GH_COMMIT= d90fa0ca85763f0d91de89c17c55a20fc35fba94
+
+HOMEPAGE= https://github.com/trabucayre/openFPGALoader
+MAINTAINER= Thomas Dettbarn <dettus@dettus.net>
+
+# APACHE-2.0
+PERMIT_PACKAGE= yes
+
+WANTLIB= c ${COMPILER_LIBCXX} m z
+WANTLIB+= ftdi1 usb-1.0
+MODULES= devel/cmake
+
+NO_TEST= Yes
+
+LIB_DEPENDS= devel/libftdi1
+LIB_DEPENDS+= devel/libusb1
+
+
+.include <bsd.port.mk>
+
diff --git a/cad/openfpgaloader/distinfo b/cad/openfpgaloader/distinfo
new file mode 100644
index 00000000000..7d7989f33ef
--- /dev/null
+++ b/cad/openfpgaloader/distinfo
@@ -0,0 +1,2 @@
+SHA256 (openfpgaloader-1.1.1pl20260625-d90fa0ca.tar.gz) = b7qZQtWvKbWd2K2uy0+wgmhxKZ3kB57RgEUGPa2NCIg=
+SIZE (openfpgaloader-1.1.1pl20260625-d90fa0ca.tar.gz) = 3986790
diff --git a/cad/openfpgaloader/pkg/DESCR b/cad/openfpgaloader/pkg/DESCR
new file mode 100644
index 00000000000..e738c352fbe
--- /dev/null
+++ b/cad/openfpgaloader/pkg/DESCR
@@ -0,0 +1,6 @@
+Universal utility for programming FPGAs. Compatible with many boards,
+cables and FPGA from major manufacturers (Xilinx, Altera/Intel,
+Lattice, Gowin, Efinix, Anlogic, Cologne Chip). openFPGALoader works on
+Linux, Windows, macOS and OpenBSD.
+
+
diff --git a/cad/openfpgaloader/pkg/PLIST b/cad/openfpgaloader/pkg/PLIST
new file mode 100644
index 00000000000..938026915ae
--- /dev/null
+++ b/cad/openfpgaloader/pkg/PLIST
@@ -0,0 +1,116 @@
+@bin bin/openFPGALoader
+share/doc/pkg-readmes/${PKGSTEM}
+share/openFPGALoader/
+share/openFPGALoader/bpiOverJtag_xc7k480tffg1156.bit.gz
+share/openFPGALoader/spiOverJtag_10cl006144.rbf.gz
+share/openFPGALoader/spiOverJtag_10cl016484.rbf.gz
+share/openFPGALoader/spiOverJtag_10cl025256.rbf.gz
+share/openFPGALoader/spiOverJtag_10cl055484.rbf.gz
+share/openFPGALoader/spiOverJtag_5ce215.rbf.gz
+share/openFPGALoader/spiOverJtag_5ce223.rbf.gz
+share/openFPGALoader/spiOverJtag_5ce423.rbf.gz
+share/openFPGALoader/spiOverJtag_5ce523.rbf.gz
+share/openFPGALoader/spiOverJtag_5ce927.rbf.gz
+share/openFPGALoader/spiOverJtag_5sgsd5.rbf.gz
+share/openFPGALoader/spiOverJtag_efinix_t120f324.bit.gz
+share/openFPGALoader/spiOverJtag_efinix_t13f256.bit.gz
+share/openFPGALoader/spiOverJtag_efinix_t8f81.bit.gz
+share/openFPGALoader/spiOverJtag_efinix_ti180j484.bit.gz
+share/openFPGALoader/spiOverJtag_efinix_ti375n484.bit.gz
+share/openFPGALoader/spiOverJtag_efinix_ti60f225.bit.gz
+share/openFPGALoader/spiOverJtag_ep4ce1017.rbf.gz
+share/openFPGALoader/spiOverJtag_ep4ce11523.rbf.gz
+share/openFPGALoader/spiOverJtag_ep4ce1523.rbf.gz
+share/openFPGALoader/spiOverJtag_ep4ce2217.rbf.gz
+share/openFPGALoader/spiOverJtag_ep4ce622.rbf.gz
+share/openFPGALoader/spiOverJtag_xc3s500evq100.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx100fgg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx150tcsg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx150tfgg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx16csg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx16ftg256.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx25csg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx25tcsg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx45csg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx45tfgg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx9csg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc6slx9tqg144.bit.gz
+share/openFPGALoader/spiOverJtag_xc6vlx130tff784.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a100t.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a100tcsg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a100tfgg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a100tftg256.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a12t.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a12tcpg238.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a12tcsg325.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a15t.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a15tcpg236.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a15tcsg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a15tcsg325.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a15tfgg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a15tftg256.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a200t.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a200tfbg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a200tfbg676.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a200tffg1156.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a200tsbg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a25t.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a25tcpg238.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a25tcsg325.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a35t.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a35tcpg236.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a35tcsg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a35tcsg325.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a35tfgg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a35tftg256.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a50t.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a50tcpg236.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a50tcsg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a50tcsg325.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a50tcsg325_1v35.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a50tfgg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a50tftg256.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a75t.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a75tcsg324.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a75tfgg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a75tfgg676.bit.gz
+share/openFPGALoader/spiOverJtag_xc7a75tftg256.bit.gz
+share/openFPGALoader/spiOverJtag_xc7k160tffg676.bit.gz
+share/openFPGALoader/spiOverJtag_xc7k325tfbg900.bit.gz
+share/openFPGALoader/spiOverJtag_xc7k325tffg676.bit.gz
+share/openFPGALoader/spiOverJtag_xc7k325tffg900.bit.gz
+share/openFPGALoader/spiOverJtag_xc7k420tffg901.bit.gz
+share/openFPGALoader/spiOverJtag_xc7k70tfbg484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7k70tfbg676.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s100.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s100fgga484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s100fgga676.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s15.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s15cpga196.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s15csga225.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s15ftgb196.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s25.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s25csga225.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s25csga324.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s25ftgb196.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s50.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s50csga324.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s50fgga484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s50ftgb196.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s6.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s6cpga196.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s6csga225.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s6ftgb196.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s75.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s75fgga484.bit.gz
+share/openFPGALoader/spiOverJtag_xc7s75fgga676.bit.gz
+share/openFPGALoader/spiOverJtag_xc7vx330tffg1157.bit.gz
+share/openFPGALoader/spiOverJtag_xcau10p-ffvb676.bit.gz
+share/openFPGALoader/spiOverJtag_xcau15p-ffvb676.bit.gz
+share/openFPGALoader/spiOverJtag_xcku040-ffva1156.bit.gz
+share/openFPGALoader/spiOverJtag_xcku060-ffva1156.bit.gz
+share/openFPGALoader/spiOverJtag_xcku3p-ffva676.bit.gz
+share/openFPGALoader/spiOverJtag_xcku3p-ffvb676.bit.gz
+share/openFPGALoader/spiOverJtag_xcku5p-ffvb676.bit.gz
+share/openFPGALoader/spiOverJtag_xcvu37p-fsvh2892.bit.gz
+share/openFPGALoader/spiOverJtag_xcvu9p-flga2104.bit.gz
diff --git a/cad/openfpgaloader/pkg/README b/cad/openfpgaloader/pkg/README
new file mode 100644
index 00000000000..188ef10aec4
--- /dev/null
+++ b/cad/openfpgaloader/pkg/README
@@ -0,0 +1,70 @@
++-------------------------------------------------------------------------------
+| Running ${PKGSTEM} on OpenBSD
++-------------------------------------------------------------------------------
+
+Note about uftdi(4)
+===================
+
+Up until OpenBSD 7.9, using some FPGA devices with openFPGALoader is sligthly
+problematic, resulting in error messages like this:
+
+ fail to read data usb bulk read failed
+ JTAG init failed with: low level FTDI init failed
+
+This happens because of the FPGA devices being incorrectly attached to the
+uftdi(4) module inside the kernel. There are two ways of preventing this:
+
+ 1. By deactivating uftdi(4) completely
+ 2. By patching uftdi(4), so that it does not recognize the USB device.
+
+In both cases, the ugen(4) module will be attached as a fallback.
+
+Deactivating uftdi(4) with bsd.re-config(5)
+-------------------------------------------
+The following commands
+
+ echo "disable uftdi" >>/etc/bsd.re-config
+ /usr/libexec/reorder_kernel
+ reboot
+
+are disabling the utfi(4) module and relinking the kernel. After the reboot,
+the device can be used.
+
+
+
+Deactivating uftdi(4) with config
+---------------------------------
+The following commands
+
+ config -e -f -o /bsd.nouftdi /bsd
+ ukc> disable uftdi*
+ ukc> quit
+ reboot
+
+Are disabling the module inside the kernel binary.
+
+
+Patching the kernel
+-------------------
+The most precise method is to patch the uftdi(4) module inside the kernel.
+The list of devices uftdi(4) attaches itself to is the array uftdi_devs[] in
+the file /usr/src/sys/dev/usb/uftdi.c.
+
+One single device can be deactived by commenting out the corresponding line:
+
+ { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SEMC_DSS20 },
+ //{ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232C },
+ { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232L },
+
+To find said line, the output of lsusb
+
+ Bus 001 Device 006: ID 0403:6010 Future Technology Devices International
+
+can be mapped to the constant defines in /usr/src/sys/dev/usb/usbdevs.h
+Afterwards, the kernel can be rebuild, as described in the OpenBSD FAQ5:
+
+ https://www.openbsd.org/faq/faq5.html#Options
+
+This method is recommend for FPGA projects where an additional USB to UART
+adapter is involved.
+
No comments:
Post a Comment