<?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 S32K388 GMAC0 Eth_43_GMAC driver not getting RX interrupt in S32K</title>
    <link>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2409800#M60787</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm using the following configuration:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;S32K388EVB-Q289&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;S32DS 3.6.8&lt;/P&gt;&lt;P&gt;RTD 7.0.1&lt;/P&gt;&lt;P&gt;I used the provided Eth_InternalLoopback_S32K388 example project as base, and modified it so that it can receive frames from my PC through a media converter. I have added in the RTD fix which was mentioned in &lt;A href="https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K388-GMAC0-lwIP-FreeRTOS-S32DS-3-6-1-RTD600/ta-p/2355215" target="_self"&gt;Example S32K388 GMAC0 lwIP FreeRTOS S32DS 3.6.1 RTD600&lt;/A&gt;. I was able to hit the breakpoint in&amp;nbsp;&lt;BR /&gt;Eth_43_GMAC_Receive(EthConf_EthCtrlConfig_EthCtrlConfig_0, 0U, &amp;amp;Status);&lt;BR /&gt;And was able to inspect the Ethernet frame in&lt;BR /&gt;&lt;SPAN&gt;EthIf_RxIndication(Eth_43_GMAC_apxInternalCfg[PartitionId]-&amp;gt;Eth_43_GMAC_apCtrlConfig[CtrlIdx]-&amp;gt;EthCtrlEthIfIdx, FrameType, IsBroadcast, MacSrcAddr, Payload, PayloadLength, IngressTimeTuplePtr, RxHandleId);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;However, when I added a while 1 loop, enabled the Rx Interrupt and linked it to the&amp;nbsp;GMAC0_CH0_RX_IRQHandler I was not able to get any interrupt anywhere. I have attached my project below.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="James_Zhang_SE_0-1788220964718.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395649iBE40D49A38E377B8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="James_Zhang_SE_0-1788220964718.png" alt="James_Zhang_SE_0-1788220964718.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;LI-PRODUCT title="S32K3" id="S32K3"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;LI-PRODUCT title="AUTOMOTIVE-RTD" id="AUTOMOTIVE-RTD"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 01 Sep 2026 00:05:49 GMT</pubDate>
    <dc:creator>James_Zhang_SE</dc:creator>
    <dc:date>2026-09-01T00:05:49Z</dc:date>
    <item>
      <title>S32K388 GMAC0 Eth_43_GMAC driver not getting RX interrupt</title>
      <link>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2409800#M60787</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm using the following configuration:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;S32K388EVB-Q289&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;S32DS 3.6.8&lt;/P&gt;&lt;P&gt;RTD 7.0.1&lt;/P&gt;&lt;P&gt;I used the provided Eth_InternalLoopback_S32K388 example project as base, and modified it so that it can receive frames from my PC through a media converter. I have added in the RTD fix which was mentioned in &lt;A href="https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K388-GMAC0-lwIP-FreeRTOS-S32DS-3-6-1-RTD600/ta-p/2355215" target="_self"&gt;Example S32K388 GMAC0 lwIP FreeRTOS S32DS 3.6.1 RTD600&lt;/A&gt;. I was able to hit the breakpoint in&amp;nbsp;&lt;BR /&gt;Eth_43_GMAC_Receive(EthConf_EthCtrlConfig_EthCtrlConfig_0, 0U, &amp;amp;Status);&lt;BR /&gt;And was able to inspect the Ethernet frame in&lt;BR /&gt;&lt;SPAN&gt;EthIf_RxIndication(Eth_43_GMAC_apxInternalCfg[PartitionId]-&amp;gt;Eth_43_GMAC_apCtrlConfig[CtrlIdx]-&amp;gt;EthCtrlEthIfIdx, FrameType, IsBroadcast, MacSrcAddr, Payload, PayloadLength, IngressTimeTuplePtr, RxHandleId);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;However, when I added a while 1 loop, enabled the Rx Interrupt and linked it to the&amp;nbsp;GMAC0_CH0_RX_IRQHandler I was not able to get any interrupt anywhere. I have attached my project below.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="James_Zhang_SE_0-1788220964718.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395649iBE40D49A38E377B8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="James_Zhang_SE_0-1788220964718.png" alt="James_Zhang_SE_0-1788220964718.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;LI-PRODUCT title="S32K3" id="S32K3"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;LI-PRODUCT title="AUTOMOTIVE-RTD" id="AUTOMOTIVE-RTD"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 01 Sep 2026 00:05:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2409800#M60787</guid>
      <dc:creator>James_Zhang_SE</dc:creator>
      <dc:date>2026-09-01T00:05:49Z</dc:date>
    </item>
    <item>
      <title>Re: S32K388 GMAC0 Eth_43_GMAC driver not getting RX interrupt</title>
      <link>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2410146#M60819</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/256069"&gt;@James_Zhang_SE&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;I checked the attached project. To enable RX IRQ in RTD7.0.1, you need to change Ingress QueueHandlerFunction and enable QueueInterrupt:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PavelL_0-1788263577590.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395711iE4D7512D4447B051/image-size/medium?v=v2&amp;amp;px=400" role="button" title="PavelL_0-1788263577590.png" alt="PavelL_0-1788263577590.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;After that change, I hit breakpoint at&amp;nbsp;GMAC_RxIRQHandler(), resp. at&amp;nbsp;Eth_43_GMAC_Receive().&lt;/P&gt;
&lt;P&gt;I also noticed that your RGMII TXCLK is defined as Input -&amp;gt; it should be Output.&lt;/P&gt;
&lt;P&gt;However, to see your TX frame in Wireshark, you need to change the init sequence accordingly to &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K388-GMAC0-lwIP-FreeRTOS-S32DS-3-6-1-RTD600/ta-p/2355215" target="_blank"&gt;Example S32K388 GMAC0 lwIP FreeRTOS S32DS 3.6.1 RTD600&lt;/A&gt;&lt;SPAN&gt;. So, in your project, it looks like&lt;/SPAN&gt;:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PavelL_1-1788264277735.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/395713i68AD43E3915B3D62/image-size/medium?v=v2&amp;amp;px=400" role="button" title="PavelL_1-1788264277735.png" alt="PavelL_1-1788264277735.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Tue, 01 Sep 2026 12:07:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2410146#M60819</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2026-09-01T12:07:52Z</dc:date>
    </item>
    <item>
      <title>Re: S32K388 GMAC0 Eth_43_GMAC driver not getting RX interrupt</title>
      <link>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2412456#M60957</link>
      <description>&lt;P&gt;Hi Pavel,&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Thank you very much for your support. After applying the fixes you suggested, the GMAC driver is now working for me.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;I do have a few additional questions, and I would appreciate your guidance:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;Is there any detailed documentation that describes the complete procedure for configuring and using the GMAC driver? I would like to go through the documentation myself first so that I can better understand the driver before asking too many questions.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Inside &lt;/SPAN&gt;&lt;SPAN&gt;EthIf_RxIndication()&lt;/SPAN&gt;&lt;SPAN&gt;, do I need to call&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Eth_43_GMAC_ReleaseRxBuffer(CtrlIdx, RxHandleId);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;at the end of the function to release the received buffer?&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;There are quite a few GMAC configuration options available. Is there any documentation or reference that explains what each configuration parameter does and how it should be configured?&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;Thank you again for your help. I really appreciate your support.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2026 19:35:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2412456#M60957</guid>
      <dc:creator>James_Zhang_SE</dc:creator>
      <dc:date>2026-09-09T19:35:37Z</dc:date>
    </item>
    <item>
      <title>Re: S32K388 GMAC0 Eth_43_GMAC driver not getting RX interrupt</title>
      <link>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2412579#M60960</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/256069"&gt;@James_Zhang_SE&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;DIV&gt;
&lt;P&gt;Thank you for sharing your update. I am glad to hear that the GMAC driver is now working for you.&lt;/P&gt;
&lt;P&gt;Regarding your additional questions:&lt;/P&gt;
&lt;P&gt;1. The main reference for configuring and using the driver is the Eth_43_GMAC User Manual, which is included in the RTD installation, e.g.: C:\NXP\S32DS.3.6.6_RTD701\S32DS\software\PlatformSDK_S32K3\RTD\Eth_43_GMAC_TS_T40D34M70I1R0\doc\RTD_ETH_43_GMAC_UM.pdf&lt;/P&gt;
&lt;DIV&gt;I also recommend reviewing the corresponding Eth_43_GMAC Integration Manual&amp;nbsp;(RTD_ETH_43_GMAC_IM.pdf), saved in the same directory, and the available GMAC example projects.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;2. Whether Eth_43_GMAC_ReleaseRxBuffer() must be called depends on the EthCtrlReleaseResourceAfterReception configuration parameter.&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PavelL_0-1789024403441.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396215i1FB3F08641B09BAF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="PavelL_0-1789024403441.png" alt="PavelL_0-1789024403441.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If automatic release after reception is enabled, the driver releases the RX resource after EthIf_RxIndication() returns and you should not release it explicitly.&lt;/P&gt;
&lt;P&gt;If automatic release is disabled, the received buffer remains allocated after EthIf_RxIndication() returns. In that case, the application must eventually call:&lt;/P&gt;
&lt;DIV class="___hy8ozz0 f10pi13n f1koksc9 ffwt4oh frbg12y fgutdgb f159t74k f1irbtxz fml94gg f14e36gq f17qsv72 fcwkhs0 f19q529j fr8ou9z f1ccdub3 f1pfoh9j f1511p4b"&gt;
&lt;DIV class="___1hewfwb f10pi13n f7oukh6 f5p0z4x" tabindex="0" role="group" aria-label="Code Preview"&gt;
&lt;DIV class="scriptor-component-code-block _3d854c6170294c7a scriptor-codeblock-virtualized" tabindex="-1" data-theme="dark"&gt;
&lt;DIV class="_8509865607d1b05c"&gt;
&lt;DIV class="rrd10u0 fui-AriaLive__assertive" aria-live="assertive"&gt;&lt;SPAN&gt;Eth_43_GMAC_ReleaseRxBuffer(CtrlIdx, RxHandleId);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="d6628f47bac1f6fb _4d170040ed17265b add5741cc667cc72 b5f8b88afc6929a5"&gt;
&lt;DIV class="a652214b98a02650 _12e1419198fa4f09 e6e3ddd020c195d7"&gt;
&lt;DIV class="c845dc4ea22371aa" data-virtualized-code-find-root="true"&gt;
&lt;DIV class="_8d4e63c43353e9be"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;This mode is useful when the application needs to retain the received data for further processing. However, the buffer must be released after the application has finished using it. Otherwise, the available RX buffers will eventually be exhausted.&lt;/P&gt;
&lt;P&gt;Please also note that the received Payload pointer should not be used after the corresponding buffer has been released.&lt;/P&gt;
&lt;P&gt;3. The Eth_43_GMAC User Manual is also the primary reference for the individual configuration parameters. In addition, S32 Configuration Tools displays a description for many parameters when the corresponding setting is selected or hovered over. For hardware-level behavior, such as MAC filtering, DMA operation, MTL queues, timestamps and interrupt status, please refer to the GMAC/EMAC chapter of the S32K3 Reference Manual.&lt;/P&gt;
&lt;P&gt;As a practical starting point, I recommend referencing GMAC examples provided by the RTD package. There are also functional lwIP examples on the page:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.nxp.com/t5/S32K-Knowledge-Base/S32K-Examples/ta-p/1108990" target="_blank"&gt;https://community.nxp.com/t5/S32K-Knowledge-Base/S32K-Examples/ta-p/1108990&lt;/A&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please do not hesitate to ask for support in case you observe any issue. A dedicated thread for each topic is preferred. It helps keep us clarity of cases for other users.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Pavel&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2026 07:26:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K388-GMAC0-Eth-43-GMAC-driver-not-getting-RX-interrupt/m-p/2412579#M60960</guid>
      <dc:creator>PavelL</dc:creator>
      <dc:date>2026-09-10T07:26:16Z</dc:date>
    </item>
  </channel>
</rss>

