kern/82901: ECP mode fails on NetMos ppc card - "PWord not supported"

David Taylor davidt-fbsd at yadt.co.uk
Sat Jul 2 19:10:13 GMT 2005


>Number:         82901
>Category:       kern
>Synopsis:       ECP mode fails on NetMos ppc card - "PWord not supported"
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jul 02 19:10:12 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     David Taylor
>Release:        FreeBSD 5.4-STABLE amd64
>Organization:
>Environment:
System: FreeBSD outcold.yadt.co.uk 5.4-STABLE FreeBSD 5.4-STABLE #0: Mon Jun 27 01:32:21 BST 2005 davidt at outcold.yadt.co.uk:/usr/obj/repo/FreeBSD/FreeBSD-5.x/src/sys/OUTCOLD amd64

Using NetMos PCI single IEEE1284 printer port card:

puc0: <NetMos NM9805 1284 Printer port>
   port 0xd000-0xd00f,0xd400-0xd407,0xd800-0xd807,
        0xdc00-0xdc07,0xe000-0xe007,0xe400-0xe407
   irq 19 at device 8.0 on pci0

>Description:

The new lpt device works correctly, but is extremely slow.

Attempting to enable ECP mode using "lptcontrol -e /dev/lpt0" succeeds,
giving a "lpt0: switched to polled extended mode" message.

However, attempting to print anything causes a (large) number of
"lpt0: advanced mode not avail, polling" error messages.

After trying a verbose boot I think the error is due to ppc_detect_fifo()
failing:

..
puc0: <NetMos NM9805 1284 Printer port> port 0xd000-0xd00f,0xd400-0xd407,0xd800-0xd807,0xdc00-0xdc07,0xe000-0xe007,0xe400-0xe407 irq 19 at device 8.0 on pci0
puc0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xe400
ppc0: using extended I/O port range
ppc0: EPP SPP
ppc_detect_fifo: PWord not supported
ppc0: <Parallel port> on puc0
ppc0: Generic chipset (ECP-only) in ECP mode
ppbus0: <Parallel port bus> on ppc0
ppbus0: IEEE1284 device found /NIBBLE/ECP/NIBBLE_ID/ECP_ID/Extensibility Link
Probing for PnP devices on ppbus0:
ppbus0: <HEWLETT-PACKARD DESKJET 610C> MLC,PCL,PML
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
..

This is presumably due to the following XXX comment in ppc_detect_fifo.

        /* XXX 16 and 32 bits implementations not supported */
        if (ppc->ppc_pword != PPC_PWORD_8) {
                LOG_PPC(__func__, ppc, "PWord not supported");
                goto error;
        }

>How-To-Repeat:

1. Install an ECP ppc which exibits the problem (e.g. NetMos NM9805)
2. Turn on extended mode (lptcontrol -e /dev/lptX)
3. Print something
4. Observe lack of working ECP mode

>Fix:

Unknown.  

Additional information on NetMos NM9805 card is available from the
MosChip (who now own NetMos) website: 

http://www.moschip.com/htmls/download_matrix1.htm

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list