Version 142 (modified by Yurii Shevtsov, on Jun 9, 2015 at 2:43:21 PM) (diff)


Google Summer of Code 2015

This page captures the students who make proposals as well as those who work on projects for RTEMS as part of GSoC 2015.

GSoC 2015 banner logo

Students' Proposals

Start filling in this table for yourself as soon as possible and update as needed.

Student Completed Hello IRC Handle Proposal Title Google Docs URL
NAME Yes or No nick on #rtems Project Title Link to Google Docs for proposal (shared with mentors)
Sujay Raj Yes sujayraaj Port Monkey HTTP Server proposal
Richa Sehgal Yes richashi Run Time Tracing TBD
Ragunath D Yes ragunath Beagle BSP improvements proposal
Andrei Popescu Yes andrei_ Condition Variables proposal
Hesham ALMatary Yes Hesham Support Rump Kernels on RTEMS proposal
Ketul Shah Yes ketul Beagle BSP improvements proposal
Yang Qiao Yes yangqiao Raspberry Pi BSP improvements Proposal
Yurii Shevtsov Yes gtament Raspberry Pi USB Support Proposal
Andre Marques Yes asuol Raspberry Pi Low Level Peripherals and SD Card Proposal
Jarielle Catbagan Yes jrcatbagan Beagle BSP improvements: Porting micromonitor to boot w/out U-boot Proposal
Anand Krishnan Prakash Yes anandkp92 Configuration GUI Proposal
Saurabh Gadia Yes sgworks Nested Mutexes Proposal
Rohini KulkarniYeskrohiniRaspberry Pi 2 SupportProposal
Charith ErangaYescharithRTEMS Clang SupportTBD
Waleed Ziad Yes waleedziadRaspberry Pi 2 Support Proposal
Abdelhamid Amer Yes abd_elhamid_ Stack Analysis for RTEMS Proposal
Hermann Felbinger Yes hermann_19829 Improve Code Coverage Analysis Meeting Aviation and Automotive Standards Proposal
Carlos Falgueras No fark Raspberry Pi BSP Peripherals Proposal
Gowtham Ashok Yes gwty Merge LEON into RTEMS Proposal
VARA PUNIT ASHOKBHAI Yes punitvara Port RTEMS to Intel® Galileo proposal
VARA PUNIT ASHOKBHAI Yes punitvara Development of RTEMS Board Support Package for x86_64 Architecture proposal

The columns are to be filled in as follows:

  • The Student column is for your name.
  • The Completed Hello column lets us all know whether or not you completed the require Hello World project. Based upon our experience, students who have successfully compiled and run an RTEMS application have a MUCH MUCH higher chance of success on the proposed project.
  • The IRC Handle column is your handle on IRC. RTEMS folks hang out in #rtems on
  • The Proposal Title should be self-explanatory.
  • The Google Docs URL is your proposal in Google Docs that can be reviewed and commented on by mentors. The proposal template should be copied and used as a baseline. This can be shared with mentors for review. Mentors can insert comments for you.

WARNING: The Google Docs version of the proposal is a WORKING copy. You MUST submit the official and final proposal using the Google Melange site. If you do not submit the final proposal via the Google Melange site, you cannot be considered

Students' Summer of Code Tracking Table

Students whose GSoC project is accepted by RTEMS shall fill in a slot with their information in the following table, which helps to centralize SoC Project Management.

Student Name IRC Handle Project Link Repository Link Blog Calendar
NAME nick on #rtems Link to Project Wiki page Link to project's public Github repository Link to your development blog Link to Calendar with Schedule
Yurii Shevtsov gtament TBD Github Blog Calendar
Rohini KulkarnikrohiniWikiGithubBlogTBD
Sujay RajsujayraajWiki Github BlogTBD
Anand Krishnan Prakashanandkp92wikiGithubBlogCalendar
Saurabh GadiasgworksWikiRtems_Github JPFBlog Calendar
Andre MarquesasuolTBDGithub Blog Calendar
Jarielle CatbaganjrcatbaganWiki Github Blog Calendar
Ragunath ragunath wiki Github Blog calendar
Ketul Shah ketul Wiki GitHub Blog Calender
YANG Qiao yangqiao TBD GitHub Blog TBD

The columns are to be filled in as follows:

  • The Student column is for your name.
  • The IRC Handle column is your handle on IRC. RTEMS folks hang out in #rtems on
  • The Project Link is a link to the Wiki page for your project.
  • The Repository Link is a link to the github repository for your project.
  • The Blog is a link to your blog with entries about your project. It should be updated regularly during the summer.
  • The Calendar is a link to your Google Calender with milestones and deliverables identified.

Student Status Updates

Each student has a section below for putting in notes from the weekly IRC meetings.


  • May 19: Added the Status Updates page, and created this subsection as an example. For next week, I will talk to any students who missed the meeting and follow-up on any problems that were identified.

Andre Marques

  • May 19: I have been trying to load code on the PI with openocd through JTAG, and checking the GPIO API, which will be my first task. The first step will be adding locking mechanisms, as that is one of the main features currently missing.
  • May 26: Missed the meeting due to a university project presentation. Continued to work with JTAG and openocd. The problem seems to lie in the GPIO pin setup for JTAG, as up until now the pins were only configured for a certain alternate function, but the corresponding pull resistors also need to be adjusted (disabled). At this point I seem to be able to send code to the PI, but cannot execute/debug it.
  • June 2: I have been going through the RPI GPIO API, and have added some locks on the interrupt create/disable functions and am currently evaluating the locations where locking may be needed. I have came to the conclusion that is best to define locks on API functions than on a per pin basis.At the same time I am separating the RPI specific code into separate functions, which could in the future be implemented by each BSP using the API to provide the BSP specific implementation as to provide the required GPIO functions. I intend to post this more clearly on my blog this week, and also check ketul's GPIO work on the BB so we can start to coordinate some ideas.

Anand Krishnan Prakash

  • May 19: I've looked at wxpython which I will be using to make the GUI and I'm still looking into how waf works (need to figure out how much I need to know about waf for this project). I've made a draft version of how the gui would look and now I plan to incorporate changes suggested by my mentors and also think of how the user will start/stop the GUI.
  • May 26: New version of gui made based on suggestions from mentors. For this week, I will look up how to go about grouping the configuration options. This would help in that. Also plan to start coding for the same.
  • June 2: A basic set of groups has been made and each group is associated with a tag. I'll populate the options with the most appropriate tag/group (currently left blank) and will verify it with my mentors.

Saurabh Gadia

  • May 19: 1. verify and freeze the proposed solution 2. Set up the essential environment. 3. Set up the blog having design docs. 4. Start working on suggested formal method of validation
  • May 26: Tasks accomplished last week: 1. Finalizing the design for "nested mutex" problem. 2. Creating formal documentation for the proposed solution. 3. modelling the test cases 4. Setting up the configuration environment. - Task for this week: 1. evaluate which test case is failing in testsuite(sptest) 2. Code the solution for sparc platform. 3. Validate whether the algorithm solves the problem. 4 Then move on to formal validation process as time permits. 5. Documentation on rtems wiki.
  • June 2: [Accomplishments]: Proposed solution with ppt which can be found in wiki section. working on the revised changes made to thread priority related code by sebastian. [Next Task]: Fix the master branch for compiling strict_order mutex configuration. Discuss the scope of JPF relating to this project. Setting up the JPF environment as means for validating the design and proposed solution.

Rohini Kulkarni

  • May 19: Functional Pi 2. Have run benchmarks. I have been referring to TRMs for details. For next week, its completely identifying cache configurations and testing. Resolve issue faced with respect to scu implementation.

  • May 26: Looks like cache/mmu setup has been identified, except enabling maintenance operations. Start implementation and subsequent testing. Resolved SCU related issue. Started work with bsp hooks, first with hook 0. Identify common code with existing cortex-A9.
  • June 2: Tested identified cache configurations. Performance is not as expected. For next week complete cache/mmu configuration.

Yurii Shevtsov

  • May 19: I managed all compilatoin problems. So build environment is ready. Right now I'm studying libbsd, also there are few moments, concerning libbsd usage left unclear. Oh, I also have to do "paper work", like establishing blog, wikipage.
  • May 26: I pulled FreeBSD driver for the bcm's USB port (DWC OTG) to my libbsd fork. I'm going to port it during this week. I hope it will be able at least to enumerate devices (hub and phy).
  • May 33: I started porting DWC OTG driver. Now it compiles. Also I discovered I need some mailbox methods, which, as I understood, are YANG's task. He said he will finish it till this weekend. (The actual discussion is on devel). But I'm planning to try driver without those procs. So I'm working on testing app.


  • May 19: First task is adding networking support. For this I will be porting ethernet driver from FreeBSD to rtems-libbsd. I have been studying some already ported drivers from FreeBSD to rtems-libbsd. Current progress,I pulled the driver from Freebsd and compiled it with the latest rtems-libbsd. Next target is to code all the rtems specific changes needed and check with the mentors whether that is sufficient.Then try to solve any issues that arises.
  • May 26: Added the driver to nexus files to get linked with the application as a child of nexus device.Then I defined the resource structure that defines bus handles and interrupt initialization. BBB uses SMC LAN8710A PHY. That phy driver is also ported from FreeBSD. Fixed some fdt, sysctl related changes. Now we are able to read mac address from the device. Facing a hang issue when link goes up. Currently debugging it.
  • June 2: Found the root cause for the hang issue. The issue is due to rx interrupt getting enabled before it is serviced. I put a temp hack fix and proceeded. I am able to go to the shell and execute commands. ifconfig of the interface works. irq's are established. Next week I will be working on the packet processing side.

Jarielle Catbagan

  • May 19: Currently, I have a basic image to perform UART booting on the BBB. As of right now I am transferring my changes from the initial Umon 1.19 sources to the new revised Umon git source tree obtained from the RTEMS repos. Furthermore, I am also working on a copy of the CSB740 port by replacing the CSB740 specifics with that of the BBB/ARM Cortex-A8 while maximizing code reuse as much as possible. From now up uptil the next status update, I will continue finishing the remaining logistics of the project, continue working on the base files of Umon to get an initial image up and running while committing and pushing my changes regularly. I will draw up inspiration from existing Umon port implementations for the design of the BBB port. Finally, I will continue looking into the ARMv7A ARM Architecture Reference Manual, specifically the application level and system level architecture to help me understand the fundamentals of RTEMS and Umon.
  • May 26: The boot process that the AM335x/Beaglebone Black undergoes and the possible sources to boot from has been determined. The ideal boot sources to transfer and/or execute the initial image is either from a uSD or via UART. Porting Umon is underway and I am approaching the port with the notion of a top-down approach. That is starting from the entry point where program execution first starts and then traversing the source code while replacing irrelevant and integrating the essential/necessary code. In the context of the Beaglebone Black, program execution starts at rom_reset.S and then jumps to the C code initialization in start.c. My current effort is to integrate the initial functionality and mechanisms specific to the AM335x into these startup files and then have it inter-work with the existing Umon implementation. For my references, I will continue using the ARMv7A Architecture Reference Manual as well as the AM335x Technical Reference Manual, Beaglebone Black System Reference Manual, and the Umon User Manual.
  • June 2: During the process of converting the initialization file for running Umon from ROM (rom_reset.S) in the csb740 port to the Beaglebone Black, some existing code were reused as the processor in the csb740 port and the AM335x processor share some similarities. The reused code encompasses the fundamental and required initializations. These included retaining the stack initialization for each of the processor modes as well as setting the processor to an initial processor mode, which is supervisor mode. Right now, I am consolidating the necessary information in order to develop the mechanisms to initialize and set up the external DDR3 RAM on the board. This will provide the capability of removing an application's reliance on the limited internal SRAM Furthermore, the utilization of this external memory will allow larger images to run on the system. From the information I was able to obtain it is both practical and efficient in initalizing the external memory at a very low-level, and as a result this process will be done in rom_reset.S. Shortly after, rom_reset.S jumps to the first C-defined function start(). Mostly like the mechanisms to manipulate the external memory will be done in C.

Sujay Raj

  • May 19: Got qemu networking figured, and successfully set up development environment on rtems virtual machine. Will be setting up the same on my pc. The next week will involve understanding Monkey's source code. A blog and calender will be established asap.
  • May 26: networked applications running (using the old stack) on my pc. Last week was spent on reading Monkey current development version's code. Initially it was planned to implement a select (2) version of the polling system. But it was concluded that select on rtems is slow and limited and hence we have to proceed with the new stack. Compiled rtems-libbsd with waf and I am in process of getting things working with it. In the next few days, I will get new stack completely covered, and focus on kqueue.
  • June 2: Past Week: Most of my time was spent on getting the new stack running. It installs and programs compile using it, but it is not running properly with network demos . I spent around four days working on it with no avail, presently kiwichris is working with me for getting it to work, and hopefully it will be resolved in a day or two. I started with monkey, compiling it with freebsd There weren't major issues and because of the patch kiwichris posted some time ago, things are comparatively smooth. Next Week: Working on rtems-libbsd will be on the sidelines as chris helps me set it up. I will be working solely on monkey. ( I am going to ask edsiper after the meeting about where to head next ).

Ketul Shah

  • May 19: Currently designing GPIO drivers for BeagleBone? Black. I have already designed gpio drivers for output configuration and trying to make it more generalized API. In the next week I will be making it in generalized way according to suggestions from developers.
  • May 26: Currently I am tesitng my code on BBB and rectifying some errors with consulting mentors. Probably by next week we will be able to merge the code to manline and yah blog and calender I will be establishing this week.
  • Jun 2 : Almost done with the generalized gpio API and successfully tested on hardware too. My next task is to work with the GPIO Input and ADC driver development. For that I would be referring TRM of AM335X and probably by next week I will be able to have simple demo with push button on BBB.


  • May 19: Mailbox and simple frambuffer implemented. Drawing pixels has tested. Next week I'll will look into the i386 bsp's code and other references for EDID retrieval, resolution autodetection and framebuffer text console implementation.
  • May 26: Tested the fb interfaces, read and ported part of reusable code from i386 bsp. Next week,Graphic text output would be implemented.
  • Jun 2: Graphic text output and its drawing implemented. Graphic output without drawing cursor has implemented (only by serial for input devices haven't been ported). Next week,communication with videocore, read EDID will be implemented and resolution autodetect would be active. Clean up and patches would take a bit more time.

Attachments (2)

Download all attachments as: .zip