[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: PCI-ISA bridges and ISAPNP

> > Regarding PCI on Wintel PCs:-
> >
> > To place ISAPNP cards into configuration mode, the OS writes a stream of
> > bytes to I/O port 279h.
> > Therefore the PCI-ISA bridge must respond to that location,
> even though it's
> > a write-only port for ISAPNP.
> >
> > However I expect the resource should really be available for
> devices since
> > no 'real' device is present at 279h.
> >
> > Does having ISAPNP therefore preclude the use of I/O location
> 279 for PCI
> > devices? This gives us a problem since legacy software expects parallel
> > ports to sit at 278h (and 378h is usually taken by the port on the
> > mainboard).
> The whole point of taking over "write to port 0x279" (and its alias
> 0xA79) was that the PnP spec could be pretty certain no one would
> have implemented a write port there, since it's a readonly port for
> real parallel devices, and no one in their right mind would be using
> it for anything but a parallel device.
> So, yes, while it's used by the PnP initialization, it's used only
> for write, and it's legal for it to be used for read by a parallel-port
> device and driver.
> > Our device doesn't work at 278, and the logic analyser trace
> > shows a bus contention!
> Is your device not a parallel port?  See paragraph 1 about "right mind"...
> Best to stay away from that port altogether unless you're making a bog-
> standard compatible parallel port device.

Dan (and others!)

Our device is a parallel port, bog standard and all. That means I have to
place it at location 278h or 378h in Win9x for it to work with all software
on the market.

However, it seems that the PCI bridge responds to address 279h for writes
and reads (on some mainboards), which obviously causes a conflict.
Since PCI tends not to have two devices at the same location, one responding
to reads and one responding to writes, does this basically mean that I can't
use location 279h?

Any suggestions for getting round this? I'm squeezed in between a rock and a
hard place, because drivers for parallel port disk drives etc. generally
require the port to be located at 278 or 378, the mainboard port is usually
found at 378, and I'm beginning to suspect I can't use 278. Oh, and our
customers don't accept that their end users should have to move the
mainboard port in the BIOS settings....

Any help appreciated.