<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal-compose;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:879243972;
        mso-list-type:hybrid;
        mso-list-template-ids:-1721737914 336134145 336134147 336134149 336134145 336134147 336134149 336134145 336134147 336134149;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1
        {mso-list-id:918635710;
        mso-list-type:hybrid;
        mso-list-template-ids:-1041580536 336134145 336134147 336134149 336134145 336134147 336134149 336134145 336134147 336134149;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l2
        {mso-list-id:2038695799;
        mso-list-type:hybrid;
        mso-list-template-ids:-468124858 -349005996 336134147 336134149 336134145 336134147 336134149 336134145 336134147 336134149;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l3
        {mso-list-id:2123647404;
        mso-list-type:hybrid;
        mso-list-template-ids:474361090 336134145 336134147 336134149 336134145 336134147 336134149 336134145 336134147 336134149;}
@list l3:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l3:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l3:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l3:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l3:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l3:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-NZ" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText">Hi all,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I’ve just updated the unofficial patchset to version 20190904.  It is still based on the same upstream default commit as before: 33b922.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><a href="https://sourceforge.net/u/uecasm/etherlab-patches/ci/default/tree/#readme">https://sourceforge.net/u/uecasm/etherlab-patches/ci/default/tree/#readme</a><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><b><span style="color:red">CAUTION</span></b> regarding e1000e:<o:p></o:p></p>
<ul style="margin-top:0cm" type="disc">
<li class="MsoPlainText" style="mso-list:l2 level1 lfo4">I’ve observed an issue when using motherboard-based e1000e on systems with an Intel MEI under recent versions of Linux 4.4 and above.  (For example, 4.9.127+)<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l2 level1 lfo4">The problem manifests as communication initially working, but then permanently timing out after losing and regaining link.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l2 level1 lfo4">Replugging the cable does not recover, but restarting the EtherCAT service does.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l2 level1 lfo4">It only affects the ec_e1000e driver, not the ec_generic driver.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l2 level1 lfo4">It does not affect e1000e add-in cards (or extra ports added by the motherboard manufacturer which are not under the control of MEI).<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l2 level1 lfo4">It doesn’t appear to affect igb, although the only test hardware I have has igb as an “extra” port, so this may be inconclusive.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l2 level1 lfo4">A workaround is given in the README.<o:p></o:p></li></ul>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Changes imported from stable-1.5 branch:<o:p></o:p></p>
<ul style="margin-top:0cm" type="disc">
<li class="MsoPlainText" style="mso-list:l3 level1 lfo1">Most new changes were imported as new patches as-is.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l3 level1 lfo1">Changeset a73e8a537 “Fixed working counter calculation when process data of the same slave are split into separate datagrams.” was not applied; the default branch already contains a completely different
 implementation of the affected functions by Dave Page (for overlapping PDO support).  I’m not familiar enough with the code to tell whether it requires a similar change, but it looks like it was already resolved.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l3 level1 lfo1">There are now 45 patches in here, which is getting a little silly.  I hope they get merged upstream soon.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l3 level1 lfo1"><b><span style="color:red">CAUTION</span></b>: these patches include ones which change the installation directory and library filename.  Changes may be required to applications or installation procedures
 to accommodate this.<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l3 level2 lfo1">This is evidently some strange usage of the word “stable” that I wasn’t previously aware of.<o:p></o:p></li></ul>
</ul>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Changes to existing patches:<o:p></o:p></p>
<ul style="margin-top:0cm" type="disc">
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">Some of the patches have been simply renumbered without other changes, due to changes to other patches.  These won’t be explicitly called out.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l1 level1 lfo2">linux/0001-debugif-3.17.patch (was base/0031-debugif-3.17.patch)<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Moved earlier in the patch series so that compilation of only the “stable” and “linux” groups (and possibly some of the “devices”) works, if that’s all you want.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">linux/0002-kern_cont.patch (was base/0029-kern-cont.patch)<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Moved similarly.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">linux/0003-vm_fault-4.10.patch (was base/0005-support-vm_fault-kernel-v4.10.patch)<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Moved similarly.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">linux/0004-signal-4.11.patch (was base/0032-signal-4.11.patch)<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Moved similarly.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">devices/0002-update.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Simplified a bit since the stable patches now include an update script for the IGB driver.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">devices/0006-linux-4.4.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">While this patch has largely been dropped because its contents are now in stable patches, I did notice some bugs in the stable version of the e1000e driver, which this corrects.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">devices/0007-linux-4.9.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Patch refreshed from the latest version of Linux 4.9.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">devices/0008-linux-4.14.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Patch refreshed from the latest version of Linux 4.14.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">features/master-redundancy/0001-e1000e-fix-watchdog-redundancy.patch (was devices/0002-RX-does-not-reset-watchdog-breaks-redundancy.patch)<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Renamed and updated description to provide more explanation of intent.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l1 level2 lfo2">The patch proposed by Wilfried Holzke in
<a href="http://lists.etherlab.org/pipermail/etherlab-users/2018/003435.html">http://lists.etherlab.org/pipermail/etherlab-users/2018/003435.html</a> is a direct revert of this patch, and suggests that it may cause problems for users of RTAI.  I’m not sure
 why; this does kick some work off to a background thread, but that’s necessary to reduce latency and should only be beneficial.  (Unless perhaps RTAI is unable to tell Linux to schedule_work?  That seems like a bug in RTAI if so.)<o:p></o:p></li><ul style="margin-top:0cm" type="square">
<li class="MsoPlainText" style="mso-list:l1 level3 lfo2">Consequently, I’ve demoted this patch to a feature patch to make it clearer what it’s for and when it’s needed.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">There are two key changes in this patch:<o:p></o:p></li><ul style="margin-top:0cm" type="square">
<li class="MsoPlainText" style="mso-list:l1 level3 lfo2">The watchdog task is executed on a Linux background thread (via schedule_work) rather than in the RT thread.<o:p></o:p></li><ul style="margin-top:0cm" type="disc">
<li class="MsoPlainText" style="mso-list:l1 level4 lfo2">This is what the driver does when not running in EtherCAT mode anyway.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l1 level4 lfo2">This is necessary to reduce RT latency, since the watchdog task can be a bit slow.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level3 lfo2">The watchdog task is executed every 2 seconds regardless of whether packets are being received or not.<o:p></o:p></li><ul style="margin-top:0cm" type="disc">
<li class="MsoPlainText" style="mso-list:l1 level4 lfo2">This is necessary when using master-level redundancy (--with-devices=2), because in that case typically one port is sending packets without ever receiving any, and the other port is receiving packets
 without ever sending any, and link detection does not work correctly in this scenario unless the watchdog is executed.<o:p></o:p></li></ul>
</ul>
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">FYI it was c350fc89afd7 which first moved the work from a background thread onto the RT thread, although oddly only for Linux 2.6.37 and above.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l1 level2 lfo2"><span style="color:red">Possibly some further changes are needed to resolve these issues.  I’m open to ideas.</span><o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">features/eoe-rtdm/*<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Updates to EoE from <a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000689.html">
http://lists.etherlab.org/pipermail/etherlab-dev/2019/000689.html</a>.<o:p></o:p></li><ul style="margin-top:0cm" type="square">
<li class="MsoPlainText" style="mso-list:l1 level3 lfo2">Note that this also proposes a new patch, which has instead been added as base/0020-eoe-ip.patch, as it’s an important bugfix.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">I’ve made a few additional modifications to these patches in order to compile clean without warnings.<o:p></o:p></li></ul>
</ul>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">New patches:<o:p></o:p></p>
<ul style="margin-top:0cm" type="disc">
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">linux/0005-tty-4.15.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Timer API changes and other fixes to TTY module for kernel 4.15 and later, sent privately from Michael Graichen.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">I’ve modified his original patch a little, to fix some related compiler warnings and to remove the “old API emulation” that he put in, as the code is cleaner without it.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">devices/0001-update.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Fixes some inconsistencies in the upstream device update scripts (after stable patches).<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">devices/0009-linux-4.19.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">EtherCAT device drivers for Linux 4.19.  As usual, these are mechanically patched and do compile, but I have not actually tested that they work.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">The r8169 driver is not included, as it has been significantly rewritten in Linux 4.19 and I’m not sure how to safely patch it.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">devices/0013-r8152-4.9.patch, devices/0014-r8152-3.18.patch, devices/0015-r8152-4.4.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Support for Realtek RTL8152/RTL8153, from
<a href="http://lists.etherlab.org/pipermail/etherlab-users/2018/003495.html">http://lists.etherlab.org/pipermail/etherlab-users/2018/003495.html</a><o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">base/0004-fix-eoe-clear.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Fixes typo in EoE request cancellation on slave disposal, from
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000705.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000705.html</a><o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">base/0005-disable-eoe.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Fixes compilation with --disable-eoe, from
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000692.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000692.html</a><o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Some changes in the original patch have been folded into patches that appear later in the patchset instead.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">base/0020-eoe-ip.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Fixes EoE mailbox conflict between IP state machine and packet state machine, from
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000689.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000689.html</a>.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">In an ideal world, rather than splitting separate message caches for each state machine, we’d have some way for a state machine to register a “reply filter/callback” for responses it cares about.  But
 we’re not in that world yet, and this patch is consistent with Knud Baastrup’s previous changes.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Also in an ideal world this patch would be subdivided a bit further into separate patches which fix the IP command packet layout and split the mailbox processing etc.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">base/0028-ec_master_exec_slave_fsms-external-datagram-fix.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Don’t consume a slave ring datagram when not actually using it, from
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000693.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000693.html</a><o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">features/xenomai3/0001-Support-Xenomai-version-3.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Support for Alchemy RTDM in Xenomai v3, from
<a href="http://lists.etherlab.org/pipermail/etherlab-users/2018/003494.html">http://lists.etherlab.org/pipermail/etherlab-users/2018/003494.html</a><o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">features/sii-wait-load/0001-slave-scan-retry.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Retry reading SII if an error occurs, from
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000691.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000691.html</a><o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">features/sii-wait-load/0002-fsm_sii-loading-check.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Retry reading SII if the “loaded” bit is not set, from
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000691.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000691.html</a><o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">features/pcap/0001-pcap-logging.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">“ethercat pcap” command, from
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000698.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000698.html</a><o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">I had to add a missing include in order to get this to compile.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Note that the current implementation is not suitable for continuous logging, but just for snapshot logging; it will record the first block of packets sent and received during startup, and then stop once
 the buffer is full.  The “ethercat pcap” command can be used both to fetch the current buffer and also to clear the buffer, but some packets may be cleared without being reported.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">There is also most likely a race condition between the record and clear operations; clearing may be ignored if the buffer is not full and a packet is sent/received concurrently.<o:p></o:p></li><ul style="margin-top:0cm" type="square">
<li class="MsoPlainText" style="mso-list:l0 level3 lfo3">Standard (non-RTDM) userspace applications should be immune from this race, due to locks being held.  Kernel and RTDM apps have fewer locks.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level3 lfo3">Clearing should be respected for all application types once the buffer is full, but then of course some packets will not be recorded.<o:p></o:p></li></ul>
</ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">features/pcap/0002-runtime-size.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Modifies the above to make the logging size 0 by default but configurable at module load time (via the ethercat config file).  This means that you can enable logging without recompiling the master; just
 restarting it.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">features/pcap/0003-report-size.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Modifies some internals of the kernel/tool interface to fix a race condition that could cause “ethercat pcap” to report an error if the log is not yet full.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Note that the race on the clear operation is still present.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">features/pcap/0004-high-precision.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">Uses microsecond-precision timestamps in the pcap files instead of jiffie-precision (typically 1-10ms).<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">This is disabled (and jiffie precision is still used) when compiling for RTDM, due to Graeme Foot’s note that do_gettimeofday is troublesome under RTAI.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">features/mbg/0001-mailbox-gateway.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">EtherCAT Mailbox Gateway server, from
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000706.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000706.html</a><o:p></o:p></li><li class="MsoPlainText" style="mso-list:l0 level2 lfo3">I had to add some missing includes and fix a typo to get this to compile.  I have not verified its behaviour myself.<o:p></o:p></li></ul>
</ul>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Dropped patches:<o:p></o:p></p>
<ul style="margin-top:0cm" type="disc">
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">devices/0008-linux-4.13.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Patch dropped because 4.13 didn’t end up being an LTS release.  Use 4.14 instead.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l1 level1 lfo2">base/0004-dc_user-tabs.patch<o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo2">Patch dropped because stable patches fix the original problem.<o:p></o:p></li></ul>
</ul>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Patches not taken:<o:p></o:p></p>
<ul style="margin-top:0cm" type="disc">
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">TTY support for newer kernels --
<a href="http://lists.etherlab.org/pipermail/etherlab-users/2018/003516.html">http://lists.etherlab.org/pipermail/etherlab-users/2018/003516.html</a><o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">This appears to be incomplete.  And the proposed changes seemed unnecessary when compiling for 4.19.  Another related patch was accepted, though.<o:p></o:p></li></ul>
<li class="MsoPlainText" style="mso-list:l0 level1 lfo3">Typo in igb_main for 3.18 --
<a href="http://lists.etherlab.org/pipermail/etherlab-dev/2019/000690.html">http://lists.etherlab.org/pipermail/etherlab-dev/2019/000690.html</a><o:p></o:p></li><ul style="margin-top:0cm" type="circle">
<li class="MsoPlainText" style="mso-list:l0 level2 lfo3">This appears to be a bug in the upstream kernel, which is still not fixed today in 3.18 – it was not fixed until 4.1, by
<a href="https://github.com/torvalds/linux/commit/2439fc4d71f71b47c">https://github.com/torvalds/linux/commit/2439fc4d71f71b47c</a>.  As such, since there might be other non-EtherCAT-related bugs, it seems best to recommend using a newer kernel if you want
 to use IGB, rather than trying to patch just this one thing.<o:p></o:p></li></ul>
</ul>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I think this addresses all patches sent to myself or to the mailing lists since the last patchset release.  There was a period where I wasn’t receiving messages from the list, however, so if I’ve missed one then I apologise.  Please
 let me know if there are any other changes that ought to be included.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
</div>

<P 
style="FONT-SIZE: 100%; FONT-FAMILY: Calibri, Candara, Segoe, Optima, Arial, sans-serif; COLOR: rgb(89,89,89)"><STRONG>Gavin Lambert<BR></STRONG>Senior Software Developer<BR></P>
<P style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
<TABLE>
  <TBODY 
  style="FONT-SIZE: 75%; FONT-FAMILY: Calibri, Candara, Segoe, Optima, Arial, sans-serif; COLOR: rgb(89,89,89)">  </TBODY></TABLE></P>
<P style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><IMG border=0 
src="cid:logo_compac_5dcf97ef-52f5-498c-8b9b-728410ddffaf.png"><BR><A 
href="http://www.compacsort.com"><IMG border=0 alt=TOMRA 
src="cid:compacicon_82e8a8c7-154a-4a32-9720-a5badb6258e0.png" width=33 
height=37></A> <A href="https://www.facebook.com/Compacsort"><IMG border=0 
alt=Facebook src="cid:facebook_fa85b924-53b9-45cc-8162-0564f64ec3a3.png" width=35 
height=37></A> <A 
href="https://www.linkedin.com/company/compac-sorting-equipment/"><IMG border=0 
alt=Linkedin src="cid:linkedin_4ec016ad-84fa-443c-85a3-b9615a4ccef8.png" width=35 
height=37></A> <A href="https://vimeo.com/compacsort"><IMG border=0 alt=Youtube 
src="cid:youtube_32142163-fc27-4aed-b14d-e8a377f98a6d.png" width=37 height=37></A> 
<A href="https://twitter.com/compacsort"><IMG border=0 alt=twitter 
src="cid:twitter_d89338d8-98c8-4b65-9a9e-7b1333160b0d.png" width=33 height=37></A> 
<A href="https://www.instagram.com/compacsort/"><IMG border=0 alt=instagram 
src="cid:insta2_1cd85de9-b3a2-4971-9904-52b2481a7c82.png" width=33 height=37></A> 
</P>
<P 
style="FONT-SIZE: 75%; FONT-FAMILY: Calibri, Candara, Segoe, Optima, Arial, sans-serif; COLOR: rgb(89,89,89)"><B>COMPAC 
SORTING EQUIPMENT LTD</B> | 4 Henderson Pl | Onehunga | Auckland 1061 | New 
Zealand<BR>Switchboard: +64 96 34 00 88 | <A 
href="http://www.tomra.com">tomra.com</A> </P>
<TABLE 
style="BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none" 
cellSpacing=0 cellPadding=0 border=1>
  <TBODY>
  <TR>
    <TD 
    style="BORDER-LEFT-STYLE: none; BORDER-TOP: #595959 1pt solid; BORDER-BOTTOM: #595959 1pt solid; BORDER-RIGHT-STYLE: none" 
    vAlign=top>
      <P 
      style="FONT-SIZE: 75%; FONT-FAMILY: Calibri, Candara, Segoe, Optima, Arial, sans-serif; COLOR: rgb(89,89,89)">The 
      information contained in this communication and any attachment is 
      confidential and may be legally privileged. It should only be read by the 
      person(s) to whom it is addressed. If you have received this communication 
      in error, please notify the sender and delete the communication. 
  </P></TD></TR></TBODY></TABLE>
<P 
style="FONT-SIZE: 75%; FONT-FAMILY: Calibri, Candara, Segoe, Optima, Arial, sans-serif; COLOR: rgb(89,89,89)"></P></body>
</html>