The processor we are using is ls1012a, and the code used is open source flexbuild_lsdk1812_update_010719. I read the document "Document Number: LS1012ARM Rev. 2, 02/2019" and learned that the serdes of this processor can be configured in either SGMII or base1000-KX mode. The default configuration of open source software is SGMII mode. Now I want to configure serdes to base1000-KX mode. The 126.96.36.199 1000Base-KX chapter of LS1012ARM document has detailed configuration steps. But I don't know how to read and write the following registers(The following steps are taken from the configuration of the base1000-KX mode in the LS1012ARM documentation.):
4. Initialize 1000Base-KX (Clause 45) AN Advertisement Register 1:
TX_NONCE=unique value per device
5. Read 1000Base-KX (Clause 45) AN Status Register to clear any previous status
6. Initialize 1000Base-KX (Clause 45) AN Control Register to 0x1200:
My question is as follows:
1.Can I use the pfe_phy_read and pfe_phy_write functions in uboot in open source code to do this?The path of these two functions in uboot is drivers\net\pfe_eth\pfe_mdio.c
2.If I can use these two functions to do this, what parameters do I need to pass to these two functions (I have tried several, but did not succeed)?
3.If I can't use these two functions to do the above, what do I need to do?
My application is very similar to this one.Serdes is a MAC to MAC interface without an external PHY.
What you mean is that I only need to remove "fsl,gemac-phy-id" and use "fixed-link" property to replace it in DTS?
In linux, is serdes configured to 1000Base-KX mode in this case?