= Google Summer of Code 2021 = [[TOC(GSoC/2021, depth=2)]] 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 || [https://docs.google.com/document/d/1F5XCodvX8AYNqWX5ssu7dfjkmFT__83uf8ABKbB_Pkg/edit?usp=sharing Link to Google Docs for proposal (shared with mentors)] || No ||Eshan Dhawan || Yes || Eshandhawan51 || Project Title || [https://docs.google.com/document/d/1J4J114C3CrCKEV2L5vgobT-mE0f2xQx2waJTrQ0tNLQ/edit?usp=sharing Packaging programming language] || No ||Meh Mbeh Ida Delphine || Yes || idadel || #3860 - Code Formatting and Style Check for RTEMS score || [https://docs.google.com/document/d/1VADJh3_kIhs578IEmBJ98rjR6p5E1XcksUkq1Ms4jRA/edit?usp=sharing 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 || [https://docs.google.com/document/d/1AkXqTKHcj8XE3qJltSJDhddeorO_Z4opMUI5_Ywe_zU/edit?usp=sharing 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 [https://docs.google.com/document/d/1F5XCodvX8AYNqWX5ssu7dfjkmFT__83uf8ABKbB_Pkg/edit?usp=sharing 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 [https://summerofcode.withgoogle.com GSoC site]. * The ''Final Submitted'' should be set to Yes when you have submitted your Final PDF proposal on the official [https://summerofcode.withgoogle.com 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 [wiki:Developer/GSoC/ProjectManagement SoC Project Management]. ||'''Student Name'''|| '''IRC Handle''' || '''Project Link''' || '''Repository Link on Github''' || '''Blog''' || '''Calendar''' ||NAME || nick on #rtems || [https://devel.rtems.org/wiki/GSoC/2021 Project Wiki] || [https://github.com/rtems/rtems Project's Github repo] || [https://www.rtems.org Blog] || [https://calender.google.com Project Schedule] || Husni Faiz || drac98 || [https://devel.rtems.org/wiki/GSoC/2021/beaglebone-usb-support Project Wiki] || [https://github.com/drac98/rtems Github] || [https://drac98.github.io/gsoc-2021/ Github Pages] || [https://calendar.google.com/calendar/embed?src=c_nn431fila59qlce3fam610pc50%40group.calendar.google.com&ctz=Asia%2FColombo Google Calender] || Matt Joyce || mfjoyce || [https://devel.rtems.org/wiki/GSoC/2021/posix-compliance-2021 Project Wiki] || [https://github.com/joycemaferko/rtems Github] || [https://mfjoyce2004.medium.com/ Blog] || [TBD] || pranav dangi || pruhnuhv || [https://devel.rtems.org/wiki/GSoC/2021/improving-the-raspberry-pi-bsp Project Wiki] || [https://github.com/pruhnuhv/rtems Github] || [https://pruhnuhv.github.io/gsoc/ Blog] || [TBD] || Meh Mbeh Ida Delphine || idadel || [https://devel.rtems.org/wiki/GSoC/2021/ Project Wiki] || [https://github.com/Idadelveloper/rtems Github] || [https://idadelveloper.github.io/blog/ Blog] || [https://calendar.google.com/calendar/u/0?cid=Mmgwc2pqazNncmhmcjViZDcwYjM3OXNic2tAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ 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 == 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 *TODO: * When patch review is complete, submit prototype and implementation patches to Newlib * Submit blog post on adding POSIX APIs to Newlib * Begin work on next round of patches == 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 witth the patch or use device tree overlays. == 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.