diff options
Diffstat (limited to 'drivers/net/fm/init.c')
| -rw-r--r-- | drivers/net/fm/init.c | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/drivers/net/fm/init.c b/drivers/net/fm/init.c index 512d7dd3d..953c359e6 100644 --- a/drivers/net/fm/init.c +++ b/drivers/net/fm/init.c @@ -183,6 +183,8 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)  {  	int off, ph;  	phys_addr_t paddr = CONFIG_SYS_CCSRBAR_PHYS + info->compat_offset; +	u64 dtsec1_addr = (u64)CONFIG_SYS_CCSRBAR_PHYS + +				CONFIG_SYS_FSL_FM1_DTSEC1_OFFSET;  	off = fdt_node_offset_by_compat_reg(blob, prop, paddr); @@ -195,9 +197,13 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)  	/* board code might have caused offset to change */  	off = fdt_node_offset_by_compat_reg(blob, prop, paddr); -	/* disable both the mac node and the node that has a handle to it */ -	fdt_setprop_string(blob, off, "status", "disabled"); +	/* Don't disable FM1-DTSEC1 MAC as its used for MDIO */ +	if (paddr != dtsec1_addr) { +		/* disable the mac node */ +		fdt_setprop_string(blob, off, "status", "disabled"); +	} +	/* disable the node point to the mac */  	ph = fdt_get_phandle(blob, off);  	do_fixup_by_prop(blob, "fsl,fman-mac", &ph, sizeof(ph),  		"status", "disabled", strlen("disabled") + 1, 1); |