[Linux-parport] OxPCIe952 EPP

Matwey V. Kornilov matwey.kornilov at gmail.com
Sun Dec 14 06:09:00 PST 2014


I've faced strange behavior of OXPCIE952 when EPP is used. The following
PCIe board is equipped with this chipset.

00:08.0 Parallel controller [0701]: Oxford Semiconductor Ltd Device
[1415:c110] (prog-if 02 [ECP])

Namely, I can not read in reverse mode. The interruptions at incoming
data happen, but when I try to read the data, EPP timeout always occurs.

Reverse mode is set up as the following (see
parport_pc_ecpepp_read_data() for the reference):

ECR control (base_hi+2) register is filled with the 0b100 in highest
three bits, and it is 0x81 after this,
EPP control (base+2) register is ORed by 0x20 and then is filled with
0bXXXX0100 to reset (it my case it becomes 0x34 after this).

EPP status (base+1) register is 0xce inside interrupt handler and
becomes 0xcf (EPP timeout flag is set) after the first attempt to read
from EPP data (base+4).

EPP works with the same code and peripheral at motherboard integrated
chipsets. Does anybody have ideas what is going on here?

More information about the Linux-parport mailing list