Improve BeagleV Ahead Support - Kanak Shilledar#

Introduction#

Status#

This project is currently just a proposal.

Proposal#

  • Submit PR for cross compilation: #206

About#

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

Community Bonding Period (May 1st - June 1st)

June 2 - June 8

Start coding and create an introductory video

June 9 - June 15

Milestone #1, Introductory YouTube video (June 9th)

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

Milestone #5, Work on mikroBUS support (July 7th)

July 14 - July 18

Submit midterm evaluations (July 14th - July 18th)

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

Milestone #10, Final Submission (Aug 22nd)

August 25

Submit final project video, submit final work to GSoC site and complete final mentor evaluation (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.