This is an automated email from Gerrit.

"zapb <[email protected]>" just uploaded a new patch set to Gerrit, which you can 
find at https://review.openocd.org/c/openocd/+/9151

-- gerrit

commit b8914d0f4a1ad3b69d659558e4234d009b3c18a6
Author: Marc Schink <[email protected]>
Date:   Sun Aug 17 14:11:39 2025 +0000

    adapter/parport: Deprecate direct I/O support
    
    We deprecate direct I/O support in favor of ppdev for the following
    reasons:
    
      - Linux supports ppdev since ~2.4 (released ~24 years ago) and it is
        enabled by default on major distros (Ubuntu, Fedora). So it is
        effectively ubiquitous
      - FreeBSD provides no direct I/O support, so ppdev (ppi) is the only
        viable option
      - Direct I/O requires root/elevated privileges which is inadvisable
      - Removing direct I/O reduces build and driver complexity and yields
        a smaller, easier-to-maintain codebase
      - Supporting only ppdev allows us to simplify the codebase by using
        device files (e.g., /dev/parport0) instead of numeric identifiers
    
    Windows is the only rationale to keep direct I/O, but the user base
    appears minimal to nonexistent and no active contributors can test the
    Windows driver.
    
    Change-Id: Ia6d5ed6e8c5faa2a9b4919ca97c5cf9033372a64
    Signed-off-by: Marc Schink <[email protected]>

diff --git a/configure.ac b/configure.ac
index ed26d45e12..400463c3d8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -356,7 +356,7 @@ AC_ARG_ENABLE([parport_ppdev],
 
 AC_ARG_ENABLE([parport_giveio],
     AS_HELP_STRING([--enable-parport-giveio],
-      [Enable use of giveio for parport (for CygWin only)]),
+      [Enable use of giveio for parport (deprecated, for CygWin only)]),
     [parport_use_giveio=$enableval], [parport_use_giveio=])
 
 AC_ARG_ENABLE([gw16012],
@@ -825,6 +825,12 @@ AS_IF([test "x$build_gw16012" = "xyes"], [
   AC_MSG_WARN([Gateworks GW16012 JTAG adapter is deprecated and support will 
be removed in the next release!])
 ])
 
+AS_IF([test "x$parport_use_giveio" = "xyes" || test [ "x$enable_parport" != 
"xno" -a "x$parport_use_ppdev" = "xno"]], [
+  echo
+  echo
+  AC_MSG_WARN([Parallel port access with direct I/O is deprecated and support 
will be removed in the next release!])
+])
+
 echo
 echo
 echo OpenOCD configuration summary
diff --git a/doc/openocd.texi b/doc/openocd.texi
index 7f7c8892fe..e5cd907942 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -3233,6 +3233,8 @@ The default port number is 0.
 
 When using direct I/O, the number is the I/O port number.
 The default port number is 0x378 (LTP1).
+
+@b{Note:} Direct I/O support is deprecated and will be removed in the future.
 @end deffn
 
 @deffn {Config Command} {parport write_on_exit} (@option{on}|@option{off})
diff --git a/src/jtag/drivers/parport.c b/src/jtag/drivers/parport.c
index 09e312ec28..b29562b840 100644
--- a/src/jtag/drivers/parport.c
+++ b/src/jtag/drivers/parport.c
@@ -341,6 +341,8 @@ static int parport_init(void)
 #endif /* not __FreeBSD__, __FreeBSD_kernel__ */
 
 #else /* not PARPORT_USE_PPDEV */
+       LOG_WARNING("DEPRECATED: Parallel port access with direct I/O is 
deprecated and support will be removed in the next release");
+
        if (!parport_port) {
                parport_port = 0x378;
                LOG_WARNING("No parallel port specified, using default 0x378 
(LPT1)");

-- 

Reply via email to