On Tue, Jun 20, 2000 at 01:21:10PM +0200, Geert Uytterhoeven wrote:
>1. ISA I/O space is memory mapped on many platforms (e.g. PPC and MIPS). To
> access it from user space, you cannot plainly use inb() and friends like on
> PC, but you have to mmap() the correct region of /dev/mem first. This
> region depends on the machine type and currently there's no simple way to
> find out from user space.
You may wish to examine the pciconfig_iobase syscall used on Alpha.
It can be used to solve the multiple independant pci bus problem
as well as the ISA base address problem.
>2. ISA memory is not located at physical address 0 on many platforms (e.g. PPC
> and some MIPS boxes). This means you cannot e.g. use
> request_mem_region(0xa0000, 65536) to request the legacy VGA region.
This can be fiddled. Basicly, you pretend that 0 is the base address,
then use ioremap to shift everything up into place. This assumes that
the ISA bus is contained within exactly one PCI hose.