On Sun, Nov 04, 2007 at 01:49:58PM -0800, David Miller wrote: > From: Grant Grundler <grundler@xxxxxxxxxxxxxxxx> > Date: Sun, 4 Nov 2007 12:02:30 -0700 > > > http://bugzilla.kernel.org/show_bug.cgi?id=9106 > > > > I have two possible reasons why dmfe driver is reading zeros from the seprom for the MAC address. > > 1) IO port space routing is fu-bar - ie we are only able to talk to the chip's config space. > > 2) outl() is implemented as a postable MMIO write (semantics demand outl be non-postable). > > The SROM reads aren't failing, think out of the box, the more likely > problem is: > > 3) Sun doesn't initialize the SROM for the onboard network devices. > You have to obtain the MAC address and other settings by fetching > them from the openfirmware device properties. Dave, Indeed - I wasn't thinking "outside the box". I didn't realize firmware set up resources needed for bit-banging. I thought the seprom was accessed via I/O Port space registers. > So use something like: > > #ifdef CONFIG_OF > struct device_node *dp = pci_device_to_OF_node(pdev); > const char *addr; > > addr = of_get_property(dp, "local-mac-address", NULL); > if (addr) { > memcpy(dev->dev_addr, addr, ETH_ALEN); > return 1; > } > return 0; > #endif Ok - will hack something up and ask the user to try that. I'll also look for CONFIG_OF/CONFIG_SPARC in tulip_core.c as suggested by Richard Mortimer. Thanks! grant - To unsubscribe from this list: send the line "unsubscribe ultralinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html