Beagleboard xM smsc95xx MAC address patch

So, while working with the xM, I noticed that every time you would
bring the smsc95xx usb0 interface up, you'd get a new MAC address. Not
that annoying, except when you have IPv6 addresses created by said MAC
address. Setting the MAC doesn't work, since you have to bring the
interface down to change the address...and when you bring it up, a new
random MAC is generated.

I've attached a very ugly (it's been years since I did any kernel
coding) that does (hopefully) two things:

1) Assign a local MAC address based on the die id of the processor.
2) Only generates a random MAC address once if things go poorly.

I need to split (1) and (2) out, since (2) really is an upstream
kernel bug. (1) is just a hack for us to get a realistic, constant
MAC. I've tested it, and (1) seems to work.

Please flame away. I like to beat this into shape for proper submittal
to the right people.

Thanks,
Mark Crichton

0001-Fix-bug-to-prevent-multiple-updates-of-MAC-on-Beagle.patch (2.6 KB)

Of course, it was late last night when I remembered MAC addresses have
48 bits, not 32. I also think I'm pulling in the wrong ID number.
I'll have to rework the patch to clean it up. Is there a better
function to pull in the board ID within the kernel?

Thanks,
Mark Crichton