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: u/klug (Kanak Shilledar)
OpenBeagle: klug (Kanak Shilledar)
Github: kanakshilledar (Kanak Shilledar)
Discord: Kanak Shilledar
Country: Sweden
Primary language: English
Typical work hours: 9 AM - 5 PM CEST
Previous GSoC participation: 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#
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 |
|
June 2 - June 8 |
Start coding and create an introductory video |
June 9 - June 15 |
|
June 16 - June 22 |
Milestone #2, Fix kernel build recipe in meta-riscv (June 16th) |
June 23 - June 29 |
Milestone #3, Fix issues in existing meta-riscv bsp for beaglev ahead (June 23th) |
June 30 - July 6 |
Milestone #4, Setup autobuilder for daily yocto builds (June 30th) |
July 7 - July 13 |
|
July 14 - July 18 |
|
July 19 - July 25 |
Milestone #7, Fix issues remaining in xuantie-debian (July 25th) |
July 26 - August 1 |
Milestone #6, Fix documentation for beaglev ahead (August 1st) |
August 2 - August 8 |
Milestone #8, Implement demos for beaglev ahead (August 8th) |
August 9 - August 17 |
Milestone #9, Finalize Documentation for beaglev ahead (Aug 18th) |
August 18 - August 22 |
|
August 25 |
Timeline detailed#
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.