Subject: Re: Nubus video cards
To: Kazuyuki Inanaga <happyday@pp.iij4u.or.jp>
From: Michael R. Zucca <mrz5149@acm.org>
List: port-mac68k
Date: 12/16/2006 10:46:33
On Dec 14, 2006, at 11:18 AM, Kazuyuki Inanaga wrote:
> 0004 0001 00FF FFD4 Need more?
> (MAC address is printed as 0000C54B11F4 on this card.
> Honestly, I almost don't understand what I'm doing..)
Ok, so maybe this isn't the best job for you :) However, I'll
describe what needs to happen just in case you feeling adventurous.
You'll need Macsbug to search the card's address space. There is a
help feature which is good in Macsbug. As I recall, Macsbug uses $
instead of 0x as a prefix to indicate hexidecimal numbers.
Not sure what the SResource is telling you. Maybe this is the offset
in the NuBus address space of the chip? That would be very
convenient. Take a look at the card's address space at that offset
and see if there's anything of interest there. Look at the driver and
see what the offset of the MAC address is. If it's at <card base> +
4000100FFFFD4 + <offset of MAC address register> then that is the
offset! Though, we're probably not that lucky :)
If the MAC address is 0000C54B11F4 then you could search the address
space of the card for this pattern or its little endian equivalent
(does this chip store this stuff in LE?). Once you know this, you
would look at the NetBSD driver for this chip and see where in the
chip's register map the MAC address lives. Then you would subtract
that offset from the address you found, and that should be the base
address of the chip in slot space. Then you'd mask off the top bits
of the address since that's the slot's offset in physical address
space. That would give you the offset of the chip when the card is in
any slot. This is the value that you need for the driver.
One problem, however, might be that the MAC address isn't stored in a
register. On some cards, the MAC address might be stored in some
EEPROM that gets accessed by poking at some registers. So you may not
find the MAC address at all.
Another way to find the offset might be to look for other patterns
that might be likely in the card's address space other than the MAC
address. You'll have to look at the NetBSD driver for these.
Finally, another way to look for the base address is to just look for
any non-regular patterns in the card's address space. Many cards
don't show anything of interest in the card's address space except
ROMs and whatever on-board chips exist. So you'll see some bit
pattern like 0x0 or 0xFF for thousands and thousands of addresses and
then, suddenly, you'll see something different. However, some cards
alias the chip across the slot address space. So the Mac address may
show up many, many times. Any one of them should be fine for use.
Though, it might be hard to figure out where the chip's address space
actually starts.
If you can't do all this, don't worry about it. There may be other
folks with this card out there with the requisite technical knowledge
to do it... or you may have to wait for a long time for somebody like
that to show up :)
--
----------------------------------------------
Michael Zucca - mrz5149@acm.org
----------------------------------------------
"I'm too old to use Emacs." -- Rod MacDonald
----------------------------------------------