<div dir="ltr"><div class="gmail_default" style="font-size:small">This is thread is about implementing OFW functions in RTEMS as part</div><div class="gmail_default" style="font-size:small">of my GSoC project. I would like to start off with this part since the refactoring</div><div class="gmail_default" style="font-size:small">work will somewhat depend on this.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Implementing these functions into RTEMS will make porting drivers from</div><div class="gmail_default" style="font-size:small">FreeBSD to RTEMS easy. Currently, the drivers ported from freebsd implement</div><div class="gmail_default" style="font-size:small">the functions using libfdt variants but this causes a lot of code duplication.</div><div class="gmail_default" style="font-size:small">eg: bsps/arm/imx/start/imx_iomux.c</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">My initial thoughts were to implement these functions one by one. But then</div><div class="gmail_default" style="font-size:small">Christian and Vijay mentioned about porting them from libbsd. I went</div><div class="gmail_default" style="font-size:small">through the OFW code in libbsd and have described my porting process below.</div><div class="gmail_default" style="font-size:small">Please have a look at it and let me know if I have missed something or you</div><div class="gmail_default" style="font-size:small">would like to improve things.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The following files will be ported from libbsd</div><div class="gmail_default" style="font-size:small">prefix = freebsd/sys/dev/ofw</div><div class="gmail_default" style="font-size:small"><prefix>/openfirm.c</div><div class="gmail_default" style="font-size:small"><div class="gmail_default"><prefix>/openfirm.h</div><div class="gmail_default"><div class="gmail_default"><prefix>/ofw_fdt.c</div><div class="gmail_default"><prefix>/ofwvar.h</div><div class="gmail_default"><br></div><div class="gmail_default">The main idea is to port openfirm.h but the other files are dependencies of openfirm.h</div><div class="gmail_default"><br></div><div class="gmail_default">After going through some open firmware documentation. I guess as far as RTEMS is </div><div class="gmail_default">concerned we could avoid many functions like OF_init, OF_putchar, OF_test</div><div class="gmail_default">and only care about functions defined under openfirm.h:105-142</div><div class="gmail_default"><br></div><div class="gmail_default">But these functions have dependency on the automatically generated ofw_if.h and KOBJS.</div><div class="gmail_default">But after a close inspection, I guess the KOBJSLOOKUP macro in ofw_if.h can be</div><div class="gmail_default">redefined or replaced for RTEMS. Since all it does is call the respective functions defined in ofw_fdt_methods(ofw_fdt.c).</div><div class="gmail_default"><br></div><div class="gmail_default">I had just spent a few hours going through the code. If I had missed something</div><div class="gmail_default">please let me know.</div><div class="gmail_default"><br></div><div class="gmail_default">Thanks,</div><div class="gmail_default">Niteesh.</div><div class="gmail_default"></div></div><div class="gmail_default"></div></div></div>