[PARPORT] Advice needed - trying to hack parport_pc.c for ITE887X ECP support

From: Duncan Haldane (f.duncan.m.haldane@worldnet.att.net)
Date: Mon Feb 03 2003 - 22:21:51 EST

  • Next message: rks0028@eaglemail.unt.edu: "[PARPORT] How do i install backpack CD-RW on linux"


    I'm trying to hack parport_pc.c to give the ITE887X sio chip ECP support.
    (It has kernel support for EPP mode contributed by Rich Liu but he is no longer
    working at ITE, and can't help any more). The support is in

    I have a PCI card with the ITE8875F (single parport) chip. The chip Data sheet
    is available, and shows how to activate ECP mode setting a certain bit high.
    Its a PIO chip, with no dma support.

    When this is done, I can read and write to the ecr register. Initially
    ecr bit 2 (ServiceIntr) is high (1), but when parport_pc_probe_port() is called,
    it gets sets low (1), initially in the Intel bug test in
    parport_EPP_supported(), -> the the system crashes.

    I determined that whenever ECP is activated, and the ServiceIntr ecr bit is then
    set to 0, the system hangs. If anyone on the list knows ECP, and can suggest
    where I should be looking to solve this puzzle, please give me some suggestion!
    Obviously this is why Rich Liu left ECP mode unsupported...

    I'm guessing that some further initialization might be needed. The irq
    and base_lo, base_hi addresses are obtained from the chip. The irq = 5
    (shared with a RealTek ethernet controller. )
    The base_lo and base_hi addresses are a little strange, 0x2000 and 0x1c00
    respectively (IO regions 3 and 4). They are also read from the chip.
    (see the lspci output below)

    Any suggestions anyone?


    lspci -vv reports:

    0:0e.0 Serial controller: Integrated Technology Express, Inc.: Unknown device
    8872 (rev 01) (pr
    og-if 02 [16550])
            Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
    Stepping- SERR- Fast
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
    <TAbort- <MAbort- >SERR
    - <PERR-
            Interrupt: pin A routed to IRQ 5
            Region 0: I/O ports at 2c00 [size=256]
            Region 1: I/O ports at 2800 [size=256]
            Region 2: I/O ports at 2400 [size=256]
            Region 3: I/O ports at 2000 [size=256]
            Region 4: I/O ports at 1c00 [size=256]
            Region 5: I/O ports at 1800 [size=256]

    00:12.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
    RTL-8139/8139C/8139C+ (rev 10)
            Subsystem: Asustek Computer, Inc.: Unknown device 802f
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
    Stepping- SERR- FasB2B-
            Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
    <TAbort- <MAbort- >SER- <PERR-
            Latency: 32 (8000ns min, 16000ns max)
            Interrupt: pin A routed to IRQ 5
            Region 0: I/O ports at 3000 [size=256]
            Region 1: Memory at f4000400 (32-bit, non-prefetchable) [size=256]
            Capabilities: <available only to root>

    E-Mail: Duncan Haldane <f.duncan.m.haldane@worldnet.att.net>
    Date: 03-Feb-2003
    Time: 21:36:24

    This message was sent by XFMail

    -- To unsubscribe, send mail to: linux-parport-request@torque.net --
    -- with the single word "unsubscribe" in the body of the message. --

    This archive was generated by hypermail 2b29 : Mon Feb 03 2003 - 22:26:00 EST