Subject: re: kern/13797: hme driver does not compile on i386
To: None <gnats-bugs@gnats.netbsd.org, tech-kern@netbsd.org>
From: matthew green <mrg@eterna.com.au>
List: tech-kern
Date: 12/23/2002 11:45:34
> >Description:
> If you try to include the hme driver in a i386 (and others, I
> presume) kernel it fails. The reason is that if_hme_pci.c
> refers to the function myetheraddr() which seems to be SUN
> specific.
I recently got a PCI HME device (SunSwift) and trying to use it.
The PCI HME device is an Sun PCIO chip, which contains two PCI functions.
Reference: http://www.sun.com/processors/manuals/802-7837.pdf
PCI bus --+- (function 0) EBus bridge - ROM
+- (function 1) HME
The EBus Boot PROM has FCode ROM, and has an Etheret address in it.
The HME device has ROM area, but it doesn't have any data (all 0xff).
I have make it works on Alpha by following changes.
I know this is kludgy. It steals the Ethernet address
by looking at different device (EBus bridge) in HME match function,
and passes it via static variables.
Is this fix OK? Do you have better fix?
wow.
thanks for writing the code to do this. do you think you could
rework it so that in the hme attach routine pci_find_device() is
called ala pciide trying to find the isa controller for broken
VIA chipsets?
thanks again.
.mrg.