cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
1,021 Views
Registered: ‎05-10-2019

How chose SGMII when generating BSP for LWIP?

I am trying to bring up Ethernet communication on our own custom board equipped with Xilinx UltraScale Zynq MPSoC.

As a first test I try to build and run the LWIP echo server that exists as an example project within XSDK. This worked perfectly on the ZCU106 evaluation board, but on our custom board I have run into problems.

The PS Ethernet MAC is connected to a Ti DP83867E PHY by SGMII.

For some reason the board support package that is generated for the LWIP echo server project does not seem to be fully configured for SGMII.

As far as I have understood it from the BSP code, the define constants XPAR_GIGE_PCS_PMA_SGMII_CORE_PRESENT and XPAR_PCSPMA_SGMII_PHYADDR need to be set for SGMII. In my BSB these constants are not set anywhere, but I was able to find an example on the Internet where these are set in xparameters.h.

Does anybody have an idea what is needed for these constants to be set? I have looked in the BSP settings, but not found any obvious way to set them from there. Out hardware engineers who make the PL design could not find a way to set them through the .hdf file.

I looked in psu_init.tcl, and found the following:

# Selection of SGMII or Non SGMII mode 0: Non SGMII 1: SGMII
# PSU_IOU_SLCR_GEM_CLK_CTRL_GEM0_SGMII_MODE                                       0x1

So it seems that when the BSP is generated, some parts of the code generation process understands that it should be SGMII, but other parts do not.

Regards,
Kaj

0 Kudos
2 Replies
stephenm
Xilinx Employee
Xilinx Employee
990 Views
Registered: ‎09-12-2007

These parameters are set if using the AXI ETHERNET or PS GEM  in SGMIIl

https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axiethernet/data/axiethernet.tcl

https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/emacps/data/emacps.tcl

(See the generate_sgmii_params proc). However, this looks like it is expecting a gig_ethernet_pcs_pma IP connected via EMIO.

There is support for this in the PS GEM standalone driver via an option to enable this. This can be added to the lwip adapter and then the phy sgmii changes are specfic to your PHY on your custom board. However, currently the lwip port in SDK doesnt have this, so this would need to be done manually

0 Kudos
kalhana_oa
Observer
Observer
690 Views
Registered: ‎10-31-2018

I'm having the same question.

Could you please describe the procedure to do this mod to lwIP?

Any idea whether this will be supported out of the box in the future?

It seems strange that PS GTR supports SGMII but there is no real firmware/driver support to make it usable.

0 Kudos