Hi,
I have a problem with our new developed LS1021a board. There are three ethernet PHYs connected to LS1021a. Two PHYs are connected via RGMII with the PHY-Adresses 1 and 3.
We use LS1021A-IOT board as a reference board. We changed the RCW :
EC1=000 and EC2=000.
How should we modify U-boot configuration and Device Tree in order to ping the server from our board?
Regards
Victor
Look at ls1021a-iot.dts file and README file in rcw folder in SDK Linux BSP for the LS1021A-IOT board. These files contain examples for setting the RCW and .dts for RGMII using. These files are available as attachment.
If RGMII modes should be used in u-boot, the /board/freescale/ls1021aiot/ls1021aiot.c file should be changed.
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Pavel,
Thank you for your answer.
I verified our RCW file. We use EC1=0 and EC2=0 in order to operate in RGMII mode for both Ethernet connectors.
Could you give some advice how we need to modify the /board/freescale/ls1021aiot/ls1021aiot.c file?
Its code part, which deals with Ethernet connectors, is identical for both LS1021A-IOT and LS1021A-TWR boards. Please see below.
Regards
Victor
#ifdef CONFIG_TSEC_ENET
int board_eth_init(bd_t *bis)
{
struct fsl_pq_mdio_info mdio_info;
struct tsec_info_struct tsec_info[4];
int num = 0;
#ifdef CONFIG_TSEC1
SET_STD_TSEC_INFO(tsec_info[num], 1);
if (is_serdes_configured(SGMII_TSEC1)) {
puts("eTSEC1 is in sgmii mode.\n");
tsec_info[num].flags |= TSEC_SGMII;
}
num++;
#endif
#ifdef CONFIG_TSEC2
SET_STD_TSEC_INFO(tsec_info[num], 2);
if (is_serdes_configured(SGMII_TSEC2)) {
puts("eTSEC2 is in sgmii mode.\n");
tsec_info[num].flags |= TSEC_SGMII;
}
num++;
#endif
#ifdef CONFIG_TSEC3
SET_STD_TSEC_INFO(tsec_info[num], 3);
num++;
#endif
if (!num) {
printf("No TSECs initialized\n");
return 0;
}
mdio_info.regs = (struct tsec_mii_mng *)CONFIG_SYS_MDIO_BASE_ADDR;
mdio_info.name = DEFAULT_MII_NAME;
fsl_pq_mdio_init(bis, &mdio_info);
tsec_eth_init(bis, tsec_info, num);
return pci_eth_init(bis);
}
#endif
Hi Pavel,
Thank you for your answer. I have managed to get the attached files from the website.
Regards
Victor Mazin