[U-Boot] [PATCH] net: use random ethernet address if invalid and not zero

James Chargin jimccrown at gmail.com
Mon Nov 7 23:25:15 CET 2016


Hi Joe,

Thanks for your reply.

On 11/07/2016 10:20 AM, Joe Hershberger wrote:
> Hi Jim,
>
> On Wed, Nov 2, 2016 at 8:21 AM, James Chargin <jimccrown at gmail.com> wrote:
>> Hi,
>>
>> Regarding "invalid" Ethernet address.
>>
>> Is there a reliable way to set the default environment that will prevent
>> Ethernet communications from being attempted.
>>
>> That is, when an Ethernet capable system is brand new and before an Ethernet
>> MAC address has been assigned to that system during manufacturing with the
>> "setenv ethaddr" command, how can Ethernet comms be disabled?
>>
>> This would be a fail-safe to make sure that part of the manufacturing
>> process is done correctly and that an Ethernet address is intentionally
>> assigned.
>
> There is no feature like that as far as I know. Can you not just read
> back the ethaddr variable and compare it to what you intended to
> program?

I don't understand what you are suggesting, sorry.

A long time ago I wrote code

/*
  * This is an invalid MAC address.
  * Having it be invalid prevents connection to
  * the network until the U-Boot "setenv ethaddr"
  * command is run, which selects a valid MAC
  * Refer to the section titled "Null values" in
  * http://standards.ieee.org/regauth/oui/tutorials/UseOfEUI.html.
  */
#define CONFIG_ETHADDR      ff:ff:ff:ff:ff:ff

The referenced section says, "... The all-zeros and all-ones EUI-64 
values, 00-00-00-00-00-00-00-00hex and FF-FF-FF-FF-FF-FF-FF-FFhex, 
respectively, are owned by the IEEE Registration Authority and will 
never be assigned, and are invalid for use as identifiers. ..." (which 
doesn't really apply to my case, but I was hopeful that I could 
generalize to my case)

At the time I wrote this code, I was trying to cope with a mfg process 
that was about to ship systems without setting correct MAC addresses. I 
was new to U-Boot at that time but found that U-Boot would not build 
without CONFIG_ETHADDR defined.

I subsequently checked again and found that U-Boot connects to the 
network regardless of the value of CONFIG_ETHADDR and even when it is 
not defined at compile-time or run-time.

I left it there, instead I made changes to the mfg process so that 
"setenv ethaddr" was more likely to always get done.

I would have liked a way to configure the default U-Boot environment so 
that no network connection could be made until a MAC address had been 
set, but I wasn't willing to spend any more time figuring out how to 
make that happen (possibly by submitting a patch upstream)

Jim
-- 
Jim Chargin
AJA Video Systems                       jimc at aja.com
(530) 271-3334                          http://www.aja.com


More information about the U-Boot mailing list