[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 : 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