Subject: Re: Pegasos port status
To: None <firstname.lastname@example.org, email@example.com,>
From: Jochen Kunz <firstname.lastname@example.org>
Date: 07/18/2006 01:50:22
On Mon, 17 Jul 2006 21:22:35 +0200
Jorge Acereda Maci=E1 <email@example.com> wrote:
> OFW also provides interrupt handling.
How? AFAIK OFW provides interrupt mapping information via the properties
of device nodes. But there is no generic interrupt interface. (E.g. OFW
calls OS back if a device has signaled an interrupt or the like.) That
is why port ofppc runs so slow. All OFW device drivers use polling.
What I did in my work for port ofppc is a generic bus_space(9)
interface for PCI and ISA. Bus mappings are parameterised by the ranges
properties. Access to PCI configuration space is done by calls to OFW
methods. So in theory this bus_space(9) will work on any generic OFW
machine that provides correct device properties and OFW methods. (To my
experience the Motorola PowerStack II provides wrong ranges properties
and I needed to add a quirk to my code...) That way NetBSD can use the
MI PCI drivers including interrupts on a generic OFW machine. The
interrupt code is missing at the moment, but autoconf(9) can iterate
over the device tree and attach MI PCI / ISA device drivers.