[PATCH 10/11] rockchip: misc: Set eth1addr mac address

Kever Yang kever.yang at rock-chips.com
Wed Feb 22 09:56:49 CET 2023


On 2023/2/16 07:49, Jonas Karlman wrote:
> Set eth1addr when there is an ethernet1 alias in the fdt.
>
> Also allow fdt fixup of ethernet mac addresses when CMD_NET is disabled.
> Set ethaddr and eth1addr based on HASH and SHA256 options.
>
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
>   arch/arm/mach-rockchip/misc.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-rockchip/misc.c b/arch/arm/mach-rockchip/misc.c
> index b350f18f1140..aceaea6b29b7 100644
> --- a/arch/arm/mach-rockchip/misc.c
> +++ b/arch/arm/mach-rockchip/misc.c
> @@ -21,9 +21,11 @@
>   
>   #include <asm/arch-rockchip/misc.h>
>   
> +DECLARE_GLOBAL_DATA_PTR;
> +
>   int rockchip_setup_macaddr(void)
>   {
> -#if IS_ENABLED(CONFIG_CMD_NET)
> +#if CONFIG_IS_ENABLED(HASH) && CONFIG_IS_ENABLED(SHA256)
>   	int ret;
>   	const char *cpuid = env_get("cpuid#");
>   	u8 hash[SHA256_SUM_LEN];
> @@ -52,6 +54,12 @@ int rockchip_setup_macaddr(void)
>   	mac_addr[0] &= 0xfe;  /* clear multicast bit */
>   	mac_addr[0] |= 0x02;  /* set local assignment bit (IEEE802) */
>   	eth_env_set_enetaddr("ethaddr", mac_addr);
> +
> +	if (gd->fdt_blob && fdt_get_alias(gd->fdt_blob, "ethernet1")) {
> +		/* Make a valid MAC address for eth1 */
> +		mac_addr[5] += 0x20;
> +		eth_env_set_enetaddr("eth1addr", mac_addr);
> +	}
>   #endif
>   	return 0;
>   }


More information about the U-Boot mailing list