linux-mips
[Top] [All Lists]

Re: Proposal: non-PC ISA bus support

To: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Subject: Re: Proposal: non-PC ISA bus support
From: Richard Henderson <rth@twiddle.net>
Date: Wed, 21 Jun 2000 16:57:44 -0700
Cc: Linux kernel <linux-kernel@vger.rutgers.edu>, Linux/PPC Development <linuxppc-dev@lists.linuxppc.org>, Linux/MIPS Development <linux@cthulhu.engr.sgi.com>
In-reply-to: <Pine.GSO.4.10.10006201254290.8592-100000@dandelion.sonytel.be>
References: <Pine.GSO.4.10.10006201254290.8592-100000@dandelion.sonytel.be>
Sender: owner-linux-mips@oss.sgi.com
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.


r~

<Prev in Thread] Current Thread [Next in Thread>