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)"); --
