Subject: Re: SmartFirmware interrupts
To: Frank Wille <frank@phoenix.owl.de>
From: Tim Rightnour <root@garbled.net>
List: port-ofppc
Date: 10/18/2007 16:50:22
On 18-Oct-2007 Frank Wille wrote:
> Usually the first 8259 PIC is at I/O address 0x20 and the second at 0xa0. But
> the I/O space of the first pci-node is e.g. mapped at 0xfe000000 on the Peg2.

I haven't gotten this far in the IO stuff on the Pegasos yet, but the IO stuff
on ppc is generally different than you would find on a real PC.

Prep is a simpler example of this.  You have isa @ 0x80000000.  So, if you want
to talk to a com port, its 0x800002f8.

Basically, for things on the isa bus, you use an offset of where the IO space
is.

On most standard CHRP machines, there is a node for the interrupt controller. 
It would seem that on the Pegasos, the i8259 is implied.  Most machines built
in the last 10-20 years don't use real 8259's, they use a big superio chip that
emulates one.

What this all boils down to, is that because they don't tell us what is really
going on in this machine, we have to hardcode a bunch of stuff to say if we are
on a pegasos do this or that.  Apparently it has an 8259, so we just apply the
isa offset to the standard 8259 io offset and ping it.

Of course, they did something rather odd with the isa too, they appear to just
emulate an isa bus, which I don't really understand, and there is no isa IO/MEM
map on the Pegasos II.  Apparently it's all just PCI space, so thats what I'm
trying to deal with now (in a way that won't break other machines).  Shouldn't
be too hard though, it will just take me some time to work it all out.

---
Tim Rightnour <root@garbled.net>
NetBSD: Free multi-architecture OS http://www.netbsd.org/
Genecys: Open Source 3D MMORPG: http://www.genecys.org/