<div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 15, 2019 at 11:36 PM Christian Mauderer <<a href="mailto:list@c-mauderer.de">list@c-mauderer.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Vijay,<br>
<br>> <br>
> My forked repository for the rtems-libbsd can be found here <br>
> <a href="https://github.com/thelunatic/rtems-libbsd" rel="noreferrer" target="_blank">https://github.com/thelunatic/rtems-libbsd</a><br>
> All my work so far is in three branches in my forked repo. <br>
> The am335x_lcd branch contains the commits for importing and <br>
> porting the am335x_lcd drivers and the tda19988 branch has all<br>
> the lcd and tda driver commits.<br>
<br>
We already discussed that: The basic direction is fine.<br>
<br>
> <br>
> The hdmi framer communicates through the i2c bus and uses the<br>
> iicbus driver from the freebsd source. Since RTEMS already <br>
> supports the i2c very nicely in the target board, we have decided<br>
> to write an adaptation layer of i2c driver that will use the RTEMS <br>
> i2c driver throught the FreeBSD API.<br>
<br>
I still think that's a good way that can be useful for other<br>
applications too. But let's see whether someone has more comments<br>
regarding that.<br>
<br>
> All the imported codes along<br>
> with the porting commit, which includes the adaptation layer,<br>
<br>
Please split the adaption layer into an extra commit. I think that this<br>
can be made ready quite soon and it can be commited to master totally<br>
independent of the rest of the work.<br>
<br>
> can be<br>
> found in the iicbus branch in the above mentioned repository. The<br>
> adaptation layer is currently in a basic state and it compiles without<br>
> any warning, to make it work with the FreeBSD API. I also wrote<br>
> a device tree overlay and applied it throught u-boot to get the device<br>
> path with the OF_getprop* calls.<br>
> The overlay device tree source can be found in the following gist<br>
> <a href="https://gist.github.com/thelunatic/70fb08700c28044b779e7649839d9015" rel="noreferrer" target="_blank">https://gist.github.com/thelunatic/70fb08700c28044b779e7649839d9015</a><br>
<br>
Again: Split the adaption layer into it's own commit. Please add some<br>
test case that used the FreeBSD i2c API (maybe some simple i2c command<br>
or access to some i2c EEPROM). If you are very ambitious you could try<br>
to port the FreeBSD i2c command:<br>
<a href="https://www.freebsd.org/cgi/man.cgi?query=i2c&sektion=8&apropos=0&manpath=FreeBSD+12.0-RELEASE+and+Ports" rel="noreferrer" target="_blank">https://www.freebsd.org/cgi/man.cgi?query=i2c&sektion=8&apropos=0&manpath=FreeBSD+12.0-RELEASE+and+Ports</a><br>
<br>
>From a quick glance it seems a quite simple command with only one c file<br>
and without any global variables. So it shouldn't be too hard to port.<br>
<br></blockquote><div>I have made all separate commits and also have imported the i2c command and</div><div>ported it to RTEMS. I have checked that it builds without any warning. </div><div><br></div><div><a href="https://github.com/thelunatic/rtems-libbsd/tree/i2c_adaptation">https://github.com/thelunatic/rtems-libbsd/tree/i2c_adaptation</a><br></div><div><br></div><div><div>I think it would need some work to make it work with the</div><div>adaptation layer and the adaptation driver hasn't been tested either.</div></div><div><br></div><div>I had an offlist discussion about it, I'm putting a summary of what </div><div>came out to be the next possible set of actions :</div><div><br></div><div>- <font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap">the next thing will be to find out where the FreeBSD /dev/iic0 </span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap">(or whatever FreeBSD names them) is created and do something similar.</span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap">- Just and in Linux, we have udev. There must be some FreeBSD user </span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap">space application that create dev entries, that might be the way to go.</span></font></div><div><span style="color:rgb(0,0,0);font-family:Tahoma,sans-serif,Arial,Helvetica;font-size:13px;white-space:pre-wrap"><br></span></div><div><span style="color:rgb(0,0,0);font-family:Tahoma,sans-serif,Arial,Helvetica;font-size:13px;white-space:pre-wrap">- At the location where normally the udev equivalent would be notified, it will be necessary to create a dev entry.</span><br></div><div><span style="color:rgb(0,0,0);font-family:Tahoma,sans-serif,Arial,Helvetica;font-size:13px;white-space:pre-wrap"><br></span></div><div><span style="color:rgb(0,0,0);font-family:Tahoma,sans-serif,Arial,Helvetica;font-size:13px;white-space:pre-wrap">- (Maybe) some file handlers will be necessary for that entry.</span><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap"> </span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap">The closest we could find at a quick qrep is </span></font><span style="color:rgb(0,0,0);font-family:Tahoma,sans-serif,Arial,Helvetica;font-size:13px;white-space:pre-wrap">at rtemsbsd/rtems/rtems-kernel-cam.c </span></div><div><span style="color:rgb(0,0,0);font-family:Tahoma,sans-serif,Arial,Helvetica;font-size:13px;white-space:pre-wrap">there is a rtems_bsd_sim_attach_worker() that creates /dev/ entries.</span></div><div><br></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap">If someone has any better reference or any hints or ideas that we can work on,</span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap">it will be really helpful. :)</span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="Tahoma, sans-serif, Arial, Helvetica"><span style="white-space:pre-wrap">Thank you</span></font></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Best regards<br>
<br>
Christian<br><br>
</blockquote></div></div></div>