2397599_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2397599_zh-CN

2397599_zh-CN

TJA1120A RGMII 模式 - 延迟配置

这是 TJA1120A 的设备树 - cpsw_port1,cpsw3g_phy0

&cpsw_port1 {
        status = "okay";
        phy-mode = "rgmii-txid";
        phy-handle = <&cpsw3g_phy0>;
};

&cpsw_port2 {
        status = "okay";
        phy-mode = "rgmii";
        phy-handle = <&cpsw3g_phy1>;
};

&cpsw3g_mdio {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_mdio1_pins_default>;

        cpsw3g_phy0: ethernet-phy@0 {
                compatible = "ethernet-phy-id001b.b031";
                reg = <4>;
        };
        cpsw3g_phy1: ethernet-phy@1 {
                        compatible = "ethernet-phy-id0022.1620";
                        reg = <0>;
                        txc-skew-ps = <900>;
                        rxc-skew-ps = <900>;
                        rxd0-skew-ps = <420>;
                        rxd1-skew-ps = <420>;
                        rxd2-skew-ps = <420>;
                        rxd3-skew-ps = <420>;
                        txd0-skew-ps = <420>;
                        txd1-skew-ps = <420>;
                        txd2-skew-ps = <420>;
                        txd3-skew-ps = <420>;
                        rxdv-skew-ps = <420>;
                        txen-skew-ps = <420>;
        };
};

这里我们将“rgmii-txid”指定为 TJA1120A 的 phy-mode。

但是当我读取寄存器RGMII_TXC_DELAY_CONFIG 时,读取到的是 0x0014,这意味着没有延迟(第 15 位),而RGMII_RXC_DELAY_CONFIG读取到的是 0x8014,这意味着延迟已设置(第 15 位)。

另外,如果我在 DT 中将 phy-mode 更改为“rgmii-rxid”,则RGMII_RXC_DELAY_CONFIG读取 0x0014, RGMII_TXC_DELAY_CONFIG读取 0x8014。

我刚刚尝试在 DT 中设置“rgmii”,然后使用 phytool 设置这些寄存器,它完美地反映了并开始 ping,然后将RGMII_RXC_DELAY_CONFIG第 15 位设置为高电平,将RGMII_TXC_DELAY_CONFIG第 15 位设置为低电平。

我想了解为什么在 phy-mode 的 DT 配置下会发生这种反转。

对于我们基于 AM62A7 的 ECU,PCB 需要对 RX_Clock 进行内部延迟,因此设置了“rgmii-txid”。目前运行正常。


另外,我还想知道这种 PHY 模式下引脚连接是否可用,以及 DTS 是否负责处理。

Re: TJA1120A RGMII Mode- Delay Config

您好,

根据 TJA1120A 文档,RGMII 延迟配置可能会让人有些困惑,因为寄存器名称和寄存器内部描述的延迟并不直接匹配。

请参阅设备 DS 中的 RGMII_RXC_DELAY_CONFIG/RGMII_TXC_DELAY_CONFIG 寄存器位描述:

0xAFCC RGMII_RXC_DELAY_CONFIG:位 15 = 启用内部 TXC 延迟
0xAFCD RGMII_TXC_DELAY_CONFIG:位 15 = 启用内部 RXC 延迟
 

因此,在检查配置时,重点是实际的寄存器位描述和初始化后最终的寄存器读取值。

另请注意,引脚绑定仅定义 RESET 后的默认配置。软件驱动程序稍后可以通过 MDIO 覆盖此设置,因此应在系统启动后通过读取寄存器来验证有效配置。

另外,请确保 MAC 端和 PHY 端没有同时启用相同的 RGMII 时钟延迟,除非这是电路板时序设计所要求的。

BR,彼得

Tags (1)
No ratings
Version history
Last update:
a week ago
Updated by: