The main page is at SummerOfCode2014.

Template

All the the project descriptions should follow the following template.


Title of the project

  • Description of the project: At least 8-10 lines describing the project. It is essential to have a good description of your project idea if you want to attract good student applications. You should have enough information here to guide a prospective student when they're deciding whether to work on your project or not. Don't go too technical here, necessarily; you don't need to spell out your complete design for a project, nor should you. Give potential applicants the core idea of what you're thinking/expecting, and be prepared to work with them on their interpretation of the project as/when they apply.

  • Confirmed Mentor: Name of the mentor

  • How to contact the mentor: (mail, IRC, etc)

  • Confirmed co-mentors: It is not compulsory to have co-mentors, but it is definitely a good idea. Secondary mentors do not need to be as knowledgeable as the primary mentor, but they should be available to help the student as/when necessary (e.g. the primary mentor is on vacation)

  • Deliverables of the project: A clear and simple description of what you expect from a successful project

  • Desirable skills: Skills that the student has or is willing to develop. Remember, the students are not likely to have as much experience as the mentor!

  • What the student will learn: Tell the students what they should expect to pick up from the project, and how they will make a difference to Linaro. Help to motivate them here!


Projects with confirmed mentors

Please keep this section clear of project ideas without confirmed mentors, to avoid any confusion for prospective students. Such projects should be published in the next section.

AArch64 porting


SIMD support for fftw3 (FFT library)


Run lightweight IP stack on top of OpenDataPlane


Port DPDK examples to OpenDataPlane


email submission interface for Debian package testing in LAVA


Publishing large files from a LAVA device


DTS schema and linter


Linux Flattened Device Tree Self-checking


UEFI Runtime Configuration from Flattened Device Tree


Port UEFI to Low-Cost Embedded Platform

  • Description of the project: UEFI is a standardized interface for firmware and Tianocore is an open source project providing a UEFI implementation that conforms to the UEFI spec. UEFI was designed primarily with general purpose computers in mind, but many of the benefits of UEFI are also valid for embedded system design. This project is to work through the process of porting UEFI to a new ARM platform (most likely the BeagleBoneBlack) and document the findings to make it easier for other developers to port UEFI to their own hardware.

As a secondary goal, this project will also explore how well UEFI matches with embedded designs and will provide recommendations for UEFI specification changes that would be required to make embedded UEFI fully compliant with the specification.


NEON2/VFPv4d32 emulation for Linux


Renderscript Port


Projects without confirmed mentors

This page contains project ideas that have been suggested but do not (yet!) include confirmed mentors. These projects won't happen if nobody steps up to the task of mentoring them.

If you are willing and able to mentor one of those projects, please add your name to the Mentors section and move the paragraph back up the the first section.

If you want to add an idea, please follow the template below. But before doing so, please consider mentoring the project, and/or looking for co-mentors to help you doing so. Not having mentors means the project won't happen.

Auxv based runtime cpu detection for OSS software

  • Description of the project: Many software try to detect runtime which CPU features are available (such as SSE on x86 or NEON on ARM). Methods used currently for runtime detection are often based cpuid instruction, parsing /proc/cpuinfo or trapping SIGILL to detect unsupported instructions. Worse, some projects don't have any runtime detection and only have compile-time detection. In this project, student would add auxv based runtime detection to a couple of open-source projects and write blog-posts detailing how auxv can be used for detecting cpu as documentation. Some of the methods for accessing auxv include libauxv (https://github.com/libauxv/libauxv) and glibc's getauxval() function.

  • Confirmed Mentor: Name of the mentor

  • How to contact the mentor: (mail, IRC, etc)

  • Confirmed co-mentors:

  • Deliverables of the project:

  • Desirable skills:

    • C programming skills
    • Familiarity with Linux as application build envirment
  • What the student will learn:

    • interacting with Open Source projects
    • Details of CPU runtime detection


Coreboot on AArch64

  • Description of the project: Coreboot is a minimal firmware implementation, initially created as "LinuxBIOS" to be a replacement for the default PC firmware. This project is about porting this software to the 64-bit ARM architecture, AArch64. Mainline Coreboot contains some support for the 32-bit ARMv7-A architecture (AArch32), but AArch64 has a new exception handling model and a new instruction set, so a complete new port is required. Hardware platforms are still in short supply, so the intended target platform is the free (as in your favourite beverage) ARM Foundation Model for ARMv8. This also reduces the scope of this otherwise quite complex task, since certain steps such as memory controller configuration will be required.

  • Confirmed Mentor: Name of the mentor

  • How to contact the mentor: (mail, IRC, etc)

  • Confirmed co-mentors: Leif Lindholm

  • Deliverables of the project: Patches implementing coreboot support for the ARM Foundation Model in 64-bit mode, with a hardware feature support set less than what would be expected from an actual hardware platform.

  • Desirable skills:

    • C programming skills
    • Familiarity with Linux as application build environment
    • A basic grasp of processor architecture concepts
  • What the student will learn:

    • interacting with Open Source projects.
    • The 64-bit ARM instruction set (A64).
    • The AArch64 exception model.
    • Firmware concepts and design.


SummerOfCode2014/ProjectIdeas (last modified 2014-04-05 20:05:50)