]> git.sur5r.net Git - u-boot/commitdiff
net/fman: Support both new and legacy FMan Compatibles
authorIgal Liberman <igal.liberman@freescale.com>
Tue, 18 Aug 2015 11:47:05 +0000 (14:47 +0300)
committerYork Sun <yorksun@freescale.com>
Wed, 2 Sep 2015 01:57:15 +0000 (20:57 -0500)
Recently  the FMan Port and MAC compatibles were changed.
This patch aligns the FMan Port and MAC compatibles
to the new FMan device tree binding document.
The FMan device tree binding document can be found in the Linux kernel:
./Documentation/devicetree/bindings/powerpc/fsl/fman.txt

This patch doesn't affect legacy compatibles support.

Signed-off-by: Igal Liberman <igal.liberman@freescale.com>
Tested-by: Xing Lei <xing.lei@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
13 files changed:
arch/powerpc/cpu/mpc85xx/b4860_ids.c
arch/powerpc/cpu/mpc85xx/liodn.c
arch/powerpc/cpu/mpc85xx/p2041_ids.c
arch/powerpc/cpu/mpc85xx/p3041_ids.c
arch/powerpc/cpu/mpc85xx/p4080_ids.c
arch/powerpc/cpu/mpc85xx/p5020_ids.c
arch/powerpc/cpu/mpc85xx/p5040_ids.c
arch/powerpc/cpu/mpc85xx/t1024_ids.c
arch/powerpc/cpu/mpc85xx/t1040_ids.c
arch/powerpc/cpu/mpc85xx/t2080_ids.c
arch/powerpc/cpu/mpc85xx/t4240_ids.c
arch/powerpc/include/asm/fsl_liodn.h
drivers/net/fm/init.c

index fd7f5fa7e135c165db7146f0fcc46dffc107704a..85eba0b22db42c0885b027bc2b8a464f3e57fd7f 100644 (file)
@@ -74,7 +74,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 88),
        SET_FMAN_RX_1G_LIODN(1, 1, 89),
        SET_FMAN_RX_1G_LIODN(1, 2, 90),
index 7a2d4be42cec34495b814b4fafcc8ea397151913..7a4465fefc5b60750d22ed9f1d80784adbec18bf 100644 (file)
@@ -57,6 +57,23 @@ static void set_liodn(struct liodn_id_table *tbl, int size)
        }
 }
 
+#ifdef CONFIG_SYS_DPAA_FMAN
+static void set_fman_liodn(struct fman_liodn_id_table *tbl, int size)
+{
+       int i;
+
+       for (i = 0; i < size; i++) {
+               u32 liodn;
+               if (tbl[i].num_ids == 2)
+                       liodn = (tbl[i].id[0] << 16) | tbl[i].id[1];
+               else
+                       liodn = tbl[i].id[0];
+
+               out_be32((volatile u32 *)(tbl[i].reg_offset), liodn);
+       }
+}
+#endif
+
 static void setup_sec_liodn_base(void)
 {
        ccsr_sec_t *sec = (void *)CONFIG_SYS_FSL_SEC_ADDR;
@@ -76,7 +93,7 @@ static void setup_sec_liodn_base(void)
 
 #ifdef CONFIG_SYS_DPAA_FMAN
 static void setup_fman_liodn_base(enum fsl_dpaa_dev dev,
-                                 struct liodn_id_table *tbl, int size)
+                                 struct fman_liodn_id_table *tbl, int size)
 {
        int i;
        ccsr_fman_t *fm;
@@ -180,12 +197,12 @@ void set_liodns(void)
 
        /* setup FMAN block(s) liodn bases & offsets if we have one */
 #ifdef CONFIG_SYS_DPAA_FMAN
-       set_liodn(fman1_liodn_tbl, fman1_liodn_tbl_sz);
+       set_fman_liodn(fman1_liodn_tbl, fman1_liodn_tbl_sz);
        setup_fman_liodn_base(FSL_HW_PORTAL_FMAN1, fman1_liodn_tbl,
                                fman1_liodn_tbl_sz);
 
 #if (CONFIG_SYS_NUM_FMAN == 2)
-       set_liodn(fman2_liodn_tbl, fman2_liodn_tbl_sz);
+       set_fman_liodn(fman2_liodn_tbl, fman2_liodn_tbl_sz);
        setup_fman_liodn_base(FSL_HW_PORTAL_FMAN2, fman2_liodn_tbl,
                                fman2_liodn_tbl_sz);
 #endif
@@ -315,6 +332,43 @@ static void fdt_fixup_liodn_tbl(void *blob, struct liodn_id_table *tbl, int sz)
        }
 }
 
+#ifdef CONFIG_SYS_DPAA_FMAN
+static void fdt_fixup_liodn_tbl_fman(void *blob,
+                                    struct fman_liodn_id_table *tbl,
+                                    int sz)
+{
+       int i;
+
+       for (i = 0; i < sz; i++) {
+               int off;
+
+               if (tbl[i].compat == NULL)
+                       continue;
+
+               /* Try the new compatible first.
+                * If the node is missing, try the old.
+                */
+               off = fdt_node_offset_by_compat_reg(blob,
+                               tbl[i].compat[0], tbl[i].compat_offset);
+               if (off < 0)
+                       off = fdt_node_offset_by_compat_reg(blob,
+                                       tbl[i].compat[1], tbl[i].compat_offset);
+
+               if (off >= 0) {
+                       off = fdt_setprop(blob, off, "fsl,liodn",
+                               &tbl[i].id[0],
+                               sizeof(u32) * tbl[i].num_ids);
+                       if (off > 0)
+                               printf("WARNING unable to set fsl,liodn for FMan Port: %s\n",
+                                      fdt_strerror(off));
+               } else {
+                       debug("WARNING: could not set fsl,liodn for FMan Portport: %s.\n",
+                             fdt_strerror(off));
+               }
+       }
+}
+#endif
+
 void fdt_fixup_liodn(void *blob)
 {
 #ifdef CONFIG_SYS_SRIO
@@ -323,9 +377,9 @@ void fdt_fixup_liodn(void *blob)
 
        fdt_fixup_liodn_tbl(blob, liodn_tbl, liodn_tbl_sz);
 #ifdef CONFIG_SYS_DPAA_FMAN
-       fdt_fixup_liodn_tbl(blob, fman1_liodn_tbl, fman1_liodn_tbl_sz);
+       fdt_fixup_liodn_tbl_fman(blob, fman1_liodn_tbl, fman1_liodn_tbl_sz);
 #if (CONFIG_SYS_NUM_FMAN == 2)
-       fdt_fixup_liodn_tbl(blob, fman2_liodn_tbl, fman2_liodn_tbl_sz);
+       fdt_fixup_liodn_tbl_fman(blob, fman2_liodn_tbl, fman2_liodn_tbl_sz);
 #endif
 #endif
        fdt_fixup_liodn_tbl(blob, sec_liodn_tbl, sec_liodn_tbl_sz);
index 6e3cdddaed8c4e290c359cc6751932435b774edd..8b6d27452eb17171ad1843074853808617c70e14 100644 (file)
@@ -61,7 +61,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 10),
        SET_FMAN_RX_1G_LIODN(1, 1, 11),
        SET_FMAN_RX_1G_LIODN(1, 2, 12),
index 2b57703b2e57190561ff9c0441ce6192e183e526..ff8216bf52f48ad748da502ca2abe230766f047d 100644 (file)
@@ -62,7 +62,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 10),
        SET_FMAN_RX_1G_LIODN(1, 1, 11),
        SET_FMAN_RX_1G_LIODN(1, 2, 12),
index 94a51439a0fcc42b97daff5cefbdc12a2b3ed62a..174eb04d7a0d8c74da1a266f79b139696e11ecb2 100644 (file)
@@ -54,7 +54,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 11),
        SET_FMAN_RX_1G_LIODN(1, 1, 12),
        SET_FMAN_RX_1G_LIODN(1, 2, 13),
@@ -64,7 +64,7 @@ struct liodn_id_table fman1_liodn_tbl[] = {
 int fman1_liodn_tbl_sz = ARRAY_SIZE(fman1_liodn_tbl);
 
 #if (CONFIG_SYS_NUM_FMAN == 2)
-struct liodn_id_table fman2_liodn_tbl[] = {
+struct fman_liodn_id_table fman2_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(2, 0, 16),
        SET_FMAN_RX_1G_LIODN(2, 1, 17),
        SET_FMAN_RX_1G_LIODN(2, 2, 18),
index 0f292cf5a8e56d87c27ee2b89343a151d1da1b8e..99e3e91e45ada083b1b2ac94b707ec70436267f1 100644 (file)
@@ -62,7 +62,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 10),
        SET_FMAN_RX_1G_LIODN(1, 1, 11),
        SET_FMAN_RX_1G_LIODN(1, 2, 12),
index 98a568fb1017b51d5cde4f7a9516e588a7d6e2ad..1c99f9ffe357e7e909726d2898ad71b73c7494a2 100644 (file)
@@ -48,7 +48,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 11),
        SET_FMAN_RX_1G_LIODN(1, 1, 12),
        SET_FMAN_RX_1G_LIODN(1, 2, 13),
@@ -59,7 +59,7 @@ struct liodn_id_table fman1_liodn_tbl[] = {
 int fman1_liodn_tbl_sz = ARRAY_SIZE(fman1_liodn_tbl);
 
 #if (CONFIG_SYS_NUM_FMAN == 2)
-struct liodn_id_table fman2_liodn_tbl[] = {
+struct fman_liodn_id_table fman2_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(2, 0, 17),
        SET_FMAN_RX_1G_LIODN(2, 1, 18),
        SET_FMAN_RX_1G_LIODN(2, 2, 19),
index 8a1092ea655cf0bfd7a8780e723b56a04a70cdca..8f95e335d8240ceda6ca054b194d3ead155dfc73 100644 (file)
@@ -50,7 +50,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_10G_TYPE2_LIODN(1, 0, 88),
        SET_FMAN_RX_1G_LIODN(1, 1, 89),
        SET_FMAN_RX_1G_LIODN(1, 2, 90),
index 80917224b95eeee49126c9d58d006094aac8ddad..b98c7bcd61720e111f967ff976b24bf39451d288 100644 (file)
@@ -55,7 +55,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 88),
        SET_FMAN_RX_1G_LIODN(1, 1, 89),
        SET_FMAN_RX_1G_LIODN(1, 2, 90),
index eda7f59da0fa1c9c1bf738aa2506ebe28f2d59b3..868f2d5ca17221cd5e7f81fad48d7abe5960e013 100644 (file)
@@ -83,7 +83,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 88),
        SET_FMAN_RX_1G_LIODN(1, 1, 89),
        SET_FMAN_RX_1G_LIODN(1, 2, 90),
index 470b0800bf3b80d743192536e13e919d4fcc2043..14ada9e690a3748ff22da08f698c0adea664790b 100644 (file)
@@ -112,7 +112,7 @@ struct liodn_id_table liodn_tbl[] = {
 int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-struct liodn_id_table fman1_liodn_tbl[] = {
+struct fman_liodn_id_table fman1_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(1, 0, 88),
        SET_FMAN_RX_1G_LIODN(1, 1, 89),
        SET_FMAN_RX_1G_LIODN(1, 2, 90),
@@ -124,7 +124,7 @@ struct liodn_id_table fman1_liodn_tbl[] = {
 };
 int fman1_liodn_tbl_sz = ARRAY_SIZE(fman1_liodn_tbl);
 #if (CONFIG_SYS_NUM_FMAN == 2)
-struct liodn_id_table fman2_liodn_tbl[] = {
+struct fman_liodn_id_table fman2_liodn_tbl[] = {
        SET_FMAN_RX_1G_LIODN(2, 0, 88),
        SET_FMAN_RX_1G_LIODN(2, 1, 89),
        SET_FMAN_RX_1G_LIODN(2, 2, 90),
index 6206bee5d337b2766a3692032240b0129b5c5506..8c91e722f4784e84478652067e70e88100c431f1 100644 (file)
@@ -44,6 +44,18 @@ struct liodn_id_table {
        unsigned long reg_offset;
 };
 
+struct fman_liodn_id_table {
+       /* Freescale FMan Device Tree binding was updated for FMan.
+        * We need to support both new and old compatibles in order not to
+        * break backward compatibility.
+        */
+       const char *compat[2];
+       u32 id[2];
+       u8 num_ids;
+       phys_addr_t compat_offset;
+       unsigned long reg_offset;
+};
+
 extern u32 get_ppid_liodn(int ppid_tbl_idx, int ppid);
 extern void set_liodns(void);
 extern void fdt_fixup_liodn(void *blob);
@@ -54,6 +66,14 @@ extern void fdt_fixup_liodn(void *blob);
 #define SET_LIODN_BASE_2(idA, idB) \
        { .id = { idA, idB }, .num_ids = 2 }
 
+#define SET_FMAN_LIODN_ENTRY(name1, name2, idA, off, compatoff)\
+       { .compat[0] = name1, \
+         .compat[1] = name2, \
+         .id = { idA }, .num_ids = 1, \
+         .reg_offset = off + CONFIG_SYS_CCSRBAR, \
+         .compat_offset = compatoff + CONFIG_SYS_CCSRBAR_PHYS, \
+       }
+
 #define SET_LIODN_ENTRY_1(name, idA, off, compatoff) \
        { .compat = name, \
          .id = { idA }, .num_ids = 1, \
@@ -133,24 +153,37 @@ extern void fdt_fixup_liodn(void *blob);
        CONFIG_SYS_FSL_FM##fmNum##_OFFSET + \
        offsetof(struct ccsr_fman, fm_bmi_common.fmbm_ppid[portID - 1])
 
+#ifdef CONFIG_SYS_FMAN_V3
 /* enetNum is 0, 1, 2... so we + 8 for 1g to get to HW Port ID */
 #define SET_FMAN_RX_1G_LIODN(fmNum, enetNum, liodn) \
-       SET_LIODN_ENTRY_1("fsl,fman-port-1g-rx", liodn, \
-               FM_PPID_RX_PORT_OFFSET(fmNum, enetNum + 8), \
-               CONFIG_SYS_FSL_FM##fmNum##_RX##enetNum##_1G_OFFSET) \
+       SET_FMAN_LIODN_ENTRY("fsl,fman-v3-port-rx", "fsl,fman-port-1g-rx", \
+               liodn, FM_PPID_RX_PORT_OFFSET(fmNum, enetNum + 8), \
+               CONFIG_SYS_FSL_FM##fmNum##_RX##enetNum##_1G_OFFSET)
 
 /* enetNum is 0, 1, 2... so we + 16 for 10g to get to HW Port ID */
 #define SET_FMAN_RX_10G_LIODN(fmNum, enetNum, liodn) \
-       SET_LIODN_ENTRY_1("fsl,fman-port-10g-rx", liodn, \
-               FM_PPID_RX_PORT_OFFSET(fmNum, enetNum + 16), \
-               CONFIG_SYS_FSL_FM##fmNum##_RX##enetNum##_10G_OFFSET) \
+       SET_FMAN_LIODN_ENTRY("fsl,fman-v3-port-rx", "fsl,fman-port-10g-rx", \
+               liodn, FM_PPID_RX_PORT_OFFSET(fmNum, enetNum + 16), \
+               CONFIG_SYS_FSL_FM##fmNum##_RX##enetNum##_10G_OFFSET)
 
 /* enetNum is 0, 1, 2... so we + 8 for type-2 10g to get to HW Port ID */
 #define SET_FMAN_RX_10G_TYPE2_LIODN(fmNum, enetNum, liodn) \
-       SET_LIODN_ENTRY_1("fsl,fman-port-10g-rx", liodn, \
-               FM_PPID_RX_PORT_OFFSET(fmNum, enetNum + 8), \
-               CONFIG_SYS_FSL_FM##fmNum##_RX##enetNum##_1G_OFFSET) \
+       SET_FMAN_LIODN_ENTRY("fsl,fman-v3-port-rx", "fsl,fman-port-10g-rx", \
+               liodn, FM_PPID_RX_PORT_OFFSET(fmNum, enetNum + 8), \
+               CONFIG_SYS_FSL_FM##fmNum##_RX##enetNum##_1G_OFFSET)
+#else
+/* enetNum is 0, 1, 2... so we + 8 for 1g to get to HW Port ID */
+#define SET_FMAN_RX_1G_LIODN(fmNum, enetNum, liodn) \
+       SET_FMAN_LIODN_ENTRY("fsl,fman-v2-port-rx", "fsl,fman-port-1g-rx", \
+               liodn, FM_PPID_RX_PORT_OFFSET(fmNum, enetNum + 8), \
+               CONFIG_SYS_FSL_FM##fmNum##_RX##enetNum##_1G_OFFSET)
 
+/* enetNum is 0, 1, 2... so we + 16 for 10g to get to HW Port ID */
+#define SET_FMAN_RX_10G_LIODN(fmNum, enetNum, liodn) \
+       SET_FMAN_LIODN_ENTRY("fsl,fman-v2-port-rx", "fsl,fman-port-10g-rx", \
+               liodn, FM_PPID_RX_PORT_OFFSET(fmNum, enetNum + 16), \
+               CONFIG_SYS_FSL_FM##fmNum##_RX##enetNum##_10G_OFFSET)
+#endif
 /*
  * handle both old and new versioned SEC properties:
  * "fsl,secX.Y" became "fsl,sec-vX.Y" during development
@@ -199,7 +232,7 @@ extern void fdt_fixup_liodn(void *blob);
 
 extern struct liodn_id_table liodn_tbl[], liodn_bases[], sec_liodn_tbl[];
 extern struct liodn_id_table raide_liodn_tbl[];
-extern struct liodn_id_table fman1_liodn_tbl[], fman2_liodn_tbl[];
+extern struct fman_liodn_id_table fman1_liodn_tbl[], fman2_liodn_tbl[];
 #ifdef CONFIG_SYS_SRIO
 extern struct srio_liodn_id_table srio_liodn_tbl[];
 extern int srio_liodn_tbl_sz;
index 9a8a007861435872ca883e087c03284574425b7f..b3ff4c50dbe7c17098ba7d65c76d6389eccc7082 100644 (file)
@@ -3,6 +3,7 @@
  *
  * SPDX-License-Identifier:    GPL-2.0+
  */
+#include <errno.h>
 #include <common.h>
 #include <asm/io.h>
 #include <asm/fsl_serdes.h>
@@ -230,7 +231,7 @@ void board_ft_fman_fixup_port(void *blob, char * prop, phys_addr_t pa,
                                enum fm_port port, int offset)
         __attribute__((weak, alias("__def_board_ft_fman_fixup_port")));
 
-static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)
+int ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)
 {
        int off;
        uint32_t ph;
@@ -239,11 +240,13 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)
                                CONFIG_SYS_FSL_FM1_DTSEC1_OFFSET;
 
        off = fdt_node_offset_by_compat_reg(blob, prop, paddr);
+       if (off == -FDT_ERR_NOTFOUND)
+               return -EINVAL;
 
        if (info->enabled) {
                fdt_fixup_phy_connection(blob, off, info->enet_if);
                board_ft_fman_fixup_port(blob, prop, paddr, info->port, off);
-               return ;
+               return 0;
        }
 
 #ifdef CONFIG_SYS_FMAN_V3
@@ -281,7 +284,7 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)
            ((info->port == FM1_10GEC4) && (PORT_IS_ENABLED(FM1_DTSEC4)))
 #endif
        )
-               return;
+               return 0;
 #endif
        /* board code might have caused offset to change */
        off = fdt_node_offset_by_compat_reg(blob, prop, paddr);
@@ -294,6 +297,8 @@ static void ft_fixup_port(void *blob, struct fm_eth_info *info, char *prop)
        ph = fdt_get_phandle(blob, off);
        do_fixup_by_prop(blob, "fsl,fman-mac", &ph, sizeof(ph),
                "status", "disabled", strlen("disabled") + 1, 1);
+
+       return 0;
 }
 
 void fdt_fixup_fman_ethernet(void *blob)
@@ -305,10 +310,18 @@ void fdt_fixup_fman_ethernet(void *blob)
                ft_fixup_port(blob, &fm_info[i], "fsl,fman-memac");
 #else
        for (i = 0; i < ARRAY_SIZE(fm_info); i++) {
-               if (fm_info[i].type == FM_ETH_1G_E)
-                       ft_fixup_port(blob, &fm_info[i], "fsl,fman-1g-mac");
-               else
-                       ft_fixup_port(blob, &fm_info[i], "fsl,fman-10g-mac");
+               /* Try the new compatible first.
+                * If the node is missing, try the old.
+                */
+               if (fm_info[i].type == FM_ETH_1G_E) {
+                       if (ft_fixup_port(blob, &fm_info[i], "fsl,fman-dtsec"))
+                               ft_fixup_port(blob, &fm_info[i],
+                                             "fsl,fman-1g-mac");
+               } else {
+                       if (ft_fixup_port(blob, &fm_info[i], "fsl,fman-tgec"))
+                               ft_fixup_port(blob, &fm_info[i],
+                                             "fsl,fman-10g-mac");
+               }
        }
 #endif
 }