This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux:如何更改 EMAC 以使用 RMII PHY 接口

Guru**** 2568565 points
Other Parts Discussed in Thread: OMAP-L138

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/626058/linux-how-to-change-the-emac-to-work-with-rmii-phy-interface

主题中讨论的其他器件:OMAPL138OMAP-L138

工具/软件:Linux

大家好、我正在使用 SDK 4.0.0.4、并且尝试在 OMAPL138 LCDK 上启动、它确实起作用。

现在、我想对在自定义硬件上引导 Linux 进行一些更改。  

主要区别在于 EMAC 使用 RMII 接口而不是 MII。  

我已添加引脚多路复用信息。 da850/dtsi 文件中的 RMII、但不确定如何添加 sysconfig->chipselect3电阻器以启用 RMII。  

此致、

Mitesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好。
    在 da850/dtsi 文件中、我设法添加了以下 RMII 引脚多路复用器:

    RMII_Pins:pinmux_RMII_Pins{
    pinctrl-single、bits =<
    /*
    * RMII_TXD_1、RMII_TXD_0、RMII_TXEN
    * RMII_RXD_1、RMII_RXN_0、RMII_RXER
    *
    0x38 0x88888800 0xFF00
    /*
    * RMII_MHz_50_CLK、RMII_CRS_DV
    *
    0x3c 0x00000080 0x000000ff
    >;
    };

    在 da850-lcdk.dts 文件中,将其更改为:
    &eth0{
    pinctrl-names ="default";
    pinctrl-0 =<&RMII_PINs>;
    状态="正常";
    };

    但我想、缺失的是在 CFGCHIP3寄存器中启用 RMII 模式。 有什么想法如何做到这一点?

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我将对此进行研究。 我将在这里直接发布我的调查结果。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yordan、您好!

    是的。 我现在没有办法尝试。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您缺少以下内容:
    PHY-MODE ="RMII";

    如内核文档 Documentation/devicetree/bindings/net/ethernet.txt 所述:
    - phy-mode:字符串、PHY 接口的运行模式。 这现在是事实
    标准属性;支持的值为:
    *"MII"
    *"gmii"
    *"SGMII"
    "qsgmii"
    *"TBI"
    *"reV-MII"
    *"RMII"
    *"RGMII"(需要时、MAC 会添加 RX 和 TX 延迟)
    "RGMII-id"(具有 PHY 提供的内部 RX 和 TX 延迟的 RGMII
    在这种情况下、MAC 不应添加 RX 或 TX 延迟)
    *"RGMII-rxid"(具有由 PHY、MAC 提供的内部 RX 延迟的 RGMII
    在这种情况下不应添加 RX 延迟)
    "RGMII-txid"(具有由 PHY、MAC 提供的内部 TX 延迟的 RGMII
    在这种情况下不应添加 TX 延迟)
    *"rtbi"
    *"SMII"
    xgmii *
    *"trgmii"


    您是否尝试添加此项?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    我没有。 将把它添加到*。dSTI 文件中并告知您。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否提供引导日志? 可能还有所有与以太网相关的 DTS 片段?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../1665.Linux_5F00_4_5F00_SDK_5F00_4_5F00_0_5F00_0_5F00_4_5F00_CustomBoard_5F00_Log_5F00_RMII.txtHiYordan、

    它不起作用。

    这些是与 da850/dtsi 中的 eth0相关的内容

    RMII_Pins:pinmux_RMII_Pins{

                    pinctrl-single、bits =<

                        /*

                        * RMII_TXD_1、RMII_TXD_0、RMII_TXEN

                        * RMII_RXD_1、RMII_RXN_0、RMII_RXER

                        *

                        0x38 0x88888800 0xFF00

                        /*

                        * RMII_MHz_50_CLK、RMII_CRS_DV

                        *

                        0x3c 0x00000080 0x000000ff

                    >;

                };

    这些是与 da850-lcdk.dts 中的 eth0相关的内容

    &eth0{

    pinctrl-names ="default";

    pinctrl-0 =<&RMII_PINs>;

        PHY-MODE ="RMII";

    状态="正常";

    };

    cfgchip{(cfgchip)

        //pinctrl-names ="默认值";

        //pinctrl-0 =<&RMII_en>;

        状态="正常";

        RMII_en:cfgchip3_pins{

            pinctrl-single、bits =<

                /* RMII_SEL */

                0x0C 0x00000100 0x00000100

            >;

        };

        //status ="确定";

    };

    添加附加的引导日志。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    我认为这是一个缺失的链接:

    TI、Davinci-RMII-en =<1>;

    但仍然没有区别。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    我仍然认为、问题出在 cfgchip3寄存器中的 RMII 启用标志。
    是否知道如何设置此 RMII_SEL 标志?

    我们是否需要使用 dscr.txt 文档?
    如内核文档 Documentation/devicetree/bindings/C6x/dscr.txt 中所述
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    是否有任何板-omapl138-lcdk.c 类型的顶级文件?
    到目前为止,我将 da850-lcdk.dts 视为顶级文件。 在这个版本的 Linux 中、这在使用器件树方面是否有很大的不同?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好。

    如果仍有人要写入 OMAPL138 SoC 上的 cfgchip 寄存器、请告诉我吗?  

    使用设备树。

    这是从 da850/dtsi 复制的  

    cfgchip:芯片控制器@1417c{
    兼容="ti,DA830-cfgchip"、"SYSCON"、"simple-MFD";
    reg =<0x1417c 0x14>;

    USB_phy:USB-phy{
    兼容="ti、DA830-USB-phy";
    phy-cells =<1>;
    STATUS ="禁用";
    };
    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请参阅11.2.1 OMAP-L138 TRM 的特权模式保护:
    "SYSCFG 存储器映射中的多个寄存器只有在访问主机(CPU 或主外设)以特权模式(即、在监控器模式)运行时才能访问。 第11.5节列出了只能在特权模式下访问的寄存器。 有关 权限级别的详细信息、请参阅 TMS320C674x DSP CPU 和指令集参考指南(SPRUFE8)和 ARM926EJ-S 技术参考手册(TRM)、可从 infocenter.arm.com/.../index.jsp 下载。"

    CHIPCFG3是这些寄存器之一。 因此、我建议您查看 ARM926EJ-S TRM、了解如何启用监控器模式以访问该寄存器。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    何玉丹
    好的、但是 USB 使用的其他 CFGCHIP 由 dtsi 文件定义和访问。 我们想知道它是否与它类似。 但是、是的、我们将阅读这些文档。 谢谢。