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
----------------------------------------------