<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=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@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:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:815028193;
        mso-list-type:hybrid;
        mso-list-template-ids:-677714608 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></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-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">To give a little background on this subject, the current support in RTEMS LIBBSD for the EVDEV input system was motivated by the following:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">- Add a “rtems-arm-4.12-gcc” platform to QT.  This allows you to configure QT with RTEMS compilers and libraries.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">- Use QT LinuxFB plugin as is for graphics output and system input.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">The QT LinuxFB plugin supports the following input systems: libinput, tslib, and EVDEV.  I choose EVDEV because it is supported by LIBBSD.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">--------
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">As a quick indication of footprint, the EVDEV test in the RTEMS LIBBSD test suite is ~4 times the size of the hello world test.  I compiled against the xilinx_zynq_a9_qemu
 BSP but the results were similar to my custom LPC3250 BSP.  The hello world test is ~4MB.  The EVDEV test is ~15MB.  The EVDEV test pulls in the USB keyboard and mouse drivers.  This is where most of the footprint increase comes from.  The EVDEV code itself
 is pretty small.  The frame buffer and touch drivers are also small.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">--------
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">The frame buffer device in RTEMS is not compatible with QT but it is not far off.  QT expects the following Linux headers: “linux/fb.h”, “linux/kd.h”, and “sys/kd.h”.  I had
 ported the Linux headers and placed them under the “dev/include/linux” and “dev/include/linux/sys” directories in the RTEMS source tree (not currently in the tree because the patches were rejected).  QT also expects the frame buffer device to support the MMAP
 device handler.  This was added to Gedare’s MMAP work but as Sebastian pointed out it does not follow the design module.  This probably needs to be dealt with at some point.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">--------
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Right now, the only example on how to use EVDEV is in the LIBBSD test suite (evdev01).  I guess the QT source can also be used as an example.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Kevin Kirspel<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Electrical Engineer - Sr. Staff<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Idexx Roswell<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">235 Hembree Park Drive<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Roswell GA 30076<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Tel: (770)-510-4444 ext. 81642<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Direct: (770)-688-1642<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Fax: (770)-510-4445<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Joel Sherrill [mailto:joel@rtems.org]
<br>
<b>Sent:</b> Monday, May 21, 2018 9:10 AM<br>
<b>To:</b> Kirspel, Kevin <Kevin-Kirspel@idexx.com><br>
<b>Cc:</b> Chris Johns <chrisj@rtems.org>; Mikhail Svetkin <mikhail.svetkin@gmail.com>; users@rtems.org; Emre Cetin <hsnemrecetin@gmail.com><br>
<b>Subject:</b> Re: Raspberry Pi Rtems-Graphical-Toolkit<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Mon, May 21, 2018, 7:52 AM Kirspel, Kevin <<a href="mailto:Kevin-Kirspel@idexx.com">Kevin-Kirspel@idexx.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">RTEMS LIBBSD has support for EVDEV which is a standard API for keyboard, mouse, and touchscreen.  Is it the best choice, I don't know.  Maybe a better question is "What standard input system should RTEMS support?".<o:p></o:p></p>
</blockquote>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">That's the question.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Using the FreeBSD support has a number of advantages but I admit that I didn't know that support was in place. I have no idea what minimum footprint using that implies even if you don't use the TCP IP stack.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">In the cpukit there has long been support for a frame buffer device framework and a mouse input parsing library. I expect the FreeBSD support comes with specific device support that this is weak on.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">But footprint is important. Any idea how large a simple non-networked example would be with the FreeBSD code as a base?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">And we need examples and howtos. If I didn't know about it, it isn't reasonable to expect someone new to find it. :(<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">--joel<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
Kevin Kirspel<br>
Electrical Engineer - Sr. Staff<br>
Idexx Roswell<br>
235 Hembree Park Drive<br>
Roswell GA 30076<br>
Tel: (770)-510-4444 ext. 81642<br>
Direct: (770)-688-1642<br>
Fax: (770)-510-4445<br>
<br>
-----Original Message-----<br>
From: Chris Johns [mailto:<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>]
<br>
Sent: Sunday, May 20, 2018 5:51 PM<br>
To: Mikhail Svetkin <<a href="mailto:mikhail.svetkin@gmail.com" target="_blank">mikhail.svetkin@gmail.com</a>>; Kirspel, Kevin <<a href="mailto:Kevin-Kirspel@idexx.com" target="_blank">Kevin-Kirspel@idexx.com</a>><br>
Cc: <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a>; Emre Cetin <<a href="mailto:hsnemrecetin@gmail.com" target="_blank">hsnemrecetin@gmail.com</a>><br>
Subject: Re: Raspberry Pi Rtems-Graphical-Toolkit<br>
<br>
On 16/5/18 9:39 pm, Mikhail Svetkin wrote:<br>
> <br>
> I think it will be very good if RTEMS has some kind of input subsystem <br>
> (keyboards,  mouse, touchscreen) with standard API.<br>
> <br>
<br>
Do you have an example standard API what would be suitable?<br>
<br>
Chris<br>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.rtems.org_mailman_listinfo_users&d=DwMFaQ&c=2do6VJGs3LvEOe4OFFM1bA&r=HDiJ93ANMEQ32G5JGdpyUxbdebuwKHBbeiHMr3RbR74&m=jEekgiYvWnHgpNcfJlW6X1x8cM7ASFHxgW29on-cOD8&s=fUSHJbQR5SY1RqkgGuU3VIaH-gUdvMJCG2Pr-VhNXNQ&e=" target="_blank">http://lists.rtems.org/mailman/listinfo/users</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>