Subject: Re: Nubus 101
To: Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>
From: Michael R. Zucca <mrz5149@acm.org>
List: port-mac68k
Date: 06/26/2000 01:15:59
At 5:38 PM -0400 6/25/00, Hauke Fath wrote:

>How come only the video adapter shows up during autoconfiguration?

I think we just go with the first sResource for the card that looks like
the main one.

>Why do we check for video card IDs but check vendor IDs for ethernet cards?

Old practice? There's probably no reason. Just that's how it was done.

>Why does the DuoDock's ethernet adapter not show up?

I think it's one card = one device right now. We find the first good
sResource and then pass that info onto the first appropriate driver. So if
we find the video card first, that gets passed on and we're done.

>Why don't I see the Dock itself probed?

Dunno. What does the sResource look like?

>Are we able to handle "multi function cards"? Or do we take the first
>device only from any Nubus slot?

I think the dock is going to require special handling and I think it's
going to require that the drivers in question use bus-spaces correctly and
not assume they have the whole slot available to them.

I think if somebody patches up the NuBus code to scan for multiple devices
and pass on the right bus-space info to the drivers, I'll bet it could be
made to work in a relatively straight forward way.

>What about the interrupts? Scanning through the MiniDock MacOS video
>driver, it looks like it does not even install an interrupt handler. (If
>anybody feels he could lend me a hand with disabling video interrupts for
>the docks, please drop me a note. I have worked from Allen's notes, but
>it's not that easy.)

I wonder what the interrupt handling on such a multi-function device would
be like. After all, I think there's only one interrupt per slot unless the
Duos do something special. If it's a one-interrupt model then they probably
figured the video retrace interrupt wasn't worth the bother or the overhead
when the same interrupt was necessary to service the ethernet and any other
cards on the dock. I'll bet the palette reloading code polls a register in
the Jet controller rather than waiting for a video interrupt to occur. Try
disassembling the palette code and see if you can find a little loop like
that. If that's the case, there's probably no video interrupt.

Hope this helps!

____________________________________________________________________
 Michael Zucca - mrz5149@acm.org - http://www.mdc.net/~mrz5149/
 "I will choose a path that's clear. I will choose Freewill. "
  --Rush, Freewill
____________________________________________________________________