wiki:GSoC/2021

Version 60 (modified by Husni Faiz, on 08/14/21 at 01:39:07) (diff)

--

Google Summer of Code 2021

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

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 Final Submitted
Daman Bir Singh Yes damanBir TBD Link to Google Docs for proposal (shared with mentors) No
Eshan Dhawan Yes Eshandhawan51 Project Title Packaging programming language No
Meh Mbeh Ida Delphine Yes idadel #3860 - Code Formatting and Style Check for RTEMS score Code Formatting and Style Check for RTEMS score Yes
Matt Joyce Yes mfjoyce #4328 - New APIs Added to POSIX Standard (2021) https://docs.google.com/document/d/1mua52IUzb-84dRWmlAIpCxadc3he2GU_6KKcqZB010U/edit# Yes
Rajiv Vaidyanathan Natarajan Yes rajivvn #3850 Modular Network Stacks [TBD] No
Husni Faiz Yes drac98 #2891 - Beagle BSP Projects https://docs.google.com/document/d/1CN3ri7g6NJeFPb5h8y4smr1aziGWyXbiiXUsFMhdUu4/edit?usp=sharing Yes
Pranav Dangi Yes pruh7120 #2899 - Improving the Raspberry Pi BSP Improving The Raspberry Pi BSP No
Ayushman Mishra Yes chetak123 #4272 - BSP Executable Conversion https://docs.google.com/document/d/19HeKc6W2ng2X8PoCMVi68A1Z1BbO5D7C0xVHhkgMgBY/edit?usp=sharing No
Ranjan Yes ranfun69 #2510 - Improve the SMP scheduler with arbitrary processor affinity support https://docs.google.com/document/d/1vgftdP_nk_IoqdEXR1yigpa72pYcukY-B7QV2El0XT8/edit?usp=sharing No

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 mandatory Hello World project. Email your proof to Gedare, Joel, and Chris Johns.
  • The IRC Handle column is your handle on IRC. RTEMS folks hang out in #rtems on freenode.net.
  • 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. You can use this as your Draft Proposal in the GSoC site.
  • The Final Submitted should be set to Yes when you have submitted your Final PDF proposal on the official GSoC site. If you do not submit the final proposal via the Google 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 on Github Blog Calendar
NAME nick on #rtems Project Wiki Project's Github repo Blog Project Schedule
Husni Faiz drac98 Project Wiki Github Github Pages Google Calender
Matt Joyce mfjoyce Project Wiki Github Blog [TBD]
pranav dangi pruhnuhv Project Wiki Github Blog [TBD]
Meh Mbeh Ida Delphine idadel Project Wiki Github Blog Calendar

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 freenode.net.
  • The Project Link is a link to the Wiki page for your project.
  • The Repository Link on Github is a link to the Github repository for your project. It should be a specific repository, not just your github account!
  • 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 Calendar with milestones and deliverables identified.

Student Status Updates

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

Gedare

  • Jan 29: Tracking status page created.

Joel

  • Jan 29: Reviewed tracking status page.

Husni

  • May 22: Updated tracking table.
  • May 26: Meeting No.01
    • Progress : Prepared the hardware setup for JTAG debugging.
    • Next : Get familiar with GDB and JTAG
  • June 02: Meeting No.02
    • Progress :
      • JTAG Debugging - The telnetd01 testsuite.
      • Blog post on "Setting up JTAG Hardware Environment for BBB"
    • Next : start porting the CDC Ethernet drivers
    • Blockers : Semester Exams are being scheduled. Dates are not announced officially but will be held soon this month.
  • June 09: Meeting No.03 (First meeting after coding period began)
    • Progress : Imported the CDC Ethernet driver from FreeBSD to Libbsd. Ran the media01.exe and tried to set a break point. It failed. Might be some problem with linking.
    • Next : Figure out the issue with linking.
    • Blockers : Exam dates are announced (From 18th June - July 2nd week, Less time due to exams)
  • June 16: Meeting No.04
    • Progress : Ubuntu Linux Kernel USB Bug- I use Ubuntu 20.04 LTS. It doesn't detect the USB Ethernet of RTEMS. It switches off my USB Circuit.
    • Next :
      • Setup RPi 3B+ as the Host or Dualboot with Arch and test the CDC Ethernet.
      • Find a way to configure USB Ethernet in RTEMS.
    • Blockers : Exams on 18th and 21st.
  • June 23: Meeting No.05
    • Progress : Used RPi as the host to test the usb over ethernet on BBB. It worked. I was able to ping the BBB from the RPi.
    • Next :
      • Figure out how to configure usb over ethernet. The test was done by manually configuring with JTAG.
      • Write a post on the current progress.
    • Blockers : None for this week
  • June 30: Meeting No.06
    • Progress :
      • Blog posts(Tutorials)
        1. RTEMS LibBSD Quick Start
        2. Preparing an RTMES SD Card Image For Beaglebone Black
        3. Starting USB Ethernet in FreeBSD
      • Start USB Ethernet in RTEMS by setting up the hw.usb.template SYSCTL Variable.
    • Next :
      • Start to discuss about how to document and clean up patches
      • Port USB Serial
    • Blockers : Exams on July 2nd and 11th
  • July 07: Meeting No.07
    • Progress : Submitted the patches for CDC Ethernet (Ethernet over USB)
    • Next : Document the driver
    • Blockers : Exams on 11th and 14th
  • July 14: Meeting No.08
    • Progress :
      • CDC Ethernet works with 6-freebsd-12
      • Started LibBSD documentation with a rough frame. Added a quick start guide and the USB Template driver documentation.
    • Next :
      • Mid Evaluation report before 16th of July
      • TTCP benchmark for CDC Ethernet
      • Port the USB Serial template
    • Blockers : None
  • July 28: Meeting No.10
    • Progress :
      • PATCH v2 for master and 6-freebsd-12
      • Imported USB Serial. PC detects the Serial port device. Can't communicate.
  • Next :
    • Fix USB Serial port
    • Document USB Serial
  • Blockers : None
  • August 04: Meeting No.11
    • Progress :
      • The nexus bus configuration earlier made for the CDC Serial was wrong and it's fixed now.
  • Next : Fix USB Serial port
  • Blockers : Serial driver is not functioning as expected.
  • August 11: Meeting No.12
    • Progress :
      • Host can send data to RTESM. RTEMS echo backs the messages (Not an expected behaviour).
      • Tried the USB gadget driver for USB serial.
  • Next : Document the current progress and prepare the final report
  • Blockers :

Matt

  • May 26: Initial group meeting.
    • Created project wiki, repo, and blog.
  • June 2: Second Meeting
    • Met with mentors to discuss initial steps
    • Finals / Final Projects
  • June 9: Third Meeting
    • School term complete
    • Wrote first blog post
    • Attempted to build Newlib
  • June 16: Fourth Meeting
    • Wrote initial Newlib patch for sig2str/str2sig prototypes
    • Attempting to apply patch to RTEMS
    • Continued to run into issues with building Newlib
      • Engaged with devel list and scheduled meeting with mentor to discuss.
  • June 23: Fifth Meeting
    • Built newlib
    • Added POSIX Header test in testsuites
    • Drafting sig2str.c in newlib/libc/signal
    • Wrote 2nd blog post: *Restrict Keyword in C
  • June 30: Sixth Meeting
    • Continued work on sig2str/str2sig implementation
    • Continued work on sig2str/str2sig tessts
  • July 7: Seventh Meeting
    • Submitted draft patches for *str method prototypes, implementation, and tests
    • Edited based on mentor feedback, resubmitted clean versions for review
  • July 14: Could not attend
  • July 21: Ninth Meeting
    • Submitted str patches to Newlib; edited based on their feedback
    • Edited and resubmitted psxsignal09 test patch based on mentor feedback
    • Published blog on process for adding POSIX API to Newlib, Testing in RTEMS
  • July 28: Tenth Meeting
    • Re-edited *str patches based on Newlib discussion
    • Started research for adding dladdr
  • Aug 4: Eleventh Meeting
    • str patches pushed in Newlib
    • submitted corresponding new patch for psxsignal09
    • Request guidance with dladdr

pranav

  • May 26: Initial Meet.
    • Updated Tracking page, wiki, repo, blog.
  • June 9: First Meet in Coding Period
    • Tested raspberrypi, raspberrypi2 BSPs from the master and 5 branches on the hardware.
    • The BSPs of the RTEMS5 branch work on the corresponding hardware with an older version of the firwmare.
    • The RTEMS6 Branch doesn't run on any board.
    • To Do :
      • Figure out the firmware issue and also try booting with u-boot,
      • Debug the raspberry pi BSPs in the RTEMS6 branch.
  • June 16: Second Meet
    • Wrote patches for the startup code and mmu: BSP still didn't boot
    • Tried booting with u-boot: Only Rpi 3B boots, others don't (inspected if it was due to the SMP)
    • Bisecting the commits to find what broke the BSP: Found that the master branch BSP works when built with autoconf but not with waf
  • June 23: Third Meet
    • Compared the cpu and bsp options' header files of the two builds
    • Found the issue, sent patch to the mailing list, the master branch of Rpi now boots up. Irq and uart work.
    • optfdt* yaml files moved to shared parent directory for various bsps to use
  • June 30: Fourth Meet
    • Submitted patch for the startup code of ARMv6 Pi Zero boards
    • Started writing Test Applications on Alan's RKi repository
    • Wrote polled GPIO tests, the tests run, Rpi BSPs don't support the second bank of GPIO pins
    • Explored the importance and possible options for the second bank (only the Activity LED seems important)
  • July 7: Fifth Meet
    • Completed Testing GPIOs(Polled and Interrupt driven). Tests are in the repository forked from Alan.
    • Wrote a patch to add support for the second bank, sent to mentors to review.
    • Found a circumventing option of using device tree overlays to circumvent and not change/patch pre-existing GPIO code.
    • Mentors are to decide if we are to go forward with the patch or use device tree overlays.
  • July 14: Sixth Meet
    • Discarded the first GPIO patch because of too many changes to pre-existing code.
    • Wrote and Tested a more compact GPIO patch, sent to mentors for review.
    • Started working on testing the i2c, looked at previous i2c driver examples on rtems.
  • July 21: Seventh Meet
    • Wrote a driver to read temperature from a sensor using the i2c on the RPi BSP
    • Wrote a test for the driver using both the BSPs. Both worked.
    • Started work on SPI driver.
  • July 28: Eighth Meet
    • Wrote a driver to read temperature from a sensor using the SPI on the Rpi BSP
    • Wrote a test for the driver using both the BSPs. Both work.
  • August 4: Ninth Meet
    • Tried finding documentation on the Rpi Boot process and working of the Rpi mailbox registers.
    • The mailbox now needs a send event poke, which was missing in the Rpi implementation
    • Added changes to the SMP on the the RPi BSP. Sent patch for the same.

Ida

  • May 26: Initial Meet.
  • June 2: Updated Tracking page.
    • Second group meeting
  • June 7-13: Run clang-format in rtems/cpukit/score/src and run RTEMS testsuite to make sure it causes no bugs.
    • Learn about git hooks
  • June 14-20: Work on a git pre-commit hook script to check for style differences in a commit.
  • June 21-27: Enable different modes on the pre-commit hook script.
    • Make sure the script is able to ignore certain files.
  • June 28-July 11: Improve the pre-commit hook script and do finishing touches
    • Configure the script to ignore some files.
    • Start working on the documentation for the pre-commit hook.