public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC
@ 2013-10-02 19:00 Dan Murphy
  2013-10-02 19:19 ` Tom Rini
  2014-06-19 15:19 ` [U-Boot] " Tom Rini
  0 siblings, 2 replies; 7+ messages in thread
From: Dan Murphy @ 2013-10-02 19:00 UTC (permalink / raw)
  To: u-boot

A board that has a USB ethernet device only may set the usbetheraddr
and not the ethaddr.
ethaddr will be the default MAC address that is chosen and if that
is not populated then the usbethaddr is looked at.  If neither are set
then then device tree blob is not modified.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
---
 common/fdt_support.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index b034c98..fef7e60 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -450,8 +450,18 @@ void fdt_fixup_ethernet(void *fdt)
 	if (node < 0)
 		return;
 
+	if (!getenv("ethaddr")) {
+		if (getenv("usbethaddr")) {
+			strcpy(mac, "usbethaddr");
+		} else {
+			debug("No ethernet MAC Address defined\n");
+			return;
+		}
+	} else {
+		strcpy(mac, "ethaddr");
+	}
+
 	i = 0;
-	strcpy(mac, "ethaddr");
 	while ((tmp = getenv(mac)) != NULL) {
 		sprintf(enet, "ethernet%d", i);
 		path = fdt_getprop(fdt, node, enet, NULL);
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC
  2013-10-02 19:00 [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC Dan Murphy
@ 2013-10-02 19:19 ` Tom Rini
  2013-10-02 20:14   ` Dan Murphy
  2014-06-19 15:19 ` [U-Boot] " Tom Rini
  1 sibling, 1 reply; 7+ messages in thread
From: Tom Rini @ 2013-10-02 19:19 UTC (permalink / raw)
  To: u-boot

On Wed, Oct 02, 2013 at 02:00:15PM -0500, Dan Murphy wrote:

> A board that has a USB ethernet device only may set the usbetheraddr
> and not the ethaddr.
> ethaddr will be the default MAC address that is chosen and if that
> is not populated then the usbethaddr is looked at.  If neither are set
> then then device tree blob is not modified.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> ---
>  common/fdt_support.c |   12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/common/fdt_support.c b/common/fdt_support.c
> index b034c98..fef7e60 100644
> --- a/common/fdt_support.c
> +++ b/common/fdt_support.c
> @@ -450,8 +450,18 @@ void fdt_fixup_ethernet(void *fdt)
>  	if (node < 0)
>  		return;
>  
> +	if (!getenv("ethaddr")) {
> +		if (getenv("usbethaddr")) {
> +			strcpy(mac, "usbethaddr");
> +		} else {
> +			debug("No ethernet MAC Address defined\n");
> +			return;
> +		}
> +	} else {
> +		strcpy(mac, "ethaddr");
> +	}
> +
>  	i = 0;
> -	strcpy(mac, "ethaddr");
>  	while ((tmp = getenv(mac)) != NULL) {
>  		sprintf(enet, "ethernet%d", i);
>  		path = fdt_getprop(fdt, node, enet, NULL);

The problem is we may well have both.  I think we need to re-work the
function slightly to be:
while ((tmp = getenv(mac)) != NULL) {
  do_fdt_fixup_ethernet_x(tmp, fdt, node, enet, i)
}
if (getenv("usbethaddr"))
  do_fdt_fixup_ethernet_x("usbethaddr", fdt, ...)

Where the name of the new function, and parameter order also makes sense
and is complete of course.  Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20131002/0f68cb87/attachment.pgp>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC
  2013-10-02 19:19 ` Tom Rini
@ 2013-10-02 20:14   ` Dan Murphy
  2013-10-02 20:19     ` Tom Rini
  0 siblings, 1 reply; 7+ messages in thread
From: Dan Murphy @ 2013-10-02 20:14 UTC (permalink / raw)
  To: u-boot

Tom

On 10/02/2013 02:19 PM, Tom Rini wrote:
> On Wed, Oct 02, 2013 at 02:00:15PM -0500, Dan Murphy wrote:
>
>> A board that has a USB ethernet device only may set the usbetheraddr
>> and not the ethaddr.
>> ethaddr will be the default MAC address that is chosen and if that
>> is not populated then the usbethaddr is looked at.  If neither are set
>> then then device tree blob is not modified.
>>
>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>> ---
>>  common/fdt_support.c |   12 +++++++++++-
>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/common/fdt_support.c b/common/fdt_support.c
>> index b034c98..fef7e60 100644
>> --- a/common/fdt_support.c
>> +++ b/common/fdt_support.c
>> @@ -450,8 +450,18 @@ void fdt_fixup_ethernet(void *fdt)
>>  	if (node < 0)
>>  		return;
>>  
>> +	if (!getenv("ethaddr")) {
>> +		if (getenv("usbethaddr")) {
>> +			strcpy(mac, "usbethaddr");
>> +		} else {
>> +			debug("No ethernet MAC Address defined\n");
>> +			return;
>> +		}
>> +	} else {
>> +		strcpy(mac, "ethaddr");
>> +	}
>> +
>>  	i = 0;
>> -	strcpy(mac, "ethaddr");
>>  	while ((tmp = getenv(mac)) != NULL) {
>>  		sprintf(enet, "ethernet%d", i);
>>  		path = fdt_getprop(fdt, node, enet, NULL);
> The problem is we may well have both.  I think we need to re-work the
> function slightly to be:
> while ((tmp = getenv(mac)) != NULL) {
>   do_fdt_fixup_ethernet_x(tmp, fdt, node, enet, i)
> }
> if (getenv("usbethaddr"))
>   do_fdt_fixup_ethernet_x("usbethaddr", fdt, ...)
>
> Where the name of the new function, and parameter order also makes sense
> and is complete of course.  Thanks!
>

One issue with this approach is that we don't know which inteface in the dt is usb ethernet and which is not.
So correctly assigning the MAC to the correct inteface will be tricky.

But the patch is flawed in the affect is that it does not take into account multiple usbethaddr either.  I will rework it for this but I am not sure about the other.

Dan

-- 
------------------
Dan Murphy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC
  2013-10-02 20:14   ` Dan Murphy
@ 2013-10-02 20:19     ` Tom Rini
  2013-10-02 20:21       ` Dan Murphy
  0 siblings, 1 reply; 7+ messages in thread
From: Tom Rini @ 2013-10-02 20:19 UTC (permalink / raw)
  To: u-boot

On Wed, Oct 02, 2013 at 03:14:26PM -0500, Dan Murphy wrote:
> Tom
> 
> On 10/02/2013 02:19 PM, Tom Rini wrote:
> > On Wed, Oct 02, 2013 at 02:00:15PM -0500, Dan Murphy wrote:
> >
> >> A board that has a USB ethernet device only may set the usbetheraddr
> >> and not the ethaddr.
> >> ethaddr will be the default MAC address that is chosen and if that
> >> is not populated then the usbethaddr is looked at.  If neither are set
> >> then then device tree blob is not modified.
> >>
> >> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> >> ---
> >>  common/fdt_support.c |   12 +++++++++++-
> >>  1 file changed, 11 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/common/fdt_support.c b/common/fdt_support.c
> >> index b034c98..fef7e60 100644
> >> --- a/common/fdt_support.c
> >> +++ b/common/fdt_support.c
> >> @@ -450,8 +450,18 @@ void fdt_fixup_ethernet(void *fdt)
> >>  	if (node < 0)
> >>  		return;
> >>  
> >> +	if (!getenv("ethaddr")) {
> >> +		if (getenv("usbethaddr")) {
> >> +			strcpy(mac, "usbethaddr");
> >> +		} else {
> >> +			debug("No ethernet MAC Address defined\n");
> >> +			return;
> >> +		}
> >> +	} else {
> >> +		strcpy(mac, "ethaddr");
> >> +	}
> >> +
> >>  	i = 0;
> >> -	strcpy(mac, "ethaddr");
> >>  	while ((tmp = getenv(mac)) != NULL) {
> >>  		sprintf(enet, "ethernet%d", i);
> >>  		path = fdt_getprop(fdt, node, enet, NULL);
> > The problem is we may well have both.  I think we need to re-work the
> > function slightly to be:
> > while ((tmp = getenv(mac)) != NULL) {
> >   do_fdt_fixup_ethernet_x(tmp, fdt, node, enet, i)
> > }
> > if (getenv("usbethaddr"))
> >   do_fdt_fixup_ethernet_x("usbethaddr", fdt, ...)
> >
> > Where the name of the new function, and parameter order also makes sense
> > and is complete of course.  Thanks!
> >
> 
> One issue with this approach is that we don't know which inteface in
> the dt is usb ethernet and which is not.  So correctly assigning the
> MAC to the correct inteface will be tricky.

Oh, that's true...  Maybe I should withdraw my objection, since we're
unlikely to really see both in production cases.

> But the patch is flawed in the affect is that it does not take into
> account multiple usbethaddr either.  I will rework it for this but I
> am not sure about the other.

But we don't support that either, did a quick grep before posting.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20131002/cc57040c/attachment.pgp>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC
  2013-10-02 20:19     ` Tom Rini
@ 2013-10-02 20:21       ` Dan Murphy
  2013-10-09 15:04         ` Dan Murphy
  0 siblings, 1 reply; 7+ messages in thread
From: Dan Murphy @ 2013-10-02 20:21 UTC (permalink / raw)
  To: u-boot

Tom

On 10/02/2013 03:19 PM, Tom Rini wrote:
> On Wed, Oct 02, 2013 at 03:14:26PM -0500, Dan Murphy wrote:
>> Tom
>>
>> On 10/02/2013 02:19 PM, Tom Rini wrote:
>>> On Wed, Oct 02, 2013 at 02:00:15PM -0500, Dan Murphy wrote:
>>>
>>>> A board that has a USB ethernet device only may set the usbetheraddr
>>>> and not the ethaddr.
>>>> ethaddr will be the default MAC address that is chosen and if that
>>>> is not populated then the usbethaddr is looked at.  If neither are set
>>>> then then device tree blob is not modified.
>>>>
>>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>>>> ---
>>>>  common/fdt_support.c |   12 +++++++++++-
>>>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/common/fdt_support.c b/common/fdt_support.c
>>>> index b034c98..fef7e60 100644
>>>> --- a/common/fdt_support.c
>>>> +++ b/common/fdt_support.c
>>>> @@ -450,8 +450,18 @@ void fdt_fixup_ethernet(void *fdt)
>>>>  	if (node < 0)
>>>>  		return;
>>>>  
>>>> +	if (!getenv("ethaddr")) {
>>>> +		if (getenv("usbethaddr")) {
>>>> +			strcpy(mac, "usbethaddr");
>>>> +		} else {
>>>> +			debug("No ethernet MAC Address defined\n");
>>>> +			return;
>>>> +		}
>>>> +	} else {
>>>> +		strcpy(mac, "ethaddr");
>>>> +	}
>>>> +
>>>>  	i = 0;
>>>> -	strcpy(mac, "ethaddr");
>>>>  	while ((tmp = getenv(mac)) != NULL) {
>>>>  		sprintf(enet, "ethernet%d", i);
>>>>  		path = fdt_getprop(fdt, node, enet, NULL);
>>> The problem is we may well have both.  I think we need to re-work the
>>> function slightly to be:
>>> while ((tmp = getenv(mac)) != NULL) {
>>>   do_fdt_fixup_ethernet_x(tmp, fdt, node, enet, i)
>>> }
>>> if (getenv("usbethaddr"))
>>>   do_fdt_fixup_ethernet_x("usbethaddr", fdt, ...)
>>>
>>> Where the name of the new function, and parameter order also makes sense
>>> and is complete of course.  Thanks!
>>>
>> One issue with this approach is that we don't know which inteface in
>> the dt is usb ethernet and which is not.  So correctly assigning the
>> MAC to the correct inteface will be tricky.
> Oh, that's true...  Maybe I should withdraw my objection, since we're
> unlikely to really see both in production cases.
>
>> But the patch is flawed in the affect is that it does not take into
>> account multiple usbethaddr either.  I will rework it for this but I
>> am not sure about the other.
> But we don't support that either, did a quick grep before posting.
>

Actually we do.  If you setenv eth1addr in the enviroment it will try to set it in the dtb for the next ethernet instance.

The other option is to set the ethaddr and then have usbethaddr reference ethaddr and leave this code alone.

Dan

-- 
------------------
Dan Murphy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC
  2013-10-02 20:21       ` Dan Murphy
@ 2013-10-09 15:04         ` Dan Murphy
  0 siblings, 0 replies; 7+ messages in thread
From: Dan Murphy @ 2013-10-09 15:04 UTC (permalink / raw)
  To: u-boot

All

On 10/02/2013 03:21 PM, Dan Murphy wrote:
> Tom
>
> On 10/02/2013 03:19 PM, Tom Rini wrote:
>> On Wed, Oct 02, 2013 at 03:14:26PM -0500, Dan Murphy wrote:
>>> Tom
>>>
>>> On 10/02/2013 02:19 PM, Tom Rini wrote:
>>>> On Wed, Oct 02, 2013 at 02:00:15PM -0500, Dan Murphy wrote:
>>>>
>>>>> A board that has a USB ethernet device only may set the usbetheraddr
>>>>> and not the ethaddr.
>>>>> ethaddr will be the default MAC address that is chosen and if that
>>>>> is not populated then the usbethaddr is looked at.  If neither are set
>>>>> then then device tree blob is not modified.
>>>>>
>>>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>>>>> ---
>>>>>  common/fdt_support.c |   12 +++++++++++-
>>>>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/common/fdt_support.c b/common/fdt_support.c
>>>>> index b034c98..fef7e60 100644
>>>>> --- a/common/fdt_support.c
>>>>> +++ b/common/fdt_support.c
>>>>> @@ -450,8 +450,18 @@ void fdt_fixup_ethernet(void *fdt)
>>>>>  	if (node < 0)
>>>>>  		return;
>>>>>  
>>>>> +	if (!getenv("ethaddr")) {
>>>>> +		if (getenv("usbethaddr")) {
>>>>> +			strcpy(mac, "usbethaddr");
>>>>> +		} else {
>>>>> +			debug("No ethernet MAC Address defined\n");
>>>>> +			return;
>>>>> +		}
>>>>> +	} else {
>>>>> +		strcpy(mac, "ethaddr");
>>>>> +	}
>>>>> +
>>>>>  	i = 0;
>>>>> -	strcpy(mac, "ethaddr");
>>>>>  	while ((tmp = getenv(mac)) != NULL) {
>>>>>  		sprintf(enet, "ethernet%d", i);
>>>>>  		path = fdt_getprop(fdt, node, enet, NULL);
>>>> The problem is we may well have both.  I think we need to re-work the
>>>> function slightly to be:
>>>> while ((tmp = getenv(mac)) != NULL) {
>>>>   do_fdt_fixup_ethernet_x(tmp, fdt, node, enet, i)
>>>> }
>>>> if (getenv("usbethaddr"))
>>>>   do_fdt_fixup_ethernet_x("usbethaddr", fdt, ...)
>>>>
>>>> Where the name of the new function, and parameter order also makes sense
>>>> and is complete of course.  Thanks!
>>>>
>>> One issue with this approach is that we don't know which inteface in
>>> the dt is usb ethernet and which is not.  So correctly assigning the
>>> MAC to the correct inteface will be tricky.
>> Oh, that's true...  Maybe I should withdraw my objection, since we're
>> unlikely to really see both in production cases.
>>
>>> But the patch is flawed in the affect is that it does not take into
>>> account multiple usbethaddr either.  I will rework it for this but I
>>> am not sure about the other.
>> But we don't support that either, did a quick grep before posting.
>>
> Actually we do.  If you setenv eth1addr in the enviroment it will try to set it in the dtb for the next ethernet instance.
>
> The other option is to set the ethaddr and then have usbethaddr reference ethaddr and leave this code alone.
>
> Dan
>

Are there additional comments?
I currently do not have a V2 so I am assuming I have addressed all comments.

Please let me know.

Dan

-- 
------------------
Dan Murphy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] ARM: fdt support: Add usbethaddr as an acceptable MAC
  2013-10-02 19:00 [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC Dan Murphy
  2013-10-02 19:19 ` Tom Rini
@ 2014-06-19 15:19 ` Tom Rini
  1 sibling, 0 replies; 7+ messages in thread
From: Tom Rini @ 2014-06-19 15:19 UTC (permalink / raw)
  To: u-boot

On Wed, Oct 02, 2013 at 02:00:15PM -0500, Dan Murphy wrote:

> A board that has a USB ethernet device only may set the usbetheraddr
> and not the ethaddr.
> ethaddr will be the default MAC address that is chosen and if that
> is not populated then the usbethaddr is looked at.  If neither are set
> then then device tree blob is not modified.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140619/dbb0be25/attachment.pgp>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-06-19 15:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-02 19:00 [U-Boot] [PATCH] ARM: fdt support: Add usbethaddr as an acceptable MAC Dan Murphy
2013-10-02 19:19 ` Tom Rini
2013-10-02 20:14   ` Dan Murphy
2013-10-02 20:19     ` Tom Rini
2013-10-02 20:21       ` Dan Murphy
2013-10-09 15:04         ` Dan Murphy
2014-06-19 15:19 ` [U-Boot] " Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox