Subject: Re: CVS commit: syssrc
To: Ben Harris <bjh21@netbsd.org>
From: Chris G. Demetriou <cgd@sibyte.com>
List: tech-kern
Date: 10/16/2000 09:07:59
bjh21@netbsd.org (Ben Harris) writes:

> On 15 Oct 2000, Chris G. Demetriou wrote:
> 
> > I disagree with the notion of a directory for every single chip of the
> > PC super-io variety, or even this one unless there's some overriding
> > reason -- i'm coming into this thread late, and this was the first
> > message I saw about it.
> > 
> > If it's a PC super-io chip, what's wrong with just attaching an 'ISA'
> > to it?
> 
> Its a possibility, though there are a few things I don't like about the
> prospect:
> 
>  - At the moment, the upc driver reads the chip's configuration registers,
>    and uses the results to locate the child devices.  Is this sensibly
>    possible with an isa attachment?  If not, we have to fall back to
>    probing for each device, which is grotty.

hence my comment about doing a direct-config variant of ISA, which is
what you want if you don't want each device to probe.


>  - The UPC has the ability to power sections of the chip up and down,
>    which should be used to eg turn off the serial ports when they're not
>    in use.  While there's no code to handle this at present, I can imagine
>    that it would get even harder to add with an isa interface in the way.

yeah, so, throw some hooks into the chipset structure and off you go.


>  - Devices attached at isa are expected to call bus_space_map themselves,
>    which means the relevant bus_space_tag_t has to contain enough
>    information to locate the UPC in the system's I/O space.  This is
>    probably only a problem if you use a very simple bus_space
>    implementation, though.

I don't think i understand the issue you're facing.  do you have a
non-flat I/O space, or what?

if it's effectively flat, you could go the route where the I/O
addresses are large numbers, rather than small numbers.  8-)


> > that's what some ports do, unless i'm mistaken.
> 
> Which ones?  I'd like to see how it works in practice.

actually, i may be mistaken in that regard, and don't have time to
look very carefully right now.

the alpha jensen i/o invents its own pseudo-bus and attaches
direct-config stuff on its super-io there.  (not sure that i agree
that that's the Right Way, but whatever; i didn't write that code.)

shark gets its from ofw nodes / ofisa.

i dunno about others off-hand -- and had to check to see how the
jensen did it.


ofisa is kind-of something similar, but the method of configuration
would be different.  (instead of walking tree, chip provides a table
of hardware that's there.)


cgd