.. _gsoc-proposal-kanak-shilledar: Improve BeagleV Ahead Support - Kanak Shilledar ############################################### Introduction ************* Summary links ============= - **Contributor:** `Kanak Shilledar `_ - **Mentors:** `Robert Nelson `_, `Deepak Khatri `_ - **Code:** `TBD`_ - **Documentation:** `TBD`_ - **GSoC:** `TBD`_ Status ======= This project is currently just a proposal. Proposal ======== - Submit PR for cross compilation: `#206 `__ About ===== - **Forum:** :fab:`discourse` `u/klug (Kanak Shilledar) `_ - **OpenBeagle:** :fab:`gitlab` `klug (Kanak Shilledar) `_ - **Github:** :fab:`github` `kanakshilledar (Kanak Shilledar) `_ - **Discord:** `Kanak Shilledar `__ - **School:** :fas:`school` `KTH Royal Institute of Tecchnology `_ - **Country:** :fas:`flag` Sweden - **Primary language:** :fas:`language` English - **Typical work hours:** :fas:`clock` 9 AM - 5 PM CEST - **Previous GSoC participation:** :fab:`google` N/A Project ******** **Project name:** Improve Beaglev Ahead Support Description ============ The project will enhance the current support of the BeagleV® Ahead board. Currently, only basic support for the board is available. The current images for the board are 2 years old and need to be updated. The documentation also needs to be updated; some points are missing. There is currently no support for peripherals such as mikroBUS, WiFi/BT, etc. The effort is to improve support such that it is on par with the remaining board. Software ========= - C language - Linux Kernel - Yocto Project - Debian Project - Device Trees Hardware ======== - BeagleV Ahead - UART and JTAG cables - Linux based host - Raspberry Pi Camera - 15pin to 22pin FPC cable - Misc components - mikroBUS led, temp&hum module, etc. Timeline ******** Timeline summary ================= .. table:: +------------------------+--------------------------------------------------------------------------------------+ | Date | Activity | +========================+======================================================================================+ | February 27 - March 24 | Connect with possible mentors and request review on the first draft | +------------------------+--------------------------------------------------------------------------------------+ | March 24 - April 8 | Complete prerequisites, verify value to the community, and submit the application | +------------------------+--------------------------------------------------------------------------------------+ | April 9 - May 7 | Dive deep into Yocto project, WiFi subsystem and device driver model | +------------------------+--------------------------------------------------------------------------------------+ | May 8 - June 1 | :ref:`FBVBonding` | +------------------------+--------------------------------------------------------------------------------------+ | June 2 - June 8 | Start coding and create an introductory video | +------------------------+--------------------------------------------------------------------------------------+ | June 9 - June 15 | :ref:`FBVMilestone1` | +------------------------+--------------------------------------------------------------------------------------+ | June 16 - June 22 | :ref:`FBVMilestone2` | +------------------------+--------------------------------------------------------------------------------------+ | June 23 - June 29 | :ref:`FBVMilestone3` | +------------------------+--------------------------------------------------------------------------------------+ | June 30 - July 6 | :ref:`FBVMilestone4` | +------------------------+--------------------------------------------------------------------------------------+ | July 7 - July 13 | :ref:`FBVMilestone5` | +------------------------+--------------------------------------------------------------------------------------+ | July 14 - July 18 | :ref:`FBVSubmit-midterm-evaluations` | +------------------------+--------------------------------------------------------------------------------------+ | July 19 - July 25 | :ref:`FBVMilestone6` | +------------------------+--------------------------------------------------------------------------------------+ | July 26 - August 1 | :ref:`FBVMilestone7` | +------------------------+--------------------------------------------------------------------------------------+ | August 2 - August 8 | :ref:`FBVMilestone8` | +------------------------+--------------------------------------------------------------------------------------+ | August 9 - August 17 | :ref:`FBVMilestone9` | +------------------------+--------------------------------------------------------------------------------------+ | August 18 - August 22 | :ref:`FBVMilestone10` | +------------------------+--------------------------------------------------------------------------------------+ | August 25 | :ref:`FBVFinal-project-video` | +------------------------+--------------------------------------------------------------------------------------+ Timeline detailed ================= .. _FBVBonding: Community Bonding Period (May 1st - June 1st) ---------------------------------------------------------- - Engage with the BeagleBoard and Yocto communities. - Gain a deep understanding of WiFi subsystem for implementing its support. - List the demos which can be added to the documentation. - Finalize **project plan and implementation roadmap** with mentors. .. _FBVMilestone1: Milestone #1, Introductory YouTube video (June 9th) --------------------------------------------------- - Create an **introductory video** explaining the project scope. - Set up yocto development environment. - Compare different trees and list out required patches. .. _FBVMilestone2: Milestone #2, Fix kernel build recipe in meta-riscv (June 16th) --------------------------------------------------------------- - Xuantie-yocto support is dropped and there is no proper yocto support for this board. - Currently the kernel is getting built for beaglev ahead but it gets stuck in bootup process - Fix the kernel issues and make the board boot. - Externally compiled kernel is working properly .. _FBVMilestone3: Milestone #3, Fix issues in existing meta-riscv bsp for beaglev ahead (June 23th) --------------------------------------------------------------------------------- - Yocto doesn't generate all the build artefacts of the project in one go. - Fix the other machine dependent layers to build all the artefacts properly. .. _FBVMilestone4: Milestone #4, Setup autobuilder for daily yocto builds (June 30th) ------------------------------------------------------------------ - Just like the debian autobuilder giving daily images, setup a builder for yocto project - Setup building inside a container. .. _FBVMilestone5: Milestone #5, Work on mikroBUS support (July 7th) ------------------------------------------------------------------- - Port mikroBUS driver to BeagleV Ahead. - Try running the LED 3 Click board. - Try running the Temp&Hum Click board. .. _FBVSubmit-midterm-evaluations: Submit midterm evaluations (July 14th - July 18th) -------------------------------------------------- .. important:: **July 12 - 18:00 UTC:** Midterm evaluation deadline (standard coding period) - Prepare and submit a comprehensive midterm report: - Include design documents, implementation details, test results, and performance benchmarks. - Solicit and incorporate mentor/community feedback. .. _FBVMilestone6: Milestone #7, Fix issues remaining in xuantie-debian (July 25th) ---------------------------------------------------------------- - There are a couple of issues listed in the xuantie-debian repo. - Try to fix the majority of issues. - Work on fixing the broken WiFi. .. _FBVMilestone7: Milestone #6, Fix documentation for beaglev ahead (August 1st) -------------------------------------------------------------- - Enhance the documentaion of beaglev ahead - Document building steps for custom image instead of just flashing the provided distro. - Fix errors in the documentation .. _FBVMilestone8: Milestone #8, Implement demos for beaglev ahead (August 8th) ------------------------------------------------------------ - Currently only one demo is available for beaglev ahead. - Add demo for building custom image. - Add demo for using serial console. - Add demo for running OpenSBI application - Add demo for testing the famous GhostWrite Exploit - Improve CSI camera demo. .. _FBVMilestone9: Milestone #9, Finalize Documentation for beaglev ahead (Aug 18th) ------------------------------------------------------------------ - Fix any remaining errors for beaglev ahead. - Mention about the GhostWrite exploit. - Refactor the documentation if needed. .. _FBVMilestone10: Milestone #10, Final Submission (Aug 22nd) ---------------------------------------------------------- - Submit the final patch series, documentation, and demonstration video. - Complete final mentor evaluations and project wrap-up report. - Archive all project artifacts and provide a roadmap for future enhancements and document the work done. .. _FBVFinal-project-video: Submit final project video, submit final work to GSoC site and complete final mentor evaluation (August 25) -------------------------------------------------------------------------------------------------------------- - Create a final **video demo** of the working project. - Submit **final work to the GSoC site**. Final Submission (August 25 - September 1) -------------------------------------------- .. important:: **August 25 - September 1 - 18:00 UTC:** Submit final work and mentor evaluation. **September 1 - 8 - 18:00 UTC:** Mentors submit final evaluations. Initial Results (September 1) ------------------------------- .. important:: **September 1 - November 9:** Contributors with extended timelines continue coding. **November 10 - 18:00 UTC:** Final submission for extended timeline contributors. **November 17 - 18:00 UTC:** Final mentor evaluations for extended timeline projects Experience and approach *********************** **Experience** - I have a strong foundation in embedded linux, low level design and the yocto project. I have worked on the linux kernel, contributed to the meta-riscv earlier and have worked on the RISCV architecture. I am maintaining the port for LicheePi 4A in buildroot. **Some RISCV relevant activities** - Fixed kernel build issues in meta-riscv - Enhanced devicetree support for TH1520 in the linux kernel - Added Vision Five 2 support in zephyr project - Maintianing LicheePi 4A in buildroot **Few things worth noting** - I haven't worked on the WiFi, mikroBUS subsystem. But I want to learn about it. Contingency =========== - Upon encountering a roadblock in my project without access to my mentor, I’ll: - Leverage online resources: Explore documentation and peer forums from BeagleBoard and the linux mailing list. - Engage with peer networks: Reach out to contacts who have experience working on yocto project. - Utilize the kernel mailing list: Seek guidance from the broader Linux kernel community on upstreaming and technical challenges. - All roadblocks and solutions will be documented as part of the project artifacts for community benefit. Benefit ======== This project offers significant benefits to the developers as well as the end users - **Enhanced Support** This board didn't receive much attention from the beagle v ahead community and I try to enhance its support to make it more reliable and stable. - **Newer Distros** The xuantie-yocto project is no longer maintained and available in gitee. Using the meta-riscv will help developers modify the layers and build a custom tailored image. - **Updated Documentation** This is one of the two RISCV based boards developed by BeagleBoard. With proper documentation to this board can be used for various purpose, including but not limited to computer vision tasks, edge computing, etc. - **Future proof** Having latest images is helpful as it contains better support for the board. There are regular enhancements happening in the riscv mailing list, and years old images dont have the required support.