Subject: Re: S900/E100 progress (well, sort of)
To: None <port-macppc@NetBSD.org>
From: Jeff Walther <trag@io.com>
List: port-macppc
Date: 07/14/2004 17:45:08
At 12:37 -0400 07/14/2004, Michael wrote:
>after getting ohci and yds to work I had a closer look at the ethernet part
> of the E100 card - sort of a (probably weird) DEC 21140, so far no
> operating system besides MacOS could make any use of it, NetBSD and
> Linux both claim that they can't map the card's registers.
>So, the reason is probably that OpenFirmware doesn't see the card -
> there's no /bandit/pci1011,9 in the device tree, so the PCI config registers
> contain random data when the tlp driver tries to attach and memory
> (probably) isn't enabled anyway, so mapping fails. The fixpci() routine in
> pci/pci_machdep() digs only through the OF tree so it doesn't see the
> card either.
>
>A solution could be something like this:
>- configure the PCI stuff in the tlp driver, maybe hardwire it to some 'safe'
> values for the time being - shouldn't impact anything else since the E100
> fits only in one slot so the ethernet controller will always be on PCI
> 0:11:0
I am not an OS programmer by any stretch of the imagination, but I am
a bit of a hardware guy. I mention this to excuse the communication
gaps we may have here (and the flat out mistakes I may make). I
will appreciate corrections to any glaring (or glinting) errors I
make.
Anyway, in one piece of Apple documention, perhaps in the Hardware
Developer's Notes for the x500 family, there is mention of a sort of
phantom PCI slot called the E100 which is there to support some
legacy network stuff. Ah, here it is from the Hardware Developer
Notes for the 9500, "PPC_9500.pdf":
"To maintain compatibility with some networking software, the Power
Macintosh 9500 computers have a declaration ROM for slot 0. This
declaration ROM does not contain any drivers or other data. It is
intended as an interim solution and is not to be used by new
programs."
I should mention here that the ROM in the 9500 is the same as in the
7500, 8500, S900, J700, PTP and the PowerWave.
It appears that Umax made use of this "phantom slot" and even gave
the card its name.
Here is my guess as to what Umax did, and I hope it is helpful. The
x500/PowerSurge architecture has support for up to six PCI slots.
This includes six hardware interrupts available on the pins of Grand
Central (343S1125) and support in firmware for the PCI slots A1, B1,
C1, D2, E2 and F2.
However, Bandit and its associated PCI arbiter hardware can actually
support something like six PCI devices on a single Bandit. This a
limitation of the arbiter. Bandit could probably support up to 16
PCI slots in theory (bus signal strength couldn't manage it). But
if you just wired in another PCI slot, it wouldn't do you any good
because the firmware doesn't know its supposed to be there. I may
be wrong there.
Anyway, so it appears that Umax put five PCI devices on the single
Bandit in the S900. There's Grand Central, the top two PCI slots,
the PCI-PCI bridge, and then support for the ethernet portion of the
E100 card. I would guess that they grabbed one of the three
available hardware interrupts on Grand Central and routed it to the
PCI extender on slot A. And they probably grabbed one of the
available PCI arbitration wire sets available on the PCI arbiter
(343S0182) and routed that to the PCI extender as well. The
ethernet chip can get the normal shared bus signals through the
regular PCI connector of slot A, but it needs the extender to get its
own interrupt and the arbiter signals.
That takes care of the hardware, and as I mentioned in my previous
message, I never actually tracked out the connections to confirm this
theory (the UW half of the card became unattractively outdated).
But Umax would still have needed a slot assignment in firmware for
the card, I think. This is where the boundary of my knowledge lies.
My hazy understanding is that they were somehow able to grab this
E100 artifact that is built into the firmware of these machines, to
use as the slot designation for the ethernet component of the card.
Oh and going back a couple more messages, the four slots behind the
PCI-PCI Bridge all share the interrupt which would normally go to
slot C1. So the interrupts for D2, E2 and F2 are available (as
they would be on any three slot machine) and I suspect that it is one
of those that was used for the E100 card.
Although, I wonder if the 7500/8500 uses any of the lower slot
interrupts for the video circuitry or if they use different
interrupts.
Jeff Walther