Hi, I have a LS1043A-RGW-B. We are trying to turn up the 10G optical interface (SFP+ optical transceiver).
1) I read the linux sdk documentation for 10G optical, i modified the hwconfig as in section
37.7.6 Environment variable hwconfig and optical 10G (page 886&887)
editenv hwconfig
2) Next, I modify the fsl-ls1043a-rdb.dts (and compile)
linux/fsl-ls1043a-rdb.dts at master · torvalds/linux · GitHub
on the following section:-
ethernet@f0000 { /* 10GEC1 */
phy-handle = <&aqr105_phy>;
phy-connection-type = "xgmii";
};
to a fixed-link as below
ethernet@f0000 { /* 10GEC1 */
fixed-link = <1 1 10000 0 0>;
phy-connection-type = "xgmii";
};
When I connect to a windows based SFP+, I don't see SFP+ link up.
Next, on LS1043a-RGW-B uboot terminal, i do a ping to the windows SFP+, it cannot ping from TGEC1 to the windows. Could you please guide us on how to enable the SFP+ optical link?
many thanks in advance...
Hi, this is my mdio list command in original software on LS1043a-rgw
Hi, I have been struggling to get the SFP+ up on LS1043A-RGW even using the document LS1043A-LS1046A-BHR-RN.pdf (LS1043A/LS1046A ASK 7.0.0). Flashing to Nand section. Flashing uboot and kernel is no issue, dont get any error. But cant get SFP+ to establish a link. The SFP+ transceiver I use and uboot log as attached. ubootlogsfp+ modulesfp+ module + cable
Kindly help
Hello kl h,
LS1043AQDS integrates MAC 9 as XFI 10G SFP+ by default, please refer to u-boot and dts file LS1043ARDB.
Please refer to the function board_ft_fman_fixup_port in board/freescale/ls1043aqds/eth.c of u-boot source code.
... ...
} else if (fm_info_get_enet_if(port) == PHY_INTERFACE_MODE_XGMII &&
port == FM1_10GEC1) {
/* XFI interface */
f_link.phy_id = cpu_to_fdt32(port);
f_link.duplex = cpu_to_fdt32(1);
f_link.link_speed = cpu_to_fdt32(10000);
f_link.pause = 0;
f_link.asym_pause = 0;
/* no PHY for XFI */
fdt_delprop(fdt, offset, "phy-handle");
fdt_setprop(fdt, offset, "fixed-link", &f_link, sizeof(f_link));
fdt_setprop_string(fdt, offset, "phy-connection-type", "xgmii");
}
}
Please modify u-boot source code as the above and check whether SFP+ link is up.
In addition, please check the external PHY information.
=> mdio list
FSL_MDIO0:
FM_TGEC_MDIO:
LS1043AQDS_MDIO_RGMII1:
1 - RealTek RTL8211F <--> FM1@DTSEC3
LS1043AQDS_MDIO_RGMII2:
2 - RealTek RTL8211F <--> FM1@DTSEC4
LS1043AQDS_MDIO_SLOT1:
LS1043AQDS_MDIO_SLOT2:
LS1043AQDS_MDIO_SLOT3:
LS1043AQDS_MDIO_SLOT4:
LS1043AQDS_MDIO_10GC:
9 - Generic 10G PHY <--> FM1@TGEC1
Have a great day,
TIC
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi YiPing,
Do you mean I need to compile the uboot of LS1043aqds instead of LS1043ardb for LS1043argw board? Or do you mean i should insert the above code
} else if (fm_info_get_enet_if(port) == PHY_INTERFACE_MODE_XGMII &&
port == FM1_10GEC1) {
/* XFI interface */
f_link.phy_id = cpu_to_fdt32(port);
f_link.duplex = cpu_to_fdt32(1);
f_link.link_speed = cpu_to_fdt32(10000);
f_link.pause = 0;
f_link.asym_pause = 0;
/* no PHY for XFI */
fdt_delprop(fdt, offset, "phy-handle");
fdt_setprop(fdt, offset, "fixed-link", &f_link, sizeof(f_link));
fdt_setprop_string(fdt, offset, "phy-connection-type", "xgmii");
}
}
into eth.c of ls1043ardb and compile? It's clear that this code is not in eth.c of ls1043ardb but in eth.c of ls1043aqds.
The one I use as per original that shipped together with the reference design kit (RGW) is already in binary form. I do not know what it's compiled as, but i do suspect it's RDB's code. By default the SFP+ does not work to establish a link. I had thought at least the rgw that we bought comes with the code that has the SFP+ already working...
many thanks in helping...