05-10-2019 03:31 AM
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.
05-13-2019 07:25 AM
These parameters are set if using the AXI ETHERNET or PS GEM in SGMIIl
(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
02-18-2020 12:48 PM
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.