<?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 Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418488#M63052</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;I know that this question is very old, but I&amp;nbsp;want to ask only if this is still a problem with iMX6 with kernel 4.9.xxxx for instance on yocto sumo.&lt;/P&gt;&lt;P&gt;How can I know if ipv6 Multicast DNS is working properly on my iMX6 ULL?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm having some problems with mDNS with ipv6,&amp;nbsp;so I'm asking here to try to isolate&amp;nbsp;all possibile alternatives and search in the right place to fix my issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 18 Dec 2018 19:19:57 GMT</pubDate>
    <dc:creator>stefano_cappa_k</dc:creator>
    <dc:date>2018-12-18T19:19:57Z</dc:date>
    <item>
      <title>i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418484#M63048</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This applies at least to the i.MX28 and i.MX53. It may apply to the i.MX6 chips as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Our products have to use IPV6. The IPV6 Neighbour Discovery requires Ethernet Multicasting to work. Multicasting has been "standard" on Ethernet for over 20 years, so that should work on these chips.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Few of the Freescale Linux FEC drivers prior to Kernel 3.11 seem to handle receiving Multicasts properly. They don't work properly in "Promiscuous" mode either.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This has only recently been fixed on the "mainline", but I'm using Freescale's "imx_2.6.35_maintain" branch, and there are no patches fixing that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That means that IPV6 (dates from 15 years ago) doesn't work reliably if at all. It also means IPV4 Multicasting (21 years ago) has the same problem. Also promiscuous bridging/monitoring.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's what happens&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the link comes up (initially or after the Ethernet cable is unplugged and plugged in again) the code calls "fec_restart()". That wipes out the Multicast filters. When the link comes up, calls to "set_multicast_list()" are made to fill in the filter again. After that has finished, the MII polling code notices the link has come up, calls "fec_enet_adjust_link()" and that calls "fec_restart()" and wipes them out again. So it now can't receive the multicasts. If you're really lucky with exactly the right timing in the /etc/init.d scripts, it might come up in the right order. When it is in the bad state you can type "ifconfig eth0 up", that puts the multicast filters back without restarting it and it now works until the next time the Ethernet cable is unplugged. If you "ifconfig eth0 down"you then have to bring it "up" twice to get multicast reception working again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's the 2.6.35 "fec.c" and (pretty much identical in this function) 3.10 "fec_main.c":&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35" rel="nofollow noopener noreferrer" target="_blank"&gt;http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http://lxr.free-electrons.com/source/drivers/net/ethernet/freescale/fec_main.c?v=3.10" rel="nofollow noopener noreferrer" target="_blank"&gt;http://lxr.free-electrons.com/source/drivers/net/ethernet/freescale/fec_main.c?v=3.10&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apologies for the next line. It looked perfect when I pasted the code in when originally creating this page. The Site only mangled it all into one line after I'd posted it. I've had to have three goes at fixing it up to make it readable since then.&lt;/P&gt;&lt;PRE&gt;&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1145" name="L1145" rel="nofollow noopener noreferrer" target="_blank"&gt;1145&lt;/A&gt; &lt;STRONG&gt;&lt;EM&gt;/* This function is called to start or restart the FEC during a link&lt;/EM&gt;&lt;/STRONG&gt;&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1146" name="L1146" rel="nofollow noopener noreferrer" target="_blank"&gt;1146&lt;/A&gt; &lt;STRONG&gt;&lt;EM&gt; * change.&amp;nbsp; This only happens when switching between half and full&lt;/EM&gt;&lt;/STRONG&gt;&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1147" name="L1147" rel="nofollow noopener noreferrer" target="_blank"&gt;1147&lt;/A&gt; &lt;STRONG&gt;&lt;EM&gt; * duplex.&lt;/EM&gt;&lt;/STRONG&gt;&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1148" name="L1148" rel="nofollow noopener noreferrer" target="_blank"&gt;1148&lt;/A&gt; &lt;STRONG&gt;&lt;EM&gt; */&lt;/EM&gt;&lt;/STRONG&gt;&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1149" name="L1149" rel="nofollow noopener noreferrer" target="_blank"&gt;1149&lt;/A&gt; static void&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1150" name="L1150" rel="nofollow noopener noreferrer" target="_blank"&gt;1150&lt;/A&gt; &lt;A href="http://lxr.free-electrons.com/ident?v=2.6.35;i=fec_restart" rel="nofollow noopener noreferrer" target="_blank"&gt;fec_restart&lt;/A&gt;(struct &lt;A href="http://lxr.free-electrons.com/ident?v=2.6.35;i=net_device" rel="nofollow noopener noreferrer" target="_blank"&gt;net_device&lt;/A&gt; *&lt;A href="http://lxr.free-electrons.com/ident?v=2.6.35;i=dev" rel="nofollow noopener noreferrer" target="_blank"&gt;dev&lt;/A&gt;, int &lt;A href="http://lxr.free-electrons.com/ident?v=2.6.35;i=duplex" rel="nofollow noopener noreferrer" target="_blank"&gt;duplex&lt;/A&gt;)&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1151" name="L1151" rel="nofollow noopener noreferrer" target="_blank"&gt;1151&lt;/A&gt; { ...&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1161" name="L1161" rel="nofollow noopener noreferrer" target="_blank"&gt;1161&lt;/A&gt; &lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1162" name="L1162" rel="nofollow noopener noreferrer" target="_blank"&gt;1162&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&lt;EM&gt;/* Reset all multicast. */&lt;/EM&gt;&lt;/STRONG&gt;&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1163" name="L1163" rel="nofollow noopener noreferrer" target="_blank"&gt;1163&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://lxr.free-electrons.com/ident?v=2.6.35;i=writel" rel="nofollow noopener noreferrer" target="_blank"&gt;writel&lt;/A&gt;(0, fep-&amp;gt;hwp + &lt;A href="http://lxr.free-electrons.com/ident?v=2.6.35;i=FEC_GRP_HASH_TABLE_HIGH" rel="nofollow noopener noreferrer" target="_blank"&gt;FEC_GRP_HASH_TABLE_HIGH&lt;/A&gt;);&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1164" name="L1164" rel="nofollow noopener noreferrer" target="_blank"&gt;1164&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://lxr.free-electrons.com/ident?v=2.6.35;i=writel" rel="nofollow noopener noreferrer" target="_blank"&gt;writel&lt;/A&gt;(0, fep-&amp;gt;hwp + &lt;A href="http://lxr.free-electrons.com/ident?v=2.6.35;i=FEC_GRP_HASH_TABLE_LOW" rel="nofollow noopener noreferrer" target="_blank"&gt;FEC_GRP_HASH_TABLE_LOW&lt;/A&gt;);&lt;A href="http://lxr.free-electrons.com/source/drivers/net/fec.c?v=2.6.35#L1165" name="L1165" rel="nofollow noopener noreferrer" target="_blank"&gt;
&lt;/A&gt;

&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14371099399833897 jive_macro_code jive_text_macro" data-renderedposition="631_8_1226_208" jivemacro_uid="_14371099399833897"&gt;&lt;P&gt;1145 /* This function is called to start or restart the FEC during a link
1146&amp;nbsp; * change.&amp;nbsp; This only happens when switching between half and full
1147&amp;nbsp; * duplex.
1148&amp;nbsp; */
1149 static void
1150 fec_restart(struct net_device *dev, int duplex)
1151 {
 ...
1161 
1162&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reset all multicast. */
1163&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writel(0, fep-&amp;gt;hwp + FEC_GRP_HASH_TABLE_HIGH);
1164&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writel(0, fep-&amp;gt;hwp + FEC_GRP_HASH_TABLE_LOW);

&lt;/P&gt;&lt;/PRE&gt;&lt;/PRE&gt;&lt;P&gt;First of all, the comment on that function is wrong. It may have been called for that originally, but by this version it is also called on link timeout and link state change.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's the fixed 3.14 version, still with the bad comment:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14371100297563708 jive_text_macro" data-renderedposition="937_8_1226_192" jivemacro_uid="_14371100297563708"&gt;&lt;P&gt;491 /* This function is called to start or restart the FEC during a link
492&amp;nbsp; * change.&amp;nbsp; This only happens when switching between half and full
493&amp;nbsp; * duplex.
494&amp;nbsp; */
495 static void
496 fec_restart(struct net_device *ndev, int duplex)
497 {
...
651&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Setup multicast filter. */
652&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set_multicast_list(ndev);

&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;PRE&gt;The driver isn't all that "stable" as there have been at least 102 patches to this source code
file alone since then. One of them (in 3.17 I think) at least fixed the comment:

&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14371101360719952" data-renderedposition="1206_8_1226_144" jivemacro_uid="_14371101360719952"&gt;&lt;P&gt;914 /*
915&amp;nbsp; * This function is called to start or restart the FEC during a link
916&amp;nbsp; * change, transmit timeout, or to reconfigure the FEC.&amp;nbsp; The network
917&amp;nbsp; * packet processing for this device must be stopped before this call.
918&amp;nbsp; */
919 static void
920 fec_restart(struct net_device *ndev)
921 {

&lt;/P&gt;&lt;/PRE&gt;&lt;/PRE&gt;&lt;P&gt;This problem was documented and patched here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http://kernel.opensuse.org/cgit/kernel/commit/?id=772e42b07fbdc650206746e00cb2914e362594a3" rel="nofollow noopener noreferrer" target="_blank"&gt;http://kernel.opensuse.org/cgit/kernel/commit/?id=772e42b07fbdc650206746e00cb2914e362594a3&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That fix was buggy, as complained about here (wiping out the Promiscuous setting for bridges and packet monitoring):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http://permalink.gmane.org/gmane.linux.network/307446" rel="nofollow noopener noreferrer" target="_blank"&gt;http://permalink.gmane.org/gmane.linux.network/307446&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then patched again here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http://kernel.opensuse.org/cgit/kernel/commit/?id=84fe61821e4ebab6322eeae3f3c27f77f0031978" rel="nofollow noopener noreferrer" target="_blank"&gt;http://kernel.opensuse.org/cgit/kernel/commit/?id=84fe61821e4ebab6322eeae3f3c27f77f0031978&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Update. I've found a patch, but only on Freescale's "imx_3.0.35_4.1.0" branch. This one fixes the "Multicast" problem without fixing the "Promiscuous" problem:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&lt;SPAN&gt;Author: Fugang Duan &amp;lt;&lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:B38611@freescale.com" rel="nofollow noopener noreferrer" target="_blank"&gt;B38611@freescale.com&lt;/A&gt;&lt;SPAN&gt;&amp;gt;&amp;nbsp; 2013-11-26 17:18:36&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&lt;SPAN&gt;Committer: Jason Liu &amp;lt;&lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:r64343@freescale.com" rel="nofollow noopener noreferrer" target="_blank"&gt;r64343@freescale.com&lt;/A&gt;&lt;SPAN&gt;&amp;gt;&amp;nbsp; 2014-01-24 13:33:26&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Parent: 76f9b385fe7d4602f3157d309f4ba793ac13bb36 (ENGR00291667-02 net:fec_ptp: fix the potential issue for storing timestamp)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Branch: remotes/origin/remote/freescale/imx_3.0.35_4.1.0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENGR00291667-01 net:fec: reinit multicast address when fec restart&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ptp multicast packet receive does not work after Ethernet link is lost&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for a short time and then reconnected again. Because fec call restart()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; to reset all multicast when cable hotplug.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cherry picked from commit adfa64f0c2bf35f8b902ae5700f97e7e11ae1794)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Jul 2015 05:05:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418484#M63048</guid>
      <dc:creator>TomE</dc:creator>
      <dc:date>2015-07-17T05:05:19Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418485#M63049</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;May i ask why you need to use the 2.6.35 downstream kernel for i.MX28 instead of the Mainline kernel?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to your problem:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/qca/qca7000/blob/master/qca-linux-2.6.35.3-imx.patch"&gt;https://github.com/qca/qca7000/blob/master/qca-linux-2.6.35.3-imx.patch&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is a patch series for a MX28 board from Qualcomm. Please take a look Patch #3. This should fix your problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Jul 2015 08:38:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418485#M63049</guid>
      <dc:creator>lategoodbye</dc:creator>
      <dc:date>2015-07-18T08:38:02Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418486#M63050</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; May i ask why you need to use the 2.6.35 downstream kernel for i.MX28 instead of the Mainline kernel?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry, I wasn't clear. We're using the i.MX53, and I originally wrote the post with that in the Subject. Then I realized the problem applied to far more i.MX chips than the one we're using, so I expanded the subject to cover all the affected ones.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why aren't we using the Mainline on the i.MX53? Because the i.MX53 isn't supported in the Mainline, and I'm guessing will never be. Maybe the i.MX28 is luckier in this regard.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I say "supported" I don't mean the CPU Core, memory interfaces and the common stuff like the Ethernet [1], USN and UARTs. They work, obviously. But if all our product required was a CPU Core we wouldn't have selected these chips, where the "M" in "i.MX" stands for Multimedia.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The i.MX5x (as the i.MX51) has been around since 2009 and we started with the i.MX53 in 2012, when it was already a bit old for a new product (I have i.MX53 documents dated 2010). The mainline Linux at that time (circa 3.4)&amp;nbsp; didn't even support LVDS output, and had nothing able to support simple video input. It is now about 5 years into the product cycle and the mainline STILL doesn't support the video/VPU/GPU/ICS/IPU hardware. All the current effort looks to be on getting the video input and output hardware in the i.MX6 chips working (and they've been out for years), but some of the patch sets I'm seeing there are i.MX6 specific and don't support the i.MX53.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As another complication, the mainline doesn't support the i.MX53 NAND controller. It doesn't play nice with 2k page chips and needs patching. So does the JFFS2 driver to run on that controller. Freescale patched these years ago in its branch, but they're not in the mainline, and our supplier dropped their support for these patches in 3.4, so we're stuck.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Compared with that, Freescale have always released old kernels with over 1000 Freescale-specific patches applied to make their hardware work. They then reapply those same patches to each new kernel while they were tracking the releases. Just clone "&lt;A href="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/" title="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/"&gt;linux-2.6-imx.git - Freescale i.MX Linux Tree&lt;/A&gt;" and do "gitk --all" to see how they've been managing it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;They moved to 3.0 for the i.MX6, but stayed with 2.6.35 for the i.MX53, and haven't updated that tree in years. Why aren't they frantically tracking the mainline? Because with over 1000 patches to apply that would take an enormous amount of work, as various people keep completely changing the way the kernel does things, and moving and renaming source files (from "fec.c" to "fec-main.c" and so on), and that makes reapplying patches hugely difficult. It wouldn't help their existing customers all that much. If the embedded product you're building works with a 2010 version of Linux, then why try to change it in the field with all the risks that entails?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note 1: Not a good example, being the subject of this thread.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Jul 2015 04:10:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418486#M63050</guid>
      <dc:creator>TomE</dc:creator>
      <dc:date>2015-07-19T04:10:27Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418487#M63051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Tom Evans,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the i.MX5 chip was developed there is not linux version 3.0.35 released which suppored Multicasts and Promiscuous; so the 2.6.35 kernel was used, which not support Multicasts and Promiscuous for code baseline. By the development of the i.MX6 chip linux 3.0.35 released.&lt;/P&gt;&lt;P&gt;You can cherry-pick the patch and changes from version 3.0.35 to you 2.6.36 for i.mx28/i.mx5 but at this time Freescale have no these on the roadmap.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Aug 2015 17:44:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418487#M63051</guid>
      <dc:creator>gusarambula</dc:creator>
      <dc:date>2015-08-12T17:44:31Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418488#M63052</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;I know that this question is very old, but I&amp;nbsp;want to ask only if this is still a problem with iMX6 with kernel 4.9.xxxx for instance on yocto sumo.&lt;/P&gt;&lt;P&gt;How can I know if ipv6 Multicast DNS is working properly on my iMX6 ULL?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm having some problems with mDNS with ipv6,&amp;nbsp;so I'm asking here to try to isolate&amp;nbsp;all possibile alternatives and search in the right place to fix my issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Dec 2018 19:19:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418488#M63052</guid>
      <dc:creator>stefano_cappa_k</dc:creator>
      <dc:date>2018-12-18T19:19:57Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418489#M63053</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The problem I reported happened if the Ethernet cable was unplugged and then plugged back in again. The Ethernet code that handled "Link Down" didn't handle the multicast filters properly, so the filters that were meant to be receiving IPV6 Multicasts got cleared.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These fixes went into the mainline at 3.10 and 3.14. It is unlikely the bugs have been reinstated between there and 4.9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have this, then running after a cable disconnect should be different to booting with the cable connected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There's plenty of other things to go wrong with mDNS. Have it try and register something and see if you can see it with "avahi-browse" or some other mDNS checking tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Dec 2018 02:09:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418489#M63053</guid>
      <dc:creator>TomE</dc:creator>
      <dc:date>2018-12-19T02:09:01Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418490#M63054</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok, so the problem is different but It can be related in some way.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With DNS-SD and only with an ipv6 address assigned (no IPv4) I'm able to register a service without issues, but I cannot send mdns packets on the lan (I checked with wireshark). Obviously with IPv4 everything is OK.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With ipv6 I only see icmpv6 packets. All mDNS are missing.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I run the official Apple's mdnsresponder (latest version) I see an error while attaching to ipv6 interface (the mask is wrong):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;~ # mdnsd -debug&lt;/P&gt;&lt;P&gt;mDNSResponder (Engineering Build) (Dec 10 2018 13:10:41) starting&lt;/P&gt;&lt;P&gt;setsockopt - SO_RECV_ANYIF: Protocol not available&lt;/P&gt;&lt;P&gt;setsockopt - SO_RECV_ANYIF: Protocol not available&lt;/P&gt;&lt;P&gt;mDNS_RegisterInterface: Error! Tried to register a NetworkInterfaceInfo fe80::3ab1:9eff:fe10:6 with invalid mask ::&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Dec 2018 08:16:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418490#M63054</guid>
      <dc:creator>stefano_cappa_k</dc:creator>
      <dc:date>2018-12-19T08:16:15Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418491#M63055</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Using an older version of mDNSResponder I get&amp;nbsp;a similar&amp;nbsp;error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;mDNS_RegisterInterface: Error! Tried to register a NetworkInterfaceInfo fe80::3ab1:9eff:fe10:6 &lt;STRONG&gt;with invalid mask 0000:0000:0000:0000:0000:0000:0000:0000&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Dec 2018 08:28:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418491#M63055</guid>
      <dc:creator>stefano_cappa_k</dc:creator>
      <dc:date>2018-12-19T08:28:59Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418492#M63056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/TomE" rel="nofollow noopener noreferrer" target="_blank"&gt;TomE&lt;/A&gt;&amp;nbsp;and &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/gusarambula" rel="nofollow noopener noreferrer" target="_blank"&gt;gusarambula&lt;/A&gt;&amp;nbsp;!‌&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I fixed my previous error and now I'm having&amp;nbsp;EXACTLY the issue reported by Tom Evans about cable unplugging/plugging.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I boot my device with eth cable plugged in I can do this:&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;~ # ping6 ff02::fb
PING ff02::fb (ff02::fb): 56 data bytes
64 bytes from fe80::3ab1:9eff:fe10:6: seq=0 ttl=64 time=0.930 ms
64 bytes from fe80::18af:6ac0:1aee:2838: seq=0 ttl=64 time=2.253 ms (DUP!)
and so on...‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but when I unplug and then plug again ethernet cable the result is:&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;~ # ping6 ff02::fb
PING ff02::fb (ff02::fb): 56 data bytes
ping6: sendto: Network is unreachable‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only solution is a reboot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm using Yocto sumo with kernel 4.9.88.&lt;/P&gt;&lt;P&gt;Do you have any suggestions of how to patch kernel 4.9.88?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2018 10:55:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418492#M63056</guid>
      <dc:creator>stefano_cappa_k</dc:creator>
      <dc:date>2018-12-20T10:55:45Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418493#M63057</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;fixed, my problem wasn't FEC driver, but kernel configuration.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Jan 2019 23:18:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418493#M63057</guid>
      <dc:creator>stefano_cappa_k</dc:creator>
      <dc:date>2019-01-09T23:18:42Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418494#M63058</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What exactly was the problem? It would be nice if you could report&amp;nbsp;the details at the netdev mailing list.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2019 11:50:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418494#M63058</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2019-01-16T11:50:28Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418495#M63059</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I already talked on netdev mailing list, but the problem was another one and I posted the solution here&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" class="link-titled" href="https://community.nxp.com/message/1099348?commentID=1099348#comment-1099348" title="https://community.nxp.com/message/1099348?commentID=1099348#comment-1099348"&gt;https://community.nxp.com/message/1099348?commentID=1099348#comment-1099348&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2019 12:10:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418495#M63059</guid>
      <dc:creator>stefano_cappa_k</dc:creator>
      <dc:date>2019-01-16T12:10:23Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX Linux FEC Driver Drops IPV6 Multicasts &amp; Promiscuous Setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418496#M63060</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The thread in the netdev list remains open, so that's why I suggest you to post the solution there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, you could send a patch adding the defconfig options to imx_v6_v7_defconfig.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2019 17:19:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX-Linux-FEC-Driver-Drops-IPV6-Multicasts-Promiscuous-Setting/m-p/418496#M63060</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2019-01-16T17:19:34Z</dc:date>
    </item>
  </channel>
</rss>

