diff mbox series

[U-Boot,v2,1/4] sunxi: board: Use eth_env_set_enetaddr_by_index()

Message ID 20191126081602.2264519-2-a.heider@gmail.com
State Superseded
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series arm64: dts: sun50i: Add support for Orange Pi 3 | expand

Commit Message

Andre Heider Nov. 26, 2019, 8:15 a.m. UTC
That helper takes care of assembling the correct name and doesn't allow
overwriting existing env vars, so drop the checks here.

Signed-off-by: Andre Heider <a.heider@gmail.com>
---
 board/sunxi/board.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

Comments

Ondřej Jirman Nov. 26, 2019, 10:22 a.m. UTC | #1
Hello,

On Tue, Nov 26, 2019 at 09:15:59AM +0100, Andre Heider wrote:
> That helper takes care of assembling the correct name and doesn't allow
> overwriting existing env vars, so drop the checks here.
> 
> Signed-off-by: Andre Heider <a.heider@gmail.com>
> ---
>  board/sunxi/board.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index e3b2d13892..bb35d6b66e 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -807,14 +807,6 @@ static void setup_environment(const void *fdt)
>  			if (!fdt_get_alias(fdt, ethaddr))
>  				continue;
>  
> -			if (i == 0)
> -				strcpy(ethaddr, "ethaddr");
> -			else
> -				sprintf(ethaddr, "eth%daddr", i);
> -
> -			if (env_get(ethaddr))
> -				continue;
> -
>  			/* Non OUI / registered MAC address */
>  			mac_addr[0] = (i << 4) | 0x02;
>  			mac_addr[1] = (sid[0] >>  0) & 0xff;
> @@ -823,7 +815,7 @@ static void setup_environment(const void *fdt)
>  			mac_addr[4] = (sid[3] >>  8) & 0xff;
>  			mac_addr[5] = (sid[3] >>  0) & 0xff;
>  
> -			eth_env_set_enetaddr(ethaddr, mac_addr);
> +			eth_env_set_enetaddr_by_index("eth", i, mac_addr);

This breaks the build with CONFIG_NET disabled in u-boot, since 
eth_env_set_enetaddr_by_index is only available in net/.

arm-linux-musleabihf-ld.bfd: board/sunxi/built-in.o: in function `setup_environment':
board/sunxi/board.c:835: undefined reference to `eth_env_set_enetaddr_by_index'

See this thread for more info:
  https://www.mail-archive.com/u-boot@lists.denx.de/msg340785.html
 
Use of eth_env_set_enetaddr is temporarily broken on master too, because this
is still waiting to be merged:

  https://www.mail-archive.com/u-boot@lists.denx.de/msg340882.html

regards,
	o.

>  		}
>  
>  		if (!env_get("serial#")) {
> -- 
> 2.24.0
>
Andre Heider Nov. 26, 2019, 12:12 p.m. UTC | #2
On 26/11/2019 11:22, Ondřej Jirman wrote:
> Hello,
> 
> On Tue, Nov 26, 2019 at 09:15:59AM +0100, Andre Heider wrote:
>> That helper takes care of assembling the correct name and doesn't allow
>> overwriting existing env vars, so drop the checks here.
>>
>> Signed-off-by: Andre Heider <a.heider@gmail.com>
>> ---
>>   board/sunxi/board.c | 10 +---------
>>   1 file changed, 1 insertion(+), 9 deletions(-)
>>
>> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
>> index e3b2d13892..bb35d6b66e 100644
>> --- a/board/sunxi/board.c
>> +++ b/board/sunxi/board.c
>> @@ -807,14 +807,6 @@ static void setup_environment(const void *fdt)
>>   			if (!fdt_get_alias(fdt, ethaddr))
>>   				continue;
>>   
>> -			if (i == 0)
>> -				strcpy(ethaddr, "ethaddr");
>> -			else
>> -				sprintf(ethaddr, "eth%daddr", i);
>> -
>> -			if (env_get(ethaddr))
>> -				continue;
>> -
>>   			/* Non OUI / registered MAC address */
>>   			mac_addr[0] = (i << 4) | 0x02;
>>   			mac_addr[1] = (sid[0] >>  0) & 0xff;
>> @@ -823,7 +815,7 @@ static void setup_environment(const void *fdt)
>>   			mac_addr[4] = (sid[3] >>  8) & 0xff;
>>   			mac_addr[5] = (sid[3] >>  0) & 0xff;
>>   
>> -			eth_env_set_enetaddr(ethaddr, mac_addr);
>> +			eth_env_set_enetaddr_by_index("eth", i, mac_addr);
> 
> This breaks the build with CONFIG_NET disabled in u-boot, since
> eth_env_set_enetaddr_by_index is only available in net/.
> 
> arm-linux-musleabihf-ld.bfd: board/sunxi/built-in.o: in function `setup_environment':
> board/sunxi/board.c:835: undefined reference to `eth_env_set_enetaddr_by_index'
> 
> See this thread for more info:
>    https://www.mail-archive.com/u-boot@lists.denx.de/msg340785.html
>   
> Use of eth_env_set_enetaddr is temporarily broken on master too, because this
> is still waiting to be merged:
> 
>    https://www.mail-archive.com/u-boot@lists.denx.de/msg340882.html

Ok, I'll drop the patch then, it was just a possible cleanup I stumbled 
upon anyway.

I applied the patch you linked to and it indeed fixes the build with 
CONFIG_NET=n.

Thanks,
Andre
diff mbox series

Patch

diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index e3b2d13892..bb35d6b66e 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -807,14 +807,6 @@  static void setup_environment(const void *fdt)
 			if (!fdt_get_alias(fdt, ethaddr))
 				continue;
 
-			if (i == 0)
-				strcpy(ethaddr, "ethaddr");
-			else
-				sprintf(ethaddr, "eth%daddr", i);
-
-			if (env_get(ethaddr))
-				continue;
-
 			/* Non OUI / registered MAC address */
 			mac_addr[0] = (i << 4) | 0x02;
 			mac_addr[1] = (sid[0] >>  0) & 0xff;
@@ -823,7 +815,7 @@  static void setup_environment(const void *fdt)
 			mac_addr[4] = (sid[3] >>  8) & 0xff;
 			mac_addr[5] = (sid[3] >>  0) & 0xff;
 
-			eth_env_set_enetaddr(ethaddr, mac_addr);
+			eth_env_set_enetaddr_by_index("eth", i, mac_addr);
 		}
 
 		if (!env_get("serial#")) {