diff options
Diffstat (limited to 'cpu/mpc86xx/cpu.c')
| -rw-r--r-- | cpu/mpc86xx/cpu.c | 24 | 
1 files changed, 20 insertions, 4 deletions
diff --git a/cpu/mpc86xx/cpu.c b/cpu/mpc86xx/cpu.c index 84f5bef50..a33acfec4 100644 --- a/cpu/mpc86xx/cpu.c +++ b/cpu/mpc86xx/cpu.c @@ -280,22 +280,38 @@ ft_cpu_setup(void *blob, bd_t *bd)  #if defined(CONFIG_MPC86XX_TSEC1)  	p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/mac-address", &len); -	memcpy(p, bd->bi_enetaddr, 6); +	if (p != NULL) +		memcpy(p, bd->bi_enetaddr, 6); +	p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/local-mac-address", &len); +	if (p) +		memcpy(p, bd->bi_enetaddr, 6);  #endif  #if defined(CONFIG_MPC86XX_TSEC2)  	p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/mac-address", &len); -	memcpy(p, bd->bi_enet1addr, 6); +	if (p != NULL) +		memcpy(p, bd->bi_enet1addr, 6); +	p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/local-mac-address", &len); +	if (p != NULL) +		memcpy(p, bd->bi_enet1addr, 6);  #endif  #if defined(CONFIG_MPC86XX_TSEC3)  	p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/mac-address", &len); -	memcpy(p, bd->bi_enet2addr, 6); +	if (p != NULL) +		memcpy(p, bd->bi_enet2addr, 6); +	p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/local-mac-address", &len); +	if (p != NULL) +		memcpy(p, bd->bi_enet2addr, 6);  #endif  #if defined(CONFIG_MPC86XX_TSEC4)  	p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/mac-address", &len); -	memcpy(p, bd->bi_enet3addr, 6); +	if (p != NULL) +		memcpy(p, bd->bi_enet3addr, 6); +	p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/local-mac-address", &len); +	if (p != NULL) +		memcpy(p, bd->bi_enet3addr, 6);  #endif  }  |