On Tue, Dec 17, 2024 at 10:26:15AM +0800, Yijie Yang wrote: > > > On 2024-12-16 17:18, Andrew Lunn wrote: > > > I intend to follow these steps. Could you please check if they are correct? > > > 1. Add a new flag in DTS to inform the MAC driver to include the delay when > > > configured with 'rgmii-id'. Without this flag, the MAC driver will not be > > > aware of the need for the delay. > > > > Why do you need this flag? > > > > If the phy-mode is rgmii-id, either the MAC or the PHY needs to add > > the delay. > > > > The MAC driver gets to see phy-mode first. If it wants to add the > > delay, it can, but it needs to mask out the delays before passing > > phy-mode to the PHY. If the MAC driver does not want to add the > > delays, pass phy-mode as is the PHY, and it will add the delays. > > In this scenario, the delay in 'rgmii-id' mode is currently introduced by > the MAC as it is fixed in the driver code. How can we enable the PHY to add > the delay in this mode in the future (If we intend to revert to the most > common approach of the Linux kernel)? After all, the MAC driver is unsure > when to add the delay. You just take out the code in the MAC driver which adds the delay and masks the phy-mode. 2ns should be 2ns delay, independent of who inserts it. The only danger is, there might be some board uses a PHY which is incapable of adding the 2ns delay, and such a change breaks that board. But i assume Qualcomm RDKs always make use of a Qualcomm PHY, there is special pricing if you use the combination, so there is probably little incentive to use somebody elses PHY. And i assume you can quickly check all Qualcomm PHYs support RGMII delays. PHYs which don't support RGMII delays are very rare, it just happened that one vendors RDK happened to use one, so they ended up with delays in the MAC being standard for their boards. Andrew