<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 22, 2017 at 10:07 AM, Abhimanyu Rawat <span dir="ltr"><<a href="mailto:h2015081@pilani.bits-pilani.ac.in" target="_blank">h2015081@pilani.bits-pilani.ac.in</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Wed, Mar 22, 2017 at 7:17 PM, Gedare Bloom <span dir="ltr"><<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Please prefer to try to keep general GSoC / RTEMS project discussions on the mailing list. Direct e-mail is ok but inefficient in many cases and should only be preferred for communciations of a personal or private matter.<br><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-8591177457146957575h5">On Wed, Mar 22, 2017 at 5:33 AM, Abhimanyu Rawat <span dir="ltr"><<a href="mailto:h2015081@pilani.bits-pilani.ac.in" target="_blank">h2015081@pilani.bits-pilani.a<wbr>c.in</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote"><span>On Fri, Mar 17, 2017 at 9:25 PM, Gedare Bloom <span dir="ltr"><<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Thu, Mar 16, 2017 at 1:05 PM, Abhimanyu Rawat <span dir="ltr"><<a href="mailto:h2015081@pilani.bits-pilani.ac.in" target="_blank">h2015081@pilani.bits-pilani.a<wbr>c.in</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello Dr. Bloom,<div><br><div>Sorry for writing after a big gap( was busy with a product integration), although I found time to go through the pointers you put together for me, thanks they were really helpful in getting an idea about the project and how to process everything in time. </div></div><div><br></div></div></blockquote></span><div>Gaps are normal and acceptable (until you are getting paid for work :)). You should also expect to have gaps in responses from developers on the mailing list, since we are also generally volunteering.<br></div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>I noticed that all the existing work on MMU is not moving very fast like other supporting components for RTEMS, last year too no one was selected to do MMU project #2904. I know only one guy applied but the proposal was not quite promising. But trust me, all that doesn't make it any less desirable for me to take it. Now, I have a few questions:</div><div><br></div></div></blockquote></span><div>I would not recommend judging the priority/value of a proposed project based on whether or not it was done in the past. Definitely discuss with mentors, etc. This project area is a good, long-term investment for RTEMS, but it does move slowly.<br></div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div><br></div><div class="gmail_extra"><div class="gmail_quote"><span>On Fri, Mar 10, 2017 at 1:51 AM, Gedare Bloom <span dir="ltr"><<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>></span> wrote:<br></span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span><span class="m_-8591177457146957575m_-7500416386264946980m_5997513972439880156m_-8173659801229209257m_-4571265200814277100gmail-">On Thu, Mar 9, 2017 at 2:14 PM, Abhimanyu Rawat <span dir="ltr"><<a href="mailto:h2015081@pilani.bits-pilani.ac.in" target="_blank">h2015081@pilani.bits-pilani.a<wbr>c.in</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello folks,<div><br><div>I am Abhimanyu Rawat, a Computer Science Masters degree student from BITS Pilani Campus, India. I found Memory Protection project <a href="https://devel.rtems.org/ticket/2904" target="_blank">#2904</a> very interesting and vital for the the RTEMS. Among the lots of projects listed on the ideas page, Memory Protection draws me to RTEMS as it's a very challenging project and I would thoroughly enjoy working on it. I am a really enthusiastic person who would like to contribute to the project. I have previous experience in C, C++ and Python etc.  At present I am an intern at EMC ^2 where I am working on DataDomain Operating system, building configuration tool for the latest DDOS software update. I have also lead a BITS-Stanford inter-university project, where my team worked on Django based project with an inbuilt authorization tool + chat application etc. I usually help my friends with their projects as well.</div><div><br></div></div></div></blockquote></span><div>When does your internship complete, and when does your school year begin again? </div></span><span class="m_-8591177457146957575m_-7500416386264946980m_5997513972439880156m_-8173659801229209257m_-4571265200814277100gmail-"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div></div><div>As required, I went through the initial brief about the project and I think it would be a valuable addition to RTEMS. Also, I have completed the <a href="https://devel.rtems.org/wiki/GSoC/GettingStarted" rel="noreferrer" style="font-size:12.8px" target="_blank">https://devel.rtems.org/wiki/G<wbr>SoC/GettingStarted</a><span style="font-size:12.8px">, and configured and Built RTEMS for SPARC/erc32. Subsequently, I have the snapshot of the terminal showing my name and the GSOC text as pictured <a href="https://devel.rtems.org/attachment/wiki/GSoC/GettingStarted/SPARC-SIS-HelloWorld-Modded.png" target="_blank">here</a>. Kindly tell me how  selectively pointed towto send the proof of the terminal and the diff file as required.</span></div><div><span style="font-size:12.8px"><br></span></div></div></div></blockquote></span><span><div>Send to me by email is fine.</div><span class="m_-8591177457146957575m_-7500416386264946980m_5997513972439880156m_-8173659801229209257m_-4571265200814277100gmail-"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><span style="font-size:12.8px"></span></div><div><span style="font-size:12.8px">It would be great if you can give me some pointers about the structure of the project and the direction I should pursue.</span></div><div><span style="font-size:12.8px"><br></span></div></div></div></blockquote></span><div>Have a look at the current approach taken to provide low-level support for the MMUs in the ARM bsps. You can find this looking in the source tree via c/src/lib/libbsp/arm/* with most of the relevant parts in the shared subdirectory there, where each BSP defines a table of statically-configured MMU initialization.</div></span></div></div></div></blockquote><div><span style="background-color:rgb(111,168,220)"><font color="#e06666"><br></font></span></div><div><font color="#cc0000"><font style="background-color:rgb(255,255,255)">You selectively pointed towards the c/src/lib/libbsp/arm/* shared subdirectory where some BSP's has low level code for MMU configuration, I found ome cache code too. And trying digging deep to build a common understanding of different BSP MMU code. The code initally is quite hard to understand but as a unit what task is taking place is I can understand like, data cache and line cleaing etc. Therefore I would request you to provide me a documented code review or process guide(</font> if available) so that I can develop something to test the MMU code changes/patches, otherwise I will have to brute force the search. As from this point I want to move fast and reflect the my progress.</font></div><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div> </div></div></div></div></blockquote></span></div></div></div></blockquote></span><div>I recommend that you start by writing a blog post about your understanding of what is implemented there. Look in the other BSPs to see what, if any, MMU code they have.<br><br></div></div></div></div></blockquote></span><div>Sure, setting up a medium blog to write about the bsp underlying code  related to memory related operations. </div><span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>Cache cleaning/invalidating is often tied with MMU state changes.<br></div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>This is where the prior work has pretty much left off. Remaining items in this project area include:</div><div>* Making a uniform approach to MMU/MPU setup across architectures</div></div></div></div></blockquote></span><div><font color="#cc0000">It seems nice to have a low level design which can point out the mutual modules such as initialising the registers, stack and memory lines etc. For this I think underying functionality have to be completed first or complete the remaining pieces in existing code and then move bottom up.</font></div><span><div> </div></span></div></div></div></blockquote></span><div>The underlying functionality exists for at least cp15-based ARM. Providing the functionality for another BSP family would be a good place to start.<br></div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>* Supporting dynamic changes to MMU/MPU configurations</div><div>* Leveraging dynamic MMU/MPU enforcement to create a mid-level memory management layers. Various proposals have been designed and implemented in the past that can be studied.</div></div></div></div></blockquote></span><div><font color="#cc0000">When you say dynamic changes, it means application level memory proection, space quota management etc. ? I know you should be having a full list, so l am willing to hear all that and then decide which work should be done first and how I propose to do it.</font></div><span><div> <br></div></span></div></div></div></blockquote></span><div>Dynamic here means the MMU entries can be changed at run-time after initialization. This is a building block for implementing higher-level services such as application-level memory protection and kernel-level APIs for memory management.<br></div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>* Creating generally useful memory protection schemes such as per-task stack protection that can be enabled by applications with simple "switch it on" type of logic.</div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>* Creating an application-layer interface for memory protection management at a finer granularity / with more application-level logic to control than the "generally useful" approaches would need.</div><div><font color="#cc0000"><br></font></div></div></div></div></blockquote></span><div><font color="#cc0000">Ok this is exciting stuff that can be pushed first, the memory block or segement(or whatever you say to a chunk but mostly I went through thesis material online which denotes it as in different terms/name ) access related control can be hacked together to provide the enclaved type of execution for the application task. We can discuss more about it and how much existing code base so far support this proposed project area. </font></div><div><font color="#cc0000"><br></font></div></div></div></div></blockquote></span><div>I prefer memory region to refer to a generic "Base+Offset" contiguous area of memory. We have discussed terminology quite often in the past. Reach out to Hesham to get some more details. </div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>We can't do application-level memory protection without a good understanding of the intermediate layers. We can start to design an API, but the API is not mergeable until there is a generic layer that is not tightly bound to the BSP or even CPU layers.<br></div></div></div></div></blockquote><div><br></div></span><div>In case of arm-cp15  it's underlying fucntionality are far more developed(i.e. initialization, interrupt handling, underlying tlb update after fage faults etc.) than the rest of the bsp's, so I think we can start to design an API for application-level memory protection. This way we can have atleast one fully functional bsp for arm-cp 15, whose prototype can we can later use to speed up the development  You think it can be a good proposal or shall I go with other bsp underlying support first?</div><span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><span><div> </div></span></div></div></div></blockquote></span></div></div></div></blockquote></div></div><div>I'm concerned that any mid-level/high-level framework built on top of the existing low-level support for arm-cp15 will be too rigid to work with less feature-ful BSPs/MMU/MPU combinations. It would be good to have another one or two kinds of MMU/MPU supported so that the upper layers can be more thoughtfully designed.</div><span><div> </div></span></div></div></div></blockquote></div></div><div> I agree with your approach of having more than one type of bsp's with MMU/MPU support, so which one should I take on ? I mean I can work on AT91RM9200 of ARM family, or you would suggest other archiitecture like(PowerPC) ?</div><span class=""><div><br></div></span></div></div></div></blockquote><div>PowerPC should be good. That was one of the targets worked on previously, so it should not be too difficult.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class=""><div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><font color="#cc0000"></font></div><div><font color="#cc0000">I look forward, to hear what is your take on them, and last but not the least, thanks for the warm reply, it already makes me feel home with the community. </font></div><span><div>  <br></div></span></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="m_-8591177457146957575m_-7500416386264946980m_5997513972439880156m_-8173659801229209257m_-4571265200814277100gmail-"><div dir="ltr"><div><div><span style="font-size:12.8px"></span></div><div><span style="font-size:12.8px">Overall, I look forward to working with the community and improving my skills by actively contributing to the project(in long run also). </span></div><div><div><div class="m_-8591177457146957575m_-7500416386264946980m_5997513972439880156m_-8173659801229209257m_-4571265200814277100gmail-m_-7783201154473415884m_-7303388038805939863gmail-m_-3762991174240438713gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><font color="#000000" size="2" face="tahoma, sans-serif"><b><br></b></font></div><div dir="ltr"><font color="#000000" size="2" face="tahoma, sans-serif"><b>Closing with thank you and warm Regards,</b></font><div style="font-size:12.8px"><font color="#000000" face="comic sans ms, sans-serif"><br></font><div><div style="font-size:12.8px"><b><font color="#000000" face="tahoma, sans-serif">Abhimanyu Rawat</font></b></div><div style="font-size:12.8px"><b><font style="background-color:rgb(255,255,255)" color="#000000" face="tahoma, sans-serif">M.E. Computer Science, </font></b></div><div style="font-size:12.8px"><b><font color="#000000" face="tahoma, sans-serif">CS/IS Department, BITS Pilani, Pilani Campus</font></b></div><div style="font-size:12.8px"><b><font color="#000000" face="tahoma, sans-serif">Email - <a href="mailto:h2015081@pilani.bits-pilani.ac.in" target="_blank">h2015081@pilani.bits-pilani.<wbr>ac.in</a> / <a href="mailto:abhimanyurawat@yahoo.com" target="_blank">abhimanyurawat@yahoo.c<wbr>om</a></font></b></div><div style="font-size:12.8px"><b><font color="#000000" face="tahoma, sans-serif">Phone. 08930399302 (call/Whatsapp), 09466899302</font></b></div></div></div><div style="font-size:12.8px"><p style="margin:0px;font-family:arial,helvetica,sans-serif;font-size:12px;padding-bottom:17px"><font color="#222222"> </font><span style="font-family:arial,sans-serif;color:rgb(253,175,23)">▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄</span><span style="font-family:arial,sans-serif;color:rgb(117,195,233)">▄▄▄▄▄▄▄▄▄▄▄▄▄▄<wbr>▄</span><span style="font-family:arial,sans-serif;color:rgb(237,27,36)">▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄</span></p></div></div></div></div></div></div></div></div></div></div></div></div>
</div></div></div><div hspace="streak-pt-mark" style="max-height:1px"><img style="width:0px;max-height:0px;overflow:hidden"><font color="#ffffff" size="1">ᐧ</font></div>
<br></span>______________________________<wbr>_________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman<wbr>/listinfo/devel</a><br></blockquote></div><br></div></div>
</blockquote></span></div><br></div></div><div hspace="streak-pt-mark" style="max-height:1px"><img style="width:0px;max-height:0px;overflow:hidden"><font color="#ffffff" size="1">ᐧ</font></div>
</blockquote></span></div><br></div></div>
</blockquote></span></div><br></div></div>
</blockquote></span></div><br></div></div>
</blockquote></span></div><br></div></div><div hspace="streak-pt-mark" style="max-height:1px"><img style="width:0px;max-height:0px;overflow:hidden" src="https://mailfoogae.appspot.com/t?sender=aaDIwMTUwODFAcGlsYW5pLmJpdHMtcGlsYW5pLmFjLmlu&type=zerocontent&guid=51e9f464-705c-41a3-83e7-af7a0652bd2e"><font color="#ffffff" size="1">ᐧ</font></div>
</blockquote></div><br></div></div>