Subject: kern/6565: PCI NCR driver cannot work i/o mapped
To: None <email@example.com>
From: Jason R Thorpe <firstname.lastname@example.org>
Date: 12/11/1998 13:43:52
>Synopsis: PCI NCR driver cannot work i/o mapped
>Responsible: kern-bug-people (Kernel Bug People)
>Arrival-Date: Fri Dec 11 13:50:01 1998
>Originator: Jason R Thorpe
Numerical Aerospace Simulation Facility - NASA Ames
>Release: NetBSD 1.3I, Fri Dec 11 13:34:32 PST 1998
The PCI NCR driver's script directly modifies the chip's
registers. It does this by using the chip's DMA facility
and a "register" relocation in the script's linker.
The NCR chip cannot perform access to i/o space, and thus
cannot modify the chip's registers properly. This causes
the driver to fail. In addition, when it attempts to
write to the registers, it is using i/o space addresses,
and thus scribbing over random parts of memory.
This is fragile in other ways. It relies on the PCI devices
being mapped in such a way that access to a non-translated
PCI address by a PCI device will work. This may not be guaranteed
on all architectures.
Install an NCR controller in a system which only has i/o
mapped space available on the PCI bus, or force the NCR
driver to use i/o space by using the NCR_IOMAPPED option.
Watch the driver fail miserably.