How configurate LS1021A in order to use Ethernet controllers with RGMII protocols?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How configurate LS1021A in order to use Ethernet controllers with RGMII protocols?

1,344 Views
victormazin
Contributor II

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

Labels (1)
0 Kudos
4 Replies

988 Views
Pavel
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

988 Views
victormazin
Contributor II

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

0 Kudos

988 Views
victormazin
Contributor II

Hi Pavel,

Thank you for your answer. I have managed to get the attached files from the website.

Regards

Victor Mazin

0 Kudos

988 Views
victormazin
Contributor II

Hi Pavel,

Thank you for your answer.

Unfortunately, I did not find the attached files, which are mentioned in your letter. Could you send them again, please?

Regards

Victor Mazin

0 Kudos