于 2017年5月5日 GMT+08:00 上午2:21:29, Florian Fainelli <f.fainelli@xxxxxxxxx> 写到: >On 05/04/2017 11:10 AM, icenowy@xxxxxxx wrote: >> 在 2017-04-22 08:22,Florian Fainelli 写道: >>> On 04/21/2017 04:24 PM, Icenowy Zheng wrote: >>>> From: Icenowy Zheng <icenowy@xxxxxxxx> >>>> >>>> Some RTL8211E Ethernet PHY have an issue that needs a workaround >>>> indicated with device tree. >>>> >>>> Add the binding for a property that indicates this workaround. >>>> >>>> Signed-off-by: Icenowy Zheng <icenowy@xxxxxxxx> >>>> --- >>>> .../devicetree/bindings/net/realtek,rtl8211e.txt | 22 >>>> ++++++++++++++++++++++ >>>> 1 file changed, 22 insertions(+) >>>> create mode 100644 >>>> Documentation/devicetree/bindings/net/realtek,rtl8211e.txt >>>> >>>> diff --git >>>> a/Documentation/devicetree/bindings/net/realtek,rtl8211e.txt >>>> b/Documentation/devicetree/bindings/net/realtek,rtl8211e.txt >>>> new file mode 100644 >>>> index 000000000000..c1913301bfe8 >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/net/realtek,rtl8211e.txt >>>> @@ -0,0 +1,22 @@ >>>> +Realtek RTL8211E Ethernet PHY >>>> + >>>> +One batch of RTL8211E is slight broken, that needs some special >(and >>>> +full of magic numbers) tweaking in order to make GbE to operate >>>> properly. >>>> +The only well-known board that used the broken batch is Pine64+. >>>> +Configure it through an Ethernet OF device node. >>>> + >>>> +Optional properties: >>>> + >>>> +- realtek,disable-rx-delay: >>>> + If set, RX delay will be completely disabled (according to >>>> Realtek). This >>>> + will affect the performance on non-broken boards. >>>> + default: do not disable RX delay. >>> >>> Please don't introduce custom properties to do that, instead correct >>> specify the "phy-mode" such that it is e.g: "rgmii-txid" which >indicates >>> that there should be no RX internal delay, but a TX internal delay >added >>> by the PHY. >> >> Checked the document, the meaning of "rgmii-txid" is not correct >here. >> >> This doesn't effect the MAC, and the MAC should still add TX delay. >> >> The definition of "rgmii-txid" in >> Documentation/devicetree/binding/net/ethernet.txt is "RGMII with >> internal TX delay provided by the PHY, the MAC should not add an TX >delay >> in this case". However, this do not indicate that the MAC doesn't add >TX >> delay; in fact that just totally disabled the PHY to provide the RX >delay. >> MAC still should to add delay on both TX/RX, which is the semantic of >> standard "rgmii". >> >> So I cannot used "rgmii-txid" here, but should continue to use this >> custom property. > >This is absolutely not a correct understanding. The 'phy-mode' property >defines the contract between the MAC and PHY. It is defined from the >PHY's perspective of the delay, which means that the MAC has to either >also provide an adequate delay (RX or TX) or not (RX or TX). So if you >specified 'phy-mode' = "rgmii" this means that the MAC needs to adds >the >TX and RX delay, so implcitly this means that your MAC operates in The MAC doesn't lose its responsibility to tweak RX/TX delays with this property set. This situation is that, the PHY's RX delay tweaking function is broken. But it doesn't mean that the PHY can take over *all* responsibility to tweak TX, it still needs MAC to tweak TX. >"rgmii-id", if the property was defined from the perspective of the >MAC, >which it is not. > >Both the Ethernet PHY driver and the MAC driver need to take care of >adjusting the delays based on the phydev->interface value. > >The property you are introducing here is absolutely not appropriate >because it is entirely redundant with what 'phy-mode' already defines, >except the latter also covers a lot more cases. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html