= Google Summer of Code 2023 = [[TOC(GSoC/2023, depth=2)]] This page is for the contributors who make proposals as well as those who work on projects for RTEMS as part of GSoC 2023. = Contributors' Proposals = Start filling in this table for yourself as soon as possible and update as needed. || '''Contributor Name''' || '''Completed Hello''' || '''Discord Handle''' || '''Proposal Title''' || '''Google Docs URL''' || '''Final Submitted''' || '''Vihas Makwana''' || '''Yes''' || '''bitXh#7676''' || '''multiple kernel-level medium projects''' || [https://docs.google.com/document/d/1IwvFtk1FFB7u2qMI_HDo9SuuCDY8x_RhjB_tA3ylzB0/edit?usp=sharing Proposal] || Yes || Mohd Noor Aman || Yes || katana-flinger || Ethernet and SMP support for Raspberry Pi 4B AArch64 || [https://docs.google.com/document/d/1aQq1kkpsRnuxTjaPGQpuU8jN91QtyQXUKG8Sl2JfqdU/edit?usp=sharing Ethernet and SMP support for Raspberry Pi 4B AArch64] || Yes || Amna Mannan || Yes || amna_mannan || Sifive Hifive Unleashed RISC-V port for RTEMS || [https://docs.google.com/document/d/1-RfydFwHBI5dvJKJu9TLpVI9wmVRcrqcTuHLJGBNTME/edit?usp=sharing SiFive HiFive Unleashed RISC-V port for RTEMS] || Yes || '''Abhimanyu Raghuvanshi''' || '''Yes''' || '''ABR#9429''' || '''Build List Visualization''' || [https://docs.google.com/document/d/1xI2NZePQigIY0SSHa5RT21vjeIldwfBmK4oyA1Ag8Io/edit?usp=sharing Build List Visualization] || Yes || '''Muhammad Sulthan Mazaya''' || '''Yes''' || '''Mazaya#5546''' || '''Add support for renode.io Simulator''' || [https://docs.google.com/document/d/14VN7pWeD2qYHDojnBoHLFziDVC31xD-f1B7p2pW6l0g/edit?usp=sharing Add support for renode.io Simulator] || Yes || '''Siddharth Khattar''' || '''Yes''' || '''Siddharth#0632''' || ''' Improving support for amd64 BSP ''' || [https://docs.google.com/document/d/1tJmGiT1Ewj8pqIZWXFanEbvPdehrMbWnUuq_d2AlJxU/edit#heading=h.z1k2lfmp8i2y Improving support for amd64 BSP] || Yes || '''Ruturaj Nanoti''' || '''Yes''' || '''Ruturaj#6398''' || ''' Addition of BSP-specific post link details to pkg-config Files ''' || [https://docs.google.com/document/d/1pFW1e9m_DdONVVpRc7Hf77PIZm9kW-PZtGEQUYVesGg/edit?usp=sharing Capturing BSP specific Post Link Details in .pc files] || Yes || '''Noriyuki Kurosu''' || '''Yes''' || '''Toson#8089''' || '''Add support for Address Sanitizer''' || [https://docs.google.com/document/d/1CunPZ-dCteaIguylxGGzWa762e0DoINiFEuaVlUJ8yw/edit?usp=sharing Add support for Adress Sanitizer] || Yes || '''Hardik Sethi''' || '''Yes''' || '''Hardik444#0244''' || '''Code Formatting for RTEMS score and Third-Party File Organisation''' || [https://docs.google.com/document/d/11nEfcVgS7XvwPSW3VEreohFeaT9vP8dLNb41sz420UA/edit?usp=sharing Code Formatting for RTEMS score and Third-Party File Organisation] || Yes || Utkarsh Verma || Yes || Barusu || Improve the Raspberry Pi 4 BSP || [https://docs.google.com/document/d/1dL5zl_iSYeyx6ZoOpKjy-CkLh_OvgGDJvblrPH5q6rg/edit?usp=sharing Improve the Raspberry Pi 4 BSP] || Yes || Aryan Karawale || Yes || Aryan_Karawale#1731 || Add a flattened device tree-based initialization for Beagle BSP || [https://docs.google.com/document/d/10Vet2roV3AJQ8MQLrJfcLMWrFxU-Iv9eo2snUNiidDQ/edit?usp=sharing Add a flattened device tree-based initialization for Beagle BSP] || Yes The columns are to be filled in as follows: * The ''Contributor'' 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 ''nick on Discord'' column is your handle on Discord. RTEMS folks hang out there with best-effort service. * 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! = Contributors' Summer of Code Tracking Table = Contributors 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]. ||'''Contributor Name'''|| '''Handle''' || '''Project Link''' || '''Repository Link on Github''' || '''Blog''' || '''Calendar''' || Muhammad Sulthan Mazaya || Mazaya#5546 || [https://devel.rtems.org/wiki/GSoC/2023/add-support-for-renode-simulator Project Wiki] || [https://github.com/MSMazaya/rtems-tools/tree/add-renode-implementation Project's Github repo (rtems-tools)] and [https://github.com/MSMazaya/rtems-source-builder/tree/add-renode-recipe Project's Github repo (rsb)] || [https://www.mazaya.id/blogs?tag=GSoC Blog] || [https://calendar.google.com/calendar/u/0?cid=Y2UyODFmYWNiMTJmMzI1NmY3NzZlZmVmYWNjZDBmOWNhOTk0MjJhMzQ4OTU1NGQxZWU0YTgyNDQ0MDZkNWQwOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t Project Schedule] || Mohd Noor Aman || katana-flinger || [https://devel.rtems.org/wiki/GSoC/2023/ Project Wiki] || [https://github.com/0xNoor/rtems Project's Github repo] || [https://0xnoor.hashnode.dev/ Blog] || [https://calender.google.com/ Project Schedule] || || Amna Mannan || amna_mannan || [https://devel.rtems.org/wiki/GSoC/2023/ Project Wiki] || [https://github.com/amna-mannan/rtems Project's Github repo] || [https://amnamannan.hashnode.dev/ Blog] || [https://calender.google.com/ Project Schedule] || || Abhimanyu Raghuvanshi || ABR#9429 || [https://devel.rtems.org/wiki/GSoC/2023/build-list-visualization Project Wiki] || [https://github.com/ABR290B/rtems-admin Project's Github Repo] || [https://medium.com/@abhimanyuraghuvanshi29/7517f9beba22 Blog]|| [https://calender.google.com/ Project Schedule] || || Aryan Karawale || Aryan_Karawale#1731 || [https://devel.rtems.org/wiki/GSoC/2023/adding-fdt-to-beaglebsp Project Wiki] || [https://github.com/Aryan-karawale/rtems Project's Github Repo] || [https://medium.com/@askarawale Blog ]|| [https://calender.google.com/ Project Schedule] || || Utkarsh Verma || Barusu!#4230 || [https://devel.rtems.org/wiki/GSoC/2023/improving-the-rpi4-bsp Project Wiki] || [https://github.com/UtkarshVerma/rtems Project's Github Repo] || [https://bitbanged.com/posts/gsoc Blog ]|| [https://calender.google.com Project Schedule] || The columns are to be filled in as follows: * The ''Contributor Name'' column is for your name. * The ''Handle'' column is your nickname on Discord. * 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. = Contributor Status Updates = Each contributor has a section below for putting in notes from the weekly Discord meetings. == Gedare == * Jan 23: Tracking status page created. Org Application Submitted. * May 8: Intro email sent and Discord meetings scheduled. == Mohd Noor Aman == * May 31: Coding Period first meeting * Last week's work: Introduction to community, discussions about starting the project, Initial blog for GSoC 2023 * Blocker: Understanding how drivers are imported from Freebsd in RTEMS-LIBBSD * Next week's plan: Try to import genet drivers from the freebsd tree * June 7: Coding period second meeting * Last week's work: Disccusion over on how to import drivers from the newer Freebsd release into the old branch on ML and Discord * Blocker: RTEMS-LIBBSD requires an update from 12.x to 13.x in order to import the drivers * Next week's plan: Try to backport the drivers from the 13.x to 12.x branch == Amna Mannan == * May 31: Coding Period first meeting * Last week's work: tested out riscv64 BSP on the sifive QEMU machine. It didnt worked, there were some memory overlapping issue and more to count. * Blocker: Very less knowledge about the peripherals in Sifive BSP * Next week's plan: learn how to use GDB for figuring out errors * June 7: Coding period second meeting * Last week's work: Tried to learn how to use GDB, tried to build a basic BSP * Blocker: The registers info dump is still nowhere understandable to me, will try to further dig into this * Next week's plan: I will try to create a new BSP for Sifive instead of a generic one, Will write a blog for gdb lessons == Abhimanyu Raghuvanshi == * May 31: Coding Period First Meeting * Last weeks' work: Brushed up Typescript and Python which will be used for the project. * Blocker: Build List Archives contain different types of results which are hard to parse. * Next week's plan: Getting Familiar with the Parsing Python Script and the Build List structures. * June 7 : Coding Period Second Meeting * Last week's work : Forked the rtems-admin repo created by Chris. Added the changes made to the builds.py file locally to parse more details. Started looking for suitable Mockups for the front end. * Blocker : The complexity of lists * Next week's plan: Create a UI Prototype on Figma for the visualization frontend and get it approved before starting the development. * June 14 : Coding period third meeting * Last week's work: Added the function to Calculate Pass/Fail counts for each month. Converted the data into Summary Table and write that into JSON File. Converted the data into Summary Table and write that into JSON File * Blockers : Parsing OS out of the reports * Next week's plan: Creating the Monthly Build Page and Monthly Test Page. Getting the UI Prototype validated * June 21 : Coding period fourth meeting * Last week's work : Created the front using Typescript * Blocker : Integrating frontend with exceptions in JSON Data * Next week's plan: Finalise the UI and table structures * June 28 : Coding period Fifth meeting * Last week's work : Parsed out everything needed for the Tool Builds page and generated a json file for each month. * Blockers : Required clarity on adding a link to the reports in the table * Next week's plan : Complete other reports * July 5 : Coding period sixth meeting * Last week's work: Completed the Tool Builds report page with finalised UI. * Blockers: React.js does server side rendering which doesnt output static webpages as required. * Next week's plan : Implement Next.js to render static webpages. * July 17-July 28 : Coding Period seventh and eight meeting * On scheduled time off == Muhammad Sulthan Mazaya == * May 31: Coding Period first meeting * Last week's work: Worked on the first implementation of renode on rtems-test * Blocker: Can't kill renode after the test is done, therefore blocking the next test * Next week's plan: Trying to figure out a hack to kill renode via renode itself, not depending on the rtems timeout * June 7: Coding period second meeting * Last week's work: Tried to use renode uart line hook to kill renode via `monitor.Parse('q')` * Blocker: Does not work with `--disable-xwt` turned on + turns out I can't use the tty console for the renode testing * Next week's plan: Look for another hack that is viable to be implemented * June 14: Coding period third meeting * Last week's work: Filed an issue to renode, working on another hack to make renode work. Probably going to implement a socket server as a reader thread and send a socket message using uart line hook of renode * Blocker: Understanding the source code took a while * Next week's plan: Implement the socket server as reader thread * June 21: Coding period fourth meeting * Last week's work: Tried implementing a socket server as a reader thread, will pivot and try another approach. * Blocker: Implementing a socket server as a reader thread is too hacky. This involves the need to terminate renode process after the socket message is complete, which is not trivia. * Next week's plan: Try implementing it using `LoggingUartAnalyzer`. * June 28: Coding period fifth meeting * Last week's work: Added pipe operation implementation + submit the first patch of renode's implementation * Blocker: - * Next week's plan: Implementing rsb patch for rtems-tools update on pipe operation. * July 5: Coding period sixth meeting * Last week's work: Worked on rsb recipe * Blocker: Understanding the way rsb work is quite hard, following the rtems tutorial on docs but it crashes * Next week's plan: Do an daily update email to Gedare and Chris so they can help me. * July 12: Coding period seventh meeting * Last week's work: Renode rsb recipe patch submitted * Blocker: - * Next week's plan: Work on the revision of patch + make a midterm blog * July 19: Coding period eigthth meeting * Last week's work: Revision patch of rsb submitted and start coding to enable testing Leon3 using renode via `rtems-test`. I have also written [https://www.mazaya.id/blogs/gsoc-how-to-run-k210-on-renode a blog] for testing Kendryte K210 using `rtems-test`. * Blocker: Have a problem where leon3 `.resc` file from the official repository example need a prom image from gaisler, discussing how to handle that. * Next week's plan: Continue working on renode * July 26: Coding period eigthth meeting * Last week's work: The first patch of leon3 implementation to be tested with rtems-test is submitted. * Blocker: I can't figure out how to replace the leon3 prom image totally with only the renode script peripheral map configuration, and instead I use the prom binary built from the renode-leon3-rtems github repo Antmicro has. * Next week's plan: Continue working on patch revision. == Aryan Karawale == *May 31: Coding Period first meeting * last week's work: Read about the working of FDT * Blocker: Roadblocks in building and setting up the beaglebsp * Next week's work: Complete the setup and start reading about the methods to refactor the GPIO driver *June 7: Coding Period second meeting * last week's work: Completed the setup and read about the GPIO driver * Blocker: Tried to build the rtems-test but failed to do so * Next week's work: Build a simple application, Start the work on GPIO driver == Utkarsh Verma == * **June 7**: Coding Period Week !#2 * Last week's work: Read about the existing GPIO driver in the arm/raspberrypi BSP and explored the RTEMS codebase. * Blocker: The codebase is a bit big and there is vagueness in the approach to take for the driver implementation. * Next week: Implementing the driver and looking into FDTs * **June 14**: Coding Period Week !#3 * Last week's work: * Found a BSP lookup bug in rtems_waf and raised a ticket (#4917) proposing a fix. * Fixed the RTEMS docs build system for newer versions of Sphinx. * Tested and validated a basic hardware setup to build upon. Created a new [https://github.com/UtkarshVerma/rtems-on-rpi4b repository] to contain examples for showcasing peripheral usage as the BSP support improves. * Discussed possible approaches to implement the GPIO driver with mentors. * Blocker: Getting used to the RTEMS codebase and understanding the principles before implementing the driver. * Next week: Start with the GPIO driver implementation around the GPIO2 interface. * **June 21**: Coding Period Week !#4 * Last week's work: * Discussed with mentors how to proceed with the firmware development. Seems that UARTs will be an easier target. * Looked into PL011 initialization routines through datasheets, other drivers and bare metal projects. * Blocker: N/A * Next week: Flesh out drivers for UARTs in bare metal. * **June 28**: Coding Period Week !#5 * Last week's work: * Implemented GPIO support in bare metal. * Implemented support for all five UARTs in bare metal. * Read the RPi 4B BSP source code and explored how it utilizes RTEMS' APIs. * Blocker: UART drivers depend on GPIO functionality, which is not present in the BSP. For implementing GPIO, the API has to be chosen. * Next week: Discuss the GPIO API with the community and implement support for all five UARTs. * **July 5**: Coding Period Week !#6 * Last week's work: * Wrote a new poll-based driver for ARM PL011 for the RPi. * Wrote a new poll-based driver for RPi's MiniUART peripheral. * Implemented support for all six UART ports on the RPi with configurable baudrates. * Next week: Start documenting work for mid-review and continue community discussion on the GPIO API. * **July 12**: Coding Period Week !#7 * Last week's work: * Wrote blog posts for ongoing work. * Researched ways to automate the kernel flashing process for the RPi, to allow faster iterations. * Next week: Document the BSP progress in blog posts and start work on the Mailbox peripheral. * **July 19**: Coding Period Week !#8 * Last week's work: * Researched the mailbox API and plan to implement the new property channel interface. * Could not make much progress as I had to travel for a few days. * Blocker: The mailbox API is not well-documented, so I have to read up on other open-source implementations. * Next week: Add support for the mailbox API * **July 26**: Coding Period Week !#9 * Last week's work: * Got the mailbox API to work in my bare-metal playground project. * Next week: Port the mailbox API to RTEMS with framebuffer support.