Re: [Bug 9106] Sun Fire v100 dmfe driver bug

David Miller <[email protected]> Sun, 04 Nov 2007 21:49:58 +0000
Newsgroups org.kernel.vger.ultralinux
Message-ID <[email protected]>
From: Grant Grundler <[email protected]>
Date: Sun, 4 Nov 2007 12:02:30 -0700

> http://bugzilla.kernel.org/show_bug.cgi?id=9106
>=20
> I have two possible reasons why dmfe driver is reading zeros from the sep=
rom for the MAC address.
> 1) IO port space routing is fu-bar - ie we are only able to talk to the c=
hip'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.

   So use something like:

#ifdef CONFIG_OF
	struct device_node *dp =3D pci_device_to_OF_node(pdev);
	const char *addr;

	addr =3D of_get_property(dp, "local-mac-address", NULL);
	if (addr) {
		memcpy(dev->dev_addr, addr, ETH_ALEN);
		return 1;
	}
	return 0;
#endif