2
3
4
5 NAME
6 ecpp - IEEE 1284 compliant parallel port driver
7
8 SYNOPSIS
9 #include <sys/types.h>
10
11
12 #include <sys/ecppio.h>
13
14
15 ecpp@unit-address
16
17
18 DESCRIPTION
19 The ecpp driver provides a bi-directional interface to IEEE 1284
20 compliant devices as well as a forward single-directional interface to
21 Centronics devices. In addition to the Centronics protocol, the ecpp
22 driver supports the IEEE 1284Compatibility, Nibble, and ECP protocols.
23 ECPP_COMPAT_MODE and ECPP_CENTRONICS modes of operation have logically
24 identical handshaking protocols, however devices that support
25 ECPP_COMPAT_MODE are IEEE 1284 compliant devices. IEEE 1284 compliant
26 devices support at least ECPP_COMPAT_MODE and ECPP_NIBBLE_MODE.
27 Centronics devices support only ECPP_CENTRONICS mode.
28
29
30 By default, ECPP_COMPAT_MODE devices have a strobe handshaking pulse
31 width of 500ns. For this mode, forward data transfers are conducted by
32 DMA. By default, the strobe pulse width for ECPP_CENTRONICS devices is
33 two microseconds. Forward transfers for these devices are managed
34 through PIO. The default characteristics for both ECPP_COMPAT_MODE and
35 ECPP_CENTRONICS devices may be changed through tunable variables
36 defined in ecpp.conf.
37
38
39 The ecpp driver is an exclusive-use device, meaning that if the device
40 is already open, subsequent opens fail with EBUSY.
41
42 Default Operation
209 Centronics status signals. If the current mode of
210 the device is ECPP_NIBBLE_MODE, the driver
211 negotiates the link into ECPP_COMPAT_MODE, check
212 the status signals and then return the link to
213 ECPP_NIBBLE_MODE mode. If the current mode is
214 ECPP_CENTRONICS or ECPP_COMPAT_MODE, TESTIO
215 examines the Centronics status signals in the
216 current mode. To receive data, the device must have
217 the nErr and Select signals asserted and must not
218 have the PE and Busy signals asserted. If ecpp is
219 transferring data, TESTIO waits until the previous
220 data sent to the driver is delivered before
221 executing TESTIO. However if an error condition
222 occurs while a TESTIO is waiting, TESTIO returns
223 immediately. If TESTIO determines that the
224 conditions are ok, 0 is returned. Otherwise, -1 is
225 returned, errno is set to EIO and the state of the
226 status pins is captured. The captured status can be
227 retrieved using the BPPIOC_GETERR ioctl(2) call.
228 The timeout_occurred and bus_error fields will
229 never be set by this ioctl(2). BPPIOC_TESTIO and
230 BPPIOC_GETERR are compatible to the ioctls
231 specified in bpp(7D).
232
233
234 BPPIOC_GETERR
235 Get last error status. The argument is a pointer to
236 a struct bpp_error_status defined in <sys/bpp_io.h>
237 header file. The error status structure is:
238
239 struct bpp_error_status {
240 char timeout_occurred; /* 1=timeout */
241 char bus_error; /* not used */
242 uchar_t pin_status; /* status of pins which
243 /* could cause error */
244 };
245
246 The pin_status field indicates possible error
247 conditions. The valid bits for pin_status are:
248 BPP_ERR_ERR, BPP_SLCT_ERR, BPP_PE_ERR,
249 BPP_BUSY_ERR. A set bit indicates that the
250 associated pin is asserted.
251
374
375
376 ATTRIBUTES
377 See attributes(5) for descriptions of the following attributes:
378
379
380
381
382 +--------------------+-------------------------+
383 | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
384 +--------------------+-------------------------+
385 |Architecture | PCI-based systems |
386 +--------------------+-------------------------+
387 | | ISA-based systems (x86) |
388 +--------------------+-------------------------+
389 |Interface stability | Evolving |
390 +--------------------+-------------------------+
391
392 SEE ALSO
393 modload(1M), modunload(1M), update_drv(1M), ioctl(2), open(2), read(2),
394 write(2), attributes(5), bpp(7D), usbprn(7D), prnio(7I), streamio(7I)
395
396
397 IEEE Std 1284-1994
398
399 DIAGNOSTICS
400 Parallel port controller not supported
401
402 Driver does not support parallel port controller on the given host.
403 Attach failed.
404
405
406
407
408 January 10, 2020 ECPP(7D)
|
2
3
4
5 NAME
6 ecpp - IEEE 1284 compliant parallel port driver
7
8 SYNOPSIS
9 #include <sys/types.h>
10
11
12 #include <sys/ecppio.h>
13
14
15 ecpp@unit-address
16
17
18 DESCRIPTION
19 The ecpp driver provides a bi-directional interface to IEEE 1284
20 compliant devices as well as a forward single-directional interface to
21 Centronics devices. In addition to the Centronics protocol, the ecpp
22 driver supports the IEEE 1284 Compatibility, Nibble, and ECP protocols.
23 ECPP_COMPAT_MODE and ECPP_CENTRONICS modes of operation have logically
24 identical handshaking protocols, however devices that support
25 ECPP_COMPAT_MODE are IEEE 1284 compliant devices. IEEE 1284 compliant
26 devices support at least ECPP_COMPAT_MODE and ECPP_NIBBLE_MODE.
27 Centronics devices support only ECPP_CENTRONICS mode.
28
29
30 By default, ECPP_COMPAT_MODE devices have a strobe handshaking pulse
31 width of 500ns. For this mode, forward data transfers are conducted by
32 DMA. By default, the strobe pulse width for ECPP_CENTRONICS devices is
33 two microseconds. Forward transfers for these devices are managed
34 through PIO. The default characteristics for both ECPP_COMPAT_MODE and
35 ECPP_CENTRONICS devices may be changed through tunable variables
36 defined in ecpp.conf.
37
38
39 The ecpp driver is an exclusive-use device, meaning that if the device
40 is already open, subsequent opens fail with EBUSY.
41
42 Default Operation
209 Centronics status signals. If the current mode of
210 the device is ECPP_NIBBLE_MODE, the driver
211 negotiates the link into ECPP_COMPAT_MODE, check
212 the status signals and then return the link to
213 ECPP_NIBBLE_MODE mode. If the current mode is
214 ECPP_CENTRONICS or ECPP_COMPAT_MODE, TESTIO
215 examines the Centronics status signals in the
216 current mode. To receive data, the device must have
217 the nErr and Select signals asserted and must not
218 have the PE and Busy signals asserted. If ecpp is
219 transferring data, TESTIO waits until the previous
220 data sent to the driver is delivered before
221 executing TESTIO. However if an error condition
222 occurs while a TESTIO is waiting, TESTIO returns
223 immediately. If TESTIO determines that the
224 conditions are ok, 0 is returned. Otherwise, -1 is
225 returned, errno is set to EIO and the state of the
226 status pins is captured. The captured status can be
227 retrieved using the BPPIOC_GETERR ioctl(2) call.
228 The timeout_occurred and bus_error fields will
229 never be set by this ioctl(2).
230
231
232 BPPIOC_GETERR
233 Get last error status. The argument is a pointer to
234 a struct bpp_error_status defined in <sys/bpp_io.h>
235 header file. The error status structure is:
236
237 struct bpp_error_status {
238 char timeout_occurred; /* 1=timeout */
239 char bus_error; /* not used */
240 uchar_t pin_status; /* status of pins which
241 /* could cause error */
242 };
243
244 The pin_status field indicates possible error
245 conditions. The valid bits for pin_status are:
246 BPP_ERR_ERR, BPP_SLCT_ERR, BPP_PE_ERR,
247 BPP_BUSY_ERR. A set bit indicates that the
248 associated pin is asserted.
249
372
373
374 ATTRIBUTES
375 See attributes(5) for descriptions of the following attributes:
376
377
378
379
380 +--------------------+-------------------------+
381 | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
382 +--------------------+-------------------------+
383 |Architecture | PCI-based systems |
384 +--------------------+-------------------------+
385 | | ISA-based systems (x86) |
386 +--------------------+-------------------------+
387 |Interface stability | Evolving |
388 +--------------------+-------------------------+
389
390 SEE ALSO
391 modload(1M), modunload(1M), update_drv(1M), ioctl(2), open(2), read(2),
392 write(2), attributes(5), usbprn(7D), prnio(7I), streamio(7I)
393
394
395 IEEE Std 1284-1994
396
397 DIAGNOSTICS
398 Parallel port controller not supported
399
400 Driver does not support parallel port controller on the given host.
401 Attach failed.
402
403
404
405 May 17, 2020 ECPP(7D)
|