{
        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);
 
        /* 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);