<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic i.MX8QXP RMII Clock Frequency Adjustment for Ethernet Conformance Testing in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-RMII-Clock-Frequency-Adjustment-for-Ethernet/m-p/2115463#M238146</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Hi NXP Community,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I am working on a custom board based on the &lt;STRONG&gt;i.MX8QXP&lt;/STRONG&gt; SoC. The Ethernet interface is configured in &lt;STRONG&gt;RMII&lt;/STRONG&gt; mode, which, according to the reference manual, operates at &lt;STRONG&gt;50 MHz&lt;/STRONG&gt;. The Ethernet port is connected to a 10/100/1000 Atheros AR8031 PHY.&lt;/P&gt;&lt;P&gt;Support for the FEC Ethernet controller and the AR8031 PHY has been enabled in the kernel via the following configuration options:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;CONFIG_FEC&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;CONFIG_AT803X_PHY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Below is the relevant section of our device tree configuration:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;amp;fec1 {
    pinctrl-names = "default";
    pinctrl-0 = &amp;lt;&amp;amp;pinctrl_fec_mdio&amp;gt;,
                &amp;lt;&amp;amp;pinctrl_fec1_gpio&amp;gt;,
                &amp;lt;&amp;amp;pinctrl_fec1&amp;gt;;
    clocks = &amp;lt;&amp;amp;enet0_lpcg 4&amp;gt;,
             &amp;lt;&amp;amp;enet0_lpcg 2&amp;gt;,
             &amp;lt;&amp;amp;clk IMX_SC_R_ENET_0 IMX_SC_C_DISABLE_50&amp;gt;,
             &amp;lt;&amp;amp;enet0_lpcg 0&amp;gt;,
             &amp;lt;&amp;amp;enet0_lpcg 1&amp;gt;;
    phy-mode = "rmii";
    phy-handle = &amp;lt;&amp;amp;external_ethphy&amp;gt;;
    phy-supply = &amp;lt;&amp;amp;reg_3v3_eth0&amp;gt;;
    phy-reset-gpios = &amp;lt;&amp;amp;lsio_gpio3 18 GPIO_ACTIVE_LOW&amp;gt;;
    phy-reset-duration = &amp;lt;1&amp;gt;;
    phy-reset-post-delay = &amp;lt;250&amp;gt;;
    digi,phy-reset-in-suspend;
    fsl,magic-packet;
    status = "okay";

    mdio {
        #address-cells = &amp;lt;1&amp;gt;;
        #size-cells = &amp;lt;0&amp;gt;;

        external_ethphy: ethernet-phy@1 {
            compatible = "ethernet-phy-ieee802.3-c22";
            smsc,disable-energy-detect;
            reg = &amp;lt;1&amp;gt;;
            /* max-speed = &amp;lt;100&amp;gt;; */
            /delete-property/ at803x,eee-disabled;
            /delete-property/ at803x,vddio-1p8v;
        };

        internal_ethphy: ethernet-phy@2 {
            compatible = "ethernet-phy-ieee802.3-c22";
            smsc,disable-energy-detect;
            reg = &amp;lt;2&amp;gt;;
            max-speed = &amp;lt;100&amp;gt;;
            /delete-property/ at803x,eee-disabled;
            /delete-property/ at803x,vddio-1p8v;
        };
    };
};&lt;/LI-CODE&gt;&lt;P&gt;The Ethernet functionality is generally working as expected. However, during Ethernet Conformance Testing, some tests are failing due to slight deviations in the RMII reference clock frequency.&lt;/P&gt;&lt;P&gt;I would like to explore whether it is possible to slightly adjust the RMII clock—e.g., to 50.0005 MHz—to see if this helps pass the conformance tests. I understand that arbitrary clock frequencies may not be feasible due to PLL constraints and the use of integer dividers. Furthermore, the i.MX8QXP Reference Manual indicates that clock generation (especially for RMII) is managed by the System Controller Firmware (SCFW), and such clocks cannot be directly modified by software running in the OS.&lt;/P&gt;&lt;P&gt;Please suggest how we can adjust the RMII clock frequency through software in this setup.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Divyansh&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 12 Jun 2025 14:08:22 GMT</pubDate>
    <dc:creator>Divyansh_Rai</dc:creator>
    <dc:date>2025-06-12T14:08:22Z</dc:date>
    <item>
      <title>i.MX8QXP RMII Clock Frequency Adjustment for Ethernet Conformance Testing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-RMII-Clock-Frequency-Adjustment-for-Ethernet/m-p/2115463#M238146</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi NXP Community,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I am working on a custom board based on the &lt;STRONG&gt;i.MX8QXP&lt;/STRONG&gt; SoC. The Ethernet interface is configured in &lt;STRONG&gt;RMII&lt;/STRONG&gt; mode, which, according to the reference manual, operates at &lt;STRONG&gt;50 MHz&lt;/STRONG&gt;. The Ethernet port is connected to a 10/100/1000 Atheros AR8031 PHY.&lt;/P&gt;&lt;P&gt;Support for the FEC Ethernet controller and the AR8031 PHY has been enabled in the kernel via the following configuration options:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;CONFIG_FEC&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;CONFIG_AT803X_PHY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Below is the relevant section of our device tree configuration:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;amp;fec1 {
    pinctrl-names = "default";
    pinctrl-0 = &amp;lt;&amp;amp;pinctrl_fec_mdio&amp;gt;,
                &amp;lt;&amp;amp;pinctrl_fec1_gpio&amp;gt;,
                &amp;lt;&amp;amp;pinctrl_fec1&amp;gt;;
    clocks = &amp;lt;&amp;amp;enet0_lpcg 4&amp;gt;,
             &amp;lt;&amp;amp;enet0_lpcg 2&amp;gt;,
             &amp;lt;&amp;amp;clk IMX_SC_R_ENET_0 IMX_SC_C_DISABLE_50&amp;gt;,
             &amp;lt;&amp;amp;enet0_lpcg 0&amp;gt;,
             &amp;lt;&amp;amp;enet0_lpcg 1&amp;gt;;
    phy-mode = "rmii";
    phy-handle = &amp;lt;&amp;amp;external_ethphy&amp;gt;;
    phy-supply = &amp;lt;&amp;amp;reg_3v3_eth0&amp;gt;;
    phy-reset-gpios = &amp;lt;&amp;amp;lsio_gpio3 18 GPIO_ACTIVE_LOW&amp;gt;;
    phy-reset-duration = &amp;lt;1&amp;gt;;
    phy-reset-post-delay = &amp;lt;250&amp;gt;;
    digi,phy-reset-in-suspend;
    fsl,magic-packet;
    status = "okay";

    mdio {
        #address-cells = &amp;lt;1&amp;gt;;
        #size-cells = &amp;lt;0&amp;gt;;

        external_ethphy: ethernet-phy@1 {
            compatible = "ethernet-phy-ieee802.3-c22";
            smsc,disable-energy-detect;
            reg = &amp;lt;1&amp;gt;;
            /* max-speed = &amp;lt;100&amp;gt;; */
            /delete-property/ at803x,eee-disabled;
            /delete-property/ at803x,vddio-1p8v;
        };

        internal_ethphy: ethernet-phy@2 {
            compatible = "ethernet-phy-ieee802.3-c22";
            smsc,disable-energy-detect;
            reg = &amp;lt;2&amp;gt;;
            max-speed = &amp;lt;100&amp;gt;;
            /delete-property/ at803x,eee-disabled;
            /delete-property/ at803x,vddio-1p8v;
        };
    };
};&lt;/LI-CODE&gt;&lt;P&gt;The Ethernet functionality is generally working as expected. However, during Ethernet Conformance Testing, some tests are failing due to slight deviations in the RMII reference clock frequency.&lt;/P&gt;&lt;P&gt;I would like to explore whether it is possible to slightly adjust the RMII clock—e.g., to 50.0005 MHz—to see if this helps pass the conformance tests. I understand that arbitrary clock frequencies may not be feasible due to PLL constraints and the use of integer dividers. Furthermore, the i.MX8QXP Reference Manual indicates that clock generation (especially for RMII) is managed by the System Controller Firmware (SCFW), and such clocks cannot be directly modified by software running in the OS.&lt;/P&gt;&lt;P&gt;Please suggest how we can adjust the RMII clock frequency through software in this setup.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Divyansh&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jun 2025 14:08:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-RMII-Clock-Frequency-Adjustment-for-Ethernet/m-p/2115463#M238146</guid>
      <dc:creator>Divyansh_Rai</dc:creator>
      <dc:date>2025-06-12T14:08:22Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX8QXP RMII Clock Frequency Adjustment for Ethernet Conformance Testing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-RMII-Clock-Frequency-Adjustment-for-Ethernet/m-p/2115710#M238156</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Thank you for your interest in NXP Semiconductor products,&lt;/P&gt;
&lt;P&gt;As said, you cannot modify the clocks or would be really hard, normally customers are advised to match as much as possible all the signals for same arrival time, after that, they tune skew with the following DTS properties.&lt;/P&gt;
&lt;P&gt;tx-internal-delay-ps:&amp;nbsp;enum: [0, 2000]&lt;/P&gt;
&lt;P&gt;rx-internal-delay-ps: enum: [0, 2000]&lt;/P&gt;
&lt;P&gt;If you would require to change specifically RMII, it's feasible to use external clock generators.&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jun 2025 22:56:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-RMII-Clock-Frequency-Adjustment-for-Ethernet/m-p/2115710#M238156</guid>
      <dc:creator>JosephAtNXP</dc:creator>
      <dc:date>2025-06-12T22:56:46Z</dc:date>
    </item>
  </channel>
</rss>

